(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.beacon=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.clearMockWindowState=exports.windowRef=void 0;var cbs=[function(_){return undefined}];var windowRef={postMessage:function(message,_target){console.log("GOT MOCK POST MESSAGE",message);cbs.forEach(function(callbackElement){callbackElement({data:message})})},addEventListener:function(_name,eventCallback){cbs.push(eventCallback)},removeEventListener:function(_name,eventCallback){cbs.splice(cbs.indexOf(function(element){return element===eventCallback}),1)},location:{origin:"*"}};exports.windowRef=windowRef;try{if(typeof window!=="undefined"){exports.windowRef=windowRef=window}}catch(windowError){console.log("not defined: "+windowError)}var clearMockWindowState=function(){cbs.length=0};exports.clearMockWindowState=clearMockWindowState},{}],2:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.Serializer=void 0;var bs58check=require("bs58check");var Serializer=function(){function Serializer(){}Serializer.prototype.serialize=function(message){return __awaiter(this,void 0,void 0,function(){var str;return __generator(this,function(_a){str=JSON.stringify(message);return[2,bs58check.encode(Buffer.from(str))]})})};Serializer.prototype.deserialize=function(encoded){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(typeof encoded!=="string"){throw new Error("Encoded payload needs to be a string")}return[2,JSON.parse(bs58check.decode(encoded).toString())]})})};return Serializer}();exports.Serializer=Serializer}).call(this,require("buffer").Buffer)},{bs58check:190,buffer:185}],3:[function(require,module,exports){"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:true});exports.messageEvents=void 0;var events_1=require("./events");var _1=require(".");exports.messageEvents=(_a={},_a[_1.BeaconMessageType.PermissionRequest]={sent:events_1.BeaconEvent.PERMISSION_REQUEST_SENT,success:events_1.BeaconEvent.PERMISSION_REQUEST_SUCCESS,error:events_1.BeaconEvent.PERMISSION_REQUEST_ERROR},_a[_1.BeaconMessageType.PermissionResponse]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.OperationRequest]={sent:events_1.BeaconEvent.OPERATION_REQUEST_SENT,success:events_1.BeaconEvent.OPERATION_REQUEST_SUCCESS,error:events_1.BeaconEvent.OPERATION_REQUEST_ERROR},_a[_1.BeaconMessageType.OperationResponse]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.SignPayloadRequest]={sent:events_1.BeaconEvent.SIGN_REQUEST_SENT,success:events_1.BeaconEvent.SIGN_REQUEST_SUCCESS,error:events_1.BeaconEvent.SIGN_REQUEST_ERROR},_a[_1.BeaconMessageType.SignPayloadResponse]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.BroadcastRequest]={sent:events_1.BeaconEvent.BROADCAST_REQUEST_SENT,success:events_1.BeaconEvent.BROADCAST_REQUEST_SUCCESS,error:events_1.BeaconEvent.BROADCAST_REQUEST_ERROR},_a[_1.BeaconMessageType.BroadcastResponse]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.Acknowledge]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.Disconnect]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a[_1.BeaconMessageType.Error]={sent:events_1.BeaconEvent.UNKNOWN,success:events_1.BeaconEvent.UNKNOWN,error:events_1.BeaconEvent.UNKNOWN},_a)},{".":24,"./events":23}],4:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.BeaconClient=void 0;var exposed_promise_1=require("../../utils/exposed-promise");var generate_uuid_1=require("../../utils/generate-uuid");var crypto_1=require("../../utils/crypto");var __1=require("../..");var events_1=require("../../events");var constants_1=require("../../constants");var MockWindow_1=require("../../MockWindow");var BeaconClient=function(){function BeaconClient(config){this._beaconId=new exposed_promise_1.ExposedPromise;this.events=new events_1.BeaconEventHandler;this._keyPair=new exposed_promise_1.ExposedPromise;if(!config.name){throw new Error("Name not set")}if(!config.storage){throw new Error("Storage not set")}this.name=config.name;this.iconUrl=config.iconUrl;this.appUrl=config.appUrl;this.storage=config.storage;if(MockWindow_1.windowRef.beaconCreatedClientInstance){console.warn("[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere.")}else{MockWindow_1.windowRef.beaconCreatedClientInstance=true}this.initSDK().catch(console.error)}Object.defineProperty(BeaconClient.prototype,"beaconId",{get:function(){return this._beaconId.promise},enumerable:false,configurable:true});Object.defineProperty(BeaconClient.prototype,"keyPair",{get:function(){return this._keyPair.promise},enumerable:false,configurable:true});BeaconClient.prototype.destroy=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.removeBeaconEntriesFromStorage()];case 1:_a.sent();MockWindow_1.windowRef.beaconCreatedClientInstance=false;return[2]}})})};BeaconClient.prototype.initSDK=function(){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){this.storage.set(__1.StorageKey.BEACON_SDK_VERSION,constants_1.SDK_VERSION).catch(console.error);this.loadOrCreateBeaconSecret().catch(console.error);return[2,this.keyPair.then(function(keyPair){_this._beaconId.resolve(crypto_1.toHex(keyPair.publicKey))})]})})};BeaconClient.prototype.removeBeaconEntriesFromStorage=function(){return __awaiter(this,void 0,void 0,function(){var allKeys;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:allKeys=Object.values(__1.StorageKey);return[4,Promise.all(allKeys.map(function(key){return _this.storage.delete(key)}))];case 1:_a.sent();return[2]}})})};BeaconClient.prototype.loadOrCreateBeaconSecret=function(){return __awaiter(this,void 0,void 0,function(){var storageValue,_a,_b,key,_c,_d;return __generator(this,function(_e){switch(_e.label){case 0:return[4,this.storage.get(__1.StorageKey.BEACON_SDK_SECRET_SEED)];case 1:storageValue=_e.sent();if(!(storageValue&&typeof storageValue==="string"))return[3,3];_b=(_a=this._keyPair).resolve;return[4,crypto_1.getKeypairFromSeed(storageValue)];case 2:_b.apply(_a,[_e.sent()]);return[3,7];case 3:return[4,generate_uuid_1.generateGUID()];case 4:key=_e.sent();return[4,this.storage.set(__1.StorageKey.BEACON_SDK_SECRET_SEED,key)];case 5:_e.sent();_d=(_c=this._keyPair).resolve;return[4,crypto_1.getKeypairFromSeed(key)];case 6:_d.apply(_c,[_e.sent()]);_e.label=7;case 7:return[2]}})})};return BeaconClient}();exports.BeaconClient=BeaconClient},{"../..":24,"../../MockWindow":1,"../../constants":9,"../../events":23,"../../utils/crypto":83,"../../utils/exposed-promise":84,"../../utils/generate-uuid":85}],5:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.Client=void 0;var exposed_promise_1=require("../../utils/exposed-promise");var __1=require("../..");var events_1=require("../../events");var BeaconClient_1=require("../beacon-client/BeaconClient");var AccountManager_1=require("../../managers/AccountManager");var generate_uuid_1=require("../../utils/generate-uuid");var constants_1=require("../../constants");var get_sender_id_1=require("../../utils/get-sender-id");var Logger_1=require("../../utils/Logger");var logger=new Logger_1.Logger("Client");var Client=function(_super){__extends(Client,_super);function Client(config){var _a,_b;var _this=_super.call(this,config)||this;_this.rateLimit=2;_this.rateLimitWindowInSeconds=5;_this.requestCounter=[];_this._transport=new exposed_promise_1.ExposedPromise;_this.events=new events_1.BeaconEventHandler(config.eventHandlers,(_a=config.disableDefaultEvents)!==null&&_a!==void 0?_a:false);_this.accountManager=new AccountManager_1.AccountManager(config.storage);_this.matrixNodes=(_b=config.matrixNodes)!==null&&_b!==void 0?_b:[];_this.handleResponse=function(message,connectionInfo){throw new Error("not overwritten"+JSON.stringify(message)+" - "+JSON.stringify(connectionInfo))};return _this}Object.defineProperty(Client.prototype,"transport",{get:function(){return this._transport.promise},enumerable:false,configurable:true});Object.defineProperty(Client.prototype,"connectionStatus",{get:function(){var _a,_b;return(_b=(_a=this._transport.promiseResult)===null||_a===void 0?void 0:_a.connectionStatus)!==null&&_b!==void 0?_b:__1.TransportStatus.NOT_CONNECTED},enumerable:false,configurable:true});Object.defineProperty(Client.prototype,"ready",{get:function(){return this.transport.then(function(){return undefined})},enumerable:false,configurable:true});Client.prototype.getAccounts=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.accountManager.getAccounts()]})})};Client.prototype.getAccount=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.accountManager.getAccount(accountIdentifier)]})})};Client.prototype.removeAccount=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.accountManager.removeAccount(accountIdentifier)]})})};Client.prototype.removeAllAccounts=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.accountManager.removeAllAccounts()]})})};Client.prototype.addRequestAndCheckIfRateLimited=function(){return __awaiter(this,void 0,void 0,function(){var now;var _this=this;return __generator(this,function(_a){now=(new Date).getTime();this.requestCounter=this.requestCounter.filter(function(date){return date+_this.rateLimitWindowInSeconds*1e3>now});this.requestCounter.push(now);return[2,this.requestCounter.length>this.rateLimit]})})};Client.prototype.init=function(transport){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!(this._transport.status===exposed_promise_1.ExposedPromiseStatus.RESOLVED))return[3,2];return[4,this.transport];case 1:return[2,_a.sent().type];case 2:return[4,this.setTransport(transport)];case 3:_a.sent();return[2,transport.type]}})})};Client.prototype.getOwnAppMetadata=function(){return __awaiter(this,void 0,void 0,function(){var _a,_b;return __generator(this,function(_c){switch(_c.label){case 0:_a={};_b=get_sender_id_1.getSenderId;return[4,this.beaconId];case 1:return[4,_b.apply(void 0,[_c.sent()])];case 2:return[2,(_a.senderId=_c.sent(),_a.name=this.name,_a.icon=this.iconUrl,_a)]}})})};Client.prototype.getPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:return[2,_a.sent().getPeers()]}})})};Client.prototype.addPeer=function(peer){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:return[2,_a.sent().addPeer(peer)]}})})};Client.prototype.destroy=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!(this._transport.status===exposed_promise_1.ExposedPromiseStatus.RESOLVED))return[3,3];return[4,this.transport];case 1:return[4,_a.sent().disconnect()];case 2:_a.sent();_a.label=3;case 3:return[4,_super.prototype.destroy.call(this)];case 4:_a.sent();return[2]}})})};Client.prototype.setTransport=function(transport){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(transport){if(this._transport.isSettled()){this._transport=exposed_promise_1.ExposedPromise.resolve(transport)}else{this._transport.resolve(transport)}}else{if(this._transport.isSettled()){this._transport=new exposed_promise_1.ExposedPromise}}return[4,this.events.emit(events_1.BeaconEvent.ACTIVE_TRANSPORT_SET,transport)];case 1:_a.sent();return[2]}})})};Client.prototype.addListener=function(transport){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){transport.addListener(function(message,connectionInfo){return __awaiter(_this,void 0,void 0,function(){var deserializedMessage;return __generator(this,function(_a){switch(_a.label){case 0:if(!(typeof message==="string"))return[3,2];return[4,(new __1.Serializer).deserialize(message)];case 1:deserializedMessage=_a.sent();this.handleResponse(deserializedMessage,connectionInfo);_a.label=2;case 2:return[2]}})})}).catch(function(error){return logger.error("addListener",error)});return[2]})})};Client.prototype.sendDisconnectToPeer=function(peer,transport){return __awaiter(this,void 0,void 0,function(){var request,_a,_b,payload,selectedTransport,_c;return __generator(this,function(_d){switch(_d.label){case 0:_a={};return[4,generate_uuid_1.generateGUID()];case 1:_a.id=_d.sent(),_a.version=constants_1.BEACON_VERSION;_b=get_sender_id_1.getSenderId;return[4,this.beaconId];case 2:return[4,_b.apply(void 0,[_d.sent()])];case 3:request=(_a.senderId=_d.sent(),_a.type=__1.BeaconMessageType.Disconnect,_a);return[4,(new __1.Serializer).serialize(request)];case 4:payload=_d.sent();if(!(transport!==null&&transport!==void 0))return[3,5];_c=transport;return[3,7];case 5:return[4,this.transport];case 6:_c=_d.sent();_d.label=7;case 7:selectedTransport=_c;return[4,selectedTransport.send(payload,peer)];case 8:_d.sent();return[2]}})})};return Client}(BeaconClient_1.BeaconClient);exports.Client=Client},{"../..":24,"../../constants":9,"../../events":23,"../../managers/AccountManager":27,"../../utils/Logger":79,"../../utils/exposed-promise":84,"../../utils/generate-uuid":85,"../../utils/get-sender-id":87,"../beacon-client/BeaconClient":4}],6:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,"__esModule",{value:true});exports.DAppClient=void 0;var exposed_promise_1=require("../../utils/exposed-promise");var Logger_1=require("../../utils/Logger");var generate_uuid_1=require("../../utils/generate-uuid");var events_1=require("../../events");var constants_1=require("../../constants");var crypto_1=require("../../utils/crypto");var __1=require("../..");var beacon_message_events_1=require("../../beacon-message-events");var get_account_identifier_1=require("../../utils/get-account-identifier");var tezblock_blockexplorer_1=require("../../utils/tezblock-blockexplorer");var BeaconErrorType_1=require("../../types/BeaconErrorType");var get_sender_id_1=require("../../utils/get-sender-id");var SigningType_1=require("../../types/beacon/SigningType");var ColorMode_1=require("../../types/ColorMode");var colorMode_1=require("../../colorMode");var wallet_lists_1=require("../../ui/alert/wallet-lists");var logger=new Logger_1.Logger("DAppClient");var DAppClient=function(_super){__extends(DAppClient,_super);function DAppClient(config){var _a,_b,_c;var _this=_super.call(this,__assign({storage:config&&config.storage?config.storage:new __1.LocalStorage},config))||this;_this.openRequests=new Map;_this._activeAccount=new exposed_promise_1.ExposedPromise;_this._activePeer=new exposed_promise_1.ExposedPromise;_this.blockExplorer=(_a=config.blockExplorer)!==null&&_a!==void 0?_a:new tezblock_blockexplorer_1.TezblockBlockExplorer;_this.preferredNetwork=(_b=config.preferredNetwork)!==null&&_b!==void 0?_b:__1.NetworkType.MAINNET;colorMode_1.setColorMode((_c=config.colorMode)!==null&&_c!==void 0?_c:ColorMode_1.ColorMode.LIGHT);_this.appMetadataManager=new __1.AppMetadataManager(_this.storage);_this.activeAccountLoaded=_this.storage.get(__1.StorageKey.ACTIVE_ACCOUNT).then(function(activeAccountIdentifier){return __awaiter(_this,void 0,void 0,function(){var _a;return __generator(this,function(_b){switch(_b.label){case 0:if(!activeAccountIdentifier)return[3,3];_a=this.setActiveAccount;return[4,this.accountManager.getAccount(activeAccountIdentifier)];case 1:return[4,_a.apply(this,[_b.sent()])];case 2:_b.sent();return[3,5];case 3:return[4,this.setActiveAccount(undefined)];case 4:_b.sent();_b.label=5;case 5:return[2]}})})}).catch(function(storageError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.setActiveAccount(undefined)];case 1:_a.sent();console.error(storageError);return[2]}})})});_this.activePeerLoaded=_this.storage.get(__1.StorageKey.ACTIVE_PEER).then(function(activePeerPublicKey){return __awaiter(_this,void 0,void 0,function(){var p2pPeerManager,postmessagePeerManager,peer,_a;var _b;return __generator(this,function(_c){switch(_c.label){case 0:if(!activePeerPublicKey)return[3,6];p2pPeerManager=new __1.PeerManager(this.storage,__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP);postmessagePeerManager=new __1.PeerManager(this.storage,__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP);return[4,p2pPeerManager.getPeer(activePeerPublicKey)];case 1:if(!((_b=_c.sent())!==null&&_b!==void 0))return[3,2];_a=_b;return[3,4];case 2:return[4,postmessagePeerManager.getPeer(activePeerPublicKey)];case 3:_a=_c.sent();_c.label=4;case 4:peer=_a;return[4,this.setActivePeer(peer)];case 5:_c.sent();return[3,8];case 6:return[4,this.setActivePeer(undefined)];case 7:_c.sent();_c.label=8;case 8:return[2]}})})}).catch(function(storageError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.setActiveAccount(undefined)];case 1:_a.sent();logger.error(storageError);return[2]}})})});_this.handleResponse=function(message,connectionInfo){return __awaiter(_this,void 0,void 0,function(){var openRequest,_a,_b,_c,_d,relevantTransport,_e,_f,peers,peer;var _g;return __generator(this,function(_h){switch(_h.label){case 0:openRequest=this.openRequests.get(message.id);logger.log("handleResponse","Received message",message,connectionInfo);if(!(openRequest&&message.type===__1.BeaconMessageType.Acknowledge))return[3,2];logger.log("acknowledge message received for "+message.id);console.timeLog(message.id,"acknowledge");_b=(_a=this.events).emit;_c=[events_1.BeaconEvent.ACKNOWLEDGE_RECEIVED];_d={message:message,extraInfo:{}};return[4,this.getWalletInfo()];case 1:_b.apply(_a,_c.concat([(_d.walletInfo=_h.sent(),_d)])).catch(console.error);return[3,18];case 2:if(!openRequest)return[3,5];if(!(message.type===__1.BeaconMessageType.PermissionResponse&&message.appMetadata))return[3,4];return[4,this.appMetadataManager.addAppMetadata(message.appMetadata)];case 3:_h.sent();_h.label=4;case 4:console.timeLog(message.id,"response");console.timeEnd(message.id);if(message.type===__1.BeaconMessageType.Error||message.errorType){openRequest.reject(message)}else{openRequest.resolve({message:message,connectionInfo:connectionInfo})}this.openRequests.delete(message.id);return[3,18];case 5:if(!(message.type===__1.BeaconMessageType.Disconnect))return[3,17];if(!(connectionInfo.origin===__1.Origin.P2P))return[3,6];_e=this.p2pTransport;return[3,10];case 6:if(!((_g=this.postMessageTransport)!==null&&_g!==void 0))return[3,7];_f=_g;return[3,9];case 7:return[4,this.transport];case 8:_f=_h.sent();_h.label=9;case 9:_e=_f;_h.label=10;case 10:relevantTransport=_e;if(!relevantTransport)return[3,16];return[4,relevantTransport.getPeers()];case 11:peers=_h.sent();peer=peers.find(function(peerEl){return peerEl.senderId===message.senderId});if(!peer)return[3,15];return[4,relevantTransport.removePeer(peer)];case 12:_h.sent();return[4,this.removeAccountsForPeers([peer])];case 13:_h.sent();return[4,this.events.emit(events_1.BeaconEvent.CHANNEL_CLOSED)];case 14:_h.sent();return[3,16];case 15:logger.error("handleDisconnect","cannot find peer for sender ID",message.senderId);_h.label=16;case 16:return[3,18];case 17:logger.error("handleResponse","no request found for id ",message.id);_h.label=18;case 18:return[2]}})})};return _this}DAppClient.prototype.initInternalTransports=function(){return __awaiter(this,void 0,void 0,function(){var keyPair;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.keyPair];case 1:keyPair=_a.sent();if(this.postMessageTransport||this.p2pTransport){return[2]}this.postMessageTransport=new __1.DappPostMessageTransport(this.name,keyPair,this.storage);return[4,this.addListener(this.postMessageTransport)];case 2:_a.sent();this.p2pTransport=new __1.DappP2PTransport(this.name,keyPair,this.storage,this.matrixNodes,this.iconUrl,this.appUrl);return[4,this.addListener(this.p2pTransport)];case 3:_a.sent();return[2]}})})};DAppClient.prototype.init=function(transport){return __awaiter(this,void 0,void 0,function(){var _a,_b;var _this=this;return __generator(this,function(_c){switch(_c.label){case 0:if(this._initPromise){return[2,this._initPromise]}_c.label=1;case 1:_c.trys.push([1,3,,4]);return[4,this.activeAccountLoaded];case 2:_c.sent();return[3,4];case 3:_a=_c.sent();return[3,4];case 4:_c.trys.push([4,6,,7]);return[4,this.activePeerLoaded];case 5:_c.sent();return[3,7];case 6:_b=_c.sent();return[3,7];case 7:this._initPromise=new Promise(function(resolve){return __awaiter(_this,void 0,void 0,function(){var _a,_b,_c,_d,_e,activeAccount,stopListening_1,origin_1,_f,_g,p2pTransport_1,postMessageTransport_1;var _this=this;return __generator(this,function(_h){switch(_h.label){case 0:if(!transport)return[3,3];return[4,this.addListener(transport)];case 1:_h.sent();_a=resolve;return[4,_super.prototype.init.call(this,transport)];case 2:_a.apply(void 0,[_h.sent()]);return[3,16];case 3:if(!this._transport.isSettled())return[3,8];return[4,this.transport];case 4:return[4,_h.sent().connect()];case 5:_h.sent();_b=resolve;_d=(_c=_super.prototype.init).call;_e=[this];return[4,this.transport];case 6:return[4,_d.apply(_c,_e.concat([_h.sent()]))];case 7:_b.apply(void 0,[_h.sent()]);return[3,16];case 8:return[4,this.getActiveAccount()];case 9:activeAccount=_h.sent();stopListening_1=function(){if(_this.postMessageTransport){_this.postMessageTransport.stopListeningForNewPeers().catch(console.error)}if(_this.p2pTransport){_this.p2pTransport.stopListeningForNewPeers().catch(console.error)}};return[4,this.initInternalTransports()];case 10:_h.sent();if(!this.postMessageTransport||!this.p2pTransport){return[2]}this.postMessageTransport.connect().then().catch(console.error);this.p2pTransport.connect().then().catch(console.error);if(!(activeAccount&&activeAccount.origin))return[3,15];origin_1=activeAccount.origin.type;if(!(origin_1===__1.Origin.EXTENSION))return[3,12];_f=resolve;return[4,_super.prototype.init.call(this,this.postMessageTransport)];case 11:_f.apply(void 0,[_h.sent()]);return[3,14];case 12:if(!(origin_1===__1.Origin.P2P))return[3,14];_g=resolve;return[4,_super.prototype.init.call(this,this.p2pTransport)];case 13:_g.apply(void 0,[_h.sent()]);_h.label=14;case 14:return[3,16];case 15:p2pTransport_1=this.p2pTransport;postMessageTransport_1=this.postMessageTransport;postMessageTransport_1.listenForNewPeer(function(peer){logger.log("init","postmessage transport peer connected",peer);_this.events.emit(events_1.BeaconEvent.PAIR_SUCCESS,peer).catch(function(emitError){return console.warn(emitError)});_this.setActivePeer(peer).catch(console.error);_this.setTransport(_this.postMessageTransport).catch(console.error);stopListening_1();resolve(__1.TransportType.POST_MESSAGE)}).catch(console.error);p2pTransport_1.listenForNewPeer(function(peer){logger.log("init","p2p transport peer connected",peer);_this.events.emit(events_1.BeaconEvent.PAIR_SUCCESS,peer).catch(function(emitError){return console.warn(emitError)});_this.setActivePeer(peer).catch(console.error);_this.setTransport(_this.p2pTransport).catch(console.error);stopListening_1();resolve(__1.TransportType.P2P)}).catch(console.error);__1.PostMessageTransport.getAvailableExtensions().then(function(){return __awaiter(_this,void 0,void 0,function(){var _a,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:_b=(_a=this.events).emit;_c=[events_1.BeaconEvent.PAIR_INIT];_d={};return[4,p2pTransport_1.getPairingRequestInfo()];case 1:_d.p2pPeerInfo=_e.sent();return[4,postMessageTransport_1.getPairingRequestInfo()];case 2:_b.apply(_a,_c.concat([(_d.postmessagePeerInfo=_e.sent(),_d.preferredNetwork=this.preferredNetwork,_d.abortedHandler=function(){_this._initPromise=undefined},_d)])).catch(function(emitError){return console.warn(emitError)});return[2]}})})}).catch(function(error){_this._initPromise=undefined;console.error(error)});_h.label=16;case 16:return[2]}})})});return[2,this._initPromise]}})})};DAppClient.prototype.getActiveAccount=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this._activeAccount.promise]})})};DAppClient.prototype.setActiveAccount=function(account){return __awaiter(this,void 0,void 0,function(){var origin_2,peer;return __generator(this,function(_a){switch(_a.label){case 0:if(this._activeAccount.isSettled()){this._activeAccount=exposed_promise_1.ExposedPromise.resolve(account)}else{this._activeAccount.resolve(account)}if(!account)return[3,8];origin_2=account.origin.type;return[4,this.initInternalTransports()];case 1:_a.sent();if(!(origin_2===__1.Origin.EXTENSION))return[3,3];return[4,this.setTransport(this.postMessageTransport)];case 2:_a.sent();return[3,5];case 3:if(!(origin_2===__1.Origin.P2P))return[3,5];return[4,this.setTransport(this.p2pTransport)];case 4:_a.sent();_a.label=5;case 5:return[4,this.getPeer(account)];case 6:peer=_a.sent();return[4,this.setActivePeer(peer)];case 7:_a.sent();return[3,11];case 8:return[4,this.setActivePeer(undefined)];case 9:_a.sent();return[4,this.setTransport(undefined)];case 10:_a.sent();_a.label=11;case 11:return[4,this.storage.set(__1.StorageKey.ACTIVE_ACCOUNT,account?account.accountIdentifier:undefined)];case 12:_a.sent();return[4,this.events.emit(events_1.BeaconEvent.ACTIVE_ACCOUNT_SET,account)];case 13:_a.sent();return[2]}})})};DAppClient.prototype.clearActiveAccount=function(){return this.setActiveAccount()};DAppClient.prototype.setColorMode=function(colorMode){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,colorMode_1.setColorMode(colorMode)]})})};DAppClient.prototype.getColorMode=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,colorMode_1.getColorMode()]})})};DAppClient.prototype.getAppMetadata=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.getOwnAppMetadata()]})})};DAppClient.prototype.removeAccount=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){var removeAccountResult,activeAccount;return __generator(this,function(_a){switch(_a.label){case 0:removeAccountResult=_super.prototype.removeAccount.call(this,accountIdentifier);return[4,this.getActiveAccount()];case 1:activeAccount=_a.sent();if(!(activeAccount&&activeAccount.accountIdentifier===accountIdentifier))return[3,3];return[4,this.setActiveAccount(undefined)];case 2:_a.sent();_a.label=3;case 3:return[2,removeAccountResult]}})})};DAppClient.prototype.removeAllAccounts=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,_super.prototype.removeAllAccounts.call(this)];case 1:_a.sent();return[4,this.setActiveAccount(undefined)];case 2:_a.sent();return[2]}})})};DAppClient.prototype.removePeer=function(peer,sendDisconnectToPeer){if(sendDisconnectToPeer===void 0){sendDisconnectToPeer=false}return __awaiter(this,void 0,void 0,function(){var transport,removePeerResult;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:transport=_a.sent();removePeerResult=transport.removePeer(peer);return[4,this.removeAccountsForPeers([peer])];case 2:_a.sent();if(!sendDisconnectToPeer)return[3,4];return[4,this.sendDisconnectToPeer(peer,transport)];case 3:_a.sent();_a.label=4;case 4:return[2,removePeerResult]}})})};DAppClient.prototype.removeAllPeers=function(sendDisconnectToPeers){if(sendDisconnectToPeers===void 0){sendDisconnectToPeers=false}return __awaiter(this,void 0,void 0,function(){var transport,peers,removePeerResult,disconnectPromises;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:transport=_a.sent();return[4,transport.getPeers()];case 2:peers=_a.sent();removePeerResult=transport.removeAllPeers();return[4,this.removeAccountsForPeers(peers)];case 3:_a.sent();if(!sendDisconnectToPeers)return[3,5];disconnectPromises=peers.map(function(peer){return _this.sendDisconnectToPeer(peer,transport)});return[4,Promise.all(disconnectPromises)];case 4:_a.sent();_a.label=5;case 5:return[2,removePeerResult]}})})};DAppClient.prototype.subscribeToEvent=function(internalEvent,eventCallback){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.events.on(internalEvent,eventCallback)];case 1:_a.sent();return[2]}})})};DAppClient.prototype.checkPermissions=function(type){return __awaiter(this,void 0,void 0,function(){var activeAccount,permissions;return __generator(this,function(_a){switch(_a.label){case 0:if(type===__1.BeaconMessageType.PermissionRequest){return[2,true]}return[4,this.getActiveAccount()];case 1:activeAccount=_a.sent();if(!!activeAccount)return[3,3];return[4,this.sendInternalError("No active account set!")];case 2:throw _a.sent();case 3:permissions=activeAccount.scopes;switch(type){case __1.BeaconMessageType.OperationRequest:return[2,permissions.includes(__1.PermissionScope.OPERATION_REQUEST)];case __1.BeaconMessageType.SignPayloadRequest:return[2,permissions.includes(__1.PermissionScope.SIGN)];case __1.BeaconMessageType.BroadcastRequest:return[2,true];default:return[2,false]}return[2]}})})};DAppClient.prototype.requestPermissions=function(input){return __awaiter(this,void 0,void 0,function(){var request,_a,_b,message,connectionInfo,publicKey,address,accountInfo,_c,output,_d,_e,_f;var _this=this;return __generator(this,function(_g){switch(_g.label){case 0:_a={};return[4,this.getOwnAppMetadata()];case 1:request=(_a.appMetadata=_g.sent(),_a.type=__1.BeaconMessageType.PermissionRequest,_a.network=input&&input.network?input.network:{type:__1.NetworkType.MAINNET},_a.scopes=input&&input.scopes?input.scopes:[__1.PermissionScope.OPERATION_REQUEST,__1.PermissionScope.SIGN],_a);return[4,this.makeRequest(request).catch(function(requestError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.handleRequestError(request,requestError)];case 1:throw _a.sent()}})})})];case 2:_b=_g.sent(),message=_b.message,connectionInfo=_b.connectionInfo;publicKey=message.publicKey||message.pubkey||message.pubKey;return[4,crypto_1.getAddressFromPublicKey(publicKey)];case 3:address=_g.sent();_c={};return[4,get_account_identifier_1.getAccountIdentifier(address,message.network)];case 4:accountInfo=(_c.accountIdentifier=_g.sent(),_c.senderId=message.senderId,_c.origin={type:connectionInfo.origin,id:connectionInfo.id},_c.address=address,_c.publicKey=publicKey,_c.network=message.network,_c.scopes=message.scopes,_c.threshold=message.threshold,_c.connectedAt=(new Date).getTime(),_c);return[4,this.accountManager.addAccount(accountInfo)];case 5:_g.sent();return[4,this.setActiveAccount(accountInfo)];case 6:_g.sent();output=__assign(__assign({},message),{address:address,accountInfo:accountInfo});_d=this.notifySuccess;_e=[request];_f={account:accountInfo,output:output,blockExplorer:this.blockExplorer,connectionContext:connectionInfo};return[4,this.getWalletInfo()];case 7:return[4,_d.apply(this,_e.concat([(_f.walletInfo=_g.sent(),_f)]))];case 8:_g.sent();return[2,output]}})})};DAppClient.prototype.requestSignPayload=function(input){return __awaiter(this,void 0,void 0,function(){var activeAccount,payload,signingType,request,_a,message,connectionInfo,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:if(!!input.payload)return[3,2];return[4,this.sendInternalError("Payload must be provided")];case 1:throw _e.sent();case 2:return[4,this.getActiveAccount()];case 3:activeAccount=_e.sent();if(!!activeAccount)return[3,5];return[4,this.sendInternalError("No active account!")];case 4:throw _e.sent();case 5:payload=input.payload;if(typeof payload!=="string"){throw new Error("Payload must be a string")}signingType=function(){switch(input.signingType){case SigningType_1.SigningType.OPERATION:if(!payload.startsWith("03")){throw new Error('When using signing type "OPERATION", the payload must start with prefix "03"')}return SigningType_1.SigningType.OPERATION;case SigningType_1.SigningType.MICHELINE:if(!payload.startsWith("05")){throw new Error('When using signing type "MICHELINE", the payload must start with prefix "05"')}return SigningType_1.SigningType.MICHELINE;case SigningType_1.SigningType.RAW:default:return SigningType_1.SigningType.RAW}}();request={type:__1.BeaconMessageType.SignPayloadRequest,signingType:signingType,payload:payload,sourceAddress:input.sourceAddress||activeAccount.address};return[4,this.makeRequest(request).catch(function(requestError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.handleRequestError(request,requestError)];case 1:throw _a.sent()}})})})];case 6:_a=_e.sent(),message=_a.message,connectionInfo=_a.connectionInfo;_b=this.notifySuccess;_c=[request];_d={account:activeAccount,output:message,connectionContext:connectionInfo};return[4,this.getWalletInfo()];case 7:return[4,_b.apply(this,_c.concat([(_d.walletInfo=_e.sent(),_d)]))];case 8:_e.sent();return[2,message]}})})};DAppClient.prototype.requestOperation=function(input){return __awaiter(this,void 0,void 0,function(){var activeAccount,request,_a,message,connectionInfo,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:if(!!input.operationDetails)return[3,2];return[4,this.sendInternalError("Operation details must be provided")];case 1:throw _e.sent();case 2:return[4,this.getActiveAccount()];case 3:activeAccount=_e.sent();if(!!activeAccount)return[3,5];return[4,this.sendInternalError("No active account!")];case 4:throw _e.sent();case 5:request={type:__1.BeaconMessageType.OperationRequest,network:activeAccount.network||{type:__1.NetworkType.MAINNET},operationDetails:input.operationDetails,sourceAddress:activeAccount.address||""};return[4,this.makeRequest(request).catch(function(requestError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.handleRequestError(request,requestError)];case 1:throw _a.sent()}})})})];case 6:_a=_e.sent(),message=_a.message,connectionInfo=_a.connectionInfo;_b=this.notifySuccess;_c=[request];_d={account:activeAccount,output:message,blockExplorer:this.blockExplorer,connectionContext:connectionInfo};return[4,this.getWalletInfo()];case 7:return[4,_b.apply(this,_c.concat([(_d.walletInfo=_e.sent(),_d)]))];case 8:_e.sent();return[2,message]}})})};DAppClient.prototype.requestBroadcast=function(input){return __awaiter(this,void 0,void 0,function(){var network,request,_a,message,connectionInfo,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:if(!!input.signedTransaction)return[3,2];return[4,this.sendInternalError("Signed transaction must be provided")];case 1:throw _e.sent();case 2:network=input.network||{type:__1.NetworkType.MAINNET};request={type:__1.BeaconMessageType.BroadcastRequest,network:network,signedTransaction:input.signedTransaction};return[4,this.makeRequest(request).catch(function(requestError){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.handleRequestError(request,requestError)];case 1:throw _a.sent()}})})})];case 3:_a=_e.sent(),message=_a.message,connectionInfo=_a.connectionInfo;_b=this.notifySuccess;_c=[request];_d={network:network,output:message,blockExplorer:this.blockExplorer,connectionContext:connectionInfo};return[4,this.getWalletInfo()];case 4:return[4,_b.apply(this,_c.concat([(_d.walletInfo=_e.sent(),_d)]))];case 5:_e.sent();return[2,message]}})})};DAppClient.prototype.setActivePeer=function(peer){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(this._activePeer.isSettled()){this._activePeer=exposed_promise_1.ExposedPromise.resolve(peer)}else{this._activePeer.resolve(peer)}if(!peer)return[3,5];return[4,this.initInternalTransports()];case 1:_a.sent();if(!(peer.type==="postmessage-pairing-response"))return[3,3];return[4,this.setTransport(this.postMessageTransport)];case 2:_a.sent();return[3,5];case 3:if(!(peer.type==="p2p-pairing-response"))return[3,5];return[4,this.setTransport(this.p2pTransport)];case 4:_a.sent();_a.label=5;case 5:return[4,this.storage.set(__1.StorageKey.ACTIVE_PEER,peer?peer.publicKey:undefined)];case 6:_a.sent();return[2]}})})};DAppClient.prototype.setTransport=function(transport){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(!transport){this._initPromise=undefined}return[2,_super.prototype.setTransport.call(this,transport)]})})};DAppClient.prototype.sendInternalError=function(errorMessage){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.events.emit(events_1.BeaconEvent.INTERNAL_ERROR,errorMessage)];case 1:_a.sent();throw new Error(errorMessage)}})})};DAppClient.prototype.removeAccountsForPeers=function(peersToRemove){return __awaiter(this,void 0,void 0,function(){var accounts,peerIdsToRemove,accountsToRemove,accountIdentifiersToRemove,activeAccount;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.accountManager.getAccounts()];case 1:accounts=_a.sent();peerIdsToRemove=peersToRemove.map(function(peer){return peer.senderId});accountsToRemove=accounts.filter(function(account){return peerIdsToRemove.includes(account.senderId)});accountIdentifiersToRemove=accountsToRemove.map(function(accountInfo){return accountInfo.accountIdentifier});return[4,this.accountManager.removeAccounts(accountIdentifiersToRemove)];case 2:_a.sent();return[4,this.getActiveAccount()];case 3:activeAccount=_a.sent();if(!activeAccount)return[3,5];if(!accountIdentifiersToRemove.includes(activeAccount.accountIdentifier))return[3,5];return[4,this.setActiveAccount(undefined)];case 4:_a.sent();_a.label=5;case 5:return[2]}})})};DAppClient.prototype.handleRequestError=function(request,beaconError){return __awaiter(this,void 0,void 0,function(){var buttons,actionCallback,peer,activeAccount,_a,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:logger.error("handleRequestError","error response",beaconError);if(!beaconError.errorType)return[3,4];buttons=[];if(beaconError.errorType===BeaconErrorType_1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR){actionCallback=function(){return __awaiter(_this,void 0,void 0,function(){var operationRequest,accountInfo,accountIdentifier;return __generator(this,function(_a){switch(_a.label){case 0:operationRequest=request;if(!(operationRequest.sourceAddress&&operationRequest.network))return[3,4];return[4,get_account_identifier_1.getAccountIdentifier(operationRequest.sourceAddress,operationRequest.network)];case 1:accountIdentifier=_a.sent();return[4,this.getAccount(accountIdentifier)];case 2:accountInfo=_a.sent();if(!accountInfo)return[3,4];return[4,this.removeAccount(accountInfo.accountIdentifier)];case 3:_a.sent();_a.label=4;case 4:return[2]}})})};buttons.push({text:"Remove account",actionCallback:actionCallback})}return[4,this.getPeer()];case 1:peer=_e.sent();return[4,this.getActiveAccount()];case 2:activeAccount=_e.sent();_b=(_a=this.events).emit;_c=[beacon_message_events_1.messageEvents[request.type].error];_d={errorResponse:beaconError};return[4,this.getWalletInfo(peer,activeAccount)];case 3:_b.apply(_a,_c.concat([(_d.walletInfo=_e.sent(),_d),buttons])).catch(function(emitError){return logger.error("handleRequestError",emitError)});throw __1.BeaconError.getError(beaconError.errorType,beaconError.errorData);case 4:throw beaconError}})})};DAppClient.prototype.notifySuccess=function(request,response){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){this.events.emit(beacon_message_events_1.messageEvents[request.type].success,response).catch(function(emitError){return console.warn(emitError)});return[2]})})};DAppClient.prototype.getWalletInfo=function(peer,account){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,function(){var selectedAccount,_e,selectedPeer,_f,walletInfo,typedPeer,selectedApp;return __generator(this,function(_g){switch(_g.label){case 0:if(!account)return[3,1];_e=account;return[3,3];case 1:return[4,this.getActiveAccount()];case 2:_e=_g.sent();_g.label=3;case 3:selectedAccount=_e;if(!peer)return[3,4];_f=peer;return[3,6];case 4:return[4,this.getPeer(selectedAccount)];case 5:_f=_g.sent();_g.label=6;case 6:selectedPeer=_f;if(!selectedAccount)return[3,8];return[4,this.appMetadataManager.getAppMetadata(selectedAccount.senderId)];case 7:walletInfo=_g.sent();_g.label=8;case 8:typedPeer=selectedPeer;if(!walletInfo){walletInfo={name:typedPeer.name,icon:typedPeer.icon}}selectedApp=(_c=(_b=(_a=wallet_lists_1.iOSList.find(function(app){return app.name===(walletInfo===null||walletInfo===void 0?void 0:walletInfo.name)}))!==null&&_a!==void 0?_a:wallet_lists_1.webList.find(function(app){return app.name===(walletInfo===null||walletInfo===void 0?void 0:walletInfo.name)}))!==null&&_b!==void 0?_b:wallet_lists_1.desktopList.find(function(app){return app.name===(walletInfo===null||walletInfo===void 0?void 0:walletInfo.name)}))!==null&&_c!==void 0?_c:wallet_lists_1.extensionList.find(function(app){return app.name===(walletInfo===null||walletInfo===void 0?void 0:walletInfo.name)});if(selectedApp){return[2,{name:walletInfo.name,icon:(_d=walletInfo.icon)!==null&&_d!==void 0?_d:selectedApp.logo}]}return[2,walletInfo]}})})};DAppClient.prototype.getPeer=function(account){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,function(){var peer,postMessagePeers,p2pPeers,peers;return __generator(this,function(_e){switch(_e.label){case 0:if(!account)return[3,3];logger.log("","We have an account",account);return[4,(_a=this.postMessageTransport)===null||_a===void 0?void 0:_a.getPeers()];case 1:postMessagePeers=(_b=_e.sent())!==null&&_b!==void 0?_b:[];return[4,(_c=this.p2pTransport)===null||_c===void 0?void 0:_c.getPeers()];case 2:p2pPeers=(_d=_e.sent())!==null&&_d!==void 0?_d:[];peers=__spreadArrays(postMessagePeers,p2pPeers);logger.log("","Found peers",peers,account);peer=peers.find(function(peerEl){return peerEl.senderId===account.senderId});if(!peer){peer=peers.find(function(peerEl){return peerEl.extensionId===account.origin.id})}return[3,5];case 3:return[4,this._activePeer.promise];case 4:peer=_e.sent();logger.log("","Active peer",peer);_e.label=5;case 5:if(!peer){throw new Error("No matching peer found.")}return[2,peer]}})})};DAppClient.prototype.makeRequest=function(requestInput){var _a;return __awaiter(this,void 0,void 0,function(){var messageId,request,_b,_c,exposed,payload,account,peer,walletInfo;var _this=this;return __generator(this,function(_d){switch(_d.label){case 0:return[4,generate_uuid_1.generateGUID()];case 1:messageId=_d.sent();console.time(messageId);logger.log("makeRequest","starting");return[4,this.init()];case 2:_d.sent();console.timeLog(messageId,"init done");logger.log("makeRequest","after init");return[4,this.addRequestAndCheckIfRateLimited()];case 3:if(_d.sent()){this.events.emit(events_1.BeaconEvent.LOCAL_RATE_LIMIT_REACHED).catch(function(emitError){return console.warn(emitError)});throw new Error("rate limit reached")}return[4,this.checkPermissions(requestInput.type)];case 4:if(!_d.sent()){this.events.emit(events_1.BeaconEvent.NO_PERMISSIONS).catch(function(emitError){return console.warn(emitError)});throw new Error("No permissions to send this request to wallet!")}if(!!this.beaconId)return[3,6];return[4,this.sendInternalError("BeaconID not defined")];case 5:throw _d.sent();case 6:_b={id:messageId,version:constants_1.BEACON_VERSION};_c=get_sender_id_1.getSenderId;return[4,this.beaconId];case 7:return[4,_c.apply(void 0,[_d.sent()])];case 8:request=__assign.apply(void 0,[(_b.senderId=_d.sent(),_b),requestInput]);exposed=new exposed_promise_1.ExposedPromise;this.addOpenRequest(request.id,exposed);return[4,(new __1.Serializer).serialize(request)];case 9:payload=_d.sent();return[4,this.getActiveAccount()];case 10:account=_d.sent();return[4,this.getPeer(account)];case 11:peer=_d.sent();return[4,this.getWalletInfo(peer,account)];case 12:walletInfo=_d.sent();logger.log("makeRequest","sending message",request);console.timeLog(messageId,"sending");return[4,this.transport];case 13:return[4,_d.sent().send(payload,peer)];case 14:_d.sent();console.timeLog(messageId,"sent");this.events.emit(beacon_message_events_1.messageEvents[requestInput.type].sent,{walletInfo:{name:(_a=walletInfo.name)!==null&&_a!==void 0?_a:"Wallet",icon:walletInfo.icon},extraInfo:{resetCallback:function(){return __awaiter(_this,void 0,void 0,function(){var _a,_b,_c;return __generator(this,function(_d){switch(_d.label){case 0:_b=(_a=Promise).all;_c=[this.clearActiveAccount()];return[4,this.transport];case 1:return[4,_b.apply(_a,[_c.concat([_d.sent().disconnect()])])];case 2:_d.sent();return[2]}})})}}}).catch(function(emitError){return console.warn(emitError)});return[2,exposed.promise]}})})};DAppClient.prototype.addOpenRequest=function(id,promise){logger.log("addOpenRequest",this.name,"adding request "+id+" and waiting for answer");this.openRequests.set(id,promise)};return DAppClient}(__1.Client);exports.DAppClient=DAppClient},{"../..":24,"../../beacon-message-events":3,"../../colorMode":8,"../../constants":9,"../../events":23,"../../types/BeaconErrorType":59,"../../types/ColorMode":60,"../../types/beacon/SigningType":66,"../../ui/alert/wallet-lists":76,"../../utils/Logger":79,"../../utils/crypto":83,"../../utils/exposed-promise":84,"../../utils/generate-uuid":85,"../../utils/get-account-identifier":86,"../../utils/get-sender-id":87,"../../utils/tezblock-blockexplorer":93}],7:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.WalletClient=void 0;var __1=require("../..");var PermissionManager_1=require("../../managers/PermissionManager");var AppMetadataManager_1=require("../../managers/AppMetadataManager");var IncomingRequestInterceptor_1=require("../../interceptors/IncomingRequestInterceptor");var OutgoingResponseInterceptor_1=require("../../interceptors/OutgoingResponseInterceptor");var BeaconMessageType_1=require("../../types/beacon/BeaconMessageType");var get_sender_id_1=require("../../utils/get-sender-id");var exposed_promise_1=require("../../utils/exposed-promise");var Logger_1=require("../../utils/Logger");var logger=new Logger_1.Logger("WalletClient");var WalletClient=function(_super){__extends(WalletClient,_super);function WalletClient(config){var _this=_super.call(this,__assign({storage:new __1.LocalStorage},config))||this;_this._isConnected=new exposed_promise_1.ExposedPromise;_this.pendingRequests=[];_this.permissionManager=new PermissionManager_1.PermissionManager(new __1.LocalStorage);_this.appMetadataManager=new AppMetadataManager_1.AppMetadataManager(new __1.LocalStorage);return _this}Object.defineProperty(WalletClient.prototype,"isConnected",{get:function(){return this._isConnected.promise},enumerable:false,configurable:true});WalletClient.prototype.init=function(){return __awaiter(this,void 0,void 0,function(){var keyPair,p2pTransport;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.keyPair];case 1:keyPair=_a.sent();p2pTransport=new __1.WalletP2PTransport(this.name,keyPair,this.storage,this.matrixNodes,this.iconUrl,this.appUrl);return[2,_super.prototype.init.call(this,p2pTransport)]}})})};WalletClient.prototype.connect=function(newMessageCallback){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){this.handleResponse=function(message,connectionContext){return __awaiter(_this,void 0,void 0,function(){var transport,peers,peer;return __generator(this,function(_a){switch(_a.label){case 0:if(!(message.type===BeaconMessageType_1.BeaconMessageType.Disconnect))return[3,5];return[4,this.transport];case 1:transport=_a.sent();return[4,transport.getPeers()];case 2:peers=_a.sent();peer=peers.find(function(peerEl){return peerEl.senderId===message.senderId});if(!peer)return[3,4];return[4,this.removePeer(peer)];case 3:_a.sent();_a.label=4;case 4:return[2];case 5:if(!!this.pendingRequests.some(function(request){return request[0].id===message.id}))return[3,9];this.pendingRequests.push([message,connectionContext]);if(!(message.version!=="1"))return[3,7];return[4,this.sendAcknowledgeResponse(message,connectionContext)];case 6:_a.sent();_a.label=7;case 7:return[4,IncomingRequestInterceptor_1.IncomingRequestInterceptor.intercept({message:message,connectionInfo:connectionContext,appMetadataManager:this.appMetadataManager,interceptorCallback:newMessageCallback})];case 8:_a.sent();_a.label=9;case 9:return[2]}})})};return[2,this._connect()]})})};WalletClient.prototype._connect=function(){return __awaiter(this,void 0,void 0,function(){var transport;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:transport=_a.sent();if(!(transport.connectionStatus===__1.TransportStatus.NOT_CONNECTED))return[3,3];return[4,transport.connect()];case 2:_a.sent();transport.addListener(function(message,connectionInfo){return __awaiter(_this,void 0,void 0,function(){var deserializedMessage;return __generator(this,function(_a){switch(_a.label){case 0:if(!(typeof message==="string"))return[3,2];return[4,(new __1.Serializer).deserialize(message)];case 1:deserializedMessage=_a.sent();this.handleResponse(deserializedMessage,connectionInfo);_a.label=2;case 2:return[2]}})})}).catch(function(error){return logger.log("_connect",error)});this._isConnected.resolve(true);return[3,3];case 3:return[2]}})})};WalletClient.prototype.respond=function(message){return __awaiter(this,void 0,void 0,function(){var request,_a,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:request=this.pendingRequests.find(function(pendingRequest){return pendingRequest[0].id===message.id});if(!request){throw new Error("No matching request found!")}this.pendingRequests=this.pendingRequests.filter(function(pendingRequest){return pendingRequest[0].id!==message.id});_b=(_a=OutgoingResponseInterceptor_1.OutgoingResponseInterceptor).intercept;_c={};_d=get_sender_id_1.getSenderId;return[4,this.beaconId];case 1:return[4,_d.apply(void 0,[_e.sent()])];case 2:_c.senderId=_e.sent(),_c.request=request[0],_c.message=message;return[4,this.getOwnAppMetadata()];case 3:return[4,_b.apply(_a,[(_c.ownAppMetadata=_e.sent(),_c.permissionManager=this.permissionManager,_c.appMetadataManager=this.appMetadataManager,_c.interceptorCallback=function(response){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.respondToMessage(response,request[1])];case 1:_a.sent();return[2]}})})},_c)])];case 4:_e.sent();return[2]}})})};WalletClient.prototype.getAppMetadataList=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.appMetadataManager.getAppMetadataList()]})})};WalletClient.prototype.getAppMetadata=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.appMetadataManager.getAppMetadata(senderId)]})})};WalletClient.prototype.removeAppMetadata=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.appMetadataManager.removeAppMetadata(senderId)]})})};WalletClient.prototype.removeAllAppMetadata=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.appMetadataManager.removeAllAppMetadata()]})})};WalletClient.prototype.getPermissions=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.permissionManager.getPermissions()]})})};WalletClient.prototype.getPermission=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.permissionManager.getPermission(accountIdentifier)]})})};WalletClient.prototype.removePermission=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.permissionManager.removePermission(accountIdentifier)]})})};WalletClient.prototype.removeAllPermissions=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.permissionManager.removeAllPermissions()]})})};WalletClient.prototype.addPeer=function(peer){return __awaiter(this,void 0,void 0,function(){var extendedPeer,_a,_b;return __generator(this,function(_c){switch(_c.label){case 0:_a=[__assign({},peer)];_b={};return[4,get_sender_id_1.getSenderId(peer.publicKey)];case 1:extendedPeer=__assign.apply(void 0,_a.concat([(_b.senderId=_c.sent(),_b)]));return[4,this.transport];case 2:return[2,_c.sent().addPeer(extendedPeer)]}})})};WalletClient.prototype.removePeer=function(peer,sendDisconnectToPeer){if(sendDisconnectToPeer===void 0){sendDisconnectToPeer=false}return __awaiter(this,void 0,void 0,function(){var removePeerResult;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:removePeerResult=_a.sent().removePeer(peer);return[4,this.removePermissionsForPeers([peer])];case 2:_a.sent();if(!sendDisconnectToPeer)return[3,4];return[4,this.sendDisconnectToPeer(peer)];case 3:_a.sent();_a.label=4;case 4:return[2,removePeerResult]}})})};WalletClient.prototype.removeAllPeers=function(sendDisconnectToPeers){if(sendDisconnectToPeers===void 0){sendDisconnectToPeers=false}return __awaiter(this,void 0,void 0,function(){var peers,removePeerResult,disconnectPromises;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.transport];case 1:return[4,_a.sent().getPeers()];case 2:peers=_a.sent();return[4,this.transport];case 3:removePeerResult=_a.sent().removeAllPeers();return[4,this.removePermissionsForPeers(peers)];case 4:_a.sent();if(!sendDisconnectToPeers)return[3,6];disconnectPromises=peers.map(function(peer){return _this.sendDisconnectToPeer(peer)});return[4,Promise.all(disconnectPromises)];case 5:_a.sent();_a.label=6;case 6:return[2,removePeerResult]}})})};WalletClient.prototype.removePermissionsForPeers=function(peersToRemove){return __awaiter(this,void 0,void 0,function(){var permissions,peerIdsToRemove,permissionsToRemove,permissionIdentifiersToRemove;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.permissionManager.getPermissions()];case 1:permissions=_a.sent();peerIdsToRemove=peersToRemove.map(function(peer){return peer.senderId});permissionsToRemove=permissions.filter(function(permission){return peerIdsToRemove.includes(permission.appMetadata.senderId)});permissionIdentifiersToRemove=permissionsToRemove.map(function(permissionInfo){return permissionInfo.accountIdentifier});return[4,this.permissionManager.removePermissions(permissionIdentifiersToRemove)];case 2:_a.sent();return[2]}})})};WalletClient.prototype.sendAcknowledgeResponse=function(request,connectionContext){return __awaiter(this,void 0,void 0,function(){var acknowledgeResponse,_a,_b,_c,_d;var _this=this;return __generator(this,function(_e){switch(_e.label){case 0:acknowledgeResponse={id:request.id,type:BeaconMessageType_1.BeaconMessageType.Acknowledge};_b=(_a=OutgoingResponseInterceptor_1.OutgoingResponseInterceptor).intercept;_c={};_d=get_sender_id_1.getSenderId;return[4,this.beaconId];case 1:return[4,_d.apply(void 0,[_e.sent()])];case 2:_c.senderId=_e.sent(),_c.request=request,_c.message=acknowledgeResponse;return[4,this.getOwnAppMetadata()];case 3:return[4,_b.apply(_a,[(_c.ownAppMetadata=_e.sent(),_c.permissionManager=this.permissionManager,_c.appMetadataManager=this.appMetadataManager,_c.interceptorCallback=function(response){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.respondToMessage(response,connectionContext)];case 1:_a.sent();return[2]}})})},_c)])];case 4:_e.sent();return[2]}})})};WalletClient.prototype.respondToMessage=function(response,connectionContext){return __awaiter(this,void 0,void 0,function(){var serializedMessage,peerInfos,peer;return __generator(this,function(_a){switch(_a.label){case 0:return[4,(new __1.Serializer).serialize(response)];case 1:serializedMessage=_a.sent();if(!connectionContext)return[3,5];return[4,this.getPeers()];case 2:peerInfos=_a.sent();peer=peerInfos.find(function(peerInfo){return peerInfo.publicKey===connectionContext.id});return[4,this.transport];case 3:return[4,_a.sent().send(serializedMessage,peer)];case 4:_a.sent();return[3,8];case 5:return[4,this.transport];case 6:return[4,_a.sent().send(serializedMessage)];case 7:_a.sent();_a.label=8;case 8:return[2]}})})};return WalletClient}(__1.Client);exports.WalletClient=WalletClient},{"../..":24,"../../interceptors/IncomingRequestInterceptor":25,"../../interceptors/OutgoingResponseInterceptor":26,"../../managers/AppMetadataManager":28,"../../managers/PermissionManager":30,"../../types/beacon/BeaconMessageType":63,"../../utils/Logger":79,"../../utils/exposed-promise":84,"../../utils/get-sender-id":87}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getColorMode=exports.setColorMode=void 0;var ColorMode_1=require("./types/ColorMode");var colorMode=ColorMode_1.ColorMode.LIGHT;exports.setColorMode=function(mode){colorMode=mode};exports.getColorMode=function(){return colorMode}},{"./types/ColorMode":60}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BEACON_VERSION=exports.SDK_VERSION=void 0;exports.SDK_VERSION="2.2.8";exports.BEACON_VERSION="2"},{}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getDebugEnabled=exports.setDebugEnabled=void 0;var MockWindow_1=require("./MockWindow");var debug=MockWindow_1.windowRef.beaconSdkDebugEnabled?true:false;if(debug){console.log("[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)")}exports.setDebugEnabled=function(enabled){debug=enabled};exports.getDebugEnabled=function(){return debug}},{"./MockWindow":1}],11:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.AbortedBeaconError=void 0;var __1=require("..");var AbortedBeaconError=function(_super){__extends(AbortedBeaconError,_super);function AbortedBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.ABORTED_ERROR,"The action was aborted by the user.")||this;_this.name="UnknownBeaconError";_this.title="Aborted";return _this}return AbortedBeaconError}(__1.BeaconError);exports.AbortedBeaconError=AbortedBeaconError},{"..":24}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BeaconError=void 0;var assert_never_1=require("../utils/assert-never");var __1=require("..");var BeaconError=function(){function BeaconError(errorType,message){this.name="BeaconError";this.title="Error";this.message="["+errorType+"]:"+message;this.description=message}Object.defineProperty(BeaconError.prototype,"fullDescription",{get:function(){return this.description},enumerable:false,configurable:true});BeaconError.getError=function(errorType,errorData){switch(errorType){case __1.BeaconErrorType.BROADCAST_ERROR:return new __1.BroadcastBeaconError;case __1.BeaconErrorType.NETWORK_NOT_SUPPORTED:return new __1.NetworkNotSupportedBeaconError;case __1.BeaconErrorType.NO_ADDRESS_ERROR:return new __1.NoAddressBeaconError;case __1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR:return new __1.NoPrivateKeyBeaconError;case __1.BeaconErrorType.NOT_GRANTED_ERROR:return new __1.NotGrantedBeaconError;case __1.BeaconErrorType.PARAMETERS_INVALID_ERROR:return new __1.ParametersInvalidBeaconError;case __1.BeaconErrorType.TOO_MANY_OPERATIONS:return new __1.TooManyOperationsBeaconError;case __1.BeaconErrorType.TRANSACTION_INVALID_ERROR:return new __1.TransactionInvalidBeaconError(errorData);case __1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED:return new __1.SignatureTypeNotSupportedBeaconError;case __1.BeaconErrorType.ABORTED_ERROR:return new __1.AbortedBeaconError;case __1.BeaconErrorType.UNKNOWN_ERROR:return new __1.UnknownBeaconError;default:assert_never_1.assertNever(errorType)}};return BeaconError}();exports.BeaconError=BeaconError},{"..":24,"../utils/assert-never":80}],13:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.BroadcastBeaconError=void 0;var __1=require("..");var BroadcastBeaconError=function(_super){__extends(BroadcastBeaconError,_super);function BroadcastBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.BROADCAST_ERROR,"The transaction could not be broadcast to the network. Please try again.")||this;_this.name="BroadcastBeaconError";_this.title="Broadcast Error";return _this}return BroadcastBeaconError}(__1.BeaconError);exports.BroadcastBeaconError=BroadcastBeaconError},{"..":24}],14:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkNotSupportedBeaconError=void 0;var __1=require("..");var NetworkNotSupportedBeaconError=function(_super){__extends(NetworkNotSupportedBeaconError,_super);function NetworkNotSupportedBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.NETWORK_NOT_SUPPORTED,"The wallet does not support this network. Please select another one.")||this;_this.name="NetworkNotSupportedBeaconError";_this.title="Network Error";return _this}return NetworkNotSupportedBeaconError}(__1.BeaconError);exports.NetworkNotSupportedBeaconError=NetworkNotSupportedBeaconError},{"..":24}],15:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.NoAddressBeaconError=void 0;var __1=require("..");var NoAddressBeaconError=function(_super){__extends(NoAddressBeaconError,_super);function NoAddressBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.NO_ADDRESS_ERROR,"The wallet does not have an account set up. Please make sure to set up your wallet and try again.")||this;_this.name="NoAddressBeaconError";_this.title="No Address";return _this}return NoAddressBeaconError}(__1.BeaconError);exports.NoAddressBeaconError=NoAddressBeaconError},{"..":24}],16:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.NoPrivateKeyBeaconError=void 0;var __1=require("..");var NoPrivateKeyBeaconError=function(_super){__extends(NoPrivateKeyBeaconError,_super);function NoPrivateKeyBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.NO_PRIVATE_KEY_FOUND_ERROR,"The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again.")||this;_this.name="NoPrivateKeyBeaconError";_this.title="Account Not Found";return _this}return NoPrivateKeyBeaconError}(__1.BeaconError);exports.NoPrivateKeyBeaconError=NoPrivateKeyBeaconError},{"..":24}],17:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.NotGrantedBeaconError=void 0;var __1=require("..");var NotGrantedBeaconError=function(_super){__extends(NotGrantedBeaconError,_super);function NotGrantedBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.NOT_GRANTED_ERROR,"You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions.")||this;_this.name="NotGrantedBeaconError";_this.title="Permission Not Granted";return _this}return NotGrantedBeaconError}(__1.BeaconError);exports.NotGrantedBeaconError=NotGrantedBeaconError},{"..":24}],18:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.ParametersInvalidBeaconError=void 0;var __1=require("..");var ParametersInvalidBeaconError=function(_super){__extends(ParametersInvalidBeaconError,_super);function ParametersInvalidBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.PARAMETERS_INVALID_ERROR,"Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again.")||this;_this.name="ParametersInvalidBeaconError";_this.title="Parameters Invalid";return _this}return ParametersInvalidBeaconError}(__1.BeaconError);exports.ParametersInvalidBeaconError=ParametersInvalidBeaconError},{"..":24}],19:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.SignatureTypeNotSupportedBeaconError=void 0;var __1=require("..");var SignatureTypeNotSupportedBeaconError=function(_super){__extends(SignatureTypeNotSupportedBeaconError,_super);function SignatureTypeNotSupportedBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.SIGNATURE_TYPE_NOT_SUPPORTED,"The wallet is not able to sign payloads of this type.")||this;_this.name="SignatureTypeNotSupportedBeaconError";_this.title="Signature Type Not Supported";return _this}return SignatureTypeNotSupportedBeaconError}(__1.BeaconError);exports.SignatureTypeNotSupportedBeaconError=SignatureTypeNotSupportedBeaconError},{"..":24}],20:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.TooManyOperationsBeaconError=void 0;var __1=require("..");var TooManyOperationsBeaconError=function(_super){__extends(TooManyOperationsBeaconError,_super);function TooManyOperationsBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.TOO_MANY_OPERATIONS,"The request contains too many transactions. Please include fewer operations and try again.")||this;_this.name="TooManyOperationsBeaconError";_this.title="Too Many Operations";return _this}return TooManyOperationsBeaconError}(__1.BeaconError);exports.TooManyOperationsBeaconError=TooManyOperationsBeaconError},{"..":24}],21:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.TransactionInvalidBeaconError=void 0;var __1=require("..");var TransactionInvalidBeaconError=function(_super){__extends(TransactionInvalidBeaconError,_super);function TransactionInvalidBeaconError(data){var _this=_super.call(this,__1.BeaconErrorType.TRANSACTION_INVALID_ERROR,"The transaction is invalid and the node did not accept it.")||this;_this.data=data;_this.name="TransactionInvalidBeaconError";_this.title="Transaction Invalid";_this.data=data;return _this}Object.defineProperty(TransactionInvalidBeaconError.prototype,"fullDescription",{get:function(){return this.description+'<br /><pre style="text-align: left">'+JSON.stringify(this.data,undefined,2)+"</pre>"},enumerable:false,configurable:true});return TransactionInvalidBeaconError}(__1.BeaconError);exports.TransactionInvalidBeaconError=TransactionInvalidBeaconError},{"..":24}],22:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.UnknownBeaconError=void 0;var __1=require("..");var UnknownBeaconError=function(_super){__extends(UnknownBeaconError,_super);function UnknownBeaconError(){var _this=_super.call(this,__1.BeaconErrorType.UNKNOWN_ERROR,"An unknown error occured. Please try again or report it to a developer.")||this;_this.name="UnknownBeaconError";_this.title="Error";return _this}return UnknownBeaconError}(__1.BeaconError);exports.UnknownBeaconError=UnknownBeaconError},{"..":24}],23:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};var _a;Object.defineProperty(exports,"__esModule",{value:true});exports.BeaconEventHandler=exports.defaultEventCallbacks=exports.BeaconEvent=void 0;var Alert_1=require("./ui/alert/Alert");var Toast_1=require("./ui/toast/Toast");var Logger_1=require("./utils/Logger");var Serializer_1=require("./Serializer");var shorten_string_1=require("./utils/shorten-string");var BeaconErrorType_1=require("./types/BeaconErrorType");var _1=require(".");var logger=new Logger_1.Logger("BeaconEvents");var serializer=new Serializer_1.Serializer;var SUCCESS_TIMER=5*1e3;var SVG_EXTERNAL='<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="external-link-alt" class="svg-inline--fa fa-external-link-alt fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"></path></svg>';var BeaconEvent;(function(BeaconEvent){BeaconEvent["PERMISSION_REQUEST_SENT"]="PERMISSION_REQUEST_SENT";BeaconEvent["PERMISSION_REQUEST_SUCCESS"]="PERMISSION_REQUEST_SUCCESS";BeaconEvent["PERMISSION_REQUEST_ERROR"]="PERMISSION_REQUEST_ERROR";BeaconEvent["OPERATION_REQUEST_SENT"]="OPERATION_REQUEST_SENT";BeaconEvent["OPERATION_REQUEST_SUCCESS"]="OPERATION_REQUEST_SUCCESS";BeaconEvent["OPERATION_REQUEST_ERROR"]="OPERATION_REQUEST_ERROR";BeaconEvent["SIGN_REQUEST_SENT"]="SIGN_REQUEST_SENT";BeaconEvent["SIGN_REQUEST_SUCCESS"]="SIGN_REQUEST_SUCCESS";BeaconEvent["SIGN_REQUEST_ERROR"]="SIGN_REQUEST_ERROR";BeaconEvent["BROADCAST_REQUEST_SENT"]="BROADCAST_REQUEST_SENT";BeaconEvent["BROADCAST_REQUEST_SUCCESS"]="BROADCAST_REQUEST_SUCCESS";BeaconEvent["BROADCAST_REQUEST_ERROR"]="BROADCAST_REQUEST_ERROR";BeaconEvent["ACKNOWLEDGE_RECEIVED"]="ACKNOWLEDGE_RECEIVED";BeaconEvent["LOCAL_RATE_LIMIT_REACHED"]="LOCAL_RATE_LIMIT_REACHED";BeaconEvent["NO_PERMISSIONS"]="NO_PERMISSIONS";BeaconEvent["ACTIVE_ACCOUNT_SET"]="ACTIVE_ACCOUNT_SET";BeaconEvent["ACTIVE_TRANSPORT_SET"]="ACTIVE_TRANSPORT_SET";BeaconEvent["PAIR_INIT"]="PAIR_INIT";BeaconEvent["PAIR_SUCCESS"]="PAIR_SUCCESS";BeaconEvent["CHANNEL_CLOSED"]="CHANNEL_CLOSED";BeaconEvent["INTERNAL_ERROR"]="INTERNAL_ERROR";BeaconEvent["UNKNOWN"]="UNKNOWN"})(BeaconEvent=exports.BeaconEvent||(exports.BeaconEvent={}));var showSentToast=function(data){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){Toast_1.openToast({body:"Request sent to&nbsp;{{wallet}}",walletInfo:data.walletInfo,forceNew:true,state:"loading",actions:[{text:"Did you make a mistake?",actionText:"Cancel Request",actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Toast_1.closeToast()];case 1:_a.sent();return[2]}})})}},{text:"Wallet not receiving request?",actionText:"Reset Connection",actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){var resetCallback;return __generator(this,function(_a){switch(_a.label){case 0:return[4,Toast_1.closeToast()];case 1:_a.sent();resetCallback=data.extraInfo.resetCallback;if(!resetCallback)return[3,3];logger.log("showSentToast","resetCallback invoked");return[4,resetCallback()];case 2:_a.sent();_a.label=3;case 3:return[2]}})})}}]}).catch(function(toastError){return console.error(toastError)});return[2]})})};var showAcknowledgedToast=function(data){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){Toast_1.openToast({body:"Awaiting confirmation in&nbsp;{{wallet}}",state:"acknowledge",walletInfo:data.walletInfo}).catch(function(toastError){return console.error(toastError)});return[2]})})};var showNoPermissionAlert=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Alert_1.openAlert({title:"No Permission",body:"Please allow the wallet to handle this type of request."})];case 1:_a.sent();return[2]}})})};var showErrorToast=function(response,buttons){return __awaiter(void 0,void 0,void 0,function(){var error,actions;return __generator(this,function(_a){switch(_a.label){case 0:error=response.errorResponse.errorType?_1.BeaconError.getError(response.errorResponse.errorType,response.errorResponse.errorData):new _1.UnknownBeaconError;actions=[{text:"<strong>"+error.title+"</strong>"},{text:error.description}];if(response.errorResponse.errorType===BeaconErrorType_1.BeaconErrorType.TRANSACTION_INVALID_ERROR&&response.errorResponse.errorData){actions.push({text:"",actionText:"Show Details",actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Toast_1.closeToast()];case 1:_a.sent();return[4,Alert_1.openAlert({title:error.title,body:error.fullDescription,buttons:buttons})];case 2:_a.sent();return[2]}})})}})}return[4,Toast_1.openToast({body:"{{wallet}}&nbsp;has returned an error",timer:response.errorResponse.errorType===BeaconErrorType_1.BeaconErrorType.ABORTED_ERROR?SUCCESS_TIMER:undefined,state:"finished",walletInfo:response.walletInfo,actions:actions})];case 1:_a.sent();return[2]}})})};var showRateLimitReached=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){Alert_1.openAlert({title:"Error",body:"Rate limit reached. Please slow down",buttons:[{text:"Done",style:"outline"}],timer:3e3}).catch(function(toastError){return console.error(toastError)});return[2]})})};var showExtensionConnectedAlert=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Alert_1.closeAlerts()];case 1:_a.sent();return[2]}})})};var showChannelClosedAlert=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Alert_1.openAlert({title:"Channel closed",body:"Your peer has closed the connection.",buttons:[{text:"Done",style:"outline"}],timer:1500})];case 1:_a.sent();return[2]}})})};var showInternalErrorAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var alertConfig;return __generator(this,function(_a){switch(_a.label){case 0:alertConfig={title:"Internal Error",body:""+data,buttons:[{text:"Done",style:"outline"}]};return[4,Alert_1.openAlert(alertConfig)];case 1:_a.sent();return[2]}})})};var showPairAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var p2pBase58encoded,postmessageBase58encoded,alertConfig;return __generator(this,function(_a){switch(_a.label){case 0:return[4,serializer.serialize(data.p2pPeerInfo)];case 1:p2pBase58encoded=_a.sent();return[4,serializer.serialize(data.postmessagePeerInfo)];case 2:postmessageBase58encoded=_a.sent();alertConfig={title:"Choose your preferred wallet",body:"<p></p>",pairingPayload:{p2pSyncCode:p2pBase58encoded,postmessageSyncCode:postmessageBase58encoded,preferredNetwork:data.preferredNetwork},closeButtonCallback:data.abortedHandler};return[4,Alert_1.openAlert(alertConfig)];case 3:_a.sent();return[2]}})})};var showPermissionSuccessAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var output;return __generator(this,function(_a){switch(_a.label){case 0:output=data.output;return[4,Toast_1.openToast({body:"{{wallet}}&nbsp;has granted permission",timer:SUCCESS_TIMER,walletInfo:data.walletInfo,state:"finished",actions:[{text:"Address",actionText:"<strong>"+shorten_string_1.shortenString(output.address)+"</strong>"},{text:"Network",actionText:""+output.network.type},{text:"Permissions",actionText:output.scopes.join(", ")}]})];case 1:_a.sent();return[2]}})})};var showOperationSuccessAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var account,output,blockExplorer;return __generator(this,function(_a){switch(_a.label){case 0:account=data.account,output=data.output,blockExplorer=data.blockExplorer;return[4,Toast_1.openToast({body:"{{wallet}}&nbsp;successfully submitted operation",timer:SUCCESS_TIMER,state:"finished",walletInfo:data.walletInfo,actions:[{text:"<strong>"+shorten_string_1.shortenString(output.transactionHash)+"</strong>",actionText:"Open Blockexplorer "+SVG_EXTERNAL,actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){var link;return __generator(this,function(_a){switch(_a.label){case 0:return[4,blockExplorer.getTransactionLink(output.transactionHash,account.network)];case 1:link=_a.sent();window.open(link,"_blank");return[4,Toast_1.closeToast()];case 2:_a.sent();return[2]}})})}}]})];case 1:_a.sent();return[2]}})})};var showSignSuccessAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var output;return __generator(this,function(_a){switch(_a.label){case 0:output=data.output;return[4,Toast_1.openToast({body:"{{wallet}}&nbsp;successfully signed payload",timer:SUCCESS_TIMER,state:"finished",walletInfo:data.walletInfo,actions:[{text:"Signature: <strong>"+shorten_string_1.shortenString(output.signature)+"</strong>",actionText:"Copy to clipboard",actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:navigator.clipboard.writeText(output.signature).then(function(){logger.log("showSignSuccessAlert","Copying to clipboard was successful!")},function(err){logger.error("showSignSuccessAlert","Could not copy text to clipboard: ",err)});return[4,Toast_1.closeToast()];case 1:_a.sent();return[2]}})})}}]})];case 1:_a.sent();return[2]}})})};var showBroadcastSuccessAlert=function(data){return __awaiter(void 0,void 0,void 0,function(){var network,output,blockExplorer;return __generator(this,function(_a){switch(_a.label){case 0:network=data.network,output=data.output,blockExplorer=data.blockExplorer;return[4,Toast_1.openToast({body:"{{wallet}}&nbsp;successfully injected operation",timer:SUCCESS_TIMER,state:"finished",walletInfo:data.walletInfo,actions:[{text:"<strong>"+shorten_string_1.shortenString(output.transactionHash)+"</strong>",actionText:"Open Blockexplorer "+SVG_EXTERNAL,actionCallback:function(){return __awaiter(void 0,void 0,void 0,function(){var link;return __generator(this,function(_a){switch(_a.label){case 0:return[4,blockExplorer.getTransactionLink(output.transactionHash,network)];case 1:link=_a.sent();window.open(link,"_blank");return[4,Toast_1.closeToast()];case 2:_a.sent();return[2]}})})}}]})];case 1:_a.sent();return[2]}})})};var emptyHandler=function(){return function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){return[2]})})}};exports.defaultEventCallbacks=(_a={},_a[BeaconEvent.PERMISSION_REQUEST_SENT]=showSentToast,_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS]=showPermissionSuccessAlert,_a[BeaconEvent.PERMISSION_REQUEST_ERROR]=showErrorToast,_a[BeaconEvent.OPERATION_REQUEST_SENT]=showSentToast,_a[BeaconEvent.OPERATION_REQUEST_SUCCESS]=showOperationSuccessAlert,_a[BeaconEvent.OPERATION_REQUEST_ERROR]=showErrorToast,_a[BeaconEvent.SIGN_REQUEST_SENT]=showSentToast,_a[BeaconEvent.SIGN_REQUEST_SUCCESS]=showSignSuccessAlert,_a[BeaconEvent.SIGN_REQUEST_ERROR]=showErrorToast,_a[BeaconEvent.BROADCAST_REQUEST_SENT]=showSentToast,_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS]=showBroadcastSuccessAlert,_a[BeaconEvent.BROADCAST_REQUEST_ERROR]=showErrorToast,_a[BeaconEvent.ACKNOWLEDGE_RECEIVED]=showAcknowledgedToast,_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED]=showRateLimitReached,_a[BeaconEvent.NO_PERMISSIONS]=showNoPermissionAlert,_a[BeaconEvent.ACTIVE_ACCOUNT_SET]=emptyHandler(),_a[BeaconEvent.ACTIVE_TRANSPORT_SET]=emptyHandler(),_a[BeaconEvent.PAIR_INIT]=showPairAlert,_a[BeaconEvent.PAIR_SUCCESS]=showExtensionConnectedAlert,_a[BeaconEvent.CHANNEL_CLOSED]=showChannelClosedAlert,_a[BeaconEvent.INTERNAL_ERROR]=showInternalErrorAlert,_a[BeaconEvent.UNKNOWN]=emptyHandler(),_a);var BeaconEventHandler=function(){function BeaconEventHandler(eventsToOverride,overrideAll){var _a;if(eventsToOverride===void 0){eventsToOverride={}}this.callbackMap=(_a={},_a[BeaconEvent.PERMISSION_REQUEST_SENT]=[exports.defaultEventCallbacks.PERMISSION_REQUEST_SENT],_a[BeaconEvent.PERMISSION_REQUEST_SUCCESS]=[exports.defaultEventCallbacks.PERMISSION_REQUEST_SUCCESS],_a[BeaconEvent.PERMISSION_REQUEST_ERROR]=[exports.defaultEventCallbacks.PERMISSION_REQUEST_ERROR],_a[BeaconEvent.OPERATION_REQUEST_SENT]=[exports.defaultEventCallbacks.OPERATION_REQUEST_SENT],_a[BeaconEvent.OPERATION_REQUEST_SUCCESS]=[exports.defaultEventCallbacks.OPERATION_REQUEST_SUCCESS],_a[BeaconEvent.OPERATION_REQUEST_ERROR]=[exports.defaultEventCallbacks.OPERATION_REQUEST_ERROR],_a[BeaconEvent.SIGN_REQUEST_SENT]=[exports.defaultEventCallbacks.SIGN_REQUEST_SENT],_a[BeaconEvent.SIGN_REQUEST_SUCCESS]=[exports.defaultEventCallbacks.SIGN_REQUEST_SUCCESS],_a[BeaconEvent.SIGN_REQUEST_ERROR]=[exports.defaultEventCallbacks.SIGN_REQUEST_ERROR],_a[BeaconEvent.BROADCAST_REQUEST_SENT]=[exports.defaultEventCallbacks.BROADCAST_REQUEST_SENT],_a[BeaconEvent.BROADCAST_REQUEST_SUCCESS]=[exports.defaultEventCallbacks.BROADCAST_REQUEST_SUCCESS],_a[BeaconEvent.BROADCAST_REQUEST_ERROR]=[exports.defaultEventCallbacks.BROADCAST_REQUEST_ERROR],_a[BeaconEvent.ACKNOWLEDGE_RECEIVED]=[exports.defaultEventCallbacks.ACKNOWLEDGE_RECEIVED],_a[BeaconEvent.LOCAL_RATE_LIMIT_REACHED]=[exports.defaultEventCallbacks.LOCAL_RATE_LIMIT_REACHED],_a[BeaconEvent.NO_PERMISSIONS]=[exports.defaultEventCallbacks.NO_PERMISSIONS],_a[BeaconEvent.ACTIVE_ACCOUNT_SET]=[exports.defaultEventCallbacks.ACTIVE_ACCOUNT_SET],_a[BeaconEvent.ACTIVE_TRANSPORT_SET]=[exports.defaultEventCallbacks.ACTIVE_TRANSPORT_SET],_a[BeaconEvent.PAIR_INIT]=[exports.defaultEventCallbacks.PAIR_INIT],_a[BeaconEvent.PAIR_SUCCESS]=[exports.defaultEventCallbacks.PAIR_SUCCESS],_a[BeaconEvent.CHANNEL_CLOSED]=[exports.defaultEventCallbacks.CHANNEL_CLOSED],_a[BeaconEvent.INTERNAL_ERROR]=[exports.defaultEventCallbacks.INTERNAL_ERROR],_a[BeaconEvent.UNKNOWN]=[exports.defaultEventCallbacks.UNKNOWN],_a);if(overrideAll){this.setAllHandlers()}this.overrideDefaults(eventsToOverride)}BeaconEventHandler.prototype.on=function(event,eventCallback){return __awaiter(this,void 0,void 0,function(){var listeners;return __generator(this,function(_a){listeners=this.callbackMap[event]||[];listeners.push(eventCallback);this.callbackMap[event]=listeners;return[2]})})};BeaconEventHandler.prototype.emit=function(event,data,eventCallback){return __awaiter(this,void 0,void 0,function(){var listeners;var _this=this;return __generator(this,function(_a){listeners=this.callbackMap[event];if(listeners&&listeners.length>0){listeners.forEach(function(listener){return __awaiter(_this,void 0,void 0,function(){var listenerError_1;return __generator(this,function(_a){switch(_a.label){case 0:_a.trys.push([0,2,,3]);return[4,listener(data,eventCallback)];case 1:_a.sent();return[3,3];case 2:listenerError_1=_a.sent();logger.error("error handling event "+event,listenerError_1);return[3,3];case 3:return[2]}})})})}return[2]})})};BeaconEventHandler.prototype.overrideDefaults=function(eventsToOverride){var _this=this;Object.keys(eventsToOverride).forEach(function(untypedEvent){var eventType=untypedEvent;var event=eventsToOverride[eventType];if(event){_this.callbackMap[eventType]=[event.handler]}})};BeaconEventHandler.prototype.setAllHandlers=function(handler){var _this=this;Object.keys(this.callbackMap).forEach(function(untypedEvent){var eventType=untypedEvent;_this.callbackMap[eventType]=[];if(handler){_this.callbackMap[eventType].push(handler)}else{_this.callbackMap[eventType].push(function(){var data=[];for(var _i=0;_i<arguments.length;_i++){data[_i]=arguments[_i]}logger.log.apply(logger,__spreadArrays([untypedEvent],data))})}})};return BeaconEventHandler}();exports.BeaconEventHandler=BeaconEventHandler},{".":24,"./Serializer":2,"./types/BeaconErrorType":59,"./ui/alert/Alert":72,"./ui/toast/Toast":77,"./utils/Logger":79,"./utils/shorten-string":92}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getDebugEnabled=exports.setDebugEnabled=exports.ColorMode=exports.availableTransports=exports.Serializer=exports.TezblockBlockExplorer=exports.BlockExplorer=exports.getAddressFromPublicKey=exports.getAccountIdentifier=exports.getSenderId=exports.BEACON_VERSION=exports.SDK_VERSION=exports.PermissionManager=exports.AppMetadataManager=exports.AccountManager=exports.PeerManager=exports.getStorage=exports.LocalStorage=exports.ChromeStorage=exports.StorageKey=exports.Storage=exports.defaultEventCallbacks=exports.BeaconEventHandler=exports.BeaconEvent=exports.Pairing=exports.MessageBasedClient=exports.DappPostMessageTransport=exports.DappP2PTransport=exports.WalletPostMessageTransport=exports.WalletP2PTransport=exports.P2PTransport=exports.PostMessageTransport=exports.Transport=exports.TransportType=exports.TransportStatus=exports.UnknownBeaconError=exports.SignatureTypeNotSupportedBeaconError=exports.TransactionInvalidBeaconError=exports.TooManyOperationsBeaconError=exports.ParametersInvalidBeaconError=exports.NotGrantedBeaconError=exports.NoPrivateKeyBeaconError=exports.NoAddressBeaconError=exports.NetworkNotSupportedBeaconError=exports.BroadcastBeaconError=exports.AbortedBeaconError=exports.BeaconErrorType=exports.BeaconError=exports.ExtensionMessageTarget=exports.SigningType=exports.Origin=exports.PermissionScope=exports.BeaconMessageType=exports.NetworkType=exports.P2PCommunicationClient=exports.WalletClient=exports.DAppClient=exports.Client=exports.BeaconClient=exports.TezosOperationType=void 0;var P2PCommunicationClient_1=require("./transports/clients/P2PCommunicationClient");Object.defineProperty(exports,"P2PCommunicationClient",{enumerable:true,get:function(){return P2PCommunicationClient_1.P2PCommunicationClient}});var BeaconMessageType_1=require("./types/beacon/BeaconMessageType");Object.defineProperty(exports,"BeaconMessageType",{enumerable:true,get:function(){return BeaconMessageType_1.BeaconMessageType}});var PermissionScope_1=require("./types/beacon/PermissionScope");Object.defineProperty(exports,"PermissionScope",{enumerable:true,get:function(){return PermissionScope_1.PermissionScope}});var NetworkType_1=require("./types/beacon/NetworkType");Object.defineProperty(exports,"NetworkType",{enumerable:true,get:function(){return NetworkType_1.NetworkType}});var OperationTypes_1=require("./types/tezos/OperationTypes");Object.defineProperty(exports,"TezosOperationType",{enumerable:true,get:function(){return OperationTypes_1.TezosOperationType}});var Origin_1=require("./types/Origin");Object.defineProperty(exports,"Origin",{enumerable:true,get:function(){return Origin_1.Origin}});var ExtensionMessageTarget_1=require("./types/ExtensionMessageTarget");Object.defineProperty(exports,"ExtensionMessageTarget",{enumerable:true,get:function(){return ExtensionMessageTarget_1.ExtensionMessageTarget}});var Client_1=require("./clients/client/Client");Object.defineProperty(exports,"Client",{enumerable:true,get:function(){return Client_1.Client}});var WalletClient_1=require("./clients/wallet-client/WalletClient");Object.defineProperty(exports,"WalletClient",{enumerable:true,get:function(){return WalletClient_1.WalletClient}});var DAppClient_1=require("./clients/dapp-client/DAppClient");Object.defineProperty(exports,"DAppClient",{enumerable:true,get:function(){return DAppClient_1.DAppClient}});var BeaconError_1=require("./errors/BeaconError");Object.defineProperty(exports,"BeaconError",{enumerable:true,get:function(){return BeaconError_1.BeaconError}});var BeaconErrorType_1=require("./types/BeaconErrorType");Object.defineProperty(exports,"BeaconErrorType",{enumerable:true,get:function(){return BeaconErrorType_1.BeaconErrorType}});var BroadcastBeaconError_1=require("./errors/BroadcastBeaconError");Object.defineProperty(exports,"BroadcastBeaconError",{enumerable:true,get:function(){return BroadcastBeaconError_1.BroadcastBeaconError}});var NetworkNotSupportedBeaconError_1=require("./errors/NetworkNotSupportedBeaconError");Object.defineProperty(exports,"NetworkNotSupportedBeaconError",{enumerable:true,get:function(){return NetworkNotSupportedBeaconError_1.NetworkNotSupportedBeaconError}});var NoAddressBeaconError_1=require("./errors/NoAddressBeaconError");Object.defineProperty(exports,"NoAddressBeaconError",{enumerable:true,get:function(){return NoAddressBeaconError_1.NoAddressBeaconError}});var NoPrivateKeyBeaconError_1=require("./errors/NoPrivateKeyBeaconError");Object.defineProperty(exports,"NoPrivateKeyBeaconError",{enumerable:true,get:function(){return NoPrivateKeyBeaconError_1.NoPrivateKeyBeaconError}});var NotGrantedBeaconError_1=require("./errors/NotGrantedBeaconError");Object.defineProperty(exports,"NotGrantedBeaconError",{enumerable:true,get:function(){return NotGrantedBeaconError_1.NotGrantedBeaconError}});var ParametersInvalidBeaconError_1=require("./errors/ParametersInvalidBeaconError");Object.defineProperty(exports,"ParametersInvalidBeaconError",{enumerable:true,get:function(){return ParametersInvalidBeaconError_1.ParametersInvalidBeaconError}});var TooManyOperationsBeaconError_1=require("./errors/TooManyOperationsBeaconError");Object.defineProperty(exports,"TooManyOperationsBeaconError",{enumerable:true,get:function(){return TooManyOperationsBeaconError_1.TooManyOperationsBeaconError}});var TransactionInvalidBeaconError_1=require("./errors/TransactionInvalidBeaconError");Object.defineProperty(exports,"TransactionInvalidBeaconError",{enumerable:true,get:function(){return TransactionInvalidBeaconError_1.TransactionInvalidBeaconError}});var UnknownBeaconError_1=require("./errors/UnknownBeaconError");Object.defineProperty(exports,"UnknownBeaconError",{enumerable:true,get:function(){return UnknownBeaconError_1.UnknownBeaconError}});var TransportStatus_1=require("./types/transport/TransportStatus");Object.defineProperty(exports,"TransportStatus",{enumerable:true,get:function(){return TransportStatus_1.TransportStatus}});var TransportType_1=require("./types/transport/TransportType");Object.defineProperty(exports,"TransportType",{enumerable:true,get:function(){return TransportType_1.TransportType}});var PostMessageTransport_1=require("./transports/PostMessageTransport");Object.defineProperty(exports,"PostMessageTransport",{enumerable:true,get:function(){return PostMessageTransport_1.PostMessageTransport}});var Transport_1=require("./transports/Transport");Object.defineProperty(exports,"Transport",{enumerable:true,get:function(){return Transport_1.Transport}});var P2PTransport_1=require("./transports/P2PTransport");Object.defineProperty(exports,"P2PTransport",{enumerable:true,get:function(){return P2PTransport_1.P2PTransport}});var Storage_1=require("./storage/Storage");Object.defineProperty(exports,"Storage",{enumerable:true,get:function(){return Storage_1.Storage}});var StorageKey_1=require("./types/storage/StorageKey");Object.defineProperty(exports,"StorageKey",{enumerable:true,get:function(){return StorageKey_1.StorageKey}});var ChromeStorage_1=require("./storage/ChromeStorage");Object.defineProperty(exports,"ChromeStorage",{enumerable:true,get:function(){return ChromeStorage_1.ChromeStorage}});var LocalStorage_1=require("./storage/LocalStorage");Object.defineProperty(exports,"LocalStorage",{enumerable:true,get:function(){return LocalStorage_1.LocalStorage}});var getStorage_1=require("./storage/getStorage");Object.defineProperty(exports,"getStorage",{enumerable:true,get:function(){return getStorage_1.getStorage}});var Serializer_1=require("./Serializer");Object.defineProperty(exports,"Serializer",{enumerable:true,get:function(){return Serializer_1.Serializer}});var constants_1=require("./constants");Object.defineProperty(exports,"SDK_VERSION",{enumerable:true,get:function(){return constants_1.SDK_VERSION}});Object.defineProperty(exports,"BEACON_VERSION",{enumerable:true,get:function(){return constants_1.BEACON_VERSION}});var AccountManager_1=require("./managers/AccountManager");Object.defineProperty(exports,"AccountManager",{enumerable:true,get:function(){return AccountManager_1.AccountManager}});var AppMetadataManager_1=require("./managers/AppMetadataManager");Object.defineProperty(exports,"AppMetadataManager",{enumerable:true,get:function(){return AppMetadataManager_1.AppMetadataManager}});var PermissionManager_1=require("./managers/PermissionManager");Object.defineProperty(exports,"PermissionManager",{enumerable:true,get:function(){return PermissionManager_1.PermissionManager}});var events_1=require("./events");Object.defineProperty(exports,"BeaconEvent",{enumerable:true,get:function(){return events_1.BeaconEvent}});Object.defineProperty(exports,"BeaconEventHandler",{enumerable:true,get:function(){return events_1.BeaconEventHandler}});Object.defineProperty(exports,"defaultEventCallbacks",{enumerable:true,get:function(){return events_1.defaultEventCallbacks}});var crypto_1=require("./utils/crypto");Object.defineProperty(exports,"getAddressFromPublicKey",{enumerable:true,get:function(){return crypto_1.getAddressFromPublicKey}});var BeaconClient_1=require("./clients/beacon-client/BeaconClient");Object.defineProperty(exports,"BeaconClient",{enumerable:true,get:function(){return BeaconClient_1.BeaconClient}});var get_account_identifier_1=require("./utils/get-account-identifier");Object.defineProperty(exports,"getAccountIdentifier",{enumerable:true,get:function(){return get_account_identifier_1.getAccountIdentifier}});var AbortedBeaconError_1=require("./errors/AbortedBeaconError");Object.defineProperty(exports,"AbortedBeaconError",{enumerable:true,get:function(){return AbortedBeaconError_1.AbortedBeaconError}});var available_transports_1=require("./utils/available-transports");Object.defineProperty(exports,"availableTransports",{enumerable:true,get:function(){return available_transports_1.availableTransports}});var DappP2PTransport_1=require("./transports/DappP2PTransport");Object.defineProperty(exports,"DappP2PTransport",{enumerable:true,get:function(){return DappP2PTransport_1.DappP2PTransport}});var DappPostMessageTransport_1=require("./transports/DappPostMessageTransport");Object.defineProperty(exports,"DappPostMessageTransport",{enumerable:true,get:function(){return DappPostMessageTransport_1.DappPostMessageTransport}});var WalletP2PTransport_1=require("./transports/WalletP2PTransport");Object.defineProperty(exports,"WalletP2PTransport",{enumerable:true,get:function(){return WalletP2PTransport_1.WalletP2PTransport}});var WalletPostMessageTransport_1=require("./transports/WalletPostMessageTransport");Object.defineProperty(exports,"WalletPostMessageTransport",{enumerable:true,get:function(){return WalletPostMessageTransport_1.WalletPostMessageTransport}});var get_sender_id_1=require("./utils/get-sender-id");Object.defineProperty(exports,"getSenderId",{enumerable:true,get:function(){return get_sender_id_1.getSenderId}});var SigningType_1=require("./types/beacon/SigningType");Object.defineProperty(exports,"SigningType",{enumerable:true,get:function(){return SigningType_1.SigningType}});var SignatureTypeNotSupportedBeaconError_1=require("./errors/SignatureTypeNotSupportedBeaconError");Object.defineProperty(exports,"SignatureTypeNotSupportedBeaconError",{enumerable:true,get:function(){return SignatureTypeNotSupportedBeaconError_1.SignatureTypeNotSupportedBeaconError}});var PeerManager_1=require("./managers/PeerManager");Object.defineProperty(exports,"PeerManager",{enumerable:true,get:function(){return PeerManager_1.PeerManager}});var MessageBasedClient_1=require("./transports/clients/MessageBasedClient");Object.defineProperty(exports,"MessageBasedClient",{enumerable:true,get:function(){return MessageBasedClient_1.MessageBasedClient}});var Pairing_1=require("./ui/alert/Pairing");Object.defineProperty(exports,"Pairing",{enumerable:true,get:function(){return Pairing_1.Pairing}});var block_explorer_1=require("./utils/block-explorer");Object.defineProperty(exports,"BlockExplorer",{enumerable:true,get:function(){return block_explorer_1.BlockExplorer}});var tezblock_blockexplorer_1=require("./utils/tezblock-blockexplorer");Object.defineProperty(exports,"TezblockBlockExplorer",{enumerable:true,get:function(){return tezblock_blockexplorer_1.TezblockBlockExplorer}});var debug_1=require("./debug");Object.defineProperty(exports,"setDebugEnabled",{enumerable:true,get:function(){return debug_1.setDebugEnabled}});Object.defineProperty(exports,"getDebugEnabled",{enumerable:true,get:function(){return debug_1.getDebugEnabled}});var ColorMode_1=require("./types/ColorMode");Object.defineProperty(exports,"ColorMode",{enumerable:true,get:function(){return ColorMode_1.ColorMode}})},{"./Serializer":2,"./clients/beacon-client/BeaconClient":4,"./clients/client/Client":5,"./clients/dapp-client/DAppClient":6,"./clients/wallet-client/WalletClient":7,"./constants":9,"./debug":10,"./errors/AbortedBeaconError":11,"./errors/BeaconError":12,"./errors/BroadcastBeaconError":13,"./errors/NetworkNotSupportedBeaconError":14,"./errors/NoAddressBeaconError":15,"./errors/NoPrivateKeyBeaconError":16,"./errors/NotGrantedBeaconError":17,"./errors/ParametersInvalidBeaconError":18,"./errors/SignatureTypeNotSupportedBeaconError":19,"./errors/TooManyOperationsBeaconError":20,"./errors/TransactionInvalidBeaconError":21,"./errors/UnknownBeaconError":22,"./events":23,"./managers/AccountManager":27,"./managers/AppMetadataManager":28,"./managers/PeerManager":29,"./managers/PermissionManager":30,"./storage/ChromeStorage":44,"./storage/LocalStorage":45,"./storage/Storage":46,"./storage/getStorage":47,"./transports/DappP2PTransport":48,"./transports/DappPostMessageTransport":49,"./transports/P2PTransport":50,"./transports/PostMessageTransport":51,"./transports/Transport":52,"./transports/WalletP2PTransport":53,"./transports/WalletPostMessageTransport":54,"./transports/clients/MessageBasedClient":56,"./transports/clients/P2PCommunicationClient":57,"./types/BeaconErrorType":59,"./types/ColorMode":60,"./types/ExtensionMessageTarget":61,"./types/Origin":62,"./types/beacon/BeaconMessageType":63,"./types/beacon/NetworkType":64,"./types/beacon/PermissionScope":65,"./types/beacon/SigningType":66,"./types/storage/StorageKey":67,"./types/tezos/OperationTypes":69,"./types/transport/TransportStatus":70,"./types/transport/TransportType":71,"./ui/alert/Pairing":73,"./utils/available-transports":81,"./utils/block-explorer":82,"./utils/crypto":83,"./utils/get-account-identifier":86,"./utils/get-sender-id":87,"./utils/tezblock-blockexplorer":93}],25:[function(require,module,exports){"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.IncomingRequestInterceptor=void 0;var __1=require("..");var Logger_1=require("../utils/Logger");var logger=new Logger_1.Logger("IncomingRequestInterceptor");var IncomingRequestInterceptor=function(){function IncomingRequestInterceptor(){}IncomingRequestInterceptor.intercept=function(config){return __awaiter(this,void 0,void 0,function(){var message,connectionInfo,appMetadataManager,interceptorCallback,_a,request,appMetadata,request,appMetadata,request,appMetadata,request;return __generator(this,function(_b){switch(_b.label){case 0:message=config.message,connectionInfo=config.connectionInfo,appMetadataManager=config.appMetadataManager,interceptorCallback=config.interceptorCallback;if(message.beaconId&&!message.senderId){message.senderId=message.beaconId;delete message.beaconId}_a=message.type;switch(_a){case __1.BeaconMessageType.PermissionRequest:return[3,1];case __1.BeaconMessageType.OperationRequest:return[3,3];case __1.BeaconMessageType.SignPayloadRequest:return[3,5];case __1.BeaconMessageType.BroadcastRequest:return[3,7]}return[3,9];case 1:if(message.appMetadata.beaconId&&!message.appMetadata.senderId){message.appMetadata.senderId=message.appMetadata.beaconId;delete message.appMetadata.beaconId}return[4,appMetadataManager.addAppMetadata(message.appMetadata)];case 2:_b.sent();request=message;interceptorCallback(request,connectionInfo);return[3,10];case 3:return[4,IncomingRequestInterceptor.getAppMetadata(appMetadataManager,message.senderId)];case 4:appMetadata=_b.sent();request=__assign({appMetadata:appMetadata},message);interceptorCallback(request,connectionInfo);return[3,10];case 5:return[4,IncomingRequestInterceptor.getAppMetadata(appMetadataManager,message.senderId)];case 6:appMetadata=_b.sent();request=__assign({appMetadata:appMetadata},message);interceptorCallback(request,connectionInfo);return[3,10];case 7:return[4,IncomingRequestInterceptor.getAppMetadata(appMetadataManager,message.senderId)];case 8:appMetadata=_b.sent();request=__assign({appMetadata:appMetadata},message);interceptorCallback(request,connectionInfo);return[3,10];case 9:logger.log("intercept","Message not handled");_b.label=10;case 10:return[2]}})})};IncomingRequestInterceptor.getAppMetadata=function(appMetadataManager,senderId){return __awaiter(this,void 0,void 0,function(){var appMetadata;return __generator(this,function(_a){switch(_a.label){case 0:return[4,appMetadataManager.getAppMetadata(senderId)];case 1:appMetadata=_a.sent();if(!appMetadata){throw new Error("AppMetadata not found")}return[2,appMetadata]}})})};return IncomingRequestInterceptor}();exports.IncomingRequestInterceptor=IncomingRequestInterceptor},{"..":24,"../utils/Logger":79}],26:[function(require,module,exports){"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.OutgoingResponseInterceptor=void 0;var __1=require("..");var constants_1=require("../constants");var crypto_1=require("../utils/crypto");var get_account_identifier_1=require("../utils/get-account-identifier");var BeaconErrorType_1=require("../types/BeaconErrorType");var Logger_1=require("../utils/Logger");var logger=new Logger_1.Logger("OutgoingResponseInterceptor");var OutgoingResponseInterceptor=function(){function OutgoingResponseInterceptor(){}OutgoingResponseInterceptor.intercept=function(config){return __awaiter(this,void 0,void 0,function(){var senderId,request,message,ownAppMetadata,permissionManager,appMetadataManager,interceptorCallback,interceptorCallbackWrapper,_a,response,errorData,response,response,publicKey,address,appMetadata,permission,_b,response,response,response;return __generator(this,function(_c){switch(_c.label){case 0:senderId=config.senderId,request=config.request,message=config.message,ownAppMetadata=config.ownAppMetadata,permissionManager=config.permissionManager,appMetadataManager=config.appMetadataManager,interceptorCallback=config.interceptorCallback;interceptorCallbackWrapper=function(msg){var untypedMessage=msg;untypedMessage.beaconId=msg.senderId;interceptorCallback(msg)};_a=message.type;switch(_a){case __1.BeaconMessageType.Error:return[3,1];case __1.BeaconMessageType.Acknowledge:return[3,2];case __1.BeaconMessageType.PermissionResponse:return[3,3];case __1.BeaconMessageType.OperationResponse:return[3,7];case __1.BeaconMessageType.SignPayloadResponse:return[3,8];case __1.BeaconMessageType.BroadcastResponse:return[3,9]}return[3,10];case 1:{response={type:message.type,version:constants_1.BEACON_VERSION,senderId:senderId,id:message.id,errorType:message.errorType};if(message.errorType===BeaconErrorType_1.BeaconErrorType.TRANSACTION_INVALID_ERROR&&message.errorData){errorData=message.errorData;if(Array.isArray(errorData)&&errorData.every(function(item){return Boolean(item.kind)&&Boolean(item.id)})){response.errorData=message.errorData}else{logger.warn("ErrorData provided is not in correct format. It needs to be an array of RPC errors. It will not be included in the message sent to the dApp")}}interceptorCallbackWrapper(response);return[3,11]}_c.label=2;case 2:{response={type:message.type,version:constants_1.BEACON_VERSION,senderId:senderId,id:message.id};interceptorCallbackWrapper(response);return[3,11]}_c.label=3;case 3:response=__assign({senderId:senderId,version:constants_1.BEACON_VERSION,appMetadata:ownAppMetadata},message);publicKey=response.publicKey||response.pubkey||response.pubKey;return[4,crypto_1.getAddressFromPublicKey(publicKey)];case 4:address=_c.sent();return[4,appMetadataManager.getAppMetadata(request.senderId)];case 5:appMetadata=_c.sent();if(!appMetadata){throw new Error("AppMetadata not found")}_b={};return[4,get_account_identifier_1.getAccountIdentifier(address,response.network)];case 6:permission=(_b.accountIdentifier=_c.sent(),_b.senderId=request.senderId,_b.appMetadata=appMetadata,_b.website="",_b.address=address,_b.publicKey=publicKey,_b.network=response.network,_b.scopes=response.scopes,_b.connectedAt=(new Date).getTime(),_b);permissionManager.addPermission(permission).catch(console.error);interceptorCallbackWrapper(response);return[3,11];case 7:{response=__assign({senderId:senderId,version:constants_1.BEACON_VERSION},message);interceptorCallbackWrapper(response)}return[3,11];case 8:{response=__assign({senderId:senderId,version:constants_1.BEACON_VERSION},message);interceptorCallbackWrapper(response)}return[3,11];case 9:{response=__assign({senderId:senderId,version:constants_1.BEACON_VERSION},message);interceptorCallbackWrapper(response)}return[3,11];case 10:logger.log("intercept","Message not handled");_c.label=11;case 11:return[2]}})})};return OutgoingResponseInterceptor}();exports.OutgoingResponseInterceptor=OutgoingResponseInterceptor},{"..":24,"../constants":9,"../types/BeaconErrorType":59,"../utils/Logger":79,"../utils/crypto":83,"../utils/get-account-identifier":86}],27:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.AccountManager=void 0;var __1=require("..");var StorageManager_1=require("./StorageManager");var PermissionValidator_1=require("./PermissionValidator");var AccountManager=function(){function AccountManager(storage){this.storageManager=new StorageManager_1.StorageManager(storage,__1.StorageKey.ACCOUNTS)}AccountManager.prototype.getAccounts=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getAll()]})})};AccountManager.prototype.getAccount=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getOne(function(account){return account.accountIdentifier===accountIdentifier})]})})};AccountManager.prototype.addAccount=function(accountInfo){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.addOne(accountInfo,function(account){return account.accountIdentifier===accountInfo.accountIdentifier})]})})};AccountManager.prototype.removeAccount=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(account){return account.accountIdentifier===accountIdentifier})]})})};AccountManager.prototype.removeAccounts=function(accountIdentifiers){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(account){return accountIdentifiers.includes(account.accountIdentifier)})]})})};AccountManager.prototype.removeAllAccounts=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.removeAll()]})})};AccountManager.prototype.hasPermission=function(message){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,PermissionValidator_1.PermissionValidator.hasPermission(message,this.getAccount.bind(this),this.getAccounts.bind(this))]})})};return AccountManager}();exports.AccountManager=AccountManager},{"..":24,"./PermissionValidator":31,"./StorageManager":32}],28:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.AppMetadataManager=void 0;var __1=require("..");var StorageManager_1=require("./StorageManager");var AppMetadataManager=function(){function AppMetadataManager(storage){this.storageManager=new StorageManager_1.StorageManager(storage,__1.StorageKey.APP_METADATA_LIST)}AppMetadataManager.prototype.getAppMetadataList=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getAll()]})})};AppMetadataManager.prototype.getAppMetadata=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getOne(function(appMetadata){return appMetadata.senderId===senderId})]})})};AppMetadataManager.prototype.addAppMetadata=function(appMetadata){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.addOne(appMetadata,function(appMetadataElement){return appMetadataElement.senderId===appMetadata.senderId})]})})};AppMetadataManager.prototype.removeAppMetadata=function(senderId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(appMetadata){return appMetadata.senderId===senderId})]})})};AppMetadataManager.prototype.removeAppMetadatas=function(senderIds){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(appMetadata){return senderIds.includes(appMetadata.senderId)})]})})};AppMetadataManager.prototype.removeAllAppMetadata=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.removeAll()]})})};return AppMetadataManager}();exports.AppMetadataManager=AppMetadataManager},{"..":24,"./StorageManager":32}],29:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.PeerManager=void 0;var StorageManager_1=require("./StorageManager");var PeerManager=function(){function PeerManager(storage,key){this.storageManager=new StorageManager_1.StorageManager(storage,key)}PeerManager.prototype.hasPeer=function(publicKey){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getPeer(publicKey)];case 1:return[2,_a.sent()?true:false]}})})};PeerManager.prototype.getPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getAll()]})})};PeerManager.prototype.getPeer=function(publicKey){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getOne(function(peer){return peer.publicKey===publicKey})]})})};PeerManager.prototype.addPeer=function(peerInfo){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.addOne(peerInfo,function(peer){return peer.publicKey===peerInfo.publicKey})]})})};PeerManager.prototype.removePeer=function(publicKey){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(peer){return peer.publicKey===publicKey})]})})};PeerManager.prototype.removePeers=function(publicKeys){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(peer){return publicKeys.includes(peer.publicKey)})]})})};PeerManager.prototype.removeAllPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.removeAll()]})})};return PeerManager}();exports.PeerManager=PeerManager},{"./StorageManager":32}],30:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.PermissionManager=void 0;var __1=require("..");var StorageManager_1=require("./StorageManager");var PermissionValidator_1=require("./PermissionValidator");var PermissionManager=function(){function PermissionManager(storage){this.storageManager=new StorageManager_1.StorageManager(storage,__1.StorageKey.PERMISSION_LIST)}PermissionManager.prototype.getPermissions=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getAll()]})})};PermissionManager.prototype.getPermission=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.getOne(function(permission){return permission.accountIdentifier===accountIdentifier})]})})};PermissionManager.prototype.addPermission=function(permissionInfo){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.addOne(permissionInfo,function(permission){return permission.accountIdentifier===permissionInfo.accountIdentifier})]})})};PermissionManager.prototype.removePermission=function(accountIdentifier){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(permissionInfo){return permissionInfo.accountIdentifier===accountIdentifier})]})})};PermissionManager.prototype.removePermissions=function(accountIdentifiers){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.remove(function(permission){return accountIdentifiers.includes(permission.accountIdentifier)})]})})};PermissionManager.prototype.removeAllPermissions=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storageManager.removeAll()]})})};PermissionManager.prototype.hasPermission=function(message){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,PermissionValidator_1.PermissionValidator.hasPermission(message,this.getPermission.bind(this),this.getPermissions.bind(this))]})})};return PermissionManager}();exports.PermissionManager=PermissionManager},{"..":24,"./PermissionValidator":31,"./StorageManager":32}],31:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.PermissionValidator=void 0;var __1=require("..");var get_account_identifier_1=require("../utils/get-account-identifier");var PermissionValidator=function(){function PermissionValidator(){}PermissionValidator.hasPermission=function(message,getOne,getAll){return __awaiter(this,void 0,void 0,function(){var _a,accountIdentifier,permission,permissions,filteredPermissions;return __generator(this,function(_b){switch(_b.label){case 0:_a=message.type;switch(_a){case __1.BeaconMessageType.PermissionRequest:return[3,1];case __1.BeaconMessageType.BroadcastRequest:return[3,1];case __1.BeaconMessageType.OperationRequest:return[3,2];case __1.BeaconMessageType.SignPayloadRequest:return[3,5]}return[3,7];case 1:{return[2,true]}_b.label=2;case 2:return[4,get_account_identifier_1.getAccountIdentifier(message.sourceAddress,message.network)];case 3:accountIdentifier=_b.sent();return[4,getOne(accountIdentifier)];case 4:permission=_b.sent();if(!permission){return[2,false]}return[2,permission.scopes.includes(__1.PermissionScope.OPERATION_REQUEST)];case 5:return[4,getAll()];case 6:permissions=_b.sent();filteredPermissions=permissions.filter(function(permission){return permission.address===message.sourceAddress});if(filteredPermissions.length===0){return[2,false]}return[2,filteredPermissions.some(function(permission){return permission.scopes.includes(__1.PermissionScope.SIGN)})];case 7:throw new Error("Message not handled")}})})};return PermissionValidator}();exports.PermissionValidator=PermissionValidator},{"..":24,"../utils/get-account-identifier":86}],32:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.StorageManager=void 0;function fixArrayType(array){return array}var StorageManager=function(){function StorageManager(storage,storageKey){this.storage=storage;this.storageKey=storageKey}StorageManager.prototype.getAll=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storage.get(this.storageKey)]})})};StorageManager.prototype.getOne=function(predicate){return __awaiter(this,void 0,void 0,function(){var entities;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(this.storageKey)];case 1:entities=_a.sent();return[2,fixArrayType(entities).find(predicate)]}})})};StorageManager.prototype.addOne=function(element,predicate,overwrite){if(overwrite===void 0){overwrite=true}return __awaiter(this,void 0,void 0,function(){var entities,i;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(this.storageKey)];case 1:entities=_a.sent();if(!fixArrayType(entities).some(predicate)){fixArrayType(entities).push(element)}else if(overwrite){for(i=0;i<entities.length;i++){if(predicate(fixArrayType(entities)[i])){entities[i]=element}}}return[2,this.storage.set(this.storageKey,entities)]}})})};StorageManager.prototype.remove=function(predicate){return __awaiter(this,void 0,void 0,function(){var entities,filteredEntities;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(this.storageKey)];case 1:entities=_a.sent();filteredEntities=fixArrayType(entities).filter(function(entity){return!predicate(entity)});return[2,this.storage.set(this.storageKey,filteredEntities)]}})})};StorageManager.prototype.removeAll=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.storage.delete(this.storageKey)]})})};return StorageManager}();exports.StorageManager=StorageManager},{}],33:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixClient=void 0;var Logger_1=require("../utils/Logger");var exposed_promise_1=require("../utils/exposed-promise");var MatrixClientStore_1=require("./MatrixClientStore");var MatrixHttpClient_1=require("./MatrixHttpClient");var MatrixRoom_1=require("./models/MatrixRoom");var MatrixRoomService_1=require("./services/MatrixRoomService");var MatrixUserService_1=require("./services/MatrixUserService");var MatrixEventService_1=require("./services/MatrixEventService");var MatrixClientEventEmitter_1=require("./MatrixClientEventEmitter");var logger=new Logger_1.Logger("MatrixClient");var IMMEDIATE_POLLING_RETRIES=3;var RETRY_INTERVAL=5e3;var MatrixClient=function(){function MatrixClient(store,eventEmitter,userService,roomService,eventService,httpClient){var _this=this;this.store=store;this.eventEmitter=eventEmitter;this.userService=userService;this.roomService=roomService;this.eventService=eventService;this.httpClient=httpClient;this.isActive=true;this._isReady=new exposed_promise_1.ExposedPromise;this.store.onStateChanged(function(oldState,newState,stateChange){_this.eventEmitter.onStateChanged(oldState,newState,stateChange)},"rooms")}MatrixClient.create=function(config){var store=new MatrixClientStore_1.MatrixClientStore(config.storage);var eventEmitter=new MatrixClientEventEmitter_1.MatrixClientEventEmitter;var httpClient=new MatrixHttpClient_1.MatrixHttpClient(config.baseUrl);var accountService=new MatrixUserService_1.MatrixUserService(httpClient);var roomService=new MatrixRoomService_1.MatrixRoomService(httpClient);var eventService=new MatrixEventService_1.MatrixEventService(httpClient);return new MatrixClient(store,eventEmitter,accountService,roomService,eventService,httpClient)};Object.defineProperty(MatrixClient.prototype,"joinedRooms",{get:function(){var _this=this;return new Promise(function(resolve){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();resolve(Object.values(this.store.get("rooms")).filter(function(room){return room.status===MatrixRoom_1.MatrixRoomStatus.JOINED}));return[2]}})})})},enumerable:false,configurable:true});Object.defineProperty(MatrixClient.prototype,"invitedRooms",{get:function(){var _this=this;return new Promise(function(resolve){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();resolve(Object.values(this.store.get("rooms")).filter(function(room){return room.status===MatrixRoom_1.MatrixRoomStatus.INVITED}));return[2]}})})})},enumerable:false,configurable:true});Object.defineProperty(MatrixClient.prototype,"leftRooms",{get:function(){var _this=this;return new Promise(function(resolve){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();resolve(Object.values(this.store.get("rooms")).filter(function(room){return room.status===MatrixRoom_1.MatrixRoomStatus.LEFT}));return[2]}})})})},enumerable:false,configurable:true});MatrixClient.prototype.start=function(user){return __awaiter(this,void 0,void 0,function(){var response,initialPollingResult;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.userService.login(user.id,user.password,user.deviceId)];case 1:response=_a.sent();return[4,this.store.update({accessToken:response.access_token})];case 2:_a.sent();initialPollingResult=new Promise(function(resolve,reject){return __awaiter(_this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.poll(0,function(pollingResponse){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!this.store.get("isRunning")){resolve()}return[4,this.store.update({isRunning:true,syncToken:pollingResponse.next_batch,pollingTimeout:3e4,pollingRetries:0,rooms:MatrixRoom_1.MatrixRoom.fromSync(pollingResponse.rooms)})];case 1:_a.sent();return[2]}})})},function(error){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!this.store.get("isRunning")){reject(error)}return[4,this.store.update({isRunning:false,pollingRetries:this.store.get("pollingRetries")+1})];case 1:_a.sent();return[2]}})})})];case 1:_a.sent();return[2]}})})});initialPollingResult.then(function(){_this._isReady.resolve()}).catch(console.error);return[2,initialPollingResult]}})})};MatrixClient.prototype.isConnected=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this._isReady.promise]})})};MatrixClient.prototype.stop=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("MATRIX CLIENT STOPPED");this.isActive=false;this._isReady=new exposed_promise_1.ExposedPromise;return[2,this.httpClient.cancelAllRequests()]})})};MatrixClient.prototype.subscribe=function(event,listener){this.eventEmitter.on(event,listener)};MatrixClient.prototype.unsubscribe=function(event,listener){if(listener){this.eventEmitter.removeListener(event,listener)}};MatrixClient.prototype.unsubscribeAll=function(event){this.eventEmitter.removeAllListeners(event)};MatrixClient.prototype.getRoomById=function(id){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();return[2,this.store.getRoom(id)]}})})};MatrixClient.prototype.createTrustedPrivateRoom=function(){var members=[];for(var _i=0;_i<arguments.length;_i++){members[_i]=arguments[_i]}return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();return[2,this.requiresAuthorization("createRoom",function(accessToken){return __awaiter(_this,void 0,void 0,function(){var response;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.roomService.createRoom(accessToken,{invite:members,preset:"trusted_private_chat",is_direct:true})];case 1:response=_a.sent();return[2,response.room_id]}})})})]}})})};MatrixClient.prototype.inviteToRooms=function(user){var roomsOrIds=[];for(var _i=1;_i<arguments.length;_i++){roomsOrIds[_i-1]=arguments[_i]}return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();return[4,this.requiresAuthorization("invite",function(accessToken){return Promise.all(roomsOrIds.map(function(roomOrId){var room=_this.store.getRoom(roomOrId);_this.roomService.inviteToRoom(accessToken,user,room).catch(function(error){return logger.warn("inviteToRooms",error)})}))})];case 2:_a.sent();return[2]}})})};MatrixClient.prototype.joinRooms=function(){var roomsOrIds=[];for(var _i=0;_i<arguments.length;_i++){roomsOrIds[_i]=arguments[_i]}return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();return[4,this.requiresAuthorization("join",function(accessToken){return Promise.all(roomsOrIds.map(function(roomOrId){var room=_this.store.getRoom(roomOrId);return _this.roomService.joinRoom(accessToken,room)}))})];case 2:_a.sent();return[2]}})})};MatrixClient.prototype.sendTextMessage=function(roomId,message){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.isConnected()];case 1:_a.sent();return[4,this.requiresAuthorization("send",function(accessToken){return __awaiter(_this,void 0,void 0,function(){var txnId;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createTxnId()];case 1:txnId=_a.sent();return[2,this.eventService.sendMessage(accessToken,roomId,{msgtype:"m.text",body:message},txnId)]}})})})];case 2:_a.sent();return[2]}})})};MatrixClient.prototype.poll=function(interval,onSyncSuccess,onSyncError){return __awaiter(this,void 0,void 0,function(){var store,sync,pollSync;var _this=this;return __generator(this,function(_a){store=this.store;sync=this.sync.bind(this);pollSync=function(resolve,reject){return __awaiter(_this,void 0,void 0,function(){var syncingRetries,response,error_1;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:syncingRetries=0;_a.label=1;case 1:_a.trys.push([1,3,4,5]);return[4,sync()];case 2:response=_a.sent();onSyncSuccess(response);return[3,5];case 3:error_1=_a.sent();onSyncError(error_1);syncingRetries=store.get("pollingRetries");if(this.isActive){logger.log("Retry syncing... "+syncingRetries+" retries so far")}return[3,5];case 4:if(this.isActive){setTimeout(function(){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,pollSync(resolve,reject)];case 1:_a.sent();return[2]}})})},syncingRetries>IMMEDIATE_POLLING_RETRIES?RETRY_INTERVAL+interval:interval)}else{reject(new Error("Syncing stopped manually."))}return[7];case 5:return[2]}})})};return[2,new Promise(pollSync)]})})};MatrixClient.prototype.sync=function(){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){return[2,this.requiresAuthorization("sync",function(accessToken){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.eventService.sync(accessToken,{pollingTimeout:this.store.get("pollingTimeout"),syncToken:this.store.get("syncToken")})]})})})]})})};MatrixClient.prototype.requiresAuthorization=function(name,action){return __awaiter(this,void 0,void 0,function(){var storedToken;return __generator(this,function(_a){storedToken=this.store.get("accessToken");if(!storedToken){return[2,Promise.reject(name+" requires authorization but no access token has been provided.")]}return[2,action(storedToken)]})})};MatrixClient.prototype.createTxnId=function(){return __awaiter(this,void 0,void 0,function(){var timestamp,counter;return __generator(this,function(_a){switch(_a.label){case 0:timestamp=(new Date).getTime();counter=this.store.get("txnNo");return[4,this.store.update({txnNo:counter+1})];case 1:_a.sent();return[2,"m"+timestamp+"."+counter]}})})};return MatrixClient}();exports.MatrixClient=MatrixClient},{"../utils/Logger":79,"../utils/exposed-promise":84,"./MatrixClientEventEmitter":34,"./MatrixClientStore":35,"./MatrixHttpClient":36,"./models/MatrixRoom":39,"./services/MatrixEventService":40,"./services/MatrixRoomService":41,"./services/MatrixUserService":42}],34:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixClientEventEmitter=void 0;var events_1=require("events");var utils_1=require("../utils/utils");var MatrixRoom_1=require("./models/MatrixRoom");var MatrixClientEvent_1=require("./models/MatrixClientEvent");var MatrixClientEventEmitter=function(_super){__extends(MatrixClientEventEmitter,_super);function MatrixClientEventEmitter(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.eventEmitProviders=new Map([[MatrixClientEvent_1.MatrixClientEventType.INVITE,function(){return[_this.isInvite,_this.emitInvite.bind(_this)]}],[MatrixClientEvent_1.MatrixClientEventType.MESSAGE,function(){return[_this.isMessage,_this.emitMessage.bind(_this)]}]]);return _this}MatrixClientEventEmitter.prototype.onStateChanged=function(_oldState,_newState,stateChange){for(var _i=0,_a=utils_1.keys(MatrixClientEvent_1.MatrixClientEventType);_i<_a.length;_i++){var event_1=_a[_i];this.emitIfEvent(MatrixClientEvent_1.MatrixClientEventType[event_1],stateChange)}};MatrixClientEventEmitter.prototype.emitIfEvent=function(eventType,object){var provider=this.eventEmitProviders.get(eventType);if(provider){var _a=provider(),predicate=_a[0],emitter=_a[1];if(predicate(object)){emitter(eventType,object)}}};MatrixClientEventEmitter.prototype.emitClientEvent=function(eventType,content,timestamp){this.emit(eventType,{type:eventType,content:content,timestamp:timestamp})};MatrixClientEventEmitter.prototype.isInvite=function(stateChange){return stateChange.rooms?stateChange.rooms.some(function(room){return room.status===MatrixRoom_1.MatrixRoomStatus.INVITED}):false};MatrixClientEventEmitter.prototype.emitInvite=function(eventType,stateChange){var _this=this;stateChange.rooms.filter(function(room){return room.status===MatrixRoom_1.MatrixRoomStatus.INVITED}).map(function(room){return[room.id,room.members]}).forEach(function(_a){var id=_a[0],members=_a[1];_this.emitClientEvent(eventType,{roomId:id,members:members})})};MatrixClientEventEmitter.prototype.isMessage=function(stateChange){return stateChange.rooms?stateChange.rooms.some(function(room){return room.messages.length>0}):false};MatrixClientEventEmitter.prototype.emitMessage=function(eventType,stateChange){var _this=this;stateChange.rooms.filter(function(room){return room.messages.length>0}).map(function(room){return room.messages.map(function(message){return[room.id,message,message.timestamp]})}).reduce(function(flatten,toFlatten){return flatten.concat(toFlatten)},[]).forEach(function(_a){var roomId=_a[0],message=_a[1],timestamp=_a[2];_this.emitClientEvent(eventType,{roomId:roomId,message:message},timestamp)})};return MatrixClientEventEmitter}(events_1.EventEmitter);exports.MatrixClientEventEmitter=MatrixClientEventEmitter},{"../utils/utils":94,"./models/MatrixClientEvent":37,"./models/MatrixRoom":39,events:186}],35:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixClientStore=void 0;var utils_1=require("../utils/utils");var MatrixRoom_1=require("./models/MatrixRoom");var __1=require("..");var PRESERVED_FIELDS=["syncToken","rooms"];var MatrixClientStore=function(){function MatrixClientStore(storage){var _this=this;this.storage=storage;this.state={isRunning:false,userId:undefined,deviceId:undefined,txnNo:0,accessToken:undefined,syncToken:undefined,pollingTimeout:undefined,pollingRetries:0,rooms:{}};this.onStateChangedListeners=new Map;this.waitReadyPromise=new Promise(function(resolve,reject){return __awaiter(_this,void 0,void 0,function(){var error_1;return __generator(this,function(_a){switch(_a.label){case 0:_a.trys.push([0,2,,3]);return[4,this.initFromStorage()];case 1:_a.sent();resolve();return[3,3];case 2:error_1=_a.sent();reject(error_1);return[3,3];case 3:return[2]}})})})}MatrixClientStore.prototype.get=function(key){return this.state[key]};MatrixClientStore.prototype.getRoom=function(roomOrId){var room=MatrixRoom_1.MatrixRoom.from(roomOrId,MatrixRoom_1.MatrixRoomStatus.UNKNOWN);return this.state.rooms[room.id]||room};MatrixClientStore.prototype.update=function(stateUpdate){return __awaiter(this,void 0,void 0,function(){var oldState;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.waitReady()];case 1:_a.sent();oldState=Object.assign({},this.state);this.setState(stateUpdate);this.updateStorage(stateUpdate);this.notifyListeners(oldState,this.state,stateUpdate);return[2]}})})};MatrixClientStore.prototype.onStateChanged=function(listener){var _this=this;var subscribed=[];for(var _i=1;_i<arguments.length;_i++){subscribed[_i-1]=arguments[_i]}if(subscribed.length>0){subscribed.forEach(function(key){_this.onStateChangedListeners.set(key,listener)})}else{this.onStateChangedListeners.set("all",listener)}};MatrixClientStore.prototype.waitReady=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.waitReadyPromise]})})};MatrixClientStore.prototype.initFromStorage=function(){return __awaiter(this,void 0,void 0,function(){var preserved;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(__1.StorageKey.MATRIX_PRESERVED_STATE)];case 1:preserved=_a.sent();this.setState(preserved);return[2]}})})};MatrixClientStore.prototype.prepareData=function(toStore){var requiresPreparation=["rooms"];var toStoreCopy=requiresPreparation.some(function(key){return toStore[key]!==undefined})?JSON.parse(JSON.stringify(toStore)):toStore;Object.values(toStoreCopy.rooms||{}).forEach(function(room){room.messages=[]});return toStoreCopy};MatrixClientStore.prototype.updateStorage=function(stateUpdate){var _this=this;var updatedCachedFields=Object.entries(stateUpdate).filter(function(_a){var key=_a[0],value=_a[1];return PRESERVED_FIELDS.includes(key)&&Boolean(value)});if(updatedCachedFields.length>0){var filteredState_1={};PRESERVED_FIELDS.forEach(function(key){filteredState_1[key]=_this.state[key]});this.storage.set(__1.StorageKey.MATRIX_PRESERVED_STATE,this.prepareData(filteredState_1))}};MatrixClientStore.prototype.setState=function(partialState){this.state={isRunning:partialState.isRunning||this.state.isRunning,userId:partialState.userId||this.state.userId,deviceId:partialState.deviceId||this.state.deviceId,txnNo:partialState.txnNo||this.state.txnNo,accessToken:partialState.accessToken||this.state.accessToken,syncToken:partialState.syncToken||this.state.syncToken,pollingTimeout:partialState.pollingTimeout||this.state.pollingTimeout,pollingRetries:partialState.pollingRetries||this.state.pollingRetries,rooms:this.mergeRooms(this.state.rooms,partialState.rooms)}};MatrixClientStore.prototype.mergeRooms=function(oldRooms,_newRooms){if(!_newRooms){return oldRooms}var newRooms=Array.isArray(_newRooms)?_newRooms:Object.values(_newRooms);var merged=Object.assign({},oldRooms);newRooms.forEach(function(newRoom){merged[newRoom.id]=MatrixRoom_1.MatrixRoom.merge(newRoom,oldRooms[newRoom.id])});return merged};MatrixClientStore.prototype.notifyListeners=function(oldState,newState,stateChange){var _this=this;var listenForAll=this.onStateChangedListeners.get("all");if(listenForAll){listenForAll(oldState,newState,stateChange)}utils_1.keys(stateChange).filter(function(key){return stateChange[key]!==undefined}).forEach(function(key){var listener=_this.onStateChangedListeners.get(key);if(listener){listener(oldState,newState,stateChange)}})};return MatrixClientStore}();exports.MatrixClientStore=MatrixClientStore},{"..":24,"../utils/utils":94,"./models/MatrixRoom":39}],36:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixHttpClient=void 0;var axios_1=require("axios");var utils_1=require("../utils/utils");var CLIENT_API_R0="/_matrix/client/r0";var MatrixHttpClient=function(){function MatrixHttpClient(baseUrl){this.baseUrl=baseUrl;this.cancelTokenSource=axios_1.default.CancelToken.source()}MatrixHttpClient.prototype.get=function(endpoint,params,options){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.send("GET",endpoint,options,params)]})})};MatrixHttpClient.prototype.post=function(endpoint,body,options,params){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.send("POST",endpoint,options,params,body)]})})};MatrixHttpClient.prototype.put=function(endpoint,body,options,params){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.send("PUT",endpoint,options,params,body)]})})};MatrixHttpClient.prototype.cancelAllRequests=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.cancelTokenSource.cancel("Manually cancelled")]})})};MatrixHttpClient.prototype.send=function(method,endpoint,config,requestParams,data){return __awaiter(this,void 0,void 0,function(){var headers,params,response,axiosError_1;return __generator(this,function(_a){switch(_a.label){case 0:headers=config?this.getHeaders(config):undefined;params=requestParams?this.getParams(requestParams):undefined;_a.label=1;case 1:_a.trys.push([1,3,,4]);return[4,axios_1.default.request({method:method,url:endpoint,baseURL:this.apiUrl(CLIENT_API_R0),headers:headers,data:data,params:params,cancelToken:this.cancelTokenSource.token})];case 2:response=_a.sent();return[3,4];case 3:axiosError_1=_a.sent();throw axiosError_1.response.data;case 4:return[2,response.data]}})})};MatrixHttpClient.prototype.getHeaders=function(options){var headers={};var entries=[];if(options.accessToken){entries.push(["Authorization","Bearer "+options.accessToken])}if(entries.length===0){return undefined}for(var _i=0,entries_1=entries;_i<entries_1.length;_i++){var _a=entries_1[_i],key=_a[0],value=_a[1];headers[key]=value}return headers};MatrixHttpClient.prototype.getParams=function(_params){if(!_params){return undefined}var params=Object.assign(_params,{});utils_1.keys(params).forEach(function(key){return params[key]===undefined&&delete params[key]});return params};MatrixHttpClient.prototype.apiUrl=function(){var parts=[];for(var _i=0;_i<arguments.length;_i++){parts[_i]=arguments[_i]}var apiBase=this.baseUrl.endsWith("/")?this.baseUrl.substr(0,this.baseUrl.length-1):this.baseUrl;var apiParts=parts.map(function(path){return path.startsWith("/")?path.substr(1):path});return __spreadArrays([apiBase],apiParts).join("/")};return MatrixHttpClient}();exports.MatrixHttpClient=MatrixHttpClient},{"../utils/utils":94,axios:110}],37:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixClientEventType=void 0;var MatrixClientEventType;(function(MatrixClientEventType){MatrixClientEventType["INVITE"]="invite";MatrixClientEventType["MESSAGE"]="message"})(MatrixClientEventType=exports.MatrixClientEventType||(exports.MatrixClientEventType={}))},{}],38:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixMessage=exports.MatrixMessageType=void 0;var events_1=require("../utils/events");var MatrixMessageType;(function(MatrixMessageType){MatrixMessageType["TEXT"]="m.text"})(MatrixMessageType=exports.MatrixMessageType||(exports.MatrixMessageType={}));var MatrixMessage=function(){function MatrixMessage(type,sender,content,timestamp){this.type=type;this.sender=sender;this.content=content;this.timestamp=timestamp}MatrixMessage.from=function(event){if(events_1.isTextMessageEvent(event)){return new MatrixMessage(event.content.msgtype,event.sender,event.content.body,event.origin_server_ts)}return undefined};return MatrixMessage}();exports.MatrixMessage=MatrixMessage},{"../utils/events":43}],39:[function(require,module,exports){"use strict";var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixRoom=exports.MatrixRoomStatus=void 0;var events_1=require("../utils/events");var MatrixMessage_1=require("./MatrixMessage");var MatrixRoomStatus;(function(MatrixRoomStatus){MatrixRoomStatus[MatrixRoomStatus["UNKNOWN"]=0]="UNKNOWN";MatrixRoomStatus[MatrixRoomStatus["JOINED"]=1]="JOINED";MatrixRoomStatus[MatrixRoomStatus["INVITED"]=2]="INVITED";MatrixRoomStatus[MatrixRoomStatus["LEFT"]=3]="LEFT"})(MatrixRoomStatus=exports.MatrixRoomStatus||(exports.MatrixRoomStatus={}));var MatrixRoom=function(){function MatrixRoom(id,status,members,messages){if(status===void 0){status=MatrixRoomStatus.UNKNOWN}if(members===void 0){members=[]}if(messages===void 0){messages=[]}this.id=id;this.status=status;this.members=members;this.messages=messages}MatrixRoom.fromSync=function(roomSync){function create(rooms,creator){return Object.entries(rooms).map(function(_a){var id=_a[0],room=_a[1];return creator(id,room)})}return __spreadArrays(create(roomSync.join,MatrixRoom.fromJoined),create(roomSync.invite,MatrixRoom.fromInvited),create(roomSync.leave,MatrixRoom.fromLeft))};MatrixRoom.from=function(roomOrId,status){return typeof roomOrId==="string"?new MatrixRoom(roomOrId,status||MatrixRoomStatus.UNKNOWN):status!==undefined?new MatrixRoom(roomOrId.id,status,roomOrId.members,roomOrId.messages):roomOrId};MatrixRoom.merge=function(newState,previousState){if(!previousState||previousState.id!==newState.id){return MatrixRoom.from(newState)}return new MatrixRoom(newState.id,newState.status,__spreadArrays(previousState.members,newState.members).filter(function(member,index,array){return array.indexOf(member)===index}),__spreadArrays(previousState.messages,newState.messages))};MatrixRoom.fromJoined=function(id,joined){var events=__spreadArrays(joined.state.events,joined.timeline.events);var members=MatrixRoom.getMembersFromEvents(events);var messages=MatrixRoom.getMessagesFromEvents(events);return new MatrixRoom(id,MatrixRoomStatus.JOINED,members,messages)};MatrixRoom.fromInvited=function(id,invited){var members=MatrixRoom.getMembersFromEvents(invited.invite_state.events);return new MatrixRoom(id,MatrixRoomStatus.INVITED,members)};MatrixRoom.fromLeft=function(id,left){var events=__spreadArrays(left.state.events,left.timeline.events);var members=MatrixRoom.getMembersFromEvents(events);var messages=MatrixRoom.getMessagesFromEvents(events);return new MatrixRoom(id,MatrixRoomStatus.LEFT,members,messages)};MatrixRoom.getMembersFromEvents=function(events){return MatrixRoom.getUniqueEvents(events.filter(function(event){return events_1.isCreateEvent(event)||events_1.isJoinEvent(event)})).map(function(event){return event.sender}).filter(function(member,index,array){return array.indexOf(member)===index})};MatrixRoom.getMessagesFromEvents=function(events){return MatrixRoom.getUniqueEvents(events.filter(events_1.isMessageEvent)).map(function(event){return MatrixMessage_1.MatrixMessage.from(event)}).filter(Boolean)};MatrixRoom.getUniqueEvents=function(events){var eventIds={};var uniqueEvents=[];events.forEach(function(event,index){var eventId=event.event_id;if(eventId===undefined||!(eventId in eventIds)){if(eventId!==undefined){eventIds[eventId]=index}uniqueEvents.push(event)}});return uniqueEvents};return MatrixRoom}();exports.MatrixRoom=MatrixRoom},{"../utils/events":43,"./MatrixMessage":38}],40:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixEventService=void 0;var MatrixEventService=function(){function MatrixEventService(httpClient){this.httpClient=httpClient;this.cachedPromises=new Map}MatrixEventService.prototype.sync=function(accessToken,options){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){return[2,this.withCache("sync",function(){return _this.httpClient.get("/sync",{timeout:options?options.pollingTimeout:undefined,since:options?options.syncToken:undefined},{accessToken:accessToken})})]})})};MatrixEventService.prototype.sendMessage=function(accessToken,roomId,content,txnId){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){return[2,new Promise(function(resolve,reject){return _this.scheduleEvent({accessToken:accessToken,roomId:roomId,type:"m.room.message",content:content,txnId:txnId,onSuccess:resolve,onError:reject})})]})})};MatrixEventService.prototype.scheduleEvent=function(event){this.sendEvent(event)};MatrixEventService.prototype.sendEvent=function(scheduledEvent){return __awaiter(this,void 0,void 0,function(){var roomId,type,txnId,content,accessToken,response,error_1;return __generator(this,function(_a){switch(_a.label){case 0:roomId=scheduledEvent.roomId,type=scheduledEvent.type,txnId=scheduledEvent.txnId,content=scheduledEvent.content,accessToken=scheduledEvent.accessToken;_a.label=1;case 1:_a.trys.push([1,3,,4]);return[4,this.httpClient.put("/rooms/"+encodeURIComponent(roomId)+"/send/"+type+"/"+encodeURIComponent(txnId),content,{accessToken:accessToken})];case 2:response=_a.sent();scheduledEvent.onSuccess(response);return[3,4];case 3:error_1=_a.sent();scheduledEvent.onError(error_1);return[3,4];case 4:return[2]}})})};MatrixEventService.prototype.withCache=function(key,promiseProvider){var _this=this;var promise=this.cachedPromises.get(key);if(!promise){promise=promiseProvider().finally(function(){_this.cachedPromises.delete(key)});this.cachedPromises.set(key,promise)}return promise};return MatrixEventService}();exports.MatrixEventService=MatrixEventService},{}],41:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixRoomService=void 0;var MatrixRoom_1=require("../models/MatrixRoom");var MatrixRoomService=function(){function MatrixRoomService(httpClient){this.httpClient=httpClient}MatrixRoomService.prototype.createRoom=function(accessToken,config){if(config===void 0){config={}}return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.httpClient.post("/createRoom",config,{accessToken:accessToken})]})})};MatrixRoomService.prototype.inviteToRoom=function(accessToken,user,room){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(room.status!==MatrixRoom_1.MatrixRoomStatus.JOINED&&room.status!==MatrixRoom_1.MatrixRoomStatus.UNKNOWN){return[2,Promise.reject("User is not a member of room "+room.id+".")]}return[2,this.httpClient.post("/rooms/"+encodeURIComponent(room.id)+"/invite",{user_id:user},{accessToken:accessToken})]})})};MatrixRoomService.prototype.joinRoom=function(accessToken,room){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(room.status===MatrixRoom_1.MatrixRoomStatus.JOINED){return[2,Promise.resolve({room_id:room.id})]}return[2,this.httpClient.post("/rooms/"+encodeURIComponent(room.id)+"/join",{},{accessToken:accessToken})]})})};MatrixRoomService.prototype.getJoinedRooms=function(accessToken){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.httpClient.get("/joined_rooms",undefined,{accessToken:accessToken})]})})};return MatrixRoomService}();exports.MatrixRoomService=MatrixRoomService},{"../models/MatrixRoom":39}],42:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MatrixUserService=void 0;var MatrixUserService=function(){function MatrixUserService(httpClient){this.httpClient=httpClient}MatrixUserService.prototype.login=function(user,password,deviceId){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.httpClient.post("/login",{type:"m.login.password",identifier:{type:"m.id.user",user:user},password:password,device_id:deviceId})]})})};return MatrixUserService}();exports.MatrixUserService=MatrixUserService},{}],43:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isTextMessageEvent=exports.isMessageEvent=exports.isJoinEvent=exports.isCreateEvent=void 0;var MatrixMessage_1=require("../models/MatrixMessage");exports.isCreateEvent=function(event){return event.type==="m.room.create"&&event.content instanceof Object&&"creator"in event.content};exports.isJoinEvent=function(event){return event.type==="m.room.member"&&event.content instanceof Object&&"membership"in event.content&&event.content["membership"]==="join"};exports.isMessageEvent=function(event){return event.type==="m.room.message"};exports.isTextMessageEvent=function(event){return exports.isMessageEvent(event)&&event.content instanceof Object&&"msgtype"in event.content&&event.content["msgtype"]===MatrixMessage_1.MatrixMessageType.TEXT}},{"../models/MatrixMessage":38}],44:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.ChromeStorage=void 0;var StorageKeyReturnDefaults_1=require("../types/storage/StorageKeyReturnDefaults");var ChromeStorage=function(){function ChromeStorage(){}ChromeStorage.isSupported=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,typeof window!=="undefined"&&typeof chrome!=="undefined"&&Boolean(chrome)&&Boolean(chrome.runtime)&&Boolean(chrome.runtime.id)]})})};ChromeStorage.prototype.get=function(key){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,new Promise(function(resolve){chrome.storage.local.get(null,function(storageContent){if(storageContent[key]){resolve(storageContent[key])}else{if(typeof StorageKeyReturnDefaults_1.defaultValues[key]==="object"){resolve(JSON.parse(JSON.stringify(StorageKeyReturnDefaults_1.defaultValues[key])))}else{resolve(StorageKeyReturnDefaults_1.defaultValues[key])}}})})]})})};ChromeStorage.prototype.set=function(key,value){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,new Promise(function(resolve){var _a;chrome.storage.local.set((_a={},_a[key]=value,_a),function(){resolve()})})]})})};ChromeStorage.prototype.delete=function(key){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,new Promise(function(resolve){var _a;chrome.storage.local.set((_a={},_a[key]=undefined,_a),function(){resolve()})})]})})};return ChromeStorage}();exports.ChromeStorage=ChromeStorage},{"../types/storage/StorageKeyReturnDefaults":68}],45:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.LocalStorage=void 0;var StorageKeyReturnDefaults_1=require("../types/storage/StorageKeyReturnDefaults");var LocalStorage=function(){function LocalStorage(prefix){this.prefix=prefix}LocalStorage.isSupported=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,Promise.resolve(Boolean(typeof window!=="undefined")&&Boolean(window.localStorage))]})})};LocalStorage.prototype.get=function(key){return __awaiter(this,void 0,void 0,function(){var value;return __generator(this,function(_a){value=localStorage.getItem(this.getPrefixedKey(key));if(!value){if(typeof StorageKeyReturnDefaults_1.defaultValues[key]==="object"){return[2,JSON.parse(JSON.stringify(StorageKeyReturnDefaults_1.defaultValues[key]))]}else{return[2,StorageKeyReturnDefaults_1.defaultValues[key]]}}else{try{return[2,JSON.parse(value)]}catch(jsonParseError){return[2,value]}}return[2]})})};LocalStorage.prototype.set=function(key,value){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(typeof value==="string"){return[2,localStorage.setItem(this.getPrefixedKey(key),value)]}else{return[2,localStorage.setItem(this.getPrefixedKey(key),JSON.stringify(value))]}return[2]})})};LocalStorage.prototype.delete=function(key){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)))]})})};LocalStorage.prototype.getPrefixedKey=function(key){return this.prefix?this.prefix+"-"+key:key};return LocalStorage}();exports.LocalStorage=LocalStorage},{"../types/storage/StorageKeyReturnDefaults":68}],46:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Storage=void 0;var Storage=function(){function Storage(){}Storage.isSupported=function(){return Promise.resolve(false)};return Storage}();exports.Storage=Storage},{}],47:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.getStorage=void 0;var Logger_1=require("../utils/Logger");var __1=require("..");var logger=new Logger_1.Logger("STORAGE");exports.getStorage=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,__1.ChromeStorage.isSupported()];case 1:if(!_a.sent())return[3,2];logger.log("getStorage","USING CHROME STORAGE");return[2,new __1.ChromeStorage];case 2:return[4,__1.LocalStorage.isSupported()];case 3:if(_a.sent()){logger.log("getStorage","USING LOCAL STORAGE");return[2,new __1.LocalStorage]}else{throw new Error("no storage type supported")}_a.label=4;case 4:return[2]}})})}},{"..":24,"../utils/Logger":79}],48:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.DappP2PTransport=void 0;var __1=require("..");var Logger_1=require("../utils/Logger");var logger=new Logger_1.Logger("DappP2PTransport");var DappP2PTransport=function(_super){__extends(DappP2PTransport,_super);function DappP2PTransport(name,keyPair,storage,matrixNodes,iconUrl,appUrl){return _super.call(this,name,keyPair,storage,matrixNodes,__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP,iconUrl,appUrl)||this}DappP2PTransport.prototype.startOpenChannelListener=function(){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){return[2,this.client.listenForChannelOpening(function(peer){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:logger.log("listenForNewPeer","new publicKey",peer.publicKey);return[4,this.addPeer(peer)];case 1:_a.sent();this._isConnected=__1.TransportStatus.CONNECTED;if(this.newPeerListener){this.newPeerListener(peer);this.newPeerListener=undefined}return[2]}})})})]})})};DappP2PTransport.prototype.listenForNewPeer=function(newPeerListener){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("listenForNewPeer");this.newPeerListener=newPeerListener;return[2]})})};DappP2PTransport.prototype.stopListeningForNewPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("stopListeningForNewPeers");this.newPeerListener=undefined;return[2]})})};return DappP2PTransport}(__1.P2PTransport);exports.DappP2PTransport=DappP2PTransport},{"..":24,"../utils/Logger":79}],49:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.DappPostMessageTransport=void 0;var __1=require("..");var Logger_1=require("../utils/Logger");var logger=new Logger_1.Logger("DappPostMessageTransport");var DappPostMessageTransport=function(_super){__extends(DappPostMessageTransport,_super);function DappPostMessageTransport(name,keyPair,storage){return _super.call(this,name,keyPair,storage,__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP)||this}DappPostMessageTransport.prototype.startOpenChannelListener=function(){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){return[2,this.client.listenForChannelOpening(function(peer){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:logger.log("connect","received PostMessagePairingResponse",peer);return[4,this.addPeer(peer)];case 1:_a.sent();this._isConnected=__1.TransportStatus.CONNECTED;if(this.newPeerListener){this.newPeerListener(peer);this.newPeerListener=undefined}return[2]}})})})]})})};DappPostMessageTransport.prototype.listenForNewPeer=function(newPeerListener){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("listenForNewPeer");this.newPeerListener=newPeerListener;return[2]})})};DappPostMessageTransport.prototype.stopListeningForNewPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("stopListeningForNewPeers");this.newPeerListener=undefined;return[2]})})};return DappPostMessageTransport}(__1.PostMessageTransport);exports.DappPostMessageTransport=DappPostMessageTransport},{"..":24,"../utils/Logger":79}],50:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.P2PTransport=void 0;var Logger_1=require("../utils/Logger");var __1=require("..");var PeerManager_1=require("../managers/PeerManager");var logger=new Logger_1.Logger("P2PTransport");var P2PTransport=function(_super){__extends(P2PTransport,_super);function P2PTransport(name,keyPair,storage,matrixNodes,storageKey,iconUrl,appUrl){var _this=_super.call(this,name,new __1.P2PCommunicationClient(name,keyPair,1,storage,matrixNodes,iconUrl,appUrl),new PeerManager_1.PeerManager(storage,storageKey))||this;_this.type=__1.TransportType.P2P;return _this}P2PTransport.isAvailable=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,Promise.resolve(true)]})})};P2PTransport.prototype.connect=function(){return __awaiter(this,void 0,void 0,function(){var knownPeers,connectionPromises;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:if(this._isConnected!==__1.TransportStatus.NOT_CONNECTED){return[2]}logger.log("connect");this._isConnected=__1.TransportStatus.CONNECTING;return[4,this.client.start()];case 1:_a.sent();return[4,this.getPeers()];case 2:knownPeers=_a.sent();if(knownPeers.length>0){logger.log("connect","connecting to "+knownPeers.length+" peers");connectionPromises=knownPeers.map(function(peer){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.listen(peer.publicKey)]})})});Promise.all(connectionPromises).catch(function(error){return logger.error("connect",error)})}return[4,this.startOpenChannelListener()];case 3:_a.sent();return[2,_super.prototype.connect.call(this)]}})})};P2PTransport.prototype.disconnect=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.client.stop()];case 1:_a.sent();return[2,_super.prototype.disconnect.call(this)]}})})};P2PTransport.prototype.startOpenChannelListener=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2]})})};P2PTransport.prototype.getPairingRequestInfo=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.client.getPairingRequestInfo()]})})};P2PTransport.prototype.listen=function(publicKey){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.client.listenForEncryptedMessage(publicKey,function(message){var connectionContext={origin:__1.Origin.P2P,id:publicKey};_this.notifyListeners(message,connectionContext).catch(function(error){throw error})}).catch(function(error){throw error})];case 1:_a.sent();return[2]}})})};return P2PTransport}(__1.Transport);exports.P2PTransport=P2PTransport},{"..":24,"../managers/PeerManager":29,"../utils/Logger":79}],51:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.PostMessageTransport=void 0;var MockWindow_1=require("../MockWindow");var Logger_1=require("../utils/Logger");var PeerManager_1=require("../managers/PeerManager");var exposed_promise_1=require("../utils/exposed-promise");var TransportType_1=require("../types/transport/TransportType");var ExtensionMessageTarget_1=require("../types/ExtensionMessageTarget");var TransportStatus_1=require("../types/transport/TransportStatus");var Origin_1=require("../types/Origin");var PostMessageClient_1=require("./clients/PostMessageClient");var Transport_1=require("./Transport");var logger=new Logger_1.Logger("PostMessageTransport");var extensions;var PostMessageTransport=function(_super){__extends(PostMessageTransport,_super);function PostMessageTransport(name,keyPair,storage,storageKey){var _this=_super.call(this,name,new PostMessageClient_1.PostMessageClient(name,keyPair),new PeerManager_1.PeerManager(storage,storageKey))||this;_this.type=TransportType_1.TransportType.POST_MESSAGE;return _this}PostMessageTransport.isAvailable=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,new Promise(function(resolve){var fn=function(event){var data=event.data;if(data&&data.payload==="pong"){resolve(true);MockWindow_1.windowRef.removeEventListener("message",fn)}};MockWindow_1.windowRef.addEventListener("message",fn);var message={target:ExtensionMessageTarget_1.ExtensionMessageTarget.EXTENSION,payload:"ping"};MockWindow_1.windowRef.postMessage(message,MockWindow_1.windowRef.location.origin)})]})})};PostMessageTransport.getAvailableExtensions=function(){return __awaiter(this,void 0,void 0,function(){var localExtensions;return __generator(this,function(_a){if(extensions){return[2,extensions.promise]}extensions=new exposed_promise_1.ExposedPromise;localExtensions=[];return[2,new Promise(function(resolve){var fn=function(event){var data=event.data;var sender=data.sender;if(data&&data.payload==="pong"&&sender){logger.log("getAvailableExtensions",'extension "'+sender.name+'" is available',sender);if(!localExtensions.some(function(ext){return ext.id===sender.id})){localExtensions.push(sender)}}};MockWindow_1.windowRef.addEventListener("message",fn);setTimeout(function(){MockWindow_1.windowRef.removeEventListener("message",fn);if(extensions){extensions.resolve(localExtensions)}resolve(localExtensions)},1e3);var message={target:ExtensionMessageTarget_1.ExtensionMessageTarget.EXTENSION,payload:"ping"};MockWindow_1.windowRef.postMessage(message,MockWindow_1.windowRef.location.origin)})]})})};PostMessageTransport.prototype.connect=function(){return __awaiter(this,void 0,void 0,function(){var knownPeers,connectionPromises;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:logger.log("connect");if(this._isConnected!==TransportStatus_1.TransportStatus.NOT_CONNECTED){return[2]}this._isConnected=TransportStatus_1.TransportStatus.CONNECTING;return[4,this.getPeers()];case 1:knownPeers=_a.sent();if(knownPeers.length>0){logger.log("connect","connecting to "+knownPeers.length+" peers");connectionPromises=knownPeers.map(function(peer){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.listen(peer.publicKey)]})})});Promise.all(connectionPromises).catch(function(error){return logger.error("connect",error)})}return[4,this.startOpenChannelListener()];case 2:_a.sent();return[4,_super.prototype.connect.call(this)];case 3:_a.sent();return[2]}})})};PostMessageTransport.prototype.startOpenChannelListener=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2]})})};PostMessageTransport.prototype.getPairingRequestInfo=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.client.getPairingRequestInfo()]})})};PostMessageTransport.prototype.listen=function(publicKey){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:logger.log("listen",publicKey);return[4,this.client.listenForEncryptedMessage(publicKey,function(message,context){var connectionContext={origin:Origin_1.Origin.EXTENSION,id:context.id};_this.notifyListeners(message,connectionContext).catch(function(error){throw error})}).catch(function(error){throw error})];case 1:_a.sent();return[2]}})})};return PostMessageTransport}(Transport_1.Transport);exports.PostMessageTransport=PostMessageTransport},{"../MockWindow":1,"../managers/PeerManager":29,"../types/ExtensionMessageTarget":61,"../types/Origin":62,"../types/transport/TransportStatus":70,"../types/transport/TransportType":71,"../utils/Logger":79,"../utils/exposed-promise":84,"./Transport":52,"./clients/PostMessageClient":58}],52:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.Transport=void 0;var Logger_1=require("../utils/Logger");var __1=require("..");var logger=new Logger_1.Logger("Transport");var Transport=function(){function Transport(name,client,peerManager){this.type=__1.TransportType.POST_MESSAGE;this._isConnected=__1.TransportStatus.NOT_CONNECTED;this.listeners=[];this.name=name;this.client=client;this.peerManager=peerManager}Object.defineProperty(Transport.prototype,"connectionStatus",{get:function(){return this._isConnected},enumerable:false,configurable:true});Transport.isAvailable=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,Promise.resolve(false)]})})};Transport.prototype.connect=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("connect");this._isConnected=__1.TransportStatus.CONNECTED;return[2]})})};Transport.prototype.disconnect=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("disconnect");this._isConnected=__1.TransportStatus.NOT_CONNECTED;return[2]})})};Transport.prototype.send=function(message,peer){return __awaiter(this,void 0,void 0,function(){var knownPeers,promises;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:if(!peer)return[3,1];return[2,this.client.sendMessage(message,peer)];case 1:return[4,this.getPeers()];case 2:knownPeers=_a.sent();promises=knownPeers.map(function(peerEl){return _this.client.sendMessage(message,peerEl)});return[4,Promise.all(promises)];case 3:return[2,_a.sent()[0]]}})})};Transport.prototype.addListener=function(listener){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.debug("addListener",listener);this.listeners.push(listener);return[2]})})};Transport.prototype.removeListener=function(listener){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("removeListener");this.listeners=this.listeners.filter(function(element){return element!==listener});return[2]})})};Transport.prototype.getPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.peerManager.getPeers()]})})};Transport.prototype.addPeer=function(newPeer){return __awaiter(this,void 0,void 0,function(){var peer;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.peerManager.getPeer(newPeer.publicKey)];case 1:peer=_a.sent();if(!!peer)return[3,4];logger.log("addPeer","adding peer",newPeer);return[4,this.peerManager.addPeer(newPeer)];case 2:_a.sent();return[4,this.listen(newPeer.publicKey)];case 3:_a.sent();return[3,8];case 4:if(!(peer.relayServer!==newPeer.relayServer))return[3,7];logger.log("addPeer","updating peer",newPeer);return[4,this.peerManager.addPeer(newPeer)];case 5:_a.sent();return[4,this.listen(newPeer.publicKey)];case 6:_a.sent();return[3,8];case 7:logger.log("addPeer","peer already added, skipping",newPeer);_a.label=8;case 8:return[2]}})})};Transport.prototype.removePeer=function(peerToBeRemoved){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:logger.log("removePeer","",peerToBeRemoved);return[4,this.peerManager.removePeer(peerToBeRemoved.publicKey)];case 1:_a.sent();if(!this.client)return[3,3];return[4,this.client.unsubscribeFromEncryptedMessage(peerToBeRemoved.publicKey)];case 2:_a.sent();_a.label=3;case 3:return[2]}})})};Transport.prototype.removeAllPeers=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:logger.log("removeAllPeers");return[4,this.peerManager.removeAllPeers()];case 1:_a.sent();if(!this.client)return[3,3];return[4,this.client.unsubscribeFromEncryptedMessages()];case 2:_a.sent();_a.label=3;case 3:return[2]}})})};Transport.prototype.notifyListeners=function(message,connectionInfo){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){if(this.listeners.length===0){logger.warn("notifyListeners","0 listeners notified!",this)}else{logger.log("notifyListeners","Notifying "+this.listeners.length+" listeners",this)}this.listeners.forEach(function(listener){listener(message,connectionInfo)});return[2]})})};return Transport}();exports.Transport=Transport},{"..":24,"../utils/Logger":79}],53:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.WalletP2PTransport=void 0;var __1=require("..");var WalletP2PTransport=function(_super){__extends(WalletP2PTransport,_super);function WalletP2PTransport(name,keyPair,storage,matrixNodes,iconUrl,appUrl){return _super.call(this,name,keyPair,storage,matrixNodes,__1.StorageKey.TRANSPORT_P2P_PEERS_WALLET,iconUrl,appUrl)||this}WalletP2PTransport.prototype.addPeer=function(newPeer){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,_super.prototype.addPeer.call(this,newPeer)];case 1:_a.sent();return[4,this.client.sendPairingResponse(newPeer)];case 2:_a.sent();return[2]}})})};return WalletP2PTransport}(__1.P2PTransport);exports.WalletP2PTransport=WalletP2PTransport},{"..":24}],54:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,"__esModule",{value:true});exports.WalletPostMessageTransport=void 0;var __1=require("..");var WalletPostMessageTransport=function(_super){__extends(WalletPostMessageTransport,_super);function WalletPostMessageTransport(name,keyPair,storage){return _super.call(this,name,keyPair,storage,__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET)||this}return WalletPostMessageTransport}(__1.PostMessageTransport);exports.WalletPostMessageTransport=WalletPostMessageTransport},{"..":24}],55:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.CommunicationClient=void 0;var sodium=require("libsodium-wrappers");var crypto_1=require("../../utils/crypto");var CommunicationClient=function(){function CommunicationClient(keyPair){this.keyPair=keyPair}CommunicationClient.prototype.getPublicKey=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,crypto_1.toHex(this.keyPair.publicKey)]})})};CommunicationClient.prototype.getPublicKeyHash=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,crypto_1.getHexHash(this.keyPair.publicKey)]})})};CommunicationClient.prototype.createCryptoBox=function(otherPublicKey,selfPrivateKey){return __awaiter(this,void 0,void 0,function(){var kxSelfPrivateKey,kxSelfPublicKey,kxOtherPublicKey;return __generator(this,function(_a){kxSelfPrivateKey=sodium.crypto_sign_ed25519_sk_to_curve25519(Buffer.from(selfPrivateKey));kxSelfPublicKey=sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(selfPrivateKey).slice(32,64));kxOtherPublicKey=sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(otherPublicKey,"hex"));return[2,[Buffer.from(kxSelfPublicKey),Buffer.from(kxSelfPrivateKey),Buffer.from(kxOtherPublicKey)]]})})};CommunicationClient.prototype.createCryptoBoxServer=function(otherPublicKey,selfPrivateKey){return __awaiter(this,void 0,void 0,function(){var keys;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createCryptoBox(otherPublicKey,selfPrivateKey)];case 1:keys=_a.sent();return[2,sodium.crypto_kx_server_session_keys.apply(sodium,keys)]}})})};CommunicationClient.prototype.createCryptoBoxClient=function(otherPublicKey,selfPrivateKey){return __awaiter(this,void 0,void 0,function(){var keys;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createCryptoBox(otherPublicKey,selfPrivateKey)];case 1:keys=_a.sent();return[2,sodium.crypto_kx_client_session_keys.apply(sodium,keys)]}})})};CommunicationClient.prototype.encryptMessageAsymmetric=function(recipientPublicKey,message){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,crypto_1.sealCryptobox(message,Buffer.from(recipientPublicKey,"hex"))]})})};return CommunicationClient}();exports.CommunicationClient=CommunicationClient}).call(this,require("buffer").Buffer)},{"../../utils/crypto":83,buffer:185,"libsodium-wrappers":248}],56:[function(require,module,exports){(function(Buffer){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.MessageBasedClient=void 0;var sodium=require("libsodium-wrappers");var constants_1=require("../../constants");var crypto_1=require("../../utils/crypto");var generate_uuid_1=require("../../utils/generate-uuid");var CommunicationClient_1=require("./CommunicationClient");var MessageBasedClient=function(_super){__extends(MessageBasedClient,_super);function MessageBasedClient(name,keyPair){var _this=_super.call(this,keyPair)||this;_this.name=name;_this.activeListeners=new Map;_this.init().catch(console.error);return _this}MessageBasedClient.prototype.start=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();return[2]}})})};MessageBasedClient.prototype.getPairingRequestInfo=function(){return __awaiter(this,void 0,void 0,function(){var _a;return __generator(this,function(_b){switch(_b.label){case 0:_a={};return[4,generate_uuid_1.generateGUID()];case 1:_a.id=_b.sent(),_a.type="postmessage-pairing-request",_a.name=this.name,_a.version=constants_1.BEACON_VERSION;return[4,this.getPublicKey()];case 2:return[2,(_a.publicKey=_b.sent(),_a)]}})})};MessageBasedClient.prototype.getPairingResponseInfo=function(request){return __awaiter(this,void 0,void 0,function(){var _a;return __generator(this,function(_b){switch(_b.label){case 0:_a={id:request.id,type:"postmessage-pairing-response",name:this.name,version:constants_1.BEACON_VERSION};return[4,this.getPublicKey()];case 1:return[2,(_a.publicKey=_b.sent(),_a)]}})})};MessageBasedClient.prototype.unsubscribeFromEncryptedMessage=function(senderPublicKey){return __awaiter(this,void 0,void 0,function(){var listener;return __generator(this,function(_a){listener=this.activeListeners.get(senderPublicKey);if(!listener){return[2]}this.activeListeners.delete(senderPublicKey);return[2]})})};MessageBasedClient.prototype.unsubscribeFromEncryptedMessages=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){this.activeListeners.clear();return[2]})})};MessageBasedClient.prototype.decryptMessage=function(senderPublicKey,payload){return __awaiter(this,void 0,void 0,function(){var sharedRx,hexPayload,decryptionError_1;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createCryptoBoxServer(senderPublicKey,this.keyPair.privateKey)];case 1:sharedRx=_a.sent().sharedRx;hexPayload=Buffer.from(payload,"hex");if(!(hexPayload.length>=sodium.crypto_secretbox_NONCEBYTES+sodium.crypto_secretbox_MACBYTES))return[3,5];_a.label=2;case 2:_a.trys.push([2,4,,5]);return[4,crypto_1.decryptCryptoboxPayload(hexPayload,sharedRx)];case 3:return[2,_a.sent()];case 4:decryptionError_1=_a.sent();return[3,5];case 5:throw new Error("Could not decrypt message")}})})};MessageBasedClient.prototype.encryptMessage=function(recipientPublicKey,message){return __awaiter(this,void 0,void 0,function(){var sharedTx;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createCryptoBoxClient(recipientPublicKey,this.keyPair.privateKey)];case 1:sharedTx=_a.sent().sharedTx;return[2,crypto_1.encryptCryptoboxPayload(message,sharedTx)]}})})};return MessageBasedClient}(CommunicationClient_1.CommunicationClient);exports.MessageBasedClient=MessageBasedClient}).call(this,require("buffer").Buffer)},{"../../constants":9,"../../utils/crypto":83,"../../utils/generate-uuid":85,"./CommunicationClient":55,buffer:185,"libsodium-wrappers":248}],57:[function(require,module,exports){(function(Buffer){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.P2PCommunicationClient=void 0;var sodium=require("libsodium-wrappers");var axios_1=require("axios");var crypto_1=require("../../utils/crypto");var MatrixClient_1=require("../../matrix-client/MatrixClient");var MatrixClientEvent_1=require("../../matrix-client/models/MatrixClientEvent");var MatrixMessage_1=require("../../matrix-client/models/MatrixMessage");var __1=require("../..");var constants_1=require("../../constants");var generate_uuid_1=require("../../utils/generate-uuid");var get_sender_id_1=require("../../utils/get-sender-id");var Logger_1=require("../../utils/Logger");var CommunicationClient_1=require("./CommunicationClient");var exposed_promise_1=require("../../utils/exposed-promise");var logger=new Logger_1.Logger("P2PCommunicationClient");var KNOWN_RELAY_SERVERS=["matrix.papers.tech","beacon-node-0.papers.tech:8448"];var publicKeyToNumber=function(arr,mod){var sum=0;for(var i=0;i<arr.length;i++){sum+=arr[i]+i}return Math.floor(sum%mod)};var P2PCommunicationClient=function(_super){__extends(P2PCommunicationClient,_super);function P2PCommunicationClient(name,keyPair,replicationCount,storage,matrixNodes,iconUrl,appUrl){var _this=_super.call(this,keyPair)||this;_this.name=name;_this.replicationCount=replicationCount;_this.storage=storage;_this.iconUrl=iconUrl;_this.appUrl=appUrl;_this.client=new exposed_promise_1.ExposedPromise;_this.activeListeners=new Map;_this.ignoredRooms=[];_this.loginCounter=0;logger.log("constructor","P2PCommunicationClient created");_this.KNOWN_RELAY_SERVERS=matrixNodes.length>0?matrixNodes:KNOWN_RELAY_SERVERS;return _this}P2PCommunicationClient.prototype.getPairingRequestInfo=function(){return __awaiter(this,void 0,void 0,function(){var info,_a;return __generator(this,function(_b){switch(_b.label){case 0:_a={};return[4,generate_uuid_1.generateGUID()];case 1:_a.id=_b.sent(),_a.type="p2p-pairing-request",_a.name=this.name,_a.version=constants_1.BEACON_VERSION;return[4,this.getPublicKey()];case 2:_a.publicKey=_b.sent();return[4,this.getRelayServer()];case 3:info=(_a.relayServer=_b.sent(),_a);if(this.iconUrl){info.icon=this.iconUrl}if(this.appUrl){info.appUrl=this.appUrl}return[2,info]}})})};P2PCommunicationClient.prototype.getPairingResponseInfo=function(request){return __awaiter(this,void 0,void 0,function(){var info,_a;return __generator(this,function(_b){switch(_b.label){case 0:_a={id:request.id,type:"p2p-pairing-response",name:this.name,version:constants_1.BEACON_VERSION};return[4,this.getPublicKey()];case 1:_a.publicKey=_b.sent();return[4,this.getRelayServer()];case 2:info=(_a.relayServer=_b.sent(),_a);if(this.iconUrl){info.icon=this.iconUrl}if(this.appUrl){info.appUrl=this.appUrl}return[2,info]}})})};P2PCommunicationClient.prototype.getRelayServer=function(){return __awaiter(this,void 0,void 0,function(){var node,hasDoneMigration,preservedState,node_1,startIndex,offset,serverIndex,server,relayError_1;return __generator(this,function(_a){switch(_a.label){case 0:if(this.relayServer){return[2,this.relayServer.promise]}else{this.relayServer=new exposed_promise_1.ExposedPromise}return[4,this.storage.get(__1.StorageKey.MATRIX_SELECTED_NODE)];case 1:node=_a.sent();if(!(node&&node.length>0))return[3,2];this.relayServer.resolve(node);return[2,node];case 2:if(!(KNOWN_RELAY_SERVERS===this.KNOWN_RELAY_SERVERS))return[3,5];return[4,this.storage.get(__1.StorageKey.MULTI_NODE_SETUP_DONE)];case 3:hasDoneMigration=_a.sent();if(!!hasDoneMigration)return[3,5];return[4,this.storage.get(__1.StorageKey.MATRIX_PRESERVED_STATE)];case 4:preservedState=_a.sent();console.log("PRESERVED STATE",preservedState);if(preservedState.syncToken||preservedState.rooms){node_1="matrix.papers.tech";this.storage.set(__1.StorageKey.MATRIX_SELECTED_NODE,node_1).catch(function(error){return logger.log(error)});this.relayServer.resolve(node_1);return[2,node_1]}this.storage.set(__1.StorageKey.MULTI_NODE_SETUP_DONE,true).catch(function(error){return logger.log(error)});_a.label=5;case 5:console.log("GET RELAY SERVER");startIndex=publicKeyToNumber(this.keyPair.publicKey,this.KNOWN_RELAY_SERVERS.length);offset=0;_a.label=6;case 6:if(!(offset<this.KNOWN_RELAY_SERVERS.length))return[3,11];serverIndex=(startIndex+offset)%this.KNOWN_RELAY_SERVERS.length;server=this.KNOWN_RELAY_SERVERS[serverIndex];_a.label=7;case 7:_a.trys.push([7,9,,10]);return[4,axios_1.default.get("https://"+server+"/_matrix/client/versions")];case 8:_a.sent();this.storage.set(__1.StorageKey.MATRIX_SELECTED_NODE,server).catch(function(error){return logger.log(error)});this.relayServer.resolve(server);return[2,server];case 9:relayError_1=_a.sent();logger.log('Ignoring server "'+server+'", trying another one...');offset++;return[3,10];case 10:return[3,6];case 11:this.relayServer.reject("No matrix server reachable!");throw new Error("No matrix server reachable!")}})})};P2PCommunicationClient.prototype.tryJoinRooms=function(roomId,retry){if(retry===void 0){retry=1}return __awaiter(this,void 0,void 0,function(){var error_1;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:_a.trys.push([0,3,,4]);return[4,this.client.promise];case 1:return[4,_a.sent().joinRooms(roomId)];case 2:_a.sent();return[3,4];case 3:error_1=_a.sent();if(retry<=10&&error_1.errcode==="M_FORBIDDEN"){logger.log("Retrying to join...",error_1);setTimeout(function(){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.tryJoinRooms(roomId,retry+1)];case 1:_a.sent();return[2]}})})},200)}else{logger.log("Failed to join after "+retry+" tries.",error_1)}return[3,4];case 4:return[2]}})})};P2PCommunicationClient.prototype.start=function(){return __awaiter(this,void 0,void 0,function(){var loginRawDigest,rawSignature,relayServer,client,_a,_b,_c,_d,_e,_f,_g,error_2;var _this=this;return __generator(this,function(_h){switch(_h.label){case 0:logger.log("start","starting client");return[4,sodium.ready];case 1:_h.sent();loginRawDigest=sodium.crypto_generichash(32,sodium.from_string("login:"+Math.floor(Date.now()/1e3/(5*60))));rawSignature=sodium.crypto_sign_detached(loginRawDigest,this.keyPair.privateKey);logger.log("start","connecting to server");return[4,this.getRelayServer()];case 2:relayServer=_h.sent();client=MatrixClient_1.MatrixClient.create({baseUrl:"https://"+relayServer,storage:this.storage});this.initialListener=function(event){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){if(this.initialEvent&&this.initialEvent.timestamp&&event&&event.timestamp){if(this.initialEvent.timestamp<event.timestamp){this.initialEvent=event}}else{this.initialEvent=event}return[2]})})};client.subscribe(MatrixClientEvent_1.MatrixClientEventType.MESSAGE,this.initialListener);client.subscribe(MatrixClientEvent_1.MatrixClientEventType.INVITE,function(event){return __awaiter(_this,void 0,void 0,function(){var member;return __generator(this,function(_a){switch(_a.label){case 0:if(event.content.members.length===1){member=event.content.members[0]}return[4,this.tryJoinRooms(event.content.roomId)];case 1:_a.sent();if(!member)return[3,4];return[4,this.updateRelayServer(member)];case 2:_a.sent();return[4,this.updatePeerRoom(member,event.content.roomId)];case 3:_a.sent();_a.label=4;case 4:return[2]}})})});_b=(_a=logger).log;_c=["start","login"];return[4,this.getPublicKeyHash()];case 3:_b.apply(_a,_c.concat([_h.sent(),"on",relayServer]));_h.label=4;case 4:_h.trys.push([4,8,,10]);_e=(_d=client).start;_f={};return[4,this.getPublicKeyHash()];case 5:_f.id=_h.sent();_g="ed:"+crypto_1.toHex(rawSignature)+":";return[4,this.getPublicKey()];case 6:return[4,_e.apply(_d,[(_f.password=_g+_h.sent(),_f.deviceId=crypto_1.toHex(this.keyPair.publicKey),_f)])];case 7:_h.sent();return[3,10];case 8:error_2=_h.sent();console.log("ERROR, RETRYING");return[4,this.reset()];case 9:_h.sent();console.log("TRYING AGAIN");if(this.loginCounter<=this.KNOWN_RELAY_SERVERS.length){this.loginCounter++;this.start();return[2]}else{throw new Error("Too many login attempts. Try again later.")}return[3,10];case 10:console.log("client is ready");this.client.resolve(client);return[2]}})})};P2PCommunicationClient.prototype.stop=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!this.client.isResolved())return[3,3];return[4,this.client.promise];case 1:return[4,_a.sent().stop().catch(function(error){return logger.error(error)})];case 2:_a.sent();_a.label=3;case 3:return[4,this.reset()];case 4:_a.sent();return[2]}})})};P2PCommunicationClient.prototype.reset=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.delete(__1.StorageKey.MATRIX_PEER_ROOM_IDS).catch(function(error){return logger.log(error)})];case 1:_a.sent();return[4,this.storage.delete(__1.StorageKey.MATRIX_PRESERVED_STATE).catch(function(error){return logger.log(error)})];case 2:_a.sent();return[4,this.storage.delete(__1.StorageKey.MATRIX_SELECTED_NODE).catch(function(error){return logger.log(error)})];case 3:_a.sent();this.relayServer=undefined;this.client=new exposed_promise_1.ExposedPromise;this.initialEvent=undefined;this.initialListener=undefined;return[2]}})})};P2PCommunicationClient.prototype.listenForEncryptedMessage=function(senderPublicKey,messageCallback){return __awaiter(this,void 0,void 0,function(){var sharedRx,callbackFunction,lastEvent,initialListener;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:if(this.activeListeners.has(senderPublicKey)){return[2]}return[4,this.createCryptoBoxServer(senderPublicKey,this.keyPair.privateKey)];case 1:sharedRx=_a.sent().sharedRx;callbackFunction=function(event){return __awaiter(_this,void 0,void 0,function(){var _a,payload,decryptedMessage,decryptionError_1;return __generator(this,function(_b){switch(_b.label){case 0:_a=this.isTextMessage(event.content);if(!_a)return[3,2];return[4,this.isSender(event,senderPublicKey)];case 1:_a=_b.sent();_b.label=2;case 2:if(!_a)return[3,8];payload=void 0;return[4,this.updateRelayServer(event.content.message.sender)];case 3:_b.sent();return[4,this.updatePeerRoom(event.content.message.sender,event.content.roomId)];case 4:_b.sent();try{payload=Buffer.from(event.content.message.content,"hex")}catch(_c){}if(!(payload&&payload.length>=sodium.crypto_secretbox_NONCEBYTES+sodium.crypto_secretbox_MACBYTES))return[3,8];_b.label=5;case 5:_b.trys.push([5,7,,8]);return[4,crypto_1.decryptCryptoboxPayload(payload,sharedRx)];case 6:decryptedMessage=_b.sent();messageCallback(decryptedMessage);return[3,8];case 7:decryptionError_1=_b.sent();return[3,8];case 8:return[2]}})})};this.activeListeners.set(senderPublicKey,callbackFunction);return[4,this.client.promise];case 2:_a.sent().subscribe(MatrixClientEvent_1.MatrixClientEventType.MESSAGE,callbackFunction);lastEvent=this.initialEvent;if(!(lastEvent&&lastEvent.timestamp&&(new Date).getTime()-lastEvent.timestamp<5*60*1e3))return[3,4];logger.log("listenForEncryptedMessage","Handling previous event");return[4,callbackFunction(lastEvent)];case 3:_a.sent();return[3,5];case 4:logger.log("listenForEncryptedMessage","No previous event found");_a.label=5;case 5:initialListener=this.initialListener;if(!initialListener)return[3,7];return[4,this.client.promise];case 6:_a.sent().unsubscribe(MatrixClientEvent_1.MatrixClientEventType.MESSAGE,initialListener);_a.label=7;case 7:this.initialListener=undefined;this.initialEvent=undefined;return[2]}})})};P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessage=function(senderPublicKey){return __awaiter(this,void 0,void 0,function(){var listener;return __generator(this,function(_a){switch(_a.label){case 0:listener=this.activeListeners.get(senderPublicKey);if(!listener){return[2]};return[4,this.client.promise];case 1:_a.sent().unsubscribe(MatrixClientEvent_1.MatrixClientEventType.MESSAGE,listener);this.activeListeners.delete(senderPublicKey);return[2]}})})};P2PCommunicationClient.prototype.unsubscribeFromEncryptedMessages=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:;return[4,this.client.promise];case 1:_a.sent().unsubscribeAll(MatrixClientEvent_1.MatrixClientEventType.MESSAGE);this.activeListeners.clear();return[2]}})})};P2PCommunicationClient.prototype.sendMessage=function(message,peer){return __awaiter(this,void 0,void 0,function(){var sharedTx,recipientHash,recipient,roomId,encryptedMessage;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.createCryptoBoxClient(peer.publicKey,this.keyPair.privateKey)];case 1:sharedTx=_a.sent().sharedTx;return[4,crypto_1.getHexHash(Buffer.from(peer.publicKey,"hex"))];case 2:recipientHash=_a.sent();recipient=crypto_1.recipientString(recipientHash,peer.relayServer);return[4,this.getRelevantRoom(recipient)];case 3:roomId=_a.sent();return[4,this.waitForJoin(roomId)];case 4:_a.sent();return[4,crypto_1.encryptCryptoboxPayload(message,sharedTx)];case 5:encryptedMessage=_a.sent();return[4,this.client.promise];case 6:_a.sent().sendTextMessage(roomId,encryptedMessage).catch(function(error){return __awaiter(_this,void 0,void 0,function(){var newRoomId;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:if(!(error.errcode==="M_FORBIDDEN"))return[3,4];logger.log("sendMessage","M_FORBIDDEN",error);return[4,this.deleteRoomIdFromRooms(roomId)];case 1:_a.sent();return[4,this.getRelevantRoom(recipient)];case 2:newRoomId=_a.sent();return[4,this.client.promise];case 3:_a.sent().sendTextMessage(newRoomId,encryptedMessage).catch(function(error2){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("sendMessage","inner error",error2);return[2]})})});return[3,5];case 4:logger.log("sendMessage","not forbidden",error);_a.label=5;case 5:return[2]}})})});return[2]}})})};P2PCommunicationClient.prototype.updatePeerRoom=function(sender,roomId){return __awaiter(this,void 0,void 0,function(){var split,roomIds,room;return __generator(this,function(_a){switch(_a.label){case 0:split=sender.split(":");if(split.length<2||!split[0].startsWith("@")){throw new Error("Invalid sender")}return[4,this.storage.get(__1.StorageKey.MATRIX_PEER_ROOM_IDS)];case 1:roomIds=_a.sent();room=roomIds[sender];if(room&&room[1]){this.ignoredRooms.push(room[1])}roomIds[sender]=roomId;return[4,this.storage.set(__1.StorageKey.MATRIX_PEER_ROOM_IDS,roomIds)];case 2:_a.sent();return[2]}})})};P2PCommunicationClient.prototype.deleteRoomIdFromRooms=function(roomId){return __awaiter(this,void 0,void 0,function(){var roomIds,newRoomIds;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(__1.StorageKey.MATRIX_PEER_ROOM_IDS)];case 1:roomIds=_a.sent();newRoomIds=Object.entries(roomIds).filter(function(entry){return entry[1]!==roomId}).reduce(function(pv,cv){var _a;return __assign(__assign({},pv),(_a={},_a[cv[0]]=cv[1],_a))},{});return[4,this.storage.set(__1.StorageKey.MATRIX_PEER_ROOM_IDS,newRoomIds)];case 2:_a.sent();this.ignoredRooms.push(roomId);return[2]}})})};P2PCommunicationClient.prototype.listenForChannelOpening=function(messageCallback){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:;return[4,this.client.promise];case 1:_a.sent().subscribe(MatrixClientEvent_1.MatrixClientEventType.MESSAGE,function(event){return __awaiter(_this,void 0,void 0,function(){var _a,splits,payload,pairingResponse,_b,_c,_d,_e,_f,decryptionError_2;return __generator(this,function(_g){switch(_g.label){case 0:_a=this.isTextMessage(event.content);if(!_a)return[3,2];return[4,this.isChannelOpenMessage(event.content)];case 1:_a=_g.sent();_g.label=2;case 2:if(!_a)return[3,9];logger.log("listenForChannelOpening","channel opening",JSON.stringify(event));return[4,this.updateRelayServer(event.content.message.sender)];case 3:_g.sent();return[4,this.updatePeerRoom(event.content.message.sender,event.content.roomId)];case 4:_g.sent();splits=event.content.message.content.split(":");payload=Buffer.from(splits[splits.length-1],"hex");if(!(payload.length>=sodium.crypto_secretbox_NONCEBYTES+sodium.crypto_secretbox_MACBYTES))return[3,9];_g.label=5;case 5:_g.trys.push([5,8,,9]);_c=(_b=JSON).parse;return[4,crypto_1.openCryptobox(payload,this.keyPair.publicKey,this.keyPair.privateKey)];case 6:pairingResponse=_c.apply(_b,[_g.sent()]);_d=messageCallback;_e=[__assign({},pairingResponse)];_f={};return[4,get_sender_id_1.getSenderId(pairingResponse.publicKey)];case 7:_d.apply(void 0,[__assign.apply(void 0,_e.concat([(_f.senderId=_g.sent(),_f)]))]);return[3,9];case 8:decryptionError_2=_g.sent();return[3,9];case 9:return[2]}})})});return[2]}})})};P2PCommunicationClient.prototype.waitForJoin=function(roomId,retry){if(retry===void 0){retry=0}return __awaiter(this,void 0,void 0,function(){var room;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.client.promise];case 1:return[4,_a.sent().getRoomById(roomId)];case 2:room=_a.sent();logger.log("waitForJoin","Currently "+room.members.length+" members, we need at least 2");if(room.members.length>=2||room.members.length===0){return[2]}else{if(retry<=200){logger.log("Waiting for join... Try: "+retry);return[2,new Promise(function(resolve){setTimeout(function(){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){resolve(this.waitForJoin(roomId,retry+1));return[2]})})},100*(retry>50?10:1))})]}else{throw new Error("No one joined after "+retry+" tries.")}}return[2]}})})};P2PCommunicationClient.prototype.sendPairingResponse=function(pairingRequest){return __awaiter(this,void 0,void 0,function(){var recipientHash,recipient,roomId,message,_a,_b,_c,encryptedMessage,msg;var _this=this;return __generator(this,function(_d){switch(_d.label){case 0:logger.log("sendPairingResponse");return[4,crypto_1.getHexHash(Buffer.from(pairingRequest.publicKey,"hex"))];case 1:recipientHash=_d.sent();recipient=crypto_1.recipientString(recipientHash,pairingRequest.relayServer);return[4,this.client.promise];case 2:return[4,_d.sent().createTrustedPrivateRoom(recipient)];case 3:roomId=_d.sent();return[4,this.updatePeerRoom(recipient,roomId)];case 4:_d.sent();return[4,this.waitForJoin(roomId)];case 5:_d.sent();if(!(typeof pairingRequest.version==="undefined"))return[3,7];return[4,this.getPublicKey()];case 6:_a=_d.sent();return[3,9];case 7:_c=(_b=JSON).stringify;return[4,this.getPairingResponseInfo(pairingRequest)];case 8:_a=_c.apply(_b,[_d.sent()]);_d.label=9;case 9:message=_a;return[4,this.encryptMessageAsymmetric(pairingRequest.publicKey,message)];case 10:encryptedMessage=_d.sent();msg=["@channel-open",recipient,encryptedMessage].join(":");return[4,this.client.promise];case 11:_d.sent().sendTextMessage(roomId,msg).catch(function(error){return __awaiter(_this,void 0,void 0,function(){var newRoomId;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:if(!(error.errcode==="M_FORBIDDEN"))return[3,4];logger.log("sendMessage","M_FORBIDDEN",error);return[4,this.deleteRoomIdFromRooms(roomId)];case 1:_a.sent();return[4,this.getRelevantRoom(recipient)];case 2:newRoomId=_a.sent();return[4,this.client.promise];case 3:_a.sent().sendTextMessage(newRoomId,msg).catch(function(error2){return __awaiter(_this,void 0,void 0,function(){return __generator(this,function(_a){logger.log("sendMessage","inner error",error2);return[2]})})});return[3,5];case 4:logger.log("sendMessage","not forbidden",error);_a.label=5;case 5:return[2]}})})});return[2]}})})};P2PCommunicationClient.prototype.isTextMessage=function(content){return content.message.type===MatrixMessage_1.MatrixMessageType.TEXT};P2PCommunicationClient.prototype.updateRelayServer=function(sender){return __awaiter(this,void 0,void 0,function(){var split,senderHash,relayServer,manager,peers,promiseArray;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:split=sender.split(":");if(split.length<2||!split[0].startsWith("@")){throw new Error("Invalid sender")}senderHash=split.shift();relayServer=split.join(":");manager=localStorage.getItem("beacon:communication-peers-dapp")?new __1.PeerManager(this.storage,__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP):new __1.PeerManager(this.storage,__1.StorageKey.TRANSPORT_P2P_PEERS_WALLET);return[4,manager.getPeers()];case 1:peers=_a.sent();promiseArray=peers.map(function(peer){return __awaiter(_this,void 0,void 0,function(){var hash,_a;return __generator(this,function(_b){switch(_b.label){case 0:_a="@";return[4,crypto_1.getHexHash(Buffer.from(peer.publicKey,"hex"))];case 1:hash=_a+_b.sent();if(!(hash===senderHash))return[3,3];if(!(peer.relayServer!==relayServer))return[3,3];peer.relayServer=relayServer;return[4,manager.addPeer(peer)];case 2:_b.sent();_b.label=3;case 3:return[2]}})})});return[4,Promise.all(promiseArray)];case 2:_a.sent();return[2]}})})};P2PCommunicationClient.prototype.isChannelOpenMessage=function(content){return __awaiter(this,void 0,void 0,function(){var _a,_b,_c,_d,_e,_f;return __generator(this,function(_g){switch(_g.label){case 0:_b=(_a=content.message.content).startsWith;_c="@channel-open:@";_d=crypto_1.getHexHash;_f=(_e=Buffer).from;return[4,this.getPublicKey()];case 1:return[4,_d.apply(void 0,[_f.apply(_e,[_g.sent(),"hex"])])];case 2:return[2,_b.apply(_a,[_c+_g.sent()])]}})})};P2PCommunicationClient.prototype.isSender=function(event,senderPublicKey){return __awaiter(this,void 0,void 0,function(){var _a,_b,_c;return __generator(this,function(_d){switch(_d.label){case 0:_b=(_a=event.content.message.sender).startsWith;_c="@";return[4,crypto_1.getHexHash(Buffer.from(senderPublicKey,"hex"))];case 1:return[2,_b.apply(_a,[_c+_d.sent()])]}})})};P2PCommunicationClient.prototype.getRelevantRoom=function(recipient){return __awaiter(this,void 0,void 0,function(){var roomIds,roomId,room;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.storage.get(__1.StorageKey.MATRIX_PEER_ROOM_IDS)];case 1:roomIds=_a.sent();roomId=roomIds[recipient];if(!!roomId)return[3,4];logger.log("getRelevantRoom","No room found for peer "+recipient+", checking joined ones.");return[4,this.getRelevantJoinedRoom(recipient)];case 2:room=_a.sent();roomId=room.id;roomIds[recipient]=room.id;return[4,this.storage.set(__1.StorageKey.MATRIX_PEER_ROOM_IDS,roomIds)];case 3:_a.sent();_a.label=4;case 4:logger.log("getRelevantRoom","Using room "+roomId);return[2,roomId]}})})};P2PCommunicationClient.prototype.getRelevantJoinedRoom=function(recipient){return __awaiter(this,void 0,void 0,function(){var joinedRooms,relevantRooms,room,roomId;var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.client.promise];case 1:return[4,_a.sent().joinedRooms];case 2:joinedRooms=_a.sent();logger.log("checking joined rooms",joinedRooms,recipient);relevantRooms=joinedRooms.filter(function(roomElement){return!_this.ignoredRooms.some(function(id){return roomElement.id===id})}).filter(function(roomElement){return roomElement.members.some(function(member){return member===recipient})});if(!(relevantRooms.length===0||this.ignoredRooms.length>0))return[3,8];logger.log("getRelevantJoinedRoom","no relevant rooms found, creating new one");return[4,this.client.promise];case 3:return[4,_a.sent().createTrustedPrivateRoom(recipient)];case 4:roomId=_a.sent();return[4,this.client.promise];case 5:return[4,_a.sent().getRoomById(roomId)];case 6:room=_a.sent();logger.log("getRelevantJoinedRoom","waiting for other party to join room: "+room.id);return[4,this.waitForJoin(roomId)];case 7:_a.sent();logger.log("getRelevantJoinedRoom","new room created and peer invited: "+room.id);return[3,9];case 8:room=relevantRooms[0];logger.log("getRelevantJoinedRoom","channel already open, reusing room "+room.id);_a.label=9;case 9:return[2,room]}})})};return P2PCommunicationClient}(CommunicationClient_1.CommunicationClient);exports.P2PCommunicationClient=P2PCommunicationClient}).call(this,require("buffer").Buffer)},{"../..":24,"../../constants":9,"../../matrix-client/MatrixClient":33,"../../matrix-client/models/MatrixClientEvent":37,"../../matrix-client/models/MatrixMessage":38,"../../utils/Logger":79,"../../utils/crypto":83,"../../utils/exposed-promise":84,"../../utils/generate-uuid":85,"../../utils/get-sender-id":87,"./CommunicationClient":55,axios:110,buffer:185,"libsodium-wrappers":248}],58:[function(require,module,exports){(function(Buffer){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.PostMessageClient=void 0;var sodium=require("libsodium-wrappers");var MockWindow_1=require("../../MockWindow");var __1=require("../..");var crypto_1=require("../../utils/crypto");var get_sender_id_1=require("../../utils/get-sender-id");var MessageBasedClient_1=require("./MessageBasedClient");var PostMessageClient=function(_super){__extends(PostMessageClient,_super);function PostMessageClient(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.activeListeners=new Map;return _this}PostMessageClient.prototype.init=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){this.subscribeToMessages().catch(console.error);return[2]})})};PostMessageClient.prototype.listenForEncryptedMessage=function(senderPublicKey,messageCallback){return __awaiter(this,void 0,void 0,function(){var callbackFunction;var _this=this;return __generator(this,function(_a){if(this.activeListeners.has(senderPublicKey)){return[2]}callbackFunction=function(message,context){return __awaiter(_this,void 0,void 0,function(){var decryptedMessage,decryptionError_1;return __generator(this,function(_a){switch(_a.label){case 0:_a.trys.push([0,2,,3]);return[4,this.decryptMessage(senderPublicKey,message.encryptedPayload)];case 1:decryptedMessage=_a.sent();messageCallback(decryptedMessage,context);return[3,3];case 2:decryptionError_1=_a.sent();return[3,3];case 3:return[2]}})})};this.activeListeners.set(senderPublicKey,callbackFunction);return[2]})})};PostMessageClient.prototype.sendMessage=function(message,peer){var _a;return __awaiter(this,void 0,void 0,function(){var payload,targetId,msg;return __generator(this,function(_b){switch(_b.label){case 0:return[4,this.encryptMessage(peer.publicKey,message)];case 1:payload=_b.sent();targetId=(_a=peer)===null||_a===void 0?void 0:_a.extensionId;msg={target:__1.ExtensionMessageTarget.EXTENSION,encryptedPayload:payload,targetId:targetId};MockWindow_1.windowRef.postMessage(msg,MockWindow_1.windowRef.location.origin);return[2]}})})};PostMessageClient.prototype.listenForChannelOpening=function(messageCallback){return __awaiter(this,void 0,void 0,function(){var fn;var _this=this;return __generator(this,function(_a){fn=function(event){return __awaiter(_this,void 0,void 0,function(){var data,_a,payload,pairingResponse,_b,_c,_d,_e,_f,decryptionError_2;var _g,_h;return __generator(this,function(_j){switch(_j.label){case 0:data=(_g=event===null||event===void 0?void 0:event.data)===null||_g===void 0?void 0:_g.message;_a=data&&data.target===__1.ExtensionMessageTarget.PAGE;if(!_a)return[3,2];return[4,this.isChannelOpenMessage(data)];case 1:_a=_j.sent();_j.label=2;case 2:if(!_a)return[3,7];payload=Buffer.from(data.payload,"hex");if(!(payload.length>=sodium.crypto_secretbox_NONCEBYTES+sodium.crypto_secretbox_MACBYTES))return[3,7];_j.label=3;case 3:_j.trys.push([3,6,,7]);_c=(_b=JSON).parse;return[4,crypto_1.openCryptobox(payload,this.keyPair.publicKey,this.keyPair.privateKey)];case 4:pairingResponse=_c.apply(_b,[_j.sent()]);_d=messageCallback;_e=[__assign({},pairingResponse)];_f={};return[4,get_sender_id_1.getSenderId(pairingResponse.publicKey)];case 5:_d.apply(void 0,[__assign.apply(void 0,_e.concat([(_f.senderId=_j.sent(),_f.extensionId=(_h=event===null||event===void 0?void 0:event.data)===null||_h===void 0?void 0:_h.sender.id,_f)]))]);return[3,7];case 6:decryptionError_2=_j.sent();return[3,7];case 7:return[2]}})})};MockWindow_1.windowRef.addEventListener("message",fn);return[2]})})};PostMessageClient.prototype.sendPairingRequest=function(id){return __awaiter(this,void 0,void 0,function(){var message,_a,_b,_c;return __generator(this,function(_d){switch(_d.label){case 0:_a={target:__1.ExtensionMessageTarget.EXTENSION};_c=(_b=new __1.Serializer).serialize;return[4,this.getPairingRequestInfo()];case 1:return[4,_c.apply(_b,[_d.sent()])];case 2:message=(_a.payload=_d.sent(),_a.targetId=id,_a);MockWindow_1.windowRef.postMessage(message,MockWindow_1.windowRef.location.origin);return[2]}})})};PostMessageClient.prototype.isChannelOpenMessage=function(message){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,typeof message==="object"&&message.hasOwnProperty("payload")]})})};PostMessageClient.prototype.subscribeToMessages=function(){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){MockWindow_1.windowRef.addEventListener("message",function(message){if(typeof message==="object"&&message){var data_1=message.data;if(data_1.message&&data_1.message.target===__1.ExtensionMessageTarget.PAGE){_this.activeListeners.forEach(function(listener){listener(data_1.message,{origin:__1.Origin.EXTENSION,id:data_1.sender.id||""})})}}});return[2]})})};return PostMessageClient}(MessageBasedClient_1.MessageBasedClient);exports.PostMessageClient=PostMessageClient}).call(this,require("buffer").Buffer)},{"../..":24,"../../MockWindow":1,"../../utils/crypto":83,"../../utils/get-sender-id":87,"./MessageBasedClient":56,buffer:185,"libsodium-wrappers":248}],59:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BeaconErrorType=void 0;var BeaconErrorType;(function(BeaconErrorType){BeaconErrorType["BROADCAST_ERROR"]="BROADCAST_ERROR";BeaconErrorType["NETWORK_NOT_SUPPORTED"]="NETWORK_NOT_SUPPORTED";BeaconErrorType["NO_ADDRESS_ERROR"]="NO_ADDRESS_ERROR";BeaconErrorType["NO_PRIVATE_KEY_FOUND_ERROR"]="NO_PRIVATE_KEY_FOUND_ERROR";BeaconErrorType["NOT_GRANTED_ERROR"]="NOT_GRANTED_ERROR";BeaconErrorType["PARAMETERS_INVALID_ERROR"]="PARAMETERS_INVALID_ERROR";BeaconErrorType["TOO_MANY_OPERATIONS"]="TOO_MANY_OPERATIONS";BeaconErrorType["TRANSACTION_INVALID_ERROR"]="TRANSACTION_INVALID_ERROR";BeaconErrorType["SIGNATURE_TYPE_NOT_SUPPORTED"]="SIGNATURE_TYPE_NOT_SUPPORTED";BeaconErrorType["ABORTED_ERROR"]="ABORTED_ERROR";BeaconErrorType["UNKNOWN_ERROR"]="UNKNOWN_ERROR"})(BeaconErrorType=exports.BeaconErrorType||(exports.BeaconErrorType={}))},{}],60:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ColorMode=void 0;var ColorMode;(function(ColorMode){ColorMode["LIGHT"]="light";ColorMode["DARK"]="dark"})(ColorMode=exports.ColorMode||(exports.ColorMode={}))},{}],61:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ExtensionMessageTarget=void 0;var ExtensionMessageTarget;(function(ExtensionMessageTarget){ExtensionMessageTarget["BACKGROUND"]="toBackground";ExtensionMessageTarget["PAGE"]="toPage";ExtensionMessageTarget["EXTENSION"]="toExtension"})(ExtensionMessageTarget=exports.ExtensionMessageTarget||(exports.ExtensionMessageTarget={}))},{}],62:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Origin=void 0;var Origin;(function(Origin){Origin["WEBSITE"]="website";Origin["EXTENSION"]="extension";Origin["P2P"]="p2p"})(Origin=exports.Origin||(exports.Origin={}))},{}],63:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BeaconMessageType=void 0;var BeaconMessageType;(function(BeaconMessageType){BeaconMessageType["PermissionRequest"]="permission_request";BeaconMessageType["SignPayloadRequest"]="sign_payload_request";BeaconMessageType["OperationRequest"]="operation_request";BeaconMessageType["BroadcastRequest"]="broadcast_request";BeaconMessageType["PermissionResponse"]="permission_response";BeaconMessageType["SignPayloadResponse"]="sign_payload_response";BeaconMessageType["OperationResponse"]="operation_response";BeaconMessageType["BroadcastResponse"]="broadcast_response";BeaconMessageType["Acknowledge"]="acknowledge";BeaconMessageType["Disconnect"]="disconnect";BeaconMessageType["Error"]="error"})(BeaconMessageType=exports.BeaconMessageType||(exports.BeaconMessageType={}))},{}],64:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkType=void 0;var NetworkType;(function(NetworkType){NetworkType["MAINNET"]="mainnet";NetworkType["DELPHINET"]="delphinet";NetworkType["EDONET"]="edonet";NetworkType["FLORENCENET"]="florencenet";NetworkType["GRANADANET"]="granadanet";NetworkType["CUSTOM"]="custom"})(NetworkType=exports.NetworkType||(exports.NetworkType={}))},{}],65:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.PermissionScope=void 0;var PermissionScope;(function(PermissionScope){PermissionScope["SIGN"]="sign";PermissionScope["OPERATION_REQUEST"]="operation_request";PermissionScope["THRESHOLD"]="threshold"})(PermissionScope=exports.PermissionScope||(exports.PermissionScope={}))},{}],66:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SigningType=void 0;var SigningType;(function(SigningType){SigningType["RAW"]="raw";SigningType["OPERATION"]="operation";SigningType["MICHELINE"]="micheline"})(SigningType=exports.SigningType||(exports.SigningType={}))},{}],67:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.StorageKey=void 0;var StorageKey;(function(StorageKey){StorageKey["TRANSPORT_P2P_PEERS_DAPP"]="beacon:communication-peers-dapp";StorageKey["TRANSPORT_P2P_PEERS_WALLET"]="beacon:communication-peers-wallet";StorageKey["TRANSPORT_POSTMESSAGE_PEERS_DAPP"]="beacon:postmessage-peers-dapp";StorageKey["TRANSPORT_POSTMESSAGE_PEERS_WALLET"]="beacon:postmessage-peers-wallet";StorageKey["ACCOUNTS"]="beacon:accounts";StorageKey["ACTIVE_ACCOUNT"]="beacon:active-account";StorageKey["ACTIVE_PEER"]="beacon:active-peer";StorageKey["BEACON_SDK_SECRET_SEED"]="beacon:sdk-secret-seed";StorageKey["APP_METADATA_LIST"]="beacon:app-metadata-list";StorageKey["PERMISSION_LIST"]="beacon:permissions";StorageKey["BEACON_SDK_VERSION"]="beacon:sdk_version";StorageKey["MATRIX_PRESERVED_STATE"]="beacon:sdk-matrix-preserved-state";StorageKey["MATRIX_PEER_ROOM_IDS"]="beacon:matrix-peer-rooms";StorageKey["MATRIX_SELECTED_NODE"]="beacon:matrix-selected-node";StorageKey["MULTI_NODE_SETUP_DONE"]="beacon:multi-node-setup"})(StorageKey=exports.StorageKey||(exports.StorageKey={}))},{}],68:[function(require,module,exports){"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:true});exports.defaultValues=void 0;var __1=require("../..");exports.defaultValues=(_a={},_a[__1.StorageKey.TRANSPORT_P2P_PEERS_DAPP]=[],_a[__1.StorageKey.TRANSPORT_P2P_PEERS_WALLET]=[],_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP]=[],_a[__1.StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET]=[],_a[__1.StorageKey.ACCOUNTS]=[],_a[__1.StorageKey.ACTIVE_ACCOUNT]=undefined,_a[__1.StorageKey.ACTIVE_PEER]=undefined,_a[__1.StorageKey.BEACON_SDK_SECRET_SEED]=undefined,_a[__1.StorageKey.APP_METADATA_LIST]=[],_a[__1.StorageKey.PERMISSION_LIST]=[],_a[__1.StorageKey.BEACON_SDK_VERSION]=undefined,_a[__1.StorageKey.MATRIX_PRESERVED_STATE]={},_a[__1.StorageKey.MATRIX_PEER_ROOM_IDS]={},_a[__1.StorageKey.MATRIX_SELECTED_NODE]=undefined,_a[__1.StorageKey.MULTI_NODE_SETUP_DONE]=undefined,_a)},{"../..":24}],69:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.TezosOperationType=void 0;var TezosOperationType;(function(TezosOperationType){TezosOperationType["ENDORSEMENT"]="endorsement";TezosOperationType["SEED_NONCE_REVELATION"]="seed_nonce_revelation";TezosOperationType["DOUBLE_ENDORSEMENT_EVIDENCE"]="double_endorsement_evidence";TezosOperationType["DOUBLE_BAKING_EVIDENCE"]="double_baking_evidence";TezosOperationType["ACTIVATE_ACCOUNT"]="activate_account";TezosOperationType["PROPOSALS"]="proposals";TezosOperationType["BALLOT"]="ballot";TezosOperationType["REVEAL"]="reveal";TezosOperationType["TRANSACTION"]="transaction";TezosOperationType["ORIGINATION"]="origination";TezosOperationType["DELEGATION"]="delegation"})(TezosOperationType=exports.TezosOperationType||(exports.TezosOperationType={}))},{}],70:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.TransportStatus=void 0;var TransportStatus;(function(TransportStatus){TransportStatus["NOT_CONNECTED"]="NOT_CONNECTED";TransportStatus["CONNECTING"]="CONNECTING";TransportStatus["CONNECTED"]="CONNECTED"})(TransportStatus=exports.TransportStatus||(exports.TransportStatus={}))},{}],71:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.TransportType=void 0;var TransportType;(function(TransportType){TransportType["CHROME_MESSAGE"]="chrome_message";TransportType["POST_MESSAGE"]="post_message";TransportType["LEDGER"]="ledger";TransportType["P2P"]="p2p"})(TransportType=exports.TransportType||(exports.TransportType={}))},{}],72:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,"__esModule",{value:true});exports.openAlert=exports.closeAlerts=exports.closeAlert=void 0;var colorMode_1=require("../../colorMode");var generate_uuid_1=require("../../utils/generate-uuid");var get_tzip10_link_1=require("../../utils/get-tzip10-link");var qr_1=require("../../utils/qr");var replace_in_template_1=require("../../utils/replace-in-template");var alert_templates_1=require("./alert-templates");var PairingAlert_1=require("./PairingAlert");var lastFocusedElement;var document;if(typeof window!=="undefined"&&typeof window.document!=="undefined"){document=window.document}var timeout={};var formatQR=function(dataString,pairingPayload){if(typeof dataString==="string"){var uri=get_tzip10_link_1.getTzip10Link("tezos://",pairingPayload);var qr=qr_1.getQrData(uri,"svg");var qrString=qr.replace("<svg",'<svg class="beacon-alert__image"');return'<div id="beacon--qr__container">'+qrString+'<div id="beacon--qr__copy__container"><button class="beacon-modal__button--outline" id="beacon--qr__copy">Copy</button></div></div>'+dataString}return dataString};var formatAlert=function(id,body,title,buttons,pairingPayload){var callToAction=title;var buttonsHtml=buttons.map(function(button,index){return'<button id="beacon-alert-'+id+"-"+index+'" class="beacon-modal__button'+(button.style==="outline"?"--outline":"")+'">'+button.text+"</button>"});var allStyles=alert_templates_1.alertTemplates.default.css;if(pairingPayload){allStyles+=alert_templates_1.alertTemplates.pair.css}var alertContainer=alert_templates_1.alertTemplates.container;alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"main",pairingPayload?alert_templates_1.alertTemplates.pair.html:alert_templates_1.alertTemplates.default.html);alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"callToAction",callToAction);alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"buttons",buttonsHtml.join(" "));alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"body",body);alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"id",id);alertContainer=replace_in_template_1.replaceInTemplate(alertContainer,"payload",pairingPayload!==null&&pairingPayload!==void 0?pairingPayload:"");if(alertContainer.indexOf("{{")>=0){var start=alertContainer.indexOf("{{");var end=alertContainer.indexOf("}}");console.error("Not all placeholders replaced!",alertContainer.substr(start,end-start));throw new Error("Not all placeholders replaced!")}return{style:allStyles,html:alertContainer}};var closeAlert=function(id){return new Promise(function(resolve){var _a;var wrapper=document.getElementById("beacon-alert-wrapper-"+id);if(!wrapper){return resolve()}var elm=(_a=wrapper.shadowRoot)===null||_a===void 0?void 0:_a.getElementById("beacon-alert-modal-"+id);if(elm){var animationDuration=300;var localTimeout=timeout[id];if(localTimeout){clearTimeout(localTimeout);timeout[id]=undefined}elm.className=elm.className.replace("fadeIn","fadeOut");window.setTimeout(function(){var parent=wrapper.parentNode;if(parent){parent.removeChild(wrapper)}if(lastFocusedElement){lastFocusedElement.focus()}resolve()},animationDuration)}else{resolve()}})};exports.closeAlert=closeAlert;var closeAlerts=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){return[2,new Promise(function(resolve){return __awaiter(void 0,void 0,void 0,function(){var openAlertElements,alertIds_1;return __generator(this,function(_a){switch(_a.label){case 0:openAlertElements=document.querySelectorAll('[id^="beacon-alert-wrapper-"]');if(!(openAlertElements.length>0))return[3,2];alertIds_1=[];openAlertElements.forEach(function(element){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){alertIds_1.push(element.id.split("-")[3]);return[2]})})});return[4,Promise.all(alertIds_1.map(closeAlert))];case 1:_a.sent();resolve();return[3,3];case 2:resolve();_a.label=3;case 3:return[2]}})})})]})})};exports.closeAlerts=closeAlerts;var openAlert=function(alertConfig){return __awaiter(void 0,void 0,void 0,function(){var body,title,timer,pairingPayload,closeButtonCallback,id,shadowRootEl,shadowRoot,wrapper,buttons,formattedBody,_a,style,html,styleEl,closeButton,closeButtonClick,colorMode,elm,modal;var _b,_c;return __generator(this,function(_d){switch(_d.label){case 0:body=alertConfig.body;title=alertConfig.title;timer=alertConfig.timer;pairingPayload=alertConfig.pairingPayload;closeButtonCallback=alertConfig.closeButtonCallback;return[4,closeAlerts()];case 1:_d.sent();return[4,generate_uuid_1.generateGUID()];case 2:id=_d.sent().split("-").join("");shadowRootEl=document.createElement("div");shadowRootEl.setAttribute("id","beacon-alert-wrapper-"+id);shadowRoot=shadowRootEl.attachShadow({mode:"open"});wrapper=document.createElement("div");wrapper.setAttribute("tabindex","0");shadowRoot.appendChild(wrapper);buttons=__spreadArrays((_c=(_b=alertConfig.buttons)===null||_b===void 0?void 0:_b.map(function(button){var _a,_b;return{text:button.text,actionCallback:(_a=button.actionCallback)!==null&&_a!==void 0?_a:function(){return Promise.resolve()},style:(_b=button.style)!==null&&_b!==void 0?_b:"outline"}}))!==null&&_c!==void 0?_c:[]);formattedBody=body&&pairingPayload?formatQR(body,pairingPayload===null||pairingPayload===void 0?void 0:pairingPayload.p2pSyncCode):body!==null&&body!==void 0?body:"";_a=formatAlert(id,formattedBody,title,buttons,pairingPayload===null||pairingPayload===void 0?void 0:pairingPayload.p2pSyncCode),style=_a.style,html=_a.html;wrapper.innerHTML=html;styleEl=document.createElement("style");styleEl.textContent=style;shadowRoot.appendChild(styleEl);if(timer){timeout[id]=window.setTimeout(function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeAlert(id)];case 1:_a.sent();return[2]}})})},timer)}document.body.prepend(shadowRootEl);closeButton=shadowRoot.getElementById("beacon-alert-"+id+"-close");closeButtonClick=function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(closeButtonCallback){closeButtonCallback()}return[4,closeAlert(id)];case 1:_a.sent();return[2]}})})};colorMode=colorMode_1.getColorMode();elm=shadowRoot.getElementById("beacon-alert-modal-"+id);if(elm){elm.classList.add("theme__"+colorMode);elm.addEventListener("click",closeButtonClick)}modal=shadowRoot.querySelectorAll(".beacon-modal__wrapper");if(modal.length>0){modal[0].addEventListener("click",function(event){event.stopPropagation()})}lastFocusedElement=document.activeElement;wrapper.focus();buttons.forEach(function(button,index){var buttonElement=shadowRoot.getElementById("beacon-alert-"+id+"-"+index);if(buttonElement){buttonElement.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeAlert(id)];case 1:_a.sent();if(!button.actionCallback)return[3,3];return[4,button.actionCallback()];case 2:_a.sent();_a.label=3;case 3:return[2]}})})})}});if(closeButton){closeButton.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeButtonClick()];case 1:_a.sent();return[2]}})})})}window.addEventListener("keydown",function(event){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:if(!(event.key==="Escape"))return[3,2];return[4,closeButtonClick()];case 1:_a.sent();_a.label=2;case 2:return[2]}})})});if(!pairingPayload)return[3,4];return[4,PairingAlert_1.preparePairingAlert(shadowRoot,pairingPayload)];case 3:_d.sent();_d.label=4;case 4:return[2,id]}})})};exports.openAlert=openAlert},{"../../colorMode":8,"../../utils/generate-uuid":85,"../../utils/get-tzip10-link":88,"../../utils/qr":90,"../../utils/replace-in-template":91,"./PairingAlert":74,"./alert-templates":75}],73:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var s=0,i=0,il=arguments.length;i<il;i++)s+=arguments[i].length;for(var r=Array(s),k=0,i=0;i<il;i++)for(var a=arguments[i],j=0,jl=a.length;j<jl;j++,k++)r[k]=a[j];return r};Object.defineProperty(exports,"__esModule",{value:true});exports.Pairing=exports.WalletType=exports.Platform=void 0;var __1=require("../..");var MockWindow_1=require("../../MockWindow");var get_tzip10_link_1=require("../../utils/get-tzip10-link");var platform_1=require("../../utils/platform");var wallet_lists_1=require("./wallet-lists");var defaultExtensions=["ookjlbkiijinhpmnjffcofjonbfbgaoc","gpfndedineagiepkpinficbcbbgjoenn"];var Platform;(function(Platform){Platform[Platform["DESKTOP"]=0]="DESKTOP";Platform[Platform["IOS"]=1]="IOS";Platform[Platform["ANDROID"]=2]="ANDROID"})(Platform=exports.Platform||(exports.Platform={}));var WalletType;(function(WalletType){WalletType["IOS"]="ios";WalletType["ANDROID"]="android";WalletType["EXTENSION"]="extension";WalletType["DESKTOP"]="desktop";WalletType["WEB"]="web"})(WalletType=exports.WalletType||(exports.WalletType={}));var Pairing=function(){function Pairing(){}Pairing.getPlatfrom=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,platform_1.isAndroid(window)?Platform.ANDROID:platform_1.isIOS(window)?Platform.IOS:Platform.DESKTOP]})})};Pairing.getPairingInfo=function(pairingPayload,statusUpdateHandler,platform){return __awaiter(this,void 0,void 0,function(){var activePlatform,_a,pairingCode,postmessageSyncCode,preferredNetwork;return __generator(this,function(_b){switch(_b.label){case 0:if(!(platform!==null&&platform!==void 0))return[3,1];_a=platform;return[3,3];case 1:return[4,Pairing.getPlatfrom()];case 2:_a=_b.sent();_b.label=3;case 3:activePlatform=_a;pairingCode=pairingPayload.p2pSyncCode;postmessageSyncCode=pairingPayload.postmessageSyncCode;preferredNetwork=pairingPayload.preferredNetwork;switch(activePlatform){case Platform.DESKTOP:return[2,Pairing.getDesktopPairingAlert(pairingCode,statusUpdateHandler,postmessageSyncCode,preferredNetwork)];case Platform.IOS:return[2,Pairing.getIOSPairingAlert(pairingCode,statusUpdateHandler,preferredNetwork)];case Platform.ANDROID:return[2,Pairing.getAndroidPairingAlert(pairingCode,statusUpdateHandler,preferredNetwork)];default:throw new Error("platform unknown")}return[2]}})})};Pairing.getDesktopPairingAlert=function(pairingCode,statusUpdateHandler,postmessageSyncCode,network){return __awaiter(this,void 0,void 0,function(){var availableExtensions,qrLink,_a,_b,_c,_d;return __generator(this,function(_e){switch(_e.label){case 0:return[4,__1.availableTransports.availableExtensions];case 1:availableExtensions=_e.sent();qrLink=get_tzip10_link_1.getTzip10Link("tezos://",pairingCode);availableExtensions.forEach(function(ext){var index=defaultExtensions.indexOf(ext.id);if(index>=0){defaultExtensions.splice(index,1)}});_a={};_b=[{title:"Browser Extensions",type:WalletType.EXTENSION,wallets:__spreadArrays(availableExtensions.map(function(app){var _a,_b,_c,_d;var ext=wallet_lists_1.extensionList.find(function(extEl){return extEl.id===app.id});return{name:(_a=app.name)!==null&&_a!==void 0?_a:ext===null||ext===void 0?void 0:ext.name,logo:(_b=app.iconUrl)!==null&&_b!==void 0?_b:ext===null||ext===void 0?void 0:ext.logo,shortName:(_c=app.shortName)!==null&&_c!==void 0?_c:ext===null||ext===void 0?void 0:ext.shortName,color:(_d=app.color)!==null&&_d!==void 0?_d:ext===null||ext===void 0?void 0:ext.color,enabled:true,clickHandler:function(){if(postmessageSyncCode){var message={target:__1.ExtensionMessageTarget.EXTENSION,payload:postmessageSyncCode,targetId:app.id};MockWindow_1.windowRef.postMessage(message,MockWindow_1.windowRef.location.origin)}statusUpdateHandler(WalletType.EXTENSION,this)}}}),wallet_lists_1.extensionList.filter(function(app){return defaultExtensions.some(function(extId){return extId===app.id})}).map(function(app){return{name:app.name,shortName:app.shortName,color:app.color,logo:app.logo,enabled:false,clickHandler:function(){}}}))}];_c={title:"Desktop & Web Wallets",type:WalletType.DESKTOP};_d=[wallet_lists_1.desktopList.map(function(app){return{name:app.name,shortName:app.shortName,color:app.color,logo:app.logo,enabled:true,clickHandler:function(){var link=get_tzip10_link_1.getTzip10Link(app.deepLink,pairingCode);window.open(link,"_blank");statusUpdateHandler(WalletType.DESKTOP,this)}}})];return[4,Pairing.getWebList(pairingCode,statusUpdateHandler,network)];case 2:return[2,(_a.walletLists=_b.concat([(_c.wallets=__spreadArrays.apply(void 0,_d.concat([_e.sent()])),_c)]),_a.buttons=[],_a.qrData=qrLink,_a)]}})})};Pairing.getIOSPairingAlert=function(pairingCode,statusUpdateHandler,network){return __awaiter(this,void 0,void 0,function(){var qrLink,_a,_b,_c;return __generator(this,function(_d){switch(_d.label){case 0:qrLink=get_tzip10_link_1.getTzip10Link("tezos://",pairingCode);_a={};_b=[{title:"Mobile Wallets",type:WalletType.IOS,wallets:wallet_lists_1.iOSList.map(function(app){return{name:app.name,shortName:app.shortName,color:app.color,logo:app.logo,enabled:true,clickHandler:function(){var _a;var link=get_tzip10_link_1.getTzip10Link((_a=app.deepLink)!==null&&_a!==void 0?_a:app.universalLink,pairingCode);var a=document.createElement("a");a.setAttribute("href",link);a.dispatchEvent(new MouseEvent("click",{view:window,bubbles:true,cancelable:true}));statusUpdateHandler(WalletType.IOS,this)}}})}];_c={title:"Web Wallets",type:WalletType.WEB};return[4,Pairing.getWebList(pairingCode,statusUpdateHandler,network)];case 1:return[2,(_a.walletLists=_b.concat([(_c.wallets=__spreadArrays.apply(void 0,[_d.sent()]),_c)]),_a.buttons=[],_a.qrData=qrLink,_a)]}})})};Pairing.getAndroidPairingAlert=function(pairingCode,statusUpdateHandler,network){return __awaiter(this,void 0,void 0,function(){var qrLink,_a,_b;return __generator(this,function(_c){switch(_c.label){case 0:qrLink=get_tzip10_link_1.getTzip10Link("tezos://",pairingCode);_a={};_b={title:"Web Wallets",type:WalletType.WEB};return[4,Pairing.getWebList(pairingCode,statusUpdateHandler,network)];case 1:return[2,(_a.walletLists=[(_b.wallets=__spreadArrays.apply(void 0,[_c.sent()]),_b)],_a.buttons=[{title:"Mobile Wallets",text:"Connect Wallet",clickHandler:function(){window.open(qrLink,"_blank");statusUpdateHandler(WalletType.ANDROID)}}],_a.qrData=qrLink,_a)]}})})};Pairing.getWebList=function(pairingCode,statusUpdateHandler,network){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,wallet_lists_1.webList.map(function(app){return{name:app.name,shortName:app.shortName,color:app.color,logo:app.logo,enabled:true,clickHandler:function(){var _a;var link=get_tzip10_link_1.getTzip10Link((_a=app.links[network])!==null&&_a!==void 0?_a:app.links[__1.NetworkType.MAINNET],pairingCode);window.open(link,"_blank");statusUpdateHandler(WalletType.WEB,this)}}})]})})};return Pairing}();exports.Pairing=Pairing},{"../..":24,"../../MockWindow":1,"../../utils/get-tzip10-link":88,"../../utils/platform":89,"./wallet-lists":76}],74:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.preparePairingAlert=void 0;var generate_uuid_1=require("../../utils/generate-uuid");var Logger_1=require("../../utils/Logger");var platform_1=require("../../utils/platform");var Alert_1=require("./Alert");var Pairing_1=require("./Pairing");var logger=new Logger_1.Logger("Alert");exports.preparePairingAlert=function(shadowRoot,pairingPayload){return __awaiter(void 0,void 0,void 0,function(){var info,container,buttonListWrapper,qr,copyButton,titleEl,platform,mainText,walletList,switchButton,fn,showPlatform_1,showQr_1,switchPlatform,platformSwitch;return __generator(this,function(_a){switch(_a.label){case 0:return[4,Pairing_1.Pairing.getPairingInfo(pairingPayload,function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,Alert_1.closeAlerts()];case 1:_a.sent();return[2]}})})})];case 1:info=_a.sent();container=shadowRoot.getElementById("pairing-container");if(!container){throw new Error("container not found")}buttonListWrapper=document.createElement("span");container.appendChild(buttonListWrapper);info.buttons.forEach(function(button){return __awaiter(void 0,void 0,void 0,function(){var randomId,x,el,buttonEl;return __generator(this,function(_a){switch(_a.label){case 0:return[4,generate_uuid_1.generateGUID()];case 1:randomId=_a.sent();x='\n    <div class="beacon-list__title">'+button.title+'</div>\n\t\t<button class="beacon-modal__button connect__btn">'+button.text+"</button>\n\t\t ";el=document.createElement("a");el.id="button_"+randomId;el.innerHTML=x;buttonListWrapper.appendChild(el);buttonEl=shadowRoot.getElementById(el.id);if(buttonEl){buttonEl.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){button.clickHandler();return[2]})})})}return[2]}})})});info.walletLists.forEach(function(list){var listWrapperEl=document.createElement("div");container.appendChild(listWrapperEl);var listTitleEl=document.createElement("div");listTitleEl.classList.add("beacon-list__title");listTitleEl.innerHTML=list.title;listWrapperEl.appendChild(listTitleEl);var listEl=document.createElement("span");listWrapperEl.appendChild(listEl);list.wallets.forEach(function(wallet){return __awaiter(void 0,void 0,void 0,function(){var altTag,randomId,x,el,walletEl;return __generator(this,function(_a){switch(_a.label){case 0:altTag="Open in "+wallet.name;return[4,generate_uuid_1.generateGUID()];case 1:randomId=_a.sent();x='\n\t\t\t<a tabindex="0" alt="'+altTag+'" id="wallet_'+randomId+'"\n\t\t\t target="_blank" class="beacon-selection__list'+(wallet.enabled?"":" disabled")+'">\n\t\t\t <div class="beacon-selection__name">'+wallet.name+"\n\t\t\t "+(wallet.enabled?"":"<p>Not installed</p>")+"\n\t\t\t </div>\n\t\t\t "+(wallet.logo?'<div>\n\t\t\t <img class="beacon-selection__img" src="'+wallet.logo+'"/>\n\t\t\t </div>':'<svg class="beacon-selection__img" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="wallet" class="svg-inline--fa fa-wallet fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"><path d="M376.2,181H152.9c-5.2,0-9.4-4.2-9.4-9.4s4.2-9.4,9.4-9.4h225c5.2,0,9.4-4.2,9.4-9.4c0-15.5-12.6-28.1-28.1-28.1H143.5c-20.7,0-37.5,16.8-37.5,37.5v187.5c0,20.7,16.8,37.5,37.5,37.5h232.7c16.4,0,29.8-12.6,29.8-28.1v-150C406,193.6,392.7,181,376.2,181z M349.8,302.9c-10.4,0-18.8-8.4-18.8-18.8s8.4-18.8,18.8-18.8s18.8,8.4,18.8,18.8S360.1,302.9,349.8,302.9z"/></svg>')+"\n\t\t\t</a>\n\t\t\t ";el=document.createElement("span");el.innerHTML=x;listEl.appendChild(el);walletEl=shadowRoot.getElementById("wallet_"+randomId);if(walletEl){walletEl.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){wallet.clickHandler();return[2]})})});walletEl.addEventListener("keydown",function(event){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){if(event.key==="Enter"){wallet.clickHandler()}return[2]})})})}return[2]}})})})});qr=shadowRoot.getElementById("beacon--qr__container");copyButton=shadowRoot.getElementById("beacon--qr__copy");titleEl=shadowRoot.getElementById("beacon-title");platform=platform_1.isAndroid(window)?"android":platform_1.isIOS(window)?"ios":"desktop";mainText=shadowRoot.getElementById("beacon-main-text");walletList=shadowRoot.getElementById("pairing-container");switchButton=shadowRoot.getElementById("beacon--switch__container");if(mainText&&walletList&&switchButton&&copyButton&&qr&&titleEl){fn=function(){navigator.clipboard.writeText(pairingPayload?pairingPayload.p2pSyncCode:"").then(function(){copyButton.innerText="Copied";logger.log("Copying to clipboard was successful!")},function(err){logger.error("Could not copy text to clipboard: ",err)})};copyButton.addEventListener("click",fn);qr.addEventListener("click",fn);showPlatform_1=function(type){var platformSwitch=shadowRoot.getElementById("beacon-switch");if(platformSwitch){platformSwitch.innerHTML=type==="none"?"Pair Wallet on same device":"Pair Wallet on different device"}mainText.style.display="none";titleEl.style.textAlign="center";walletList.style.display="none";switchButton.style.display="initial";switch(type){case"ios":walletList.style.display="initial";break;case"android":walletList.style.display="initial";break;case"desktop":walletList.style.display="initial";titleEl.style.textAlign="left";mainText.style.display="initial";switchButton.style.display="none";break;default:mainText.style.display="initial"}};showQr_1=false;switchPlatform=function(){showPlatform_1(showQr_1?"none":platform);showQr_1=!showQr_1};switchPlatform();{platformSwitch=shadowRoot.getElementById("beacon-switch");if(platformSwitch){platformSwitch.addEventListener("click",switchPlatform)}}}return[2]}})})}},{"../../utils/Logger":79,"../../utils/generate-uuid":85,"../../utils/platform":89,"./Alert":72,"./Pairing":73}],75:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.alertTemplates=void 0;exports.alertTemplates={container:'<div id="beacon-alert-modal-{{id}}" class="beacon-alert__base animated fadeIn">\n  <div class="beacon-modal__wrapper">\n    <div class="beacon-modal__header">\n      <svg\n        xmlns="http://www.w3.org/2000/svg"\n        id="Guides"\n        x="0"\n        y="0"\n        version="1.1"\n        viewBox="0 0 179.2 43"\n        xml:space="preserve"\n        width="140"\n        height="40"\n      >\n        <style>\n          .st0 {\n            fill: #3880ff;\n          }\n          .st1 {\n            fill: #fff;\n          }\n        </style>\n        <path\n          d="M45 19v.9c0 .3-.2 7.5-3.4 13.2-3.3 5.6-9.4 9.3-9.7 9.5l-.8.4-1.3-.8-7.6-4.4c-.5-.3-.9-.6-1.4-.9-.4-.3-.7-.5-1.1-.8-.8-.7-1.5-1.4-2.1-2.2-.9-1.1-1.6-2.4-2.1-3.7-.9-2.3-1.3-4.8-1.2-7.5.8-.4 1.6-.6 2.4-.6h.6c-.2 2.4.1 4.6.8 6.6 1 2.8 2.9 5.1 5.5 6.6l7.4 4.3c.2-.1.4-.2.6-.4 1.9-1.3 5.3-4.1 7.3-7.6 2.2-3.9 2.8-8.9 3-10.8L38.8 19c.3-1 .4-2.1.5-3.2L45 19z"\n          class="st0"\n        />\n        <path\n          d="M36.3 4.1v10.3c0 .5 0 1.1-.1 1.6s-.1.9-.2 1.3c-.2 1-.5 2-.9 3-.5 1.3-1.3 2.6-2.2 3.7-1.5 1.9-3.5 3.6-5.9 4.8-.9-.6-1.6-1.3-2-2.4 2.1-1 3.9-2.3 5.2-4 1.9-2.3 3-5.1 3-8.1V5.9l-.6-.3c-2-1-6.1-2.6-10.1-2.6-4.5 0-9.1 2-10.9 2.9v3.6c-1 .3-2 .7-3 1.1V4.1l.8-.4C9.7 3.5 16 0 22.5 0s12.8 3.5 13.1 3.6l.7.5z"\n          class="st0"\n        />\n        <path\n          d="M10.5 16.5l-7.4 4.3v.7c.2 2.1.9 6.5 2.9 10 2.2 3.9 6.2 6.9 7.9 8l3.1-1.8c.8.7 1.6 1.4 2.5 2L13.8 43l-.8-.5c-.3-.2-6.4-3.9-9.7-9.5C.1 27.4 0 20.2 0 19.9V19l1.3-.8L9 13.9c.5-.3.9-.5 1.4-.7.4-.2.8-.4 1.3-.5 1-.4 2-.6 3-.7 1.4-.2 2.9-.2 4.3 0 2.4.3 4.8 1.2 7.1 2.7 0 1-.4 2-1 2.9-1.9-1.3-4-2.2-6-2.5-3.1-.6-6-.1-8.6 1.4z"\n          class="st0"\n        />\n        <g>\n          <path\n            d="M73.9 23c.9 1 1.3 2.3 1.3 3.7 0 1.9-.6 3.4-1.9 4.5-1.3 1.1-3.1 1.7-5.5 1.7h-8.6v-23h8.4c2.3 0 4.1.5 5.3 1.5 1.2 1 1.8 2.4 1.8 4.2 0 1.5-.4 2.7-1.2 3.6-.8.9-1.8 1.5-3.1 1.8 1.5.3 2.6 1 3.5 2zm-11.7-3h5c1.5 0 2.6-.3 3.4-1 .8-.7 1.2-1.6 1.2-2.8 0-1.2-.4-2.1-1.1-2.8-.8-.7-1.9-1-3.5-1h-4.8V20zm8.7 9.4c.9-.7 1.3-1.7 1.3-3s-.4-2.3-1.3-3c-.9-.7-2.1-1.1-3.7-1.1h-5v8.2h5c1.6-.1 2.8-.4 3.7-1.1zM95.3 24.6H81c.1 2.1.6 3.6 1.7 4.6s2.4 1.5 4 1.5c1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.7 1.8-2.9h3.2c-.2 1.2-.7 2.4-1.5 3.3-.8 1-1.7 1.7-2.9 2.3-1.2.5-2.6.8-4.1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 1.7 0 3.3.4 4.6 1.1 1.3.7 2.3 1.7 3 3 .7 1.2 1 2.6 1 4.1.1.7 0 1.2-.1 1.7zm-3.5-4.8c-.5-.9-1.2-1.6-2.1-2-.9-.4-1.8-.7-2.8-.7-1.6 0-3 .5-4.1 1.5-1.1 1-1.7 2.5-1.8 4.5h11.5c0-1.3-.2-2.4-.7-3.3zM111.2 16c1.2.9 2.1 2 2.5 3.5V15h3v18h-3v-4.6c-.5 1.5-1.3 2.6-2.5 3.5-1.2.9-2.7 1.3-4.4 1.3-1.6 0-3-.4-4.3-1.1-1.2-.7-2.2-1.8-2.9-3.2-.7-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.7-1.4 1.7-2.5 2.9-3.2 1.2-.7 2.7-1.1 4.3-1.1 1.7-.1 3.1.4 4.4 1.2zm-8 3.1c-1.1 1.2-1.7 2.8-1.7 4.8 0 2.1.5 3.7 1.7 4.8 1.1 1.2 2.6 1.8 4.4 1.8 1.2 0 2.2-.3 3.2-.8.9-.5 1.7-1.3 2.2-2.3.5-1 .8-2.1.8-3.5 0-1.3-.3-2.5-.8-3.5s-1.2-1.8-2.2-2.3c-.9-.5-2-.8-3.2-.8-1.9.1-3.3.7-4.4 1.8zM135 16.6c1.5 1.2 2.4 2.9 2.8 4.9h-3.1c-.2-1.3-.8-2.3-1.8-3-1-.7-2.2-1.1-3.6-1.1-1 0-2 .2-2.9.7-.9.5-1.6 1.2-2.1 2.2-.5 1-.8 2.2-.8 3.7s.3 2.7.8 3.7 1.2 1.7 2.1 2.2c.9.5 1.8.7 2.9.7 1.4 0 2.6-.4 3.6-1.1 1-.7 1.6-1.8 1.8-3h3.1c-.3 2.1-1.3 3.7-2.8 4.9-1.5 1.2-3.4 1.8-5.7 1.8-1.7 0-3.2-.4-4.6-1.1-1.3-.7-2.4-1.8-3.1-3.2-.8-1.4-1.1-3-1.1-4.9 0-1.9.4-3.5 1.1-4.9.8-1.4 1.8-2.5 3.1-3.2 1.3-.7 2.9-1.1 4.6-1.1 2.3-.1 4.2.6 5.7 1.8zM154.5 15.9c1.4.7 2.4 1.8 3.2 3.2.8 1.4 1.2 3 1.2 4.9 0 1.9-.4 3.5-1.2 4.9-.8 1.4-1.8 2.4-3.2 3.2-1.4.7-2.9 1.1-4.6 1.1-1.7 0-3.3-.4-4.6-1.1-1.4-.7-2.4-1.8-3.2-3.2-.8-1.4-1.2-3-1.2-4.9 0-1.9.4-3.5 1.2-4.9.8-1.4 1.9-2.5 3.2-3.2 1.4-.7 2.9-1.1 4.6-1.1 1.7-.1 3.2.3 4.6 1.1zm-7.6 2.2c-.9.5-1.6 1.2-2.2 2.2-.6 1-.8 2.2-.8 3.7 0 1.4.3 2.7.8 3.6.6 1 1.3 1.7 2.2 2.2.9.5 1.9.7 3 .7s2.1-.2 3-.7c.9-.5 1.6-1.2 2.2-2.2.6-1 .8-2.2.8-3.6 0-1.5-.3-2.7-.8-3.7-.6-1-1.3-1.7-2.2-2.2-.9-.5-1.9-.7-3-.7s-2.1.2-3 .7zM177.3 16.7c1.3 1.3 1.9 3.3 1.9 5.8v10.4h-3V22.8c0-1.8-.5-3.2-1.4-4.1-.9-1-2.2-1.4-3.7-1.4-1.6 0-2.9.5-3.9 1.6s-1.5 2.6-1.5 4.6V33h-3V15h3v4.3c.5-1.5 1.3-2.6 2.4-3.4 1.2-.8 2.5-1.2 4-1.2 2.2 0 3.9.6 5.2 2z"\n            class="st1"\n          />\n        </g>\n      </svg>\n      <div id="beacon-alert-{{id}}-close" class="beacon-modal__close__wrapper">\n        <div class="beacon-modal__close__icon">\n          <div class="beacon-modal__close__line1"></div>\n          <div class="beacon-modal__close__line2"></div>\n        </div>\n      </div>\n    </div>\n    <div class="beacon-modal__base">\n      <div class="beacon-modal__content">\n        <div>\n          <p class="beacon-alert__title">\n            {{callToAction}}\n          </p>\n\n          {{main}}\n\n          <div class="beacon-action__container">\n            {{buttons}}\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n',default:{html:'<div id="beacon-main-text" class="beacon-alert__text">\n  {{body}}\n</div>\n',css:":host {\n  --animation-duration: 300ms;\n  all: initial;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n.animated {\n  animation-duration: var(--animation-duration);\n  animation-fill-mode: both;\n}\n\n.fadeIn {\n  animation-name: fadeIn;\n}\n\n.fadeOut {\n  animation-name: fadeOut;\n}\n\n.beacon-modal__wrapper {\n  position: relative;\n  top: 0;\n  display: inline-block;\n  z-index: 2147483000;\n  max-width: 500px;\n  width: 80%;\n  padding: 24px;\n}\n\n@media (min-height: 700px) {\n  .beacon-modal__wrapper {\n    top: 50%;\n    transform: translateY(-50%);\n  }\n}\n\n.theme__light .beacon-modal__base,\n.theme__light .beacon-modal__close__wrapper {\n  background: #fff;\n}\n\n.theme__dark .beacon-modal__base,\n.theme__dark .beacon-modal__close__wrapper {\n  background: #27334c;\n}\n\n.beacon-modal__base,\n.beacon-modal__close__wrapper {\n  box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.beacon-modal__base {\n  margin: 0 auto;\n  border-radius: 32px;\n  overflow: hidden;\n}\n\n.beacon-modal__header {\n  padding: 16px 0;\n  width: 100%;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.beacon-modal__headerLogo {\n  width: 100%;\n  max-width: 320px;\n  margin: 20px auto;\n  height: 100%;\n}\n\n.beacon-alert__text,\n.beacon-alert__title,\n.beacon-selection__name,\n.beacon-list__title,\np,\nbutton {\n  font-family: Roboto, Helvetica, sans-serif;\n}\n\na,\nbutton {\n  cursor: pointer;\n}\n\n.beacon-modal__close__wrapper {\n  position: absolute;\n  top: 44px;\n  right: 24px;\n  z-index: 10000;\n  cursor: pointer;\n  border-radius: 100%;\n}\n\n.beacon-modal__close__icon {\n  width: 16px;\n  height: 16px;\n  position: relative;\n  top: 0;\n  right: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transform: rotate(45deg);\n  margin: 8px;\n}\n\n.beacon-modal__close__line1 {\n  position: absolute;\n  width: 90%;\n}\n\n.beacon-modal__close__line2 {\n  position: absolute;\n  width: 90%;\n  transform: rotate(90deg);\n}\n\n.theme__light .beacon-modal__close__line2,\n.theme__light .beacon-modal__close__line1 {\n  border: 1px solid #000;\n}\n\n.theme__dark .beacon-modal__close__line2,\n.theme__dark .beacon-modal__close__line1 {\n  border: 1px solid #fff;\n}\n\n.beacon-alert__base {\n  position: fixed;\n  overflow-y: scroll;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 2147482999;\n  background-color: rgb(17 17 17 / 0.84);\n  text-align: center;\n  -ms-overflow-style: none;\n  scrollbar-width: none;\n}\n\n.beacon-alert__base::-webkit-scrollbar {\n  display: none;\n}\n\n.beacon-alert__title {\n  text-align: center;\n}\n\n.beacon-alert__text,\n.beacon-alert__title {\n  margin: 0 auto;\n  padding: 0 0 24px;\n}\n\n.margin__bottom {\n  margin-bottom: 16px;\n}\n\n.beacon-alert__title {\n  font-size: 18px;\n}\n\n.theme__light .beacon-alert__title {\n  color: #7c828b;\n}\n\n.theme__dark .beacon-alert__title,\n.theme__dark .beacon-alert__text {\n  color: #7c99d6;\n}\n\n.beacon-alert__text {\n  color: #000;\n  font-size: 14px;\n}\n\n.beacon-modal__button,\n.beacon-modal__button--outline {\n  height: 36px;\n  font-size: 14px;\n  letter-spacing: 0.84px;\n  margin-bottom: 4px;\n  margin-inline-end: 2px;\n  margin-inline-start: 2px;\n  margin-left: 2px;\n  margin-right: 2px;\n  margin-top: 4px;\n  padding-inline-end: 15.4px;\n  padding-inline-start: 15.4px;\n  padding-left: 15.4px;\n  padding-right: 15.4px;\n  overflow-wrap: break-word;\n  pointer-events: auto;\n  text-align: center;\n  border: 2px solid #3880ff;\n  border-radius: 4px;\n}\n\n.beacon-modal__button {\n  background: #3880ff;\n  color: #fff;\n}\n\n.beacon-modal__button--outline {\n  background: #fff;\n  color: #3880ff;\n}\n\n.beacon-alert__image {\n  width: 200px;\n  height: 200px;\n  box-sizing: border-box;\n  box-shadow: 0 10px 20px 0 rgba(17, 17, 17, 0.12);\n  border: 1px solid rgba(17, 17, 17, 0.04);\n  border-radius: 16px;\n}\n.connect__btn {\n  margin: 24px 0;\n  width: 100%;\n}\n\n.beacon-modal__content {\n  padding: 24px;\n}\n\n#beacon-switch {\n  margin-top: 24px;\n}\n\n#beacon-title {\n  margin: 0 0 24px;\n}\n\na {\n  text-decoration: none;\n}\n\npre {\n  white-space: pre-wrap; /* css-3 */\n  white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n  white-space: -pre-wrap; /* Opera 4-6 */\n  white-space: -o-pre-wrap; /* Opera 7 */\n  word-wrap: break-word; /* Internet Explorer 5.5+ */\n  padding: 16px;\n  background: #ececec;\n  line-height: 1.25rem;\n}\n"},pair:{html:'<span id="pairing-container"></span>\n\n<div id="beacon-main-text" class="beacon-alert__text">\n  <p id="beacon-title" class="beacon-list__title">\n    Scan QR code with Beacon-compatible wallet.\n    <a href="https://docs.walletbeacon.io/supported-wallets.html" target="_blank">Learn more</a>\n  </p>\n  {{body}}\n</div>\n\n<div id="beacon--switch__container">\n  <button id="beacon-switch" class="beacon-modal__button--outline"></button>\n</div>\n',css:"#beacon-main-text {\n  display: initial;\n}\n.beacon-selection__container {\n  padding: 16px 16px 0;\n}\n.beacon-selection__list {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  text-decoration: none;\n  padding-bottom: 12px;\n  align-items: center;\n}\n\n.beacon-list__title {\n  text-align: left;\n  font-size: 12px;\n}\n\n.theme__light .beacon-list__title {\n  color: #7c828b;\n}\n.theme__dark .beacon-list__title {\n  color: #7c99d6;\n}\n\n.beacon-selection__name {\n  font-size: 1rem;\n  font-weight: 600;\n  text-align: left;\n}\n.theme__light .beacon-selection__name {\n  color: #3b3d40;\n}\n.theme__dark .beacon-selection__name {\n  color: #6183ff;\n}\n.beacon-selection__img {\n  width: 48px;\n  height: 48px;\n  box-shadow: 0 4px 12px 0 rgba(17, 17, 17, 0.24);\n  border-radius: 16px;\n  background-color: #fff;\n}\n#beacon--qr__copy__container {\n  height: 0;\n}\n#beacon--qr__copy {\n  display: none;\n  position: relative;\n  top: -190px;\n  left: 138px;\n  margin: 0;\n}\n#beacon--qr__container {\n  margin-left: auto;\n  margin-right: auto;\n}\n#beacon--qr__container:hover #beacon--qr__copy {\n  display: block;\n}\n.disabled {\n  cursor: initial;\n}\n.disabled span,\n.disabled img {\n  opacity: 0.48;\n}\n.disabled p {\n  text-align: left;\n  margin: 0;\n  font-size: 10px;\n  font-weight: 300;\n}\n.disabled img {\n  -webkit-filter: grayscale(100%);\n  -moz-filter: grayscale(100%);\n  -ms-filter: grayscale(100%);\n  -o-filter: grayscale(100%);\n  filter: grayscale(100%);\n  filter: gray;\n}\n"}}},{}],76:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.iOSList=exports.webList=exports.desktopList=exports.extensionList=void 0;exports.extensionList=[{id:"ookjlbkiijinhpmnjffcofjonbfbgaoc",name:"Temple Wallet",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"},{id:"gpfndedineagiepkpinficbcbbgjoenn",name:"Spire",shortName:"Spire",color:"",logo:"data:image/png;base64,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",link:"https://spirewallet.com/"}];exports.desktopList=[{name:"Galleon",shortName:"Galleon",color:"",logo:"data:image/png;base64,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",deepLink:"galleon://"}];exports.webList=[{name:"Kukai",shortName:"Kukai",color:"",logo:"data:image/png;base64,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",links:{mainnet:"https://wallet.kukai.app",delphinet:"https://testnet.kukai.app",edonet:"https://edonet.kukai.app",florencenet:"https://florencenet.kukai.app",granadanet:"https://granadanet.kukai.app"}}];exports.iOSList=[{name:"AirGap Wallet",shortName:"AirGap",color:"rgb(4, 235, 204)",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAALT0lEQVR4AeXBCXiU9Z3A8e/vfd+5kskBARYIkAsCSIRyRe5AKbhQ8CqWemGpVnF1qVKPrdoSrSiW6qq0lhZXu7UrskVQSq0VpAIGwxGgHAE5RBMIgUAyk8xkMjOZ+e/zZh9cauXNTMjx7MPnI0qpRkC4PCkDEEDj8hTVuMxpXOY02om3xsfix1/jlumP4qmu48saAiHumv1TFj/2Kp7qOtqLQRsLhxp549U/8x8vvY2vth7TkUNljBwziAsdO3KCnUWl7Cwq5U+rP+KO+ddx8x3TsNtttCWDNhKNRPnjW5tZ9twqTp88xxcUIMKXiQZKKUQEf12AlxatYOVr73PPgzcyY9Z4NE2jLeiFhYULAaGVNDZGWLdqM4/8y0usXbkJf12A84J9u1Je+M/MnjSCPrqdC3Xt1okrhmRz5FA5NWdrMfnrAnz4l538Ze3HJKUkkNOvF5qm0YqUQSs5frSCdX/YxDsrN1F91ssXFARzu1L5/dFUT87FyoRvDGP85KGsX1fM8hfXcPRgGSLC58dO8eP5L/PiohVc952JzLxxAr0zu9MaDFpIKcXBfcfZvH4XG9/bzpHSMkSELyjwj8rgzK0j8YzNBEVMRISpM0czZcYoPtq4h9d/vY4dRQcQEc6eruGVF9ew/IXVDLwyi0nTRjLhG8Ppf0UGCC1iEKNoNMqxwyfYs/0TSj4uZXvRAWrO1SIimEQEUyTZSc2MQZyd9TUCmZ1AAYq4iQjjJw9l/OShfHr4BKt+/wHvrt5CrcePiHBo/2cc2v8ZL//sv+nSLZWR4/IYPmogw/IHkNm3JyJCLAya8Unp57z09Bvs3naIQH0QEeE8EcEUdTuondiXmin98Y7JQmlCE8VXqo1GiEd2bi8efvJ2Fvz4Vor+uof164rZtL4Ef10AEeFclZf31hTx3poilFIkJrkYmj+Aex+ezYC8TKwYWAjUB5k3+ym8NT5MIkITpQjmdKVubBbe8dnUDeuNEmK2xF9JgT2JBNGIh2HTKZg6nIKpw4k0RigpPsiWD3ax9cO/8enhk4gIIkK9r4GijXv4W8lh3i1eijspgYsxsFBSXIq3xocp3D0ZX34GvhG9qR2VQaiLG5SiJf4a9pF5di/9dCeCYBLAEP5BZzGY60pjhiOVC+mGTv64PPLH5fHDhXCmsprizfvYufUAO7aWcrriHD5vPTu3ljLx6hFcjIGFqsoazit7Yhq1I3rzBaW4FFXRCFVRP7FYHfSwPLkPd7q6cjHdunfmmm8XcM23C9j5cSl33fhTTGcqa7CiYcHr8XFeJMVJRyr0nSJWKalulKJJrdeHFQ0Lfl8DTaKKcKcEOtKpaJhGFLHo3CWZaDSKyVdbjxUNC746PyZRikiKk46Ub0vAQIhFUkoiIjTx+xuwomGhIRDCpOwGEYdBR+mmGSxLyiBWdrsNh9OOKRgIYcXAQsAfxKQS7CACKOI1yeZmiiOZJNFpic6aznR7KqmaTjwS3S481XUE6huwYmAhEGjA1JhoB6WIR4JovJmSxUxHKh0h0e3CU11HQ0MIKxoWQsFGTMppgFLE49dJfZjpSKWj2OwGpnAwjBUNC4H6BkzKaQNFzHJ0O7e40uhIDocdUyAQxIqGBb+/AVPEZSMeo2xuhI6V6HZiqvc3YEXDQjAQwhR12vj/xuGyYwo2hLGiYaEhEMQUddmIR3HYh6JjOZ0OTIH6IFY0LAQCQUxRp0E8jkVC/FfgHB0pIdGJKRBowIqGhXCoEZOyG8Tr7roy3gnW0FHsdgNTONSIFQMLkcYoJmVoxKteRbnO8ykFNjdTHckki855OvBdVxdcotFWdEPHFI1EsWJgQSmFKaoLLbUp7GNT2MeFbnd25p6EbrQlTdcwKYUlDQsiNNGiitY00HDR1qLRKCYRLGlY0G06JglFaE1/CnqI0rYawxFMuk3HioEFl8tBqCGMVh+iNW0J+7nec5Q7XF1wi8bFuEVnmC0BAyFefl8AU0KCEysGFpJT3XhrfOjeBlrb2qCXtUEvzemr23krNYfBRgLx8Hp8mJJTErGiYaFzWjIme5UPhA5xNBLiW55jNKKIR1VlDaa0rilY0bDQPb0LJvsJD4LQUY5GQuwO1xMrpRQV5VWYuqd3wYqGhcycHjQJNeIo99CRFLE7WX6GQH0DpozsHljRsNA/L5MmIiTuq6CjZOt2htkSiNW+kqNomoYpd1AGVjQsfG1Ef5RSmJJ2lNERsjQ7q1NyMBBitWPrAUxKKYaMyMWKgYXUzknkXpHBkYNlJG8+iqirUUJcrrYnMceZRrKmc56GIPwfAYR/lCQ6I+2J2BBiFY0qNm/YhanfwD506pyMFYNmFEwdzpGDZeg1AZI/Po53TBaxusOVxvLkTIT2U7xlL+fOeBGBgqnDaY5GM6bfMA6lFKZuK3aBEBMBFrnTEdrXG6/8GRFQSjH9hnE0R6MZmTk9GTF2ECZ30XHce08RC7do/JNmoz3tLTlM0cY9mEaMHURW33SaoxGDO+dfj1IKBHr9fCOxqFNRDjU20G4UPPfE64gISinu+sENxEIjBleNy2NUwWBMrv2n6LLuALG4p/Zz/CpKe/jjqs3s23UU0+iJgxk5dhCxMIjRQ0/MYfaUR4g0Run5/Id4x+cQTnFi5cOwj4Fn9/MtZydSRScWugiDDRffdKSgI8TCU13H80++jkk3NB4snEOsDGKU3a8Xc+6ZyWtL30H3Buiz6H2OLbkWlMJKeTTMC/VniFe+4eLdTrmkaQbNWfSjV/DW+DDddvcMsvv1IlYacZj3wCyy+/fClLzhMF3X7KWtbG8McG9tGc1Zs2IjG9Ztw5TVL515P5xFPDTiYLMbLH55PnaHDQTSn91A4qEztJXVwRrqVZSLKd37Kc8+/ltEBJvD4JmX/xW73UY8NOLUt39vHnv2TpRSSChC9v1vYT/toy2EUdSpCF+lsuIc989dQigYRinFj57+HrkDM4iXRgvMnDWB2+bNwGRU+ek3byW26npaW2/NTjfNxpdVn/Uy76anOHvag+mmO6dx3exJtIRGCz3w+C1MuXYUJntZDbnfW4HjVB2tRYBnk9IR/l5FeRVzry+k7Fglpq9PH8mDC+fQUhotJCI8/eJ9TJgyDJO9vIb+t/2O5F0niJ0CFKAAhQAacKXhZFVKNjc507jQjq0HuHXGY5Qfr8Q0umAwz/xyPpomtJTBJdANneeWL+DR+b9g/dpi9JoAOXe9SdXtV1ExbyxRm8ZXydBsrEjNZoiRgPC/BLCJAILO3wuFwvzq53/gd8vWoaIKU8HVw/nZsvux2QwuhcEl0g2dxb+cT1bfdJb/+2qUUnT97TZSNnzCyYe+jmd8DijFhZ5ypzPa5iYWWz7YzZKF/8mJz07TRGDuvddw78PfQdOES2XQCkSEeQtmkT92ED954FdUlFVhP+Eha/5q/CN6c+q+8dQN6QmKJr10O83Zt/sIv1i8ku0f7UdEMHVPT6Pw+Xnkj82jteiFhYULAaEV9OjVlRtunkxjJMKB3ceIKoX9VC2d395L8p4Kwj2SCaan8l1nGpm6g69SUnyQpx55haVPr6CivAoRQdc1bvn+NJb8ZgGZOT1pRcqglTlddn7w6M1cf9Mknn/y92x6vwQRIXH75+Rs+4zAlT2xLVsAmUlc6PSpczx89wvsLTmCiCAiKKUYN3koC35yK1l902kLBm2kT1YPXnjtIXZvP8TSZ95k9/ZDiAiu/adwVHghsxcXqjx5jn27jiIiKKUYPDyX+/5tNiPHDKItGbSxofkDeHVNIds+2s+rS9/G6/HRf1AmX9ZvQG/652XidruYe9+1jJk4hPZg0E6uGpfHVePyuJgEt4sV7z1De9O4zGlc5gxAAVEuT+p/ABopEAN9AKm/AAAAAElFTkSuQmCC",universalLink:"https://wallet.airgap.it",deepLink:"airgap-wallet://"}]},{}],77:[function(require,module,exports){"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.openToast=exports.closeToast=void 0;var colorMode_1=require("../../colorMode");var replace_in_template_1=require("../../utils/replace-in-template");var generate_uuid_1=require("../../utils/generate-uuid");var toast_templates_1=require("./toast-templates");var document;if(typeof window!=="undefined"&&typeof window.document!=="undefined"){document=window.document}var EXPAND_AFTER=5*1e3;var timeout;var expandTimeout;var globalToastConfig;var createActionItem=function(toastAction){return __awaiter(void 0,void 0,void 0,function(){var text,actionText,actionCallback,id,wrapper;return __generator(this,function(_a){switch(_a.label){case 0:text=toastAction.text,actionText=toastAction.actionText,actionCallback=toastAction.actionCallback;return[4,generate_uuid_1.generateGUID()];case 1:id=_a.sent();wrapper=document.createElement("div");wrapper.classList.add("beacon-toast__action__item");if(actionCallback){wrapper.innerHTML=text.length>0?"<p>"+text+"</p>":"";wrapper.innerHTML+='<p><a id="'+id+'">'+actionText+"</a></p>"}else if(actionText){wrapper.innerHTML=text.length>0?'<p class="beacon-toast__action__item__subtitle">'+text+"</p>":"";wrapper.innerHTML+="<p>"+actionText+"</p>"}else{wrapper.innerHTML="<p>"+text+"</p>"}if(actionCallback){wrapper.addEventListener("click",actionCallback)}return[2,wrapper]}})})};var removeAllChildNodes=function(parent){while(parent.firstChild){parent.removeChild(parent.firstChild)}};var formatToastText=function(html){var _a,_b;var walletIcon=(_a=globalToastConfig===null||globalToastConfig===void 0?void 0:globalToastConfig.walletInfo)===null||_a===void 0?void 0:_a.icon;var walletName=(_b=globalToastConfig===null||globalToastConfig===void 0?void 0:globalToastConfig.walletInfo)===null||_b===void 0?void 0:_b.name;var wallet="";if(walletIcon){wallet+='<span class="beacon-toast__wallet__container"><img class="beacon-toast__content__img" src="'+walletIcon+'">'}if(walletName){wallet+="<strong>"+walletName+"</strong></span>"}else{wallet+="Wallet"}return replace_in_template_1.replaceInTemplate(html,"wallet",wallet)};var getToastHTML=function(config){var text=config.body;var html=replace_in_template_1.replaceInTemplate(toast_templates_1.toastTemplates.default.html,"text",text);html=formatToastText(html);return{style:toast_templates_1.toastTemplates.default.css,html:html}};var closeToast=function(){return new Promise(function(resolve){var _a;globalToastConfig=undefined;var wrapper=document.getElementById("beacon-toast-wrapper");if(!wrapper){return resolve()}var elm=(_a=wrapper.shadowRoot)===null||_a===void 0?void 0:_a.getElementById("beacon-toast");if(elm){var animationDuration=300;if(timeout){clearTimeout(timeout);timeout=undefined}elm.className=elm.className.replace("fadeIn","fadeOut");window.setTimeout(function(){var parent=wrapper.parentNode;if(parent){parent.removeChild(wrapper)}resolve()},animationDuration)}else{resolve()}})};exports.closeToast=closeToast;var registerClick=function(shadowRoot,id,callback){var button=shadowRoot.getElementById(id);if(button){button.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,callback(button)];case 1:_a.sent();return[2]}})})})}return button};var showElement=function(shadowRoot,id){var el=shadowRoot.getElementById(id);if(el){el.classList.remove("hide");el.classList.add("show")}};var hideElement=function(shadowRoot,id){var el=shadowRoot.getElementById(id);if(el){el.classList.add("hide");el.classList.remove("show")}};var hideLoader=function(shadowRoot){hideElement(shadowRoot,"beacon-toast-loader");showElement(shadowRoot,"beacon-toast-loader-placeholder")};var showClose=function(shadowRoot){showElement(shadowRoot,"beacon-toast-button-close");hideElement(shadowRoot,"beacon-toast-button-expand")};var collapseList=function(shadowRoot){var expandButton=shadowRoot.getElementById("beacon-toast-button-expand");var list=shadowRoot.getElementById("beacon-toast-list");if(expandButton&&list){expandButton.classList.remove("beacon-toast__upside_down");list.classList.add("hide");list.classList.remove("show")}};var expandList=function(shadowRoot){var expandButton=shadowRoot.getElementById("beacon-toast-button-expand");var list=shadowRoot.getElementById("beacon-toast-list");if(expandButton&&list){expandButton.classList.add("beacon-toast__upside_down");list.classList.remove("hide");list.classList.add("show")}};var expandOrCollapseList=function(shadowRoot){var expandButton=shadowRoot.getElementById("beacon-toast-button-expand");var list=shadowRoot.getElementById("beacon-toast-list");if(expandButton&&list){if(expandButton.classList.contains("beacon-toast__upside_down")){collapseList(shadowRoot)}else{expandList(shadowRoot)}}};var addActionsToToast=function(shadowRoot,toastConfig,list){return __awaiter(void 0,void 0,void 0,function(){var actions,actionPromises,actionItems,poweredByBeacon;return __generator(this,function(_a){switch(_a.label){case 0:actions=toastConfig.actions;if(!(actions&&actions.length>0))return[3,2];actionPromises=actions.map(function(action){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){return[2,createActionItem(action)]})})});return[4,Promise.all(actionPromises)];case 1:actionItems=_a.sent();actionItems.forEach(function(item){return list.appendChild(item)});poweredByBeacon=document.createElement("small");poweredByBeacon.classList.add("beacon-toast__powered");poweredByBeacon.innerHTML=toast_templates_1.toastTemplates.default.poweredByBeacon;list.appendChild(poweredByBeacon);return[3,3];case 2:showClose(shadowRoot);collapseList(shadowRoot);_a.label=3;case 3:return[2]}})})};var createNewToast=function(toastConfig){return __awaiter(void 0,void 0,void 0,function(){var timer,shadowRootEl,shadowRoot,wrapper,_a,style,html,styleEl,colorMode,elm,list,closeButton;return __generator(this,function(_b){switch(_b.label){case 0:globalToastConfig=toastConfig;timer=toastConfig.timer;shadowRootEl=document.createElement("div");shadowRootEl.setAttribute("id","beacon-toast-wrapper");shadowRoot=shadowRootEl.attachShadow({mode:"open"});wrapper=document.createElement("div");_a=getToastHTML(toastConfig),style=_a.style,html=_a.html;wrapper.innerHTML=html;styleEl=document.createElement("style");styleEl.textContent=style;shadowRoot.appendChild(wrapper);shadowRoot.appendChild(styleEl);if(timer){timeout=window.setTimeout(function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeToast()];case 1:_a.sent();return[2]}})})},timer)}document.body.prepend(shadowRootEl);colorMode=colorMode_1.getColorMode();elm=shadowRoot.getElementById("beacon-toast");if(elm){elm.classList.add("theme__"+colorMode)}list=shadowRoot.getElementById("beacon-toast-list");if(!list)return[3,2];return[4,addActionsToToast(shadowRoot,toastConfig,list)];case 1:_b.sent();_b.label=2;case 2:if(globalToastConfig.state==="loading"){expandTimeout=window.setTimeout(function(){return __awaiter(void 0,void 0,void 0,function(){var expandButton;return __generator(this,function(_a){expandButton=shadowRoot.getElementById("beacon-toast-button-expand");if(expandButton&&!expandButton.classList.contains("beacon-toast__upside_down")){expandOrCollapseList(shadowRoot)}return[2]})})},EXPAND_AFTER)}registerClick(shadowRoot,"beacon-toast-button-done",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeToast()];case 1:_a.sent();return[2]}})})});closeButton=registerClick(shadowRoot,"beacon-toast-button-close",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeToast()];case 1:_a.sent();return[2]}})})});if(closeButton&&globalToastConfig.state==="loading"){closeButton.classList.add("hide")}registerClick(shadowRoot,"beacon-toast-button-expand",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){expandOrCollapseList(shadowRoot);return[2]})})});return[2]}})})};var updateToast=function(toastConfig){return __awaiter(void 0,void 0,void 0,function(){var timer,wrapper,shadowRoot,list,toastTextEl,doneButton;return __generator(this,function(_a){switch(_a.label){case 0:globalToastConfig=__assign(__assign({},globalToastConfig),toastConfig);timer=toastConfig.timer;wrapper=document.getElementById("beacon-toast-wrapper");if(!wrapper){return[2]}shadowRoot=wrapper.shadowRoot;if(!shadowRoot){return[2]}list=shadowRoot.getElementById("beacon-toast-list");if(!list)return[3,2];removeAllChildNodes(list);return[4,addActionsToToast(shadowRoot,toastConfig,list)];case 1:_a.sent();_a.label=2;case 2:toastTextEl=shadowRoot.getElementById("beacon-text");if(toastTextEl){toastTextEl.innerHTML=formatToastText(toastConfig.body)}if(timer){timeout=window.setTimeout(function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeToast()];case 1:_a.sent();return[2]}})})},timer)}doneButton=shadowRoot.getElementById("beacon-toast-button-done");if(doneButton){doneButton.addEventListener("click",function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,closeToast()];case 1:_a.sent();return[2]}})})})}return[2]}})})};var openToast=function(toastConfig){return __awaiter(void 0,void 0,void 0,function(){var wrapper,shadowRoot;var _a;return __generator(this,function(_b){switch(_b.label){case 0:if(expandTimeout){clearTimeout(expandTimeout)}wrapper=document.getElementById("beacon-toast-wrapper");if(!wrapper)return[3,6];if(!toastConfig.forceNew)return[3,3];return[4,closeToast()];case 1:_b.sent();return[4,createNewToast(toastConfig)];case 2:_b.sent();return[3,5];case 3:return[4,updateToast(toastConfig)];case 4:_b.sent();_b.label=5;case 5:return[3,8];case 6:return[4,createNewToast(toastConfig)];case 7:_b.sent();_b.label=8;case 8:if(globalToastConfig&&globalToastConfig.state==="finished"){shadowRoot=(_a=document.getElementById("beacon-toast-wrapper"))===null||_a===void 0?void 0:_a.shadowRoot;if(shadowRoot){hideLoader(shadowRoot);showClose(shadowRoot);expandList(shadowRoot)}}return[2]}})})};exports.openToast=openToast},{"../../colorMode":8,"../../utils/generate-uuid":85,"../../utils/replace-in-template":91,"./toast-templates":78}],78:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.toastTemplates=void 0;exports.toastTemplates={default:{html:'<div id="beacon-toast" class="beacon-toast__base animated fadeIn">\n  <div class="beacon-toast__content">\n    <p id="beacon-text">{{text}}</p>\n    <svg\n      id="beacon-toast-button-expand"\n      class="beacon-toast__more"\n      aria-hidden="true"\n      focusable="false"\n      data-prefix="fas"\n      data-icon="angle-down"\n      class="svg-inline--fa fa-angle-down fa-w-10"\n      role="img"\n      xmlns="http://www.w3.org/2000/svg"\n      viewBox="0 0 320 512"\n    >\n      <path\n        fill="currentColor"\n        d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"\n      ></path>\n    </svg>\n    <svg\n      id="beacon-toast-button-close"\n      class="beacon-toast__more"\n      aria-hidden="true"\n      focusable="false"\n      data-prefix="fal"\n      data-icon="times"\n      class="svg-inline--fa fa-times fa-w-10"\n      role="img"\n      xmlns="http://www.w3.org/2000/svg"\n      viewBox="0 0 320 512"\n    >\n      <path\n        fill="currentColor"\n        d="M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z"\n      ></path>\n    </svg>\n  </div>\n  <div id="beacon-toast-loader" class="progress-line"></div>\n  <hr id="beacon-toast-loader-placeholder" class="hide" />\n  <div id="beacon-toast-list" class="beacon-toast__more--action"></div>\n</div>\n',css:":host {\n  --animation-duration: 300ms;\n  all: initial;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n@keyframes fadeOut {\n  from {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n.animated {\n  animation-duration: var(--animation-duration);\n  animation-fill-mode: both;\n}\n\n.fadeIn {\n  animation-name: fadeIn;\n}\n\n.fadeOut {\n  animation-name: fadeOut;\n}\n\n.beacon-toast__base {\n  position: fixed;\n  top: 16px;\n  right: 16px;\n  z-index: 2147483000;\n  margin: 0 auto;\n  border-radius: 8px;\n  overflow: hidden;\n  box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.1);\n  flex-direction: column;\n}\n@media (max-width: 576px) {\n  .beacon-toast__base {\n    top: 8px;\n    right: 8px;\n    left: 8px;\n  }\n}\n\n.theme__light.beacon-toast__base {\n  background: #fff;\n}\n\n.theme__dark.beacon-toast__base {\n  background: #27334c;\n}\n\n.theme__dark p {\n  color: #6183ff;\n}\n\na {\n  text-decoration: none;\n  color: #3880ff;\n}\n\na svg {\n  width: 12px;\n  margin-left: 2px;\n}\n\na:visited {\n  color: #3880ff;\n}\n\nhr {\n  height: 1px;\n  color: rgba(0, 0, 0, 0.12);\n  background-color: rgba(0, 0, 0, 0.12);\n  border: none;\n  width: 100%;\n  margin: 0;\n  display: none;\n}\n\n.show {\n  display: block !important;\n}\n\n.hide {\n  display: none !important;\n}\n\n#beacon-toast-list {\n  display: none;\n}\n\n.beacon-toast__upside_down {\n  transform: rotate(180deg);\n}\n\n.beacon-toast__content {\n  justify-content: space-between;\n  max-height: 56px;\n}\n\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n.beacon-toast__wallet__container,\n#beacon-text,\n.beacon-toast__action__item p {\n  align-items: center;\n}\n\n.beacon-toast__content,\n.beacon-toast__base,\n.beacon-toast__action__item,\n.beacon-toast__powered a,\n#beacon-text,\n.beacon-toast__wallet__container {\n  display: flex;\n}\n\n.beacon-toast__content,\n.beacon-toast__action__item,\n.beacon-toast__powered a {\n  padding: 0 16px;\n  font-family: Roboto, Helvetica, sans-serif;\n}\n\n#beacon-text strong {\n  display: contents;\n}\n\n.beacon-toast__powered a {\n  margin: 4px 0 12px;\n  font-size: 12px;\n  opacity: 0.64;\n}\n\n.beacon-toast__powered svg {\n  width: 20px;\n  height: 20px;\n  margin: 0 2px 0 4px;\n}\n\n.beacon-toast__action__item {\n  font-size: 14px;\n  max-width: 40ch;\n}\n\n.beacon-toast__action__item p {\n  margin-right: 8px;\n}\n\n.beacon-toast__action__item__subtitle,\n.beacon-toast__powered a {\n  min-width: 88px;\n  color: rgba(0, 0, 0, 0.54);\n}\n\n.theme__dark .beacon-toast__powered a {\n  color: #7c99d6;\n}\n\n.beacon-toast__content__img {\n  width: 24px;\n  height: 24px;\n  margin-right: 4px;\n}\n\n.beacon-toast__more {\n  width: 14px;\n  transition: transform 0.5s;\n}\n\na,\n.beacon-toast__more {\n  cursor: pointer;\n}\n\na:hover {\n  opacity: 0.64;\n}\n\n.theme__dark .beacon-toast__more {\n  color: #7c99d6;\n}\n\n.beacon-toast__more--action {\n  margin: 8px 0;\n}\n\n#beacon-text {\n  padding-right: 24px;\n}\n\n.progress-line,\n.progress-line:before {\n  height: 3px;\n  width: 100%;\n  margin: 0;\n}\n.progress-line {\n  background-color: #a7c4f7;\n  display: -webkit-flex;\n  display: flex;\n}\n.progress-line:before {\n  background-color: #3880ff;\n  content: '';\n  -webkit-animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n  animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n@-webkit-keyframes running-progress {\n  0% {\n    margin-left: 0px;\n    margin-right: 100%;\n  }\n  50% {\n    margin-left: 25%;\n    margin-right: 0%;\n  }\n  100% {\n    margin-left: 100%;\n    margin-right: 0;\n  }\n}\n@keyframes running-progress {\n  0% {\n    margin-left: 0px;\n    margin-right: 100%;\n  }\n  50% {\n    margin-left: 25%;\n    margin-right: 0%;\n  }\n  100% {\n    margin-left: 100%;\n    margin-right: 0;\n  }\n}\n",poweredByBeacon:'<a href="https://walletbeacon.io" target="_blank">\n  powered by\n  <svg\n    id="f63e95a9-fd19-4487-bc1a-09eb2f066704"\n    data-name="Guides"\n    xmlns="http://www.w3.org/2000/svg"\n    width="65"\n    height="65"\n    viewBox="0 0 65 65"\n  >\n    <title>beacon_logo</title>\n    <path\n      fill="currentColor"\n      d="M59.66,29.52v1.06c0,.37-.18,9.07-4.11,15.88S44.16,57.75,43.84,57.93l-.91.54-1.61-.93-9.19-5.3a14.68,14.68,0,0,1-1.63-1.06h0a14.09,14.09,0,0,1-1.29-1,17.63,17.63,0,0,1-2.56-2.7,18.58,18.58,0,0,1-2.56-4.51,21.53,21.53,0,0,1-1.5-9,6.21,6.21,0,0,1,2.93-.73c.25,0,.49,0,.74,0a18.29,18.29,0,0,0,1,7.93,15.06,15.06,0,0,0,6.67,8l8.93,5.16c.2-.13.43-.3.68-.48,2.26-1.6,6.42-4.92,8.86-9.13C55.12,39.94,55.8,34,56,31.57l-3.79-2.19a23,23,0,0,0,.6-3.83Z"\n    />\n    <path\n      fill="currentColor"\n      d="M49.22,11.43V23.89c0,.65,0,1.3-.1,1.94v0c-.06.55-.13,1.1-.24,1.63A18,18,0,0,1,47.82,31a19.11,19.11,0,0,1-2.62,4.49,21.37,21.37,0,0,1-7.07,5.8,6.08,6.08,0,0,1-2.42-2.84A18.1,18.1,0,0,0,42,33.7h0a15.12,15.12,0,0,0,3.58-9.81V13.6c-.21-.11-.47-.21-.74-.35-2.52-1.16-7.47-3.1-12.36-3.1-5.42,0-11,2.4-13.08,3.45V18a22.54,22.54,0,0,0-3.63,1.38V11.43l.92-.52c.33-.18,8-4.38,15.79-4.38s15.48,4.2,15.8,4.38Z"\n    />\n    <path\n      fill="currentColor"\n      d="M18,26.4,9,31.55q0,.35.06.78a31.63,31.63,0,0,0,3.49,12.28c2.71,4.71,7.55,8.3,9.53,9.64l3.79-2.19a23.33,23.33,0,0,0,3,2.44l-6.88,4-.92-.54c-.31-.18-7.75-4.69-11.68-11.5S5.36,30.92,5.35,30.56V29.49L7,28.55l9.17-5.29c.57-.32,1.14-.61,1.72-.87a13.46,13.46,0,0,1,1.55-.61A17.52,17.52,0,0,1,23,20.91a19.2,19.2,0,0,1,5.19,0,21.49,21.49,0,0,1,8.55,3.24,6.29,6.29,0,0,1-1.25,3.51,17.9,17.9,0,0,0-7.3-3.06A15.14,15.14,0,0,0,18,26.4Z"\n    />\n  </svg>\n  Beacon\n</a>\n'}}},{}],79:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Logger=void 0;var debug_1=require("../debug");var Logger=function(){function Logger(service){this.name=service}Logger.prototype.debug=function(method){var args=[];for(var _i=1;_i<arguments.length;_i++){args[_i-1]=arguments[_i]}this._log("debug",method,args)};Logger.prototype.log=function(method){var args=[];for(var _i=1;_i<arguments.length;_i++){args[_i-1]=arguments[_i]}this._log("log",method,args)};Logger.prototype.warn=function(method){var args=[];for(var _i=1;_i<arguments.length;_i++){args[_i-1]=arguments[_i]}this._log("warn",method,args)};Logger.prototype.error=function(method){var args=[];for(var _i=1;_i<arguments.length;_i++){args[_i-1]=arguments[_i]}this._log("error",method,args)};Logger.prototype._log=function(type,method,args){if(args===void 0){args=[]}if(!debug_1.getDebugEnabled()){return}var groupText="[BEACON] "+(new Date).toISOString()+" ["+this.name+"]("+method+")";var data=args;if(args[0]&&typeof args[0]==="string"){groupText+=" "+args[0];data=args.slice(1)}switch(type){case"error":console.group(groupText);console.error.apply(console,data);break;case"warn":console.group(groupText);console.warn.apply(console,data);break;case"debug":console.groupCollapsed(groupText);console.debug.apply(console,data);break;default:console.group(groupText);console.log.apply(console,data)}console.groupEnd()};return Logger}();exports.Logger=Logger},{"../debug":10}],80:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assertNever=void 0;function assertNever(empty){return empty}exports.assertNever=assertNever},{}],81:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.availableTransports=void 0;var __1=require("..");exports.availableTransports={extension:__1.PostMessageTransport.isAvailable(),availableExtensions:__1.PostMessageTransport.getAvailableExtensions()}},{"..":24}],82:[function(require,module,exports){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.BlockExplorer=void 0;var BlockExplorer=function(){function BlockExplorer(rpcUrls){this.rpcUrls=rpcUrls}BlockExplorer.prototype.getLinkForNetwork=function(network){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){return[2,this.rpcUrls[network.type]]})})};return BlockExplorer}();exports.BlockExplorer=BlockExplorer},{}],83:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.recipientString=exports.getAddressFromPublicKey=exports.openCryptobox=exports.sealCryptobox=exports.decryptCryptoboxPayload=exports.encryptCryptoboxPayload=exports.getKeypairFromSeed=exports.getHexHash=exports.toHex=void 0;var bs58check=require("bs58check");var sodium=require("libsodium-wrappers");function toHex(value){return Buffer.from(value).toString("hex")}exports.toHex=toHex;function getHexHash(key){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();return[2,toHex(sodium.crypto_generichash(32,key))]}})})}exports.getHexHash=getHexHash;function getKeypairFromSeed(seed){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();return[2,sodium.crypto_sign_seed_keypair(sodium.crypto_generichash(32,sodium.from_string(seed)))]}})})}exports.getKeypairFromSeed=getKeypairFromSeed;function encryptCryptoboxPayload(message,sharedKey){return __awaiter(this,void 0,void 0,function(){var nonce,combinedPayload;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();nonce=Buffer.from(sodium.randombytes_buf(sodium.crypto_secretbox_NONCEBYTES));combinedPayload=Buffer.concat([nonce,Buffer.from(sodium.crypto_secretbox_easy(Buffer.from(message,"utf8"),nonce,sharedKey))]);return[2,toHex(combinedPayload)]}})})}exports.encryptCryptoboxPayload=encryptCryptoboxPayload;function decryptCryptoboxPayload(payload,sharedKey){return __awaiter(this,void 0,void 0,function(){var nonce,ciphertext;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();nonce=payload.slice(0,sodium.crypto_secretbox_NONCEBYTES);ciphertext=payload.slice(sodium.crypto_secretbox_NONCEBYTES);return[2,Buffer.from(sodium.crypto_secretbox_open_easy(ciphertext,nonce,sharedKey)).toString("utf8")]}})})}exports.decryptCryptoboxPayload=decryptCryptoboxPayload;function sealCryptobox(payload,publicKey){return __awaiter(this,void 0,void 0,function(){var kxSelfPublicKey,encryptedMessage;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();kxSelfPublicKey=sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey));encryptedMessage=sodium.crypto_box_seal(payload,kxSelfPublicKey);return[2,toHex(encryptedMessage)]}})})}exports.sealCryptobox=sealCryptobox;function openCryptobox(encryptedPayload,publicKey,privateKey){return __awaiter(this,void 0,void 0,function(){var kxSelfPrivateKey,kxSelfPublicKey,decryptedMessage;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();kxSelfPrivateKey=sodium.crypto_sign_ed25519_sk_to_curve25519(Buffer.from(privateKey));kxSelfPublicKey=sodium.crypto_sign_ed25519_pk_to_curve25519(Buffer.from(publicKey));decryptedMessage=sodium.crypto_box_seal_open(encryptedPayload,kxSelfPublicKey,kxSelfPrivateKey);return[2,Buffer.from(decryptedMessage).toString()]}})})}exports.openCryptobox=openCryptobox;function getAddressFromPublicKey(publicKey){return __awaiter(this,void 0,void 0,function(){var prefixes,prefix,plainPublicKey,entries,index,_a,key,value,decoded,payload;return __generator(this,function(_b){switch(_b.label){case 0:return[4,sodium.ready];case 1:_b.sent();prefixes={edpk:{length:54,prefix:Buffer.from(new Uint8Array([6,161,159]))},sppk:{length:55,prefix:Buffer.from(new Uint8Array([6,161,161]))},p2pk:{length:55,prefix:Buffer.from(new Uint8Array([6,161,164]))}};if(publicKey.length===64){prefix=prefixes.edpk.prefix;plainPublicKey=publicKey}else{entries=Object.entries(prefixes);for(index=0;index<entries.length;index++){_a=entries[index],key=_a[0],value=_a[1];if(publicKey.startsWith(key)&&publicKey.length===value.length){prefix=value.prefix;decoded=bs58check.decode(publicKey);plainPublicKey=decoded.slice(key.length,decoded.length).toString("hex");break}}}if(!prefix||!plainPublicKey){throw new Error("invalid publicKey: "+publicKey)}payload=sodium.crypto_generichash(20,Buffer.from(plainPublicKey,"hex"));return[2,bs58check.encode(Buffer.concat([prefix,Buffer.from(payload)]))]}})})}exports.getAddressFromPublicKey=getAddressFromPublicKey;function recipientString(recipientHash,relayServer){return"@"+recipientHash+":"+relayServer}exports.recipientString=recipientString}).call(this,require("buffer").Buffer)},{bs58check:190,buffer:185,"libsodium-wrappers":248}],84:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ExposedPromise=exports.ExposedPromiseStatus=void 0;var ExposedPromiseStatus;(function(ExposedPromiseStatus){ExposedPromiseStatus["PENDING"]="pending";ExposedPromiseStatus["RESOLVED"]="resolved";ExposedPromiseStatus["REJECTED"]="rejected"})(ExposedPromiseStatus=exports.ExposedPromiseStatus||(exports.ExposedPromiseStatus={}));var notInitialized=function(){throw new Error("ExposedPromise not initialized yet.")};var ExposedPromise=function(){function ExposedPromise(){var _this=this;this._resolve=notInitialized;this._reject=notInitialized;this._status=ExposedPromiseStatus.PENDING;this._promise=new Promise(function(innerResolve,innerReject){_this._resolve=function(value){if(_this.isSettled()){return}_this._promiseResult=value;innerResolve(value);_this._status=ExposedPromiseStatus.RESOLVED;return};_this._reject=function(reason){if(_this.isSettled()){return}_this._promiseError=reason;innerReject(reason);_this._status=ExposedPromiseStatus.REJECTED;return}})}Object.defineProperty(ExposedPromise.prototype,"promise",{get:function(){return this._promise},enumerable:false,configurable:true});Object.defineProperty(ExposedPromise.prototype,"resolve",{get:function(){return this._resolve},enumerable:false,configurable:true});Object.defineProperty(ExposedPromise.prototype,"reject",{get:function(){return this._reject},enumerable:false,configurable:true});Object.defineProperty(ExposedPromise.prototype,"status",{get:function(){return this._status},enumerable:false,configurable:true});Object.defineProperty(ExposedPromise.prototype,"promiseResult",{get:function(){return this._promiseResult},enumerable:false,configurable:true});Object.defineProperty(ExposedPromise.prototype,"promiseError",{get:function(){return this._promiseError},enumerable:false,configurable:true});ExposedPromise.resolve=function(value){var promise=new ExposedPromise;promise.resolve(value);return promise};ExposedPromise.reject=function(reason){var promise=new ExposedPromise;promise.reject(reason);return promise};ExposedPromise.prototype.isPending=function(){return this.status===ExposedPromiseStatus.PENDING};ExposedPromise.prototype.isResolved=function(){return this.status===ExposedPromiseStatus.RESOLVED};ExposedPromise.prototype.isRejected=function(){return this.status===ExposedPromiseStatus.REJECTED};ExposedPromise.prototype.isSettled=function(){return this.isResolved()||this.isRejected()};return ExposedPromise}();exports.ExposedPromise=ExposedPromise},{}],85:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.generateGUID=void 0;var sodium=require("libsodium-wrappers");function generateGUID(){return __awaiter(this,void 0,void 0,function(){var buf;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();buf=sodium.randombytes_buf(16);return[2,[buf.slice(0,4),buf.slice(4,6),buf.slice(6,8),buf.slice(8,10),buf.slice(10,16)].map(function(subbuf){return Buffer.from(subbuf).toString("hex")}).join("-")]}})})}exports.generateGUID=generateGUID}).call(this,require("buffer").Buffer)},{buffer:185,"libsodium-wrappers":248}],86:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.getAccountIdentifier=void 0;var sodium=require("libsodium-wrappers");var bs58check=require("bs58check");exports.getAccountIdentifier=function(address,network){return __awaiter(void 0,void 0,void 0,function(){var data,buffer;return __generator(this,function(_a){switch(_a.label){case 0:data=[address,network.type];if(network.name){data.push("name:"+network.name)}if(network.rpcUrl){data.push("rpc:"+network.rpcUrl)}return[4,sodium.ready];case 1:_a.sent();buffer=Buffer.from(sodium.crypto_generichash(10,data.join("-")));return[2,bs58check.encode(buffer)]}})})}}).call(this,require("buffer").Buffer)},{bs58check:190,buffer:185,"libsodium-wrappers":248}],87:[function(require,module,exports){(function(Buffer){"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.getSenderId=void 0;var sodium=require("libsodium-wrappers");var bs58check=require("bs58check");exports.getSenderId=function(publicKey){return __awaiter(void 0,void 0,void 0,function(){var buffer;return __generator(this,function(_a){switch(_a.label){case 0:return[4,sodium.ready];case 1:_a.sent();buffer=Buffer.from(sodium.crypto_generichash(5,Buffer.from(publicKey,"hex")));return[2,bs58check.encode(buffer)]}})})}}).call(this,require("buffer").Buffer)},{bs58check:190,buffer:185,"libsodium-wrappers":248}],88:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getTzip10Link=void 0;exports.getTzip10Link=function(url,payload){return url+"?type=tzip10&data="+payload}},{}],89:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isDesktop=exports.isAndroid=exports.isIOS=exports.isMobile=exports.testUserAgent=void 0;exports.testUserAgent=function(win,expr){return expr.test(win.navigator.userAgent)};var matchMedia=function(win,query){return win.matchMedia(query).matches};exports.isMobile=function(win){return matchMedia(win,"(any-pointer:coarse)")};var isIpad=function(win){if(exports.testUserAgent(win,/iPad/i)){return true}if(exports.testUserAgent(win,/Macintosh/i)&&exports.isMobile(win)){return true}return false};exports.isIOS=function(win){return exports.testUserAgent(win,/iPhone|iPod/i)||isIpad(win)};exports.isAndroid=function(win){return exports.testUserAgent(win,/android|sink/i)};exports.isDesktop=function(win){return!exports.isMobile(win)}},{}],90:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getQrData=void 0;var qrcode=require("qrcode-generator");var Logger_1=require("./Logger");var logger=new Logger_1.Logger("QR");exports.getQrData=function(payload,type){var typeNumber=0;var errorCorrectionLevel="L";var qr=qrcode(typeNumber,errorCorrectionLevel);if(payload.length>500){logger.warn("getQrData",'The size of the payload in the QR code is quite long and some devices might not be able to scan it anymore. To reduce the QR size, try using a shorter "name", "appUrl" and "iconUrl"')}try{qr.addData(payload);qr.make();if(type==="svg"){return qr.createSvgTag()}else if(type==="ascii"){var length_1=qr.getModuleCount();var black="[40m  [0m";var white="[47m  [0m";var whiteLine=new Array(length_1+3).join(white);var blackLine=new Array(length_1+3).join(black);var ascii="";ascii+=blackLine+"\n";ascii+=whiteLine+"\n";for(var x=0;x<length_1;x++){ascii+=white;for(var y=0;y<length_1;y++){ascii+=qr.isDark(x,y)?black:white}ascii+=white+"\n"}ascii+=whiteLine;ascii+=blackLine;return ascii}else{return qr.createDataURL()}}catch(qrError){console.error("error",qrError);throw qrError}}},{"./Logger":79,"qrcode-generator":275}],91:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.replaceInTemplate=void 0;exports.replaceInTemplate=function(text,placeholder,value){return text.split("{{"+placeholder+"}}").join(value)}},{}],92:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.shortenString=void 0;exports.shortenString=function(text){if(text.length>=12){return text.substr(0,5)+"..."+text.substr(-5)}return text}},{}],93:[function(require,module,exports){"use strict";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),throw:verb(1),return:verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};Object.defineProperty(exports,"__esModule",{value:true});exports.TezblockBlockExplorer=void 0;var __1=require("..");var block_explorer_1=require("./block-explorer");var TezblockBlockExplorer=function(_super){__extends(TezblockBlockExplorer,_super);function TezblockBlockExplorer(rpcUrls){var _a;if(rpcUrls===void 0){rpcUrls=(_a={},_a[__1.NetworkType.MAINNET]="https://tezblock.io",_a[__1.NetworkType.DELPHINET]="https://delphinet.tezblock.io",_a[__1.NetworkType.EDONET]="https://edonet.tezblock.io",_a[__1.NetworkType.FLORENCENET]="https://florencenet.tezblock.io",_a[__1.NetworkType.GRANADANET]="https://granadanet.tezblock.io",_a[__1.NetworkType.CUSTOM]="https://granadanet.tezblock.io",_a)}var _this=_super.call(this,rpcUrls)||this;_this.rpcUrls=rpcUrls;return _this}TezblockBlockExplorer.prototype.getAddressLink=function(address,network){return __awaiter(this,void 0,void 0,function(){var blockExplorer;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getLinkForNetwork(network)];case 1:blockExplorer=_a.sent();return[2,blockExplorer+"/account/"+address]}})})};TezblockBlockExplorer.prototype.getTransactionLink=function(transactionId,network){return __awaiter(this,void 0,void 0,function(){var blockExplorer;return __generator(this,function(_a){switch(_a.label){case 0:return[4,this.getLinkForNetwork(network)];case 1:blockExplorer=_a.sent();return[2,blockExplorer+"/transaction/"+transactionId]}})})};return TezblockBlockExplorer}(block_explorer_1.BlockExplorer);exports.TezblockBlockExplorer=TezblockBlockExplorer},{"..":24,"./block-explorer":82}],94:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.keys=void 0;function keys(obj){return Object.keys(obj)}exports.keys=keys},{}],95:[function(require,module,exports){var asn1=exports;asn1.bignum=require("bn.js");asn1.define=require("./asn1/api").define;asn1.base=require("./asn1/base");asn1.constants=require("./asn1/constants");asn1.decoders=require("./asn1/decoders");asn1.encoders=require("./asn1/encoders")},{"./asn1/api":96,"./asn1/base":98,"./asn1/constants":102,"./asn1/decoders":104,"./asn1/encoders":107,"bn.js":109}],96:[function(require,module,exports){var asn1=require("../asn1");var inherits=require("inherits");var api=exports;api.define=function define(name,body){return new Entity(name,body)};function Entity(name,body){this.name=name;this.body=body;this.decoders={};this.encoders={}}Entity.prototype._createNamed=function createNamed(base){var named;try{named=require("vm").runInThisContext("(function "+this.name+"(entity) {\n"+"  this._initNamed(entity);\n"+"})")}catch(e){named=function(entity){this._initNamed(entity)}}inherits(named,base);named.prototype._initNamed=function initnamed(entity){base.call(this,entity)};return new named(this)};Entity.prototype._getDecoder=function _getDecoder(enc){enc=enc||"der";if(!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc]};Entity.prototype.decode=function decode(data,enc,options){return this._getDecoder(enc).decode(data,options)};Entity.prototype._getEncoder=function _getEncoder(enc){enc=enc||"der";if(!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc]};Entity.prototype.encode=function encode(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"../asn1":95,inherits:245,vm:306}],97:[function(require,module,exports){var inherits=require("inherits");var Reporter=require("../base").Reporter;var Buffer=require("buffer").Buffer;function DecoderBuffer(base,options){Reporter.call(this,options);if(!Buffer.isBuffer(base)){this.error("Input not Buffer");return}this.base=base;this.offset=0;this.length=base.length}inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function save(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}};DecoderBuffer.prototype.restore=function restore(save){var res=new DecoderBuffer(this.base);res.offset=save.offset;res.length=this.offset;this.offset=save.offset;Reporter.prototype.restore.call(this,save.reporter);return res};DecoderBuffer.prototype.isEmpty=function isEmpty(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function readUInt8(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,true);else return this.error(fail||"DecoderBuffer overrun")};DecoderBuffer.prototype.skip=function skip(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");var res=new DecoderBuffer(this.base);res._reporterState=this._reporterState;res.offset=this.offset;res.length=this.offset+bytes;this.offset+=bytes;return res};DecoderBuffer.prototype.raw=function raw(save){return this.base.slice(save?save.offset:this.offset,this.length)};function EncoderBuffer(value,reporter){if(Array.isArray(value)){this.length=0;this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);this.length+=item.length;return item},this)}else if(typeof value==="number"){if(!(0<=value&&value<=255))return reporter.error("non-byte EncoderBuffer value");this.value=value;this.length=1}else if(typeof value==="string"){this.value=value;this.length=Buffer.byteLength(value)}else if(Buffer.isBuffer(value)){this.value=value;this.length=value.length}else{return reporter.error("Unsupported type: "+typeof value)}}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function join(out,offset){if(!out)out=new Buffer(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value)){this.value.forEach(function(item){item.join(out,offset);offset+=item.length})}else{if(typeof this.value==="number")out[offset]=this.value;else if(typeof this.value==="string")out.write(this.value,offset);else if(Buffer.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length}return out}},{"../base":98,buffer:185,inherits:245}],98:[function(require,module,exports){var base=exports;base.Reporter=require("./reporter").Reporter;base.DecoderBuffer=require("./buffer").DecoderBuffer;base.EncoderBuffer=require("./buffer").EncoderBuffer;base.Node=require("./node")},{"./buffer":97,"./node":99,"./reporter":100}],99:[function(require,module,exports){var Reporter=require("../base").Reporter;var EncoderBuffer=require("../base").EncoderBuffer;var DecoderBuffer=require("../base").DecoderBuffer;var assert=require("minimalistic-assert");var tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"];var methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags);var overrided=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Node(enc,parent){var state={};this._baseState=state;state.enc=enc;state.parent=parent||null;state.children=null;state.tag=null;state.args=null;state.reverseArgs=null;state.choice=null;state.optional=false;state.any=false;state.obj=false;state.use=null;state.useDecoder=null;state.key=null;state["default"]=null;state.explicit=null;state.implicit=null;state.contains=null;if(!state.parent){state.children=[];this._wrap()}}module.exports=Node;var stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node.prototype.clone=function clone(){var state=this._baseState;var cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});var res=new this.constructor(cstate.parent);res._baseState=cstate;return res};Node.prototype._wrap=function wrap(){var state=this._baseState;methods.forEach(function(method){this[method]=function _wrappedMethod(){var clone=new this.constructor(this);state.children.push(clone);return clone[method].apply(clone,arguments)}},this)};Node.prototype._init=function init(body){var state=this._baseState;assert(state.parent===null);body.call(this);state.children=state.children.filter(function(child){return child._baseState.parent===this},this);assert.equal(state.children.length,1,"Root node can have only one child")};Node.prototype._useArgs=function useArgs(args){var state=this._baseState;var children=args.filter(function(arg){return arg instanceof this.constructor},this);args=args.filter(function(arg){return!(arg instanceof this.constructor)},this);if(children.length!==0){assert(state.children===null);state.children=children;children.forEach(function(child){child._baseState.parent=this},this)}if(args.length!==0){assert(state.args===null);state.args=args;state.reverseArgs=args.map(function(arg){if(typeof arg!=="object"||arg.constructor!==Object)return arg;var res={};Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key});return res})}};overrided.forEach(function(method){Node.prototype[method]=function _overrided(){var state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}});tags.forEach(function(tag){Node.prototype[tag]=function _tagMethod(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);assert(state.tag===null);state.tag=tag;this._useArgs(args);return this}});Node.prototype.use=function use(item){assert(item);var state=this._baseState;assert(state.use===null);state.use=item;return this};Node.prototype.optional=function optional(){var state=this._baseState;state.optional=true;return this};Node.prototype.def=function def(val){var state=this._baseState;assert(state["default"]===null);state["default"]=val;state.optional=true;return this};Node.prototype.explicit=function explicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.explicit=num;return this};Node.prototype.implicit=function implicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.implicit=num;return this};Node.prototype.obj=function obj(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);state.obj=true;if(args.length!==0)this._useArgs(args);return this};Node.prototype.key=function key(newKey){var state=this._baseState;assert(state.key===null);state.key=newKey;return this};Node.prototype.any=function any(){var state=this._baseState;state.any=true;return this};Node.prototype.choice=function choice(obj){var state=this._baseState;assert(state.choice===null);state.choice=obj;this._useArgs(Object.keys(obj).map(function(key){return obj[key]}));return this};Node.prototype.contains=function contains(item){var state=this._baseState;assert(state.use===null);state.contains=item;return this};Node.prototype._decode=function decode(input,options){var state=this._baseState;if(state.parent===null)return input.wrapResult(state.children[0]._decode(input,options));var result=state["default"];var present=true;var prevKey=null;if(state.key!==null)prevKey=input.enterKey(state.key);if(state.optional){var tag=null;if(state.explicit!==null)tag=state.explicit;else if(state.implicit!==null)tag=state.implicit;else if(state.tag!==null)tag=state.tag;if(tag===null&&!state.any){var save=input.save();try{if(state.choice===null)this._decodeGeneric(state.tag,input,options);else this._decodeChoice(input,options);present=true}catch(e){present=false}input.restore(save)}else{present=this._peekTag(input,tag,state.any);if(input.isError(present))return present}}var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}var start=input.offset;if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body}if(options&&options.track&&state.tag!==null)options.track(input.path(),start,input.length,"tagged");if(options&&options.track&&state.tag!==null)options.track(input.path(),input.offset,input.length,"content");if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input,options);else result=this._decodeChoice(input,options);if(input.isError(result))return result;if(!state.any&&state.choice===null&&state.children!==null){state.children.forEach(function decodeChildren(child){child._decode(input,options)})}if(state.contains&&(state.tag==="octstr"||state.tag==="bitstr")){var data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}if(state.obj&&present)result=input.leaveObject(prevObj);if(state.key!==null&&(result!==null||present===true))input.leaveKey(prevKey,state.key,result);else if(prevKey!==null)input.exitKey(prevKey);return result};Node.prototype._decodeGeneric=function decodeGeneric(tag,input,options){var state=this._baseState;if(tag==="seq"||tag==="set")return null;if(tag==="seqof"||tag==="setof")return this._decodeList(input,tag,state.args[0],options);else if(/str$/.test(tag))return this._decodeStr(input,tag,options);else if(tag==="objid"&&state.args)return this._decodeObjid(input,state.args[0],state.args[1],options);else if(tag==="objid")return this._decodeObjid(input,null,null,options);else if(tag==="gentime"||tag==="utctime")return this._decodeTime(input,tag,options);else if(tag==="null_")return this._decodeNull(input,options);else if(tag==="bool")return this._decodeBool(input,options);else if(tag==="objDesc")return this._decodeStr(input,tag,options);else if(tag==="int"||tag==="enum")return this._decodeInt(input,state.args&&state.args[0],options);if(state.use!==null){return this._getUse(state.use,input._reporterState.obj)._decode(input,options)}else{return input.error("unknown tag: "+tag)}};Node.prototype._getUse=function _getUse(entity,obj){var state=this._baseState;state.useDecoder=this._use(entity,obj);assert(state.useDecoder._baseState.parent===null);state.useDecoder=state.useDecoder._baseState.children[0];if(state.implicit!==state.useDecoder._baseState.implicit){state.useDecoder=state.useDecoder.clone();state.useDecoder._baseState.implicit=state.implicit}return state.useDecoder};Node.prototype._decodeChoice=function decodeChoice(input,options){var state=this._baseState;var result=null;var match=false;Object.keys(state.choice).some(function(key){var save=input.save();var node=state.choice[key];try{var value=node._decode(input,options);if(input.isError(value))return false;result={type:key,value:value};match=true}catch(e){input.restore(save);return false}return true},this);if(!match)return input.error("Choice not matched");return result};Node.prototype._createEncoderBuffer=function createEncoderBuffer(data){return new EncoderBuffer(data,this.reporter)};Node.prototype._encode=function encode(data,reporter,parent){var state=this._baseState;if(state["default"]!==null&&state["default"]===data)return;var result=this._encodeValue(data,reporter,parent);if(result===undefined)return;if(this._skipDefault(result,reporter,parent))return;return result};Node.prototype._encodeValue=function encode(data,reporter,parent){var state=this._baseState;if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter);var result=null;this.reporter=reporter;if(state.optional&&data===undefined){if(state["default"]!==null)data=state["default"];else return}var content=null;var primitive=false;if(state.any){result=this._createEncoderBuffer(data)}else if(state.choice){result=this._encodeChoice(data,reporter)}else if(state.contains){content=this._getUse(state.contains,parent)._encode(data,reporter);primitive=true}else if(state.children){content=state.children.map(function(child){if(child._baseState.tag==="null_")return child._encode(null,reporter,data);if(child._baseState.key===null)return reporter.error("Child should have a key");var prevKey=reporter.enterKey(child._baseState.key);if(typeof data!=="object")return reporter.error("Child expected, but input is not object");var res=child._encode(data[child._baseState.key],reporter,data);reporter.leaveKey(prevKey);return res},this).filter(function(child){return child});content=this._createEncoderBuffer(content)}else{if(state.tag==="seqof"||state.tag==="setof"){if(!(state.args&&state.args.length===1))return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");var child=this.clone();child._baseState.implicit=null;content=this._createEncoderBuffer(data.map(function(item){var state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)},child))}else if(state.use!==null){result=this._getUse(state.use,parent)._encode(data,reporter)}else{content=this._encodePrimitive(state.tag,data);primitive=true}}var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag;var cls=state.implicit===null?"universal":"context";if(tag===null){if(state.use===null)reporter.error("Tag could be omitted only for .use()")}else{if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content)}}if(state.explicit!==null)result=this._encodeComposite(state.explicit,false,"context",result);return result};Node.prototype._encodeChoice=function encodeChoice(data,reporter){var state=this._baseState;var node=state.choice[data.type];if(!node){assert(false,data.type+" not found in "+JSON.stringify(Object.keys(state.choice)))}return node._encode(data.value,reporter)};Node.prototype._encodePrimitive=function encodePrimitive(tag,data){var state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);else if(tag==="objid"&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag==="objid")return this._encodeObjid(data,null,null);else if(tag==="gentime"||tag==="utctime")return this._encodeTime(data,tag);else if(tag==="null_")return this._encodeNull();else if(tag==="int"||tag==="enum")return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag==="bool")return this._encodeBool(data);else if(tag==="objDesc")return this._encodeStr(data,tag);else throw new Error("Unsupported tag: "+tag)};Node.prototype._isNumstr=function isNumstr(str){return/^[0-9 ]*$/.test(str)};Node.prototype._isPrintstr=function isPrintstr(str){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str)}},{"../base":98,"minimalistic-assert":253}],100:[function(require,module,exports){var inherits=require("inherits");function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}exports.Reporter=Reporter;Reporter.prototype.isError=function isError(obj){return obj instanceof ReporterError};Reporter.prototype.save=function save(){var state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}};Reporter.prototype.restore=function restore(data){var state=this._reporterState;state.obj=data.obj;state.path=state.path.slice(0,data.pathLen)};Reporter.prototype.enterKey=function enterKey(key){return this._reporterState.path.push(key)};Reporter.prototype.exitKey=function exitKey(index){var state=this._reporterState;state.path=state.path.slice(0,index-1)};Reporter.prototype.leaveKey=function leaveKey(index,key,value){var state=this._reporterState;this.exitKey(index);if(state.obj!==null)state.obj[key]=value};Reporter.prototype.path=function path(){return this._reporterState.path.join("/")};Reporter.prototype.enterObject=function enterObject(){var state=this._reporterState;var prev=state.obj;state.obj={};return prev};Reporter.prototype.leaveObject=function leaveObject(prev){var state=this._reporterState;var now=state.obj;state.obj=prev;return now};Reporter.prototype.error=function error(msg){var err;var state=this._reporterState;var inherited=msg instanceof ReporterError;if(inherited){err=msg}else{err=new ReporterError(state.path.map(function(elem){return"["+JSON.stringify(elem)+"]"}).join(""),msg.message||msg,msg.stack)}if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err};Reporter.prototype.wrapResult=function wrapResult(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors}};function ReporterError(path,msg){this.path=path;this.rethrow(msg)}inherits(ReporterError,Error);ReporterError.prototype.rethrow=function rethrow(msg){this.message=msg+" at: "+(this.path||"(shallow)");if(Error.captureStackTrace)Error.captureStackTrace(this,ReporterError);if(!this.stack){try{throw new Error(this.message)}catch(e){this.stack=e.stack}}return this}},{inherits:245}],101:[function(require,module,exports){var constants=require("../constants");exports.tagClass={0:"universal",1:"application",2:"context",3:"private"};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"};exports.tagByName=constants._reverse(exports.tag)},{"../constants":102}],102:[function(require,module,exports){var constants=exports;constants._reverse=function reverse(map){var res={};Object.keys(map).forEach(function(key){if((key|0)==key)key=key|0;var value=map[key];res[value]=key});return res};constants.der=require("./der")},{"./der":101}],103:[function(require,module,exports){var inherits=require("inherits");var asn1=require("../../asn1");var base=asn1.base;var bignum=asn1.bignum;var der=asn1.constants.der;function DERDecoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DERDecoder;DERDecoder.prototype.decode=function decode(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options)};function DERNode(parent){base.Node.call(this,"der",parent)}inherits(DERNode,base.Node);DERNode.prototype._peekTag=function peekTag(buffer,tag,any){if(buffer.isEmpty())return false;var state=buffer.save();var decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;buffer.restore(state);return decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+"of"===tag||any};DERNode.prototype._decodeTag=function decodeTag(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+"of"!==tag){return buffer.error('Failed to match tag: "'+tag+'"')}if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: "'+tag+'"');var state=buffer.save();var res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');if(buffer.isError(res))return res;len=buffer.offset-state.offset;buffer.restore(state);return buffer.skip(len,'Failed to match body of: "'+tag+'"')};DERNode.prototype._skipUntilEnd=function skipUntilEnd(buffer,fail){while(true){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);if(buffer.isError(res))return res;if(tag.tagStr==="end")break}};DERNode.prototype._decodeList=function decodeList(buffer,tag,decoder,options){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,"end");if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,"der",options);if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result};DERNode.prototype._decodeStr=function decodeStr(buffer,tag){if(tag==="bitstr"){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused:unused,data:buffer.raw()}}else if(tag==="bmpstr"){var raw=buffer.raw();if(raw.length%2===1)return buffer.error("Decoding of string type: bmpstr length mismatch");var str="";for(var i=0;i<raw.length/2;i++){str+=String.fromCharCode(raw.readUInt16BE(i*2))}return str}else if(tag==="numstr"){var numstr=buffer.raw().toString("ascii");if(!this._isNumstr(numstr)){return buffer.error("Decoding of string type: "+"numstr unsupported characters")}return numstr}else if(tag==="octstr"){return buffer.raw()}else if(tag==="objDesc"){return buffer.raw()}else if(tag==="printstr"){var printstr=buffer.raw().toString("ascii");if(!this._isPrintstr(printstr)){return buffer.error("Decoding of string type: "+"printstr unsupported characters")}return printstr}else if(/str$/.test(tag)){return buffer.raw().toString()}else{return buffer.error("Decoding of string type: "+tag+" unsupported")}};DERNode.prototype._decodeObjid=function decodeObjid(buffer,values,relative){var result;var identifiers=[];var ident=0;while(!buffer.isEmpty()){var subident=buffer.readUInt8();ident<<=7;ident|=subident&127;if((subident&128)===0){identifiers.push(ident);ident=0}}if(subident&128)identifiers.push(ident);var first=identifiers[0]/40|0;var second=identifiers[0]%40;if(relative)result=identifiers;else result=[first,second].concat(identifiers.slice(1));if(values){var tmp=values[result.join(" ")];if(tmp===undefined)tmp=values[result.join(".")];if(tmp!==undefined)result=tmp}return result};DERNode.prototype._decodeTime=function decodeTime(buffer,tag){var str=buffer.raw().toString();if(tag==="gentime"){var year=str.slice(0,4)|0;var mon=str.slice(4,6)|0;var day=str.slice(6,8)|0;var hour=str.slice(8,10)|0;var min=str.slice(10,12)|0;var sec=str.slice(12,14)|0}else if(tag==="utctime"){var year=str.slice(0,2)|0;var mon=str.slice(2,4)|0;var day=str.slice(4,6)|0;var hour=str.slice(6,8)|0;var min=str.slice(8,10)|0;var sec=str.slice(10,12)|0;if(year<70)year=2e3+year;else year=1900+year}else{return buffer.error("Decoding "+tag+" time is not supported yet")}return Date.UTC(year,mon-1,day,hour,min,sec,0)};DERNode.prototype._decodeNull=function decodeNull(buffer){return null};DERNode.prototype._decodeBool=function decodeBool(buffer){var res=buffer.readUInt8();if(buffer.isError(res))return res;else return res!==0};DERNode.prototype._decodeInt=function decodeInt(buffer,values){var raw=buffer.raw();var res=new bignum(raw);if(values)res=values[res.toString(10)]||res;return res};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getDecoder("der").tree};function derDecodeTag(buf,fail){var tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;var cls=der.tagClass[tag>>6];var primitive=(tag&32)===0;if((tag&31)===31){var oct=tag;tag=0;while((oct&128)===128){oct=buf.readUInt8(fail);if(buf.isError(oct))return oct;tag<<=7;tag|=oct&127}}else{tag&=31}var tagStr=der.tag[tag];return{cls:cls,primitive:primitive,tag:tag,tagStr:tagStr}}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&len===128)return null;if((len&128)===0){return len}var num=len&127;if(num>4)return buf.error("length octect is too long");len=0;for(var i=0;i<num;i++){len<<=8;var j=buf.readUInt8(fail);if(buf.isError(j))return j;len|=j}return len}},{"../../asn1":95,inherits:245}],104:[function(require,module,exports){var decoders=exports;decoders.der=require("./der");decoders.pem=require("./pem")},{"./der":103,"./pem":105}],105:[function(require,module,exports){var inherits=require("inherits");var Buffer=require("buffer").Buffer;var DERDecoder=require("./der");function PEMDecoder(entity){DERDecoder.call(this,entity);this.enc="pem"}inherits(PEMDecoder,DERDecoder);module.exports=PEMDecoder;PEMDecoder.prototype.decode=function decode(data,options){var lines=data.toString().split(/[\r\n]+/g);var label=options.label.toUpperCase();var re=/^-----(BEGIN|END) ([^-]+)-----$/;var start=-1;var end=-1;for(var i=0;i<lines.length;i++){var match=lines[i].match(re);if(match===null)continue;if(match[2]!==label)continue;if(start===-1){if(match[1]!=="BEGIN")break;start=i}else{if(match[1]!=="END")break;end=i;break}}if(start===-1||end===-1)throw new Error("PEM section not found for: "+label);var base64=lines.slice(start+1,end).join("");base64.replace(/[^a-z0-9\+\/=]+/gi,"");var input=new Buffer(base64,"base64");return DERDecoder.prototype.decode.call(this,input,options)}},{"./der":103,buffer:185,inherits:245}],106:[function(require,module,exports){var inherits=require("inherits");var Buffer=require("buffer").Buffer;var asn1=require("../../asn1");var base=asn1.base;var der=asn1.constants.der;function DEREncoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DEREncoder;DEREncoder.prototype.encode=function encode(data,reporter){return this.tree._encode(data,reporter).join()};function DERNode(parent){base.Node.call(this,"der",parent)}inherits(DERNode,base.Node);DERNode.prototype._encodeComposite=function encodeComposite(tag,primitive,cls,content){var encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(content.length<128){var header=new Buffer(2);header[0]=encodedTag;header[1]=content.length;return this._createEncoderBuffer([header,content])}var lenOctets=1;for(var i=content.length;i>=256;i>>=8)lenOctets++;var header=new Buffer(1+1+lenOctets);header[0]=encodedTag;header[1]=128|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=j&255;return this._createEncoderBuffer([header,content])};DERNode.prototype._encodeStr=function encodeStr(str,tag){if(tag==="bitstr"){return this._createEncoderBuffer([str.unused|0,str.data])}else if(tag==="bmpstr"){var buf=new Buffer(str.length*2);for(var i=0;i<str.length;i++){buf.writeUInt16BE(str.charCodeAt(i),i*2)}return this._createEncoderBuffer(buf)}else if(tag==="numstr"){if(!this._isNumstr(str)){return this.reporter.error("Encoding of string type: numstr supports "+"only digits and space")}return this._createEncoderBuffer(str)}else if(tag==="printstr"){if(!this._isPrintstr(str)){return this.reporter.error("Encoding of string type: printstr supports "+"only latin upper and lower case letters, "+"digits, space, apostrophe, left and rigth "+"parenthesis, plus sign, comma, hyphen, "+"dot, slash, colon, equal sign, "+"question mark")}return this._createEncoderBuffer(str)}else if(/str$/.test(tag)){return this._createEncoderBuffer(str)}else if(tag==="objDesc"){return this._createEncoderBuffer(str)}else{return this.reporter.error("Encoding of string type: "+tag+" unsupported")}};DERNode.prototype._encodeObjid=function encodeObjid(id,values,relative){if(typeof id==="string"){if(!values)return this.reporter.error("string objid given, but no values map found");if(!values.hasOwnProperty(id))return this.reporter.error("objid not found in values map");id=values[id].split(/[\s\.]+/g);for(var i=0;i<id.length;i++)id[i]|=0}else if(Array.isArray(id)){id=id.slice();for(var i=0;i<id.length;i++)id[i]|=0}if(!Array.isArray(id)){return this.reporter.error("objid() should be either array or string, "+"got: "+JSON.stringify(id))}if(!relative){if(id[1]>=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,id[0]*40+id[1])}var size=0;for(var i=0;i<id.length;i++){var ident=id[i];for(size++;ident>=128;ident>>=7)size++}var objid=new Buffer(size);var offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&127;while((ident>>=7)>0)objid[offset--]=128|ident&127}return this._createEncoderBuffer(objid)};function two(num){if(num<10)return"0"+num;else return num}DERNode.prototype._encodeTime=function encodeTime(time,tag){var str;var date=new Date(time);if(tag==="gentime"){str=[two(date.getFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else if(tag==="utctime"){str=[two(date.getFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else{this.reporter.error("Encoding "+tag+" time is not supported yet")}return this._encodeStr(str,"octstr")};DERNode.prototype._encodeNull=function encodeNull(){return this._createEncoderBuffer("")};DERNode.prototype._encodeInt=function encodeInt(num,values){if(typeof num==="string"){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num)){return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num))}num=values[num]}if(typeof num!=="number"&&!Buffer.isBuffer(num)){var numArray=num.toArray();if(!num.sign&&numArray[0]&128){numArray.unshift(0)}num=new Buffer(numArray)}if(Buffer.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer(size);num.copy(out);if(num.length===0)out[0]=0;return this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=256;i>>=8)size++;var out=new Array(size);for(var i=out.length-1;i>=0;i--){out[i]=num&255;num>>=8}if(out[0]&128){out.unshift(0)}return this._createEncoderBuffer(new Buffer(out))};DERNode.prototype._encodeBool=function encodeBool(value){return this._createEncoderBuffer(value?255:0)};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getEncoder("der").tree};DERNode.prototype._skipDefault=function skipDefault(dataBuffer,reporter,parent){var state=this._baseState;var i;if(state["default"]===null)return false;var data=dataBuffer.join();if(state.defaultBuffer===undefined)state.defaultBuffer=this._encodeValue(state["default"],reporter,parent).join();if(data.length!==state.defaultBuffer.length)return false;for(i=0;i<data.length;i++)if(data[i]!==state.defaultBuffer[i])return false;return true};function encodeTag(tag,primitive,cls,reporter){var res;if(tag==="seqof")tag="seq";else if(tag==="setof")tag="set";if(der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else if(typeof tag==="number"&&(tag|0)===tag)res=tag;else return reporter.error("Unknown tag: "+tag);if(res>=31)return reporter.error("Multi-octet tag encoding unsupported");if(!primitive)res|=32;res|=der.tagClassByName[cls||"universal"]<<6;return res}},{"../../asn1":95,buffer:185,inherits:245}],107:[function(require,module,exports){var encoders=exports;encoders.der=require("./der");encoders.pem=require("./pem")},{"./der":106,"./pem":108}],108:[function(require,module,exports){var inherits=require("inherits");var DEREncoder=require("./der");function PEMEncoder(entity){DEREncoder.call(this,entity);this.enc="pem"}inherits(PEMEncoder,DEREncoder);module.exports=PEMEncoder;PEMEncoder.prototype.encode=function encode(data,options){var buf=DEREncoder.prototype.encode.call(this,data);var p=buf.toString("base64");var out=["-----BEGIN "+options.label+"-----"];for(var i=0;i<p.length;i+=64)out.push(p.slice(i,i+64));out.push("-----END "+options.label+"-----");return out.join("\n")}},{"./der":106,inherits:245}],109:[function(require,module,exports){(function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number)){return number}this.negative=0;this.words=null;this.length=0;this.red=null;if(number!==null){if(base==="le"||base==="be"){endian=base;base=10}this._init(number||0,base||10,endian||"be")}}if(typeof module==="object"){module.exports=BN}else{exports.BN=BN}BN.BN=BN;BN.wordSize=26;var Buffer;try{Buffer=require("buffer").Buffer}catch(e){}BN.isBN=function isBN(num){if(num instanceof BN){return true}return num!==null&&typeof num==="object"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)};BN.max=function max(left,right){if(left.cmp(right)>0)return left;return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex"){base=16}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-"){start++}if(base===16){this._parseHex(number,start)}else{this._parseBase(number,base,start)}if(number[0]==="-"){this.negative=1}this.strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;if(endian==="be"){for(i=number.length-1,j=0;i>=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(i=0,j=0;i<number.length;i+=3){w=number[i]|number[i+1]<<8|number[i+2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4;if(c>=49&&c<=54){r|=c-49+10}else if(c>=17&&c<=22){r|=c-17+10}else{r|=c&15}}return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;for(i=number.length-6,j=0;i>=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this.strip()};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul;if(c>=49){r+=c-49+10}else if(c>=17){r+=c-17+10}else{r+=c}}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base){limbLen++}limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i<end;i+=limbLen){word=parseBase(number,i,i+limbLen,base);this.imuln(limbPow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}if(mod!==0){var pow=1;word=parseBase(number,i,number.length,base);for(i=0;i<mod;i++){pow*=base}this.imuln(pow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++){dest.words[i]=this.words[i]}dest.length=this.length;dest.negative=this.negative;dest.red=this.red};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype._expand=function _expand(size){while(this.length<size){this.words[this.length++]=0}return this};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==="hex"){out="";var off=0;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out}else{out=word+out}off+=2;if(off>=26){off-=26;i--}}if(carry!==0){out=carry.toString(16)+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];out="";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out}else{out=r+out}}if(this.isZero()){out="0"+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}assert(false,"Base should be between 2 and 36")};BN.prototype.toNumber=function toNumber(){var ret=this.words[0];if(this.length===2){ret+=this.words[1]*67108864}else if(this.length===3&&this.words[2]===1){ret+=4503599627370496+this.words[1]*67108864}else if(this.length>2){assert(false,"Number can only safely store up to 53 bits")}return this.negative!==0?-ret:ret};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toBuffer=function toBuffer(endian,length){assert(typeof Buffer!=="undefined");return this.toArrayLike(Buffer,endian,length)};BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length)};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length");assert(reqLength>0,"Requested array length <= 0");this.strip();var littleEndian=endian==="le";var res=new ArrayType(reqLength);var b,i;var q=this.clone();if(!littleEndian){for(i=0;i<reqLength-byteLength;i++){res[i]=0}for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[reqLength-i-1]=b}}else{for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[i]=b}for(;i<reqLength;i++){res[i]=0}}return res};if(Math.clz32){BN.prototype._countBits=function _countBits(w){return 32-Math.clz32(w)}}else{BN.prototype._countBits=function _countBits(w){var t=w;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit<w.length;bit++){var off=bit/26|0;var wbit=bit%26;w[bit]=(num.words[off]&1<<wbit)>>>wbit}return w}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);r+=b;if(b!==26)break}return r};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(width){if(this.negative!==0){return this.abs().inotn(width).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(width){if(this.testn(width-1)){return this.notn(width).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(num){while(this.length<num.length){this.words[this.length++]=0}for(var i=0;i<num.length;i++){this.words[i]=this.words[i]|num.words[i]}return this.strip()};BN.prototype.ior=function ior(num){assert((this.negative|num.negative)===0);return this.iuor(num)};BN.prototype.or=function or(num){if(this.length>num.length)return this.clone().ior(num);return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length){b=num}else{b=this}for(var i=0;i<b.length;i++){this.words[i]=this.words[i]&num.words[i]}this.length=b.length;return this.strip()};BN.prototype.iand=function iand(num){assert((this.negative|num.negative)===0);return this.iuand(num)};BN.prototype.and=function and(num){if(this.length>num.length)return this.clone().iand(num);return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;i<b.length;i++){this.words[i]=a.words[i]^b.words[i]}if(this!==a){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=a.length;return this.strip()};BN.prototype.ixor=function ixor(num){assert((this.negative|num.negative)===0);return this.iuxor(num)};BN.prototype.xor=function xor(num){if(this.length>num.length)return this.clone().ixor(num);return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)};BN.prototype.inotn=function inotn(width){assert(typeof width==="number"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--}for(var i=0;i<bytesNeeded;i++){this.words[i]=~this.words[i]&67108863}if(bitsLeft>0){this.words[i]=~this.words[i]&67108863>>26-bitsLeft}return this.strip()};BN.prototype.notn=function notn(width){return this.clone().inotn(width)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1<<wbit}else{this.words[off]=this.words[off]&~(1<<wbit)}return this.strip()};BN.prototype.iadd=function iadd(num){var r;if(this.negative!==0&&num.negative===0){this.negative=0;r=this.isub(num);this.negative^=1;return this._normSign()}else if(this.negative===0&&num.negative!==0){num.negative=0;r=this.isub(num);num.negative=1;return r._normSign()}var a,b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)+(b.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}return this};BN.prototype.add=function add(num){var res;if(num.negative!==0&&this.negative===0){num.negative=0;res=this.sub(num);num.negative^=1;return res}else if(num.negative===0&&this.negative!==0){this.negative=0;res=num.sub(this);this.negative=1;return res}if(this.length>num.length)return this.clone().iadd(num);return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a,b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)-(b.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}if(carry===0&&i<a.length&&a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=Math.max(this.length,i);if(a!==this){this.negative=1}return this.strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len;len=len-1|0;var a=self.words[0]|0;var b=num.words[0]|0;var r=a*b;var lo=r&67108863;var carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/67108864|0;rword=r&67108863}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out.strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0;w0&=67108863;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);lo=lo+Math.imul(al0,bl1)|0;mid=mid+Math.imul(al0,bh1)|0;mid=mid+Math.imul(ah0,bl1)|0;hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0;w1&=67108863;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);lo=lo+Math.imul(al1,bl1)|0;mid=mid+Math.imul(al1,bh1)|0;mid=mid+Math.imul(ah1,bl1)|0;hi=hi+Math.imul(ah1,bh1)|0;lo=lo+Math.imul(al0,bl2)|0;mid=mid+Math.imul(al0,bh2)|0;mid=mid+Math.imul(ah0,bl2)|0;hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);lo=lo+Math.imul(al2,bl1)|0;mid=mid+Math.imul(al2,bh1)|0;mid=mid+Math.imul(ah2,bl1)|0;hi=hi+Math.imul(ah2,bh1)|0;lo=lo+Math.imul(al1,bl2)|0;mid=mid+Math.imul(al1,bh2)|0;mid=mid+Math.imul(ah1,bl2)|0;hi=hi+Math.imul(ah1,bh2)|0;lo=lo+Math.imul(al0,bl3)|0;mid=mid+Math.imul(al0,bh3)|0;mid=mid+Math.imul(ah0,bl3)|0;hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);lo=lo+Math.imul(al3,bl1)|0;mid=mid+Math.imul(al3,bh1)|0;mid=mid+Math.imul(ah3,bl1)|0;hi=hi+Math.imul(ah3,bh1)|0;lo=lo+Math.imul(al2,bl2)|0;mid=mid+Math.imul(al2,bh2)|0;mid=mid+Math.imul(ah2,bl2)|0;hi=hi+Math.imul(ah2,bh2)|0;lo=lo+Math.imul(al1,bl3)|0;mid=mid+Math.imul(al1,bh3)|0;mid=mid+Math.imul(ah1,bl3)|0;hi=hi+Math.imul(ah1,bh3)|0;lo=lo+Math.imul(al0,bl4)|0;mid=mid+Math.imul(al0,bh4)|0;mid=mid+Math.imul(ah0,bl4)|0;hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);lo=lo+Math.imul(al4,bl1)|0;mid=mid+Math.imul(al4,bh1)|0;mid=mid+Math.imul(ah4,bl1)|0;hi=hi+Math.imul(ah4,bh1)|0;lo=lo+Math.imul(al3,bl2)|0;mid=mid+Math.imul(al3,bh2)|0;mid=mid+Math.imul(ah3,bl2)|0;hi=hi+Math.imul(ah3,bh2)|0;lo=lo+Math.imul(al2,bl3)|0;mid=mid+Math.imul(al2,bh3)|0;mid=mid+Math.imul(ah2,bl3)|0;hi=hi+Math.imul(ah2,bh3)|0;lo=lo+Math.imul(al1,bl4)|0;mid=mid+Math.imul(al1,bh4)|0;mid=mid+Math.imul(ah1,bl4)|0;hi=hi+Math.imul(ah1,bh4)|0;lo=lo+Math.imul(al0,bl5)|0;mid=mid+Math.imul(al0,bh5)|0;mid=mid+Math.imul(ah0,bl5)|0;hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);lo=lo+Math.imul(al5,bl1)|0;mid=mid+Math.imul(al5,bh1)|0;mid=mid+Math.imul(ah5,bl1)|0;hi=hi+Math.imul(ah5,bh1)|0;lo=lo+Math.imul(al4,bl2)|0;mid=mid+Math.imul(al4,bh2)|0;mid=mid+Math.imul(ah4,bl2)|0;hi=hi+Math.imul(ah4,bh2)|0;lo=lo+Math.imul(al3,bl3)|0;mid=mid+Math.imul(al3,bh3)|0;mid=mid+Math.imul(ah3,bl3)|0;hi=hi+Math.imul(ah3,bh3)|0;lo=lo+Math.imul(al2,bl4)|0;mid=mid+Math.imul(al2,bh4)|0;mid=mid+Math.imul(ah2,bl4)|0;hi=hi+Math.imul(ah2,bh4)|0;lo=lo+Math.imul(al1,bl5)|0;mid=mid+Math.imul(al1,bh5)|0;mid=mid+Math.imul(ah1,bl5)|0;hi=hi+Math.imul(ah1,bh5)|0;lo=lo+Math.imul(al0,bl6)|0;mid=mid+Math.imul(al0,bh6)|0;mid=mid+Math.imul(ah0,bl6)|0;hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);lo=lo+Math.imul(al6,bl1)|0;mid=mid+Math.imul(al6,bh1)|0;mid=mid+Math.imul(ah6,bl1)|0;hi=hi+Math.imul(ah6,bh1)|0;lo=lo+Math.imul(al5,bl2)|0;mid=mid+Math.imul(al5,bh2)|0;mid=mid+Math.imul(ah5,bl2)|0;hi=hi+Math.imul(ah5,bh2)|0;lo=lo+Math.imul(al4,bl3)|0;mid=mid+Math.imul(al4,bh3)|0;mid=mid+Math.imul(ah4,bl3)|0;hi=hi+Math.imul(ah4,bh3)|0;lo=lo+Math.imul(al3,bl4)|0;mid=mid+Math.imul(al3,bh4)|0;mid=mid+Math.imul(ah3,bl4)|0;hi=hi+Math.imul(ah3,bh4)|0;lo=lo+Math.imul(al2,bl5)|0;mid=mid+Math.imul(al2,bh5)|0;mid=mid+Math.imul(ah2,bl5)|0;hi=hi+Math.imul(ah2,bh5)|0;lo=lo+Math.imul(al1,bl6)|0;mid=mid+Math.imul(al1,bh6)|0;mid=mid+Math.imul(ah1,bl6)|0;hi=hi+Math.imul(ah1,bh6)|0;lo=lo+Math.imul(al0,bl7)|0;mid=mid+Math.imul(al0,bh7)|0;mid=mid+Math.imul(ah0,bl7)|0;hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);lo=lo+Math.imul(al7,bl1)|0;mid=mid+Math.imul(al7,bh1)|0;mid=mid+Math.imul(ah7,bl1)|0;hi=hi+Math.imul(ah7,bh1)|0;lo=lo+Math.imul(al6,bl2)|0;mid=mid+Math.imul(al6,bh2)|0;mid=mid+Math.imul(ah6,bl2)|0;hi=hi+Math.imul(ah6,bh2)|0;lo=lo+Math.imul(al5,bl3)|0;mid=mid+Math.imul(al5,bh3)|0;mid=mid+Math.imul(ah5,bl3)|0;hi=hi+Math.imul(ah5,bh3)|0;lo=lo+Math.imul(al4,bl4)|0;mid=mid+Math.imul(al4,bh4)|0;mid=mid+Math.imul(ah4,bl4)|0;hi=hi+Math.imul(ah4,bh4)|0;lo=lo+Math.imul(al3,bl5)|0;mid=mid+Math.imul(al3,bh5)|0;mid=mid+Math.imul(ah3,bl5)|0;hi=hi+Math.imul(ah3,bh5)|0;lo=lo+Math.imul(al2,bl6)|0;mid=mid+Math.imul(al2,bh6)|0;mid=mid+Math.imul(ah2,bl6)|0;hi=hi+Math.imul(ah2,bh6)|0;lo=lo+Math.imul(al1,bl7)|0;mid=mid+Math.imul(al1,bh7)|0;mid=mid+Math.imul(ah1,bl7)|0;hi=hi+Math.imul(ah1,bh7)|0;lo=lo+Math.imul(al0,bl8)|0;mid=mid+Math.imul(al0,bh8)|0;mid=mid+Math.imul(ah0,bl8)|0;hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);lo=lo+Math.imul(al8,bl1)|0;mid=mid+Math.imul(al8,bh1)|0;mid=mid+Math.imul(ah8,bl1)|0;hi=hi+Math.imul(ah8,bh1)|0;lo=lo+Math.imul(al7,bl2)|0;mid=mid+Math.imul(al7,bh2)|0;mid=mid+Math.imul(ah7,bl2)|0;hi=hi+Math.imul(ah7,bh2)|0;lo=lo+Math.imul(al6,bl3)|0;mid=mid+Math.imul(al6,bh3)|0;mid=mid+Math.imul(ah6,bl3)|0;hi=hi+Math.imul(ah6,bh3)|0;lo=lo+Math.imul(al5,bl4)|0;mid=mid+Math.imul(al5,bh4)|0;mid=mid+Math.imul(ah5,bl4)|0;hi=hi+Math.imul(ah5,bh4)|0;lo=lo+Math.imul(al4,bl5)|0;mid=mid+Math.imul(al4,bh5)|0;mid=mid+Math.imul(ah4,bl5)|0;hi=hi+Math.imul(ah4,bh5)|0;lo=lo+Math.imul(al3,bl6)|0;mid=mid+Math.imul(al3,bh6)|0;mid=mid+Math.imul(ah3,bl6)|0;hi=hi+Math.imul(ah3,bh6)|0;lo=lo+Math.imul(al2,bl7)|0;mid=mid+Math.imul(al2,bh7)|0;mid=mid+Math.imul(ah2,bl7)|0;hi=hi+Math.imul(ah2,bh7)|0;lo=lo+Math.imul(al1,bl8)|0;mid=mid+Math.imul(al1,bh8)|0;mid=mid+Math.imul(ah1,bl8)|0;hi=hi+Math.imul(ah1,bh8)|0;lo=lo+Math.imul(al0,bl9)|0;mid=mid+Math.imul(al0,bh9)|0;mid=mid+Math.imul(ah0,bl9)|0;hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);lo=lo+Math.imul(al8,bl2)|0;mid=mid+Math.imul(al8,bh2)|0;mid=mid+Math.imul(ah8,bl2)|0;hi=hi+Math.imul(ah8,bh2)|0;lo=lo+Math.imul(al7,bl3)|0;mid=mid+Math.imul(al7,bh3)|0;mid=mid+Math.imul(ah7,bl3)|0;hi=hi+Math.imul(ah7,bh3)|0;lo=lo+Math.imul(al6,bl4)|0;mid=mid+Math.imul(al6,bh4)|0;mid=mid+Math.imul(ah6,bl4)|0;hi=hi+Math.imul(ah6,bh4)|0;lo=lo+Math.imul(al5,bl5)|0;mid=mid+Math.imul(al5,bh5)|0;mid=mid+Math.imul(ah5,bl5)|0;hi=hi+Math.imul(ah5,bh5)|0;lo=lo+Math.imul(al4,bl6)|0;mid=mid+Math.imul(al4,bh6)|0;mid=mid+Math.imul(ah4,bl6)|0;hi=hi+Math.imul(ah4,bh6)|0;lo=lo+Math.imul(al3,bl7)|0;mid=mid+Math.imul(al3,bh7)|0;mid=mid+Math.imul(ah3,bl7)|0;hi=hi+Math.imul(ah3,bh7)|0;lo=lo+Math.imul(al2,bl8)|0;mid=mid+Math.imul(al2,bh8)|0;mid=mid+Math.imul(ah2,bl8)|0;hi=hi+Math.imul(ah2,bh8)|0;lo=lo+Math.imul(al1,bl9)|0;mid=mid+Math.imul(al1,bh9)|0;mid=mid+Math.imul(ah1,bl9)|0;hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);lo=lo+Math.imul(al8,bl3)|0;mid=mid+Math.imul(al8,bh3)|0;mid=mid+Math.imul(ah8,bl3)|0;hi=hi+Math.imul(ah8,bh3)|0;lo=lo+Math.imul(al7,bl4)|0;mid=mid+Math.imul(al7,bh4)|0;mid=mid+Math.imul(ah7,bl4)|0;hi=hi+Math.imul(ah7,bh4)|0;lo=lo+Math.imul(al6,bl5)|0;mid=mid+Math.imul(al6,bh5)|0;mid=mid+Math.imul(ah6,bl5)|0;hi=hi+Math.imul(ah6,bh5)|0;lo=lo+Math.imul(al5,bl6)|0;mid=mid+Math.imul(al5,bh6)|0;mid=mid+Math.imul(ah5,bl6)|0;hi=hi+Math.imul(ah5,bh6)|0;lo=lo+Math.imul(al4,bl7)|0;mid=mid+Math.imul(al4,bh7)|0;mid=mid+Math.imul(ah4,bl7)|0;hi=hi+Math.imul(ah4,bh7)|0;lo=lo+Math.imul(al3,bl8)|0;mid=mid+Math.imul(al3,bh8)|0;mid=mid+Math.imul(ah3,bl8)|0;hi=hi+Math.imul(ah3,bh8)|0;lo=lo+Math.imul(al2,bl9)|0;mid=mid+Math.imul(al2,bh9)|0;mid=mid+Math.imul(ah2,bl9)|0;hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);lo=lo+Math.imul(al8,bl4)|0;mid=mid+Math.imul(al8,bh4)|0;mid=mid+Math.imul(ah8,bl4)|0;hi=hi+Math.imul(ah8,bh4)|0;lo=lo+Math.imul(al7,bl5)|0;mid=mid+Math.imul(al7,bh5)|0;mid=mid+Math.imul(ah7,bl5)|0;hi=hi+Math.imul(ah7,bh5)|0;lo=lo+Math.imul(al6,bl6)|0;mid=mid+Math.imul(al6,bh6)|0;mid=mid+Math.imul(ah6,bl6)|0;hi=hi+Math.imul(ah6,bh6)|0;lo=lo+Math.imul(al5,bl7)|0;mid=mid+Math.imul(al5,bh7)|0;mid=mid+Math.imul(ah5,bl7)|0;hi=hi+Math.imul(ah5,bh7)|0;lo=lo+Math.imul(al4,bl8)|0;mid=mid+Math.imul(al4,bh8)|0;mid=mid+Math.imul(ah4,bl8)|0;hi=hi+Math.imul(ah4,bh8)|0;lo=lo+Math.imul(al3,bl9)|0;mid=mid+Math.imul(al3,bh9)|0;mid=mid+Math.imul(ah3,bl9)|0;hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);lo=lo+Math.imul(al8,bl5)|0;mid=mid+Math.imul(al8,bh5)|0;mid=mid+Math.imul(ah8,bl5)|0;hi=hi+Math.imul(ah8,bh5)|0;lo=lo+Math.imul(al7,bl6)|0;mid=mid+Math.imul(al7,bh6)|0;mid=mid+Math.imul(ah7,bl6)|0;hi=hi+Math.imul(ah7,bh6)|0;lo=lo+Math.imul(al6,bl7)|0;mid=mid+Math.imul(al6,bh7)|0;mid=mid+Math.imul(ah6,bl7)|0;hi=hi+Math.imul(ah6,bh7)|0;lo=lo+Math.imul(al5,bl8)|0;mid=mid+Math.imul(al5,bh8)|0;mid=mid+Math.imul(ah5,bl8)|0;hi=hi+Math.imul(ah5,bh8)|0;lo=lo+Math.imul(al4,bl9)|0;mid=mid+Math.imul(al4,bh9)|0;mid=mid+Math.imul(ah4,bl9)|0;hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);lo=lo+Math.imul(al8,bl6)|0;mid=mid+Math.imul(al8,bh6)|0;mid=mid+Math.imul(ah8,bl6)|0;hi=hi+Math.imul(ah8,bh6)|0;lo=lo+Math.imul(al7,bl7)|0;mid=mid+Math.imul(al7,bh7)|0;mid=mid+Math.imul(ah7,bl7)|0;hi=hi+Math.imul(ah7,bh7)|0;lo=lo+Math.imul(al6,bl8)|0;mid=mid+Math.imul(al6,bh8)|0;mid=mid+Math.imul(ah6,bl8)|0;hi=hi+Math.imul(ah6,bh8)|0;lo=lo+Math.imul(al5,bl9)|0;mid=mid+Math.imul(al5,bh9)|0;mid=mid+Math.imul(ah5,bl9)|0;hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);lo=lo+Math.imul(al8,bl7)|0;mid=mid+Math.imul(al8,bh7)|0;mid=mid+Math.imul(ah8,bl7)|0;hi=hi+Math.imul(ah8,bh7)|0;lo=lo+Math.imul(al7,bl8)|0;mid=mid+Math.imul(al7,bh8)|0;mid=mid+Math.imul(ah7,bl8)|0;hi=hi+Math.imul(ah7,bh8)|0;lo=lo+Math.imul(al6,bl9)|0;mid=mid+Math.imul(al6,bh9)|0;mid=mid+Math.imul(ah6,bl9)|0;hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);lo=lo+Math.imul(al8,bl8)|0;mid=mid+Math.imul(al8,bh8)|0;mid=mid+Math.imul(ah8,bl8)|0;hi=hi+Math.imul(ah8,bh8)|0;lo=lo+Math.imul(al7,bl9)|0;mid=mid+Math.imul(al7,bh9)|0;mid=mid+Math.imul(ah7,bl9)|0;hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);lo=lo+Math.imul(al8,bl9)|0;mid=mid+Math.imul(al8,bh9)|0;mid=mid+Math.imul(ah8,bl9)|0;hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0;w17&=67108863;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w18>>>26)|0;w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul){comb10MulTo=smallMulTo}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out)}else if(len<63){res=smallMulTo(this,num,out)}else if(len<1024){res=bigMulTo(this,num,out)}else{res=jumboMulTo(this,num,out)}return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i<N;i++){t[i]=this.revBin(i,l,N)}return t};FFTM.prototype.revBin=function revBin(x,l,N){if(x===0||x===N-1)return x;var rb=0;for(var i=0;i<l;i++){rb|=(x&1)<<l-i-1;x>>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++){rtws[i]=rws[rbt[i]];itws[i]=iws[rbt[i]]}};FFTM.prototype.transform=function transform(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1){var l=s<<1;var rtwdf=Math.cos(2*Math.PI/l);var itwdf=Math.sin(2*Math.PI/l);for(var p=0;p<N;p+=l){var rtwdf_=rtwdf;var itwdf_=itwdf;for(var j=0;j<s;j++){var re=rtws[p+j];var ie=itws[p+j];var ro=rtws[p+j+s];var io=itws[p+j+s];var rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro;ro=rx;rtws[p+j]=re+ro;itws[p+j]=ie+io;rtws[p+j+s]=re-ro;itws[p+j+s]=ie-io;if(j!==l){rx=rtwdf*rtwdf_-itwdf*itwdf_;itwdf_=rtwdf*itwdf_+itwdf*rtwdf_;rtwdf_=rx}}}}};FFTM.prototype.guessLen13b=function guessLen13b(n,m){var N=Math.max(m,n)|1;var odd=N&1;var i=0;for(N=N/2|0;N;N=N>>>1){i++}return 1<<i+1+odd};FFTM.prototype.conjugate=function conjugate(rws,iws,N){if(N<=1)return;for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1];rws[N-i-1]=t;t=iws[i];iws[i]=-iws[N-i-1];iws[N-i-1]=-t}};FFTM.prototype.normalize13b=function normalize13b(ws,N){var carry=0;for(var i=0;i<N/2;i++){var w=Math.round(ws[2*i+1]/N)*8192+Math.round(ws[2*i]/N)+carry;ws[i]=w&67108863;if(w<67108864){carry=0}else{carry=w/67108864|0}}return ws};FFTM.prototype.convert13b=function convert13b(ws,len,rws,N){var carry=0;for(var i=0;i<len;i++){carry=carry+(ws[i]|0);rws[2*i]=carry&8191;carry=carry>>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(i=2*len;i<N;++i){rws[i]=0}assert(carry===0);assert((carry&~8191)===0)};FFTM.prototype.stub=function stub(N){var ph=new Array(N);for(var i=0;i<N;i++){ph[i]=0}return ph};FFTM.prototype.mulp=function mulp(x,y,out){var N=2*this.guessLen13b(x.length,y.length);var rbt=this.makeRBT(N);var _=this.stub(N);var rws=new Array(N);var rwst=new Array(N);var iwst=new Array(N);var nrws=new Array(N);var nrwst=new Array(N);var niwst=new Array(N);var rmws=out.words;rmws.length=N;this.convert13b(x.words,x.length,rws,N);this.convert13b(y.words,y.length,nrws,N);this.transform(rws,_,rwst,iwst,N,rbt);this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i];rwst[i]=rx}this.conjugate(rwst,iwst,N);this.transform(rwst,iwst,rmws,_,N,rbt);this.conjugate(rmws,_,N);this.normalize13b(rmws,N);out.negative=x.negative^y.negative;out.length=x.length+y.length;return out.strip()};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.mulf=function mulf(num){var out=new BN(null);out.words=new Array(this.length+num.length);return jumboMulTo(this,num,out)};BN.prototype.imul=function imul(num){return this.clone().mulTo(num,this)};BN.prototype.imuln=function imuln(num){assert(typeof num==="number");assert(num<67108864);var carry=0;for(var i=0;i<this.length;i++){var w=(this.words[i]|0)*num;var lo=(w&67108863)+(carry&67108863);carry>>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i<w.length;i++,res=res.sqr()){if(w[i]!==0)break}if(++i<w.length){for(var q=res.sqr();i<w.length;i++,q=q.sqr()){if(w[i]===0)continue;res=res.mul(q)}}return res};BN.prototype.iushln=function iushln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=(this.words[i]|0)-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i]}for(i=0;i<s;i++){this.words[i]=0}this.length+=s}return this.strip()};BN.prototype.ishln=function ishln(bits){assert(this.negative===0);return this.iushln(bits)};BN.prototype.iushrn=function iushrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);var h;if(hint){h=(hint-hint%26)/26}else{h=0}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;h-=s;h=Math.max(0,h);if(maskedWords){for(var i=0;i<s;i++){maskedWords.words[i]=this.words[i]}maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(i=0;i<this.length;i++){this.words[i]=this.words[i+s]}}else{this.words[0]=0;this.length=1}var carry=0;for(i=this.length-1;i>=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry}if(this.length===0){this.words[0]=0;this.length=1}return this.strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s)return false;var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(this.length<=s){return this}if(r!==0){s++}this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.isubn(-num);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<num){this.words[0]=num-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(num);this.negative=1;return this}return this._iaddn(num)};BN.prototype._iaddn=function _iaddn(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1){this.words[i+1]=1}else{this.words[i+1]++}}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}}return this.strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(num,mul,shift){var len=num.length+shift;var i;this._expand(len);var w;var carry=0;for(i=0;i<num.length;i++){w=(this.words[i+shift]|0)+carry;var right=(num.words[i]|0)*mul;w-=right&67108863;carry=(w>>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i<this.length-shift;i++){w=(this.words[i+shift]|0)+carry;carry=w>>26;this.words[i+shift]=w&67108863}if(carry===0)return this.strip();assert(carry===-1);carry=0;for(i=0;i<this.length;i++){w=-(this.words[i]|0)+carry;carry=w>>26;this.words[i]=w&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i<q.length;i++){q.words[i]=0}}var diff=a.clone()._ishlnsubmul(b,1,m);if(diff.negative===0){a=diff;if(q){q.words[m]=1}}for(var j=m-1;j>=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1}}if(q){q.words[j]=qj}}if(q){q.strip()}a.strip();if(mode!=="div"&&shift!==0){a.iushrn(shift)}return{div:q||null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=="mod"){div=res.div.neg()}if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num)}}return{div:div,mod:mod}}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=="mod"){div=res.div.neg()}return{div:div,mod:res.mod}}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num)}}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this}}if(num.length===1){if(mode==="div"){return{div:this.divn(num.words[0]),mod:null}}if(mode==="mod"){return{div:null,mod:new BN(this.modn(num.words[0]))}}return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num}return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p)}else{x=x.clone()}var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp)}A.iushrn(1);B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp)}C.iushrn(1);D.iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p)}else{a=a.clone()}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd()){x1.iadd(delta)}x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd()){x2.iadd(delta)}x2.iushrn(1)}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0){res=x1}else{res=x2}if(res.cmpn(0)<0){res.iadd(p)}return res};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven()){a.iushrn(1)}while(b.isEven()){b.iushrn(1)}var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){this._expand(s+1);this.words[s]|=q;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i]|0;w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1){res=1}else{if(negative){num=-num}assert(num<=67108863,"Number is too big");var w=this.words[0]|0;res=w===num?0:w<num?-1:1}if(this.negative!==0)return-res|0;return res};BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(a<b){res=-1}else if(a>b){res=1}break}return res};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1};BN.prototype.gt=function gt(num){return this.cmp(num)===1};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0};BN.prototype.gte=function gte(num){return this.cmp(num)>=0};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1};BN.prototype.lt=function lt(num){return this.cmp(num)===-1};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0};BN.prototype.lte=function lte(num){return this.cmp(num)<=0};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0};BN.prototype.eq=function eq(num){return this.cmp(num)===0};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i<outLen;i++){output.words[i]=input.words[i]}output.length=outLen;if(input.length<=9){input.words[0]=0;input.length=1;return}var prev=input.words[9];output.words[output.length++]=prev&mask;for(i=10;i<input.length;i++){var next=input.words[i]|0;input.words[i-10]=(next&mask)<<4|prev>>>22;prev=next}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10}else{input.length-=9}};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var lo=0;for(var i=0;i<num.length;i++){var w=num.words[i]|0;lo+=w*977;num.words[i]=lo&67108863;lo=w*64+(lo/67108864|0)}if(num.words[num.length-1]===0){num.length--;if(num.words[num.length-1]===0){num.length--}}return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=(num.words[i]|0)*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0){num.words[num.length++]=carry}return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256"){prime=new K256}else if(name==="p224"){prime=new P224}else if(name==="p192"){prime=new P192}else if(name==="p25519"){prime=new P25519}else{throw new Error("Unknown prime "+name)}primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{assert(m.gtn(1),"modulus must be greater than 1");this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone()}return this.m.sub(a)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone())};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1)}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne)}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr()}assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._invmp(this.m);if(inv.negative!==0){inv.negative=0;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){if(num.isZero())return new BN(1).toRed(this);if(num.cmpn(1)===0)return a.clone();var windowSize=4;var wnd=new Array(1<<windowSize);wnd[0]=new BN(1).toRed(this);wnd[1]=a;for(var i=2;i<wnd.length;i++){wnd[i]=this.mul(wnd[i-1],a)}var res=wnd[0];var current=0;var currentLen=0;var start=num.bitLength()%26;if(start===0){start=26}for(i=num.length-1;i>=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res)}if(bit===0&&current===0){currentLen=0;continue}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0}start=26}return res};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(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)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module==="undefined"||module,this)},{buffer:141}],110:[function(require,module,exports){module.exports=require("./lib/axios")},{"./lib/axios":112}],111:[function(require,module,exports){"use strict";var utils=require("./../utils");var settle=require("./../core/settle");var cookies=require("./../helpers/cookies");var buildURL=require("./../helpers/buildURL");var buildFullPath=require("../core/buildFullPath");var parseHeaders=require("./../helpers/parseHeaders");var isURLSameOrigin=require("./../helpers/isURLSameOrigin");var createError=require("../core/createError");module.exports=function xhrAdapter(config){return new Promise(function dispatchXhrRequest(resolve,reject){var requestData=config.data;var requestHeaders=config.headers;if(utils.isFormData(requestData)){delete requestHeaders["Content-Type"]}var request=new XMLHttpRequest;if(config.auth){var username=config.auth.username||"";var password=config.auth.password?unescape(encodeURIComponent(config.auth.password)):"";requestHeaders.Authorization="Basic "+btoa(username+":"+password)}var fullPath=buildFullPath(config.baseURL,config.url);request.open(config.method.toUpperCase(),buildURL(fullPath,config.params,config.paramsSerializer),true);request.timeout=config.timeout;request.onreadystatechange=function handleLoad(){if(!request||request.readyState!==4){return}if(request.status===0&&!(request.responseURL&&request.responseURL.indexOf("file:")===0)){return}var responseHeaders="getAllResponseHeaders"in request?parseHeaders(request.getAllResponseHeaders()):null;var responseData=!config.responseType||config.responseType==="text"?request.responseText:request.response;var response={data:responseData,status:request.status,statusText:request.statusText,headers:responseHeaders,config:config,request:request};settle(resolve,reject,response);request=null};request.onabort=function handleAbort(){if(!request){return}reject(createError("Request aborted",config,"ECONNABORTED",request));request=null};request.onerror=function handleError(){reject(createError("Network Error",config,null,request));request=null};request.ontimeout=function handleTimeout(){var timeoutErrorMessage="timeout of "+config.timeout+"ms exceeded";if(config.timeoutErrorMessage){timeoutErrorMessage=config.timeoutErrorMessage}reject(createError(timeoutErrorMessage,config,"ECONNABORTED",request));request=null};if(utils.isStandardBrowserEnv()){var xsrfValue=(config.withCredentials||isURLSameOrigin(fullPath))&&config.xsrfCookieName?cookies.read(config.xsrfCookieName):undefined;if(xsrfValue){requestHeaders[config.xsrfHeaderName]=xsrfValue}}if("setRequestHeader"in request){utils.forEach(requestHeaders,function setRequestHeader(val,key){if(typeof requestData==="undefined"&&key.toLowerCase()==="content-type"){delete requestHeaders[key]}else{request.setRequestHeader(key,val)}})}if(!utils.isUndefined(config.withCredentials)){request.withCredentials=!!config.withCredentials}if(config.responseType){try{request.responseType=config.responseType}catch(e){if(config.responseType!=="json"){throw e}}}if(typeof config.onDownloadProgress==="function"){request.addEventListener("progress",config.onDownloadProgress)}if(typeof config.onUploadProgress==="function"&&request.upload){request.upload.addEventListener("progress",config.onUploadProgress)}if(config.cancelToken){config.cancelToken.promise.then(function onCanceled(cancel){if(!request){return}request.abort();reject(cancel);request=null})}if(!requestData){requestData=null}request.send(requestData)})}},{"../core/buildFullPath":118,"../core/createError":119,"./../core/settle":123,"./../helpers/buildURL":127,"./../helpers/cookies":129,"./../helpers/isURLSameOrigin":132,"./../helpers/parseHeaders":134,"./../utils":136}],112:[function(require,module,exports){"use strict";var utils=require("./utils");var bind=require("./helpers/bind");var Axios=require("./core/Axios");var mergeConfig=require("./core/mergeConfig");var defaults=require("./defaults");function createInstance(defaultConfig){var context=new Axios(defaultConfig);var instance=bind(Axios.prototype.request,context);utils.extend(instance,Axios.prototype,context);utils.extend(instance,context);return instance}var axios=createInstance(defaults);axios.Axios=Axios;axios.create=function create(instanceConfig){return createInstance(mergeConfig(axios.defaults,instanceConfig))};axios.Cancel=require("./cancel/Cancel");axios.CancelToken=require("./cancel/CancelToken");axios.isCancel=require("./cancel/isCancel");axios.all=function all(promises){return Promise.all(promises)};axios.spread=require("./helpers/spread");axios.isAxiosError=require("./helpers/isAxiosError");module.exports=axios;module.exports.default=axios},{"./cancel/Cancel":113,"./cancel/CancelToken":114,"./cancel/isCancel":115,"./core/Axios":116,"./core/mergeConfig":122,"./defaults":125,"./helpers/bind":126,"./helpers/isAxiosError":131,"./helpers/spread":135,"./utils":136}],113:[function(require,module,exports){"use strict";function Cancel(message){this.message=message}Cancel.prototype.toString=function toString(){return"Cancel"+(this.message?": "+this.message:"")};Cancel.prototype.__CANCEL__=true;module.exports=Cancel},{}],114:[function(require,module,exports){"use strict";var Cancel=require("./Cancel");function CancelToken(executor){if(typeof executor!=="function"){throw new TypeError("executor must be a function.")}var resolvePromise;this.promise=new Promise(function promiseExecutor(resolve){resolvePromise=resolve});var token=this;executor(function cancel(message){if(token.reason){return}token.reason=new Cancel(message);resolvePromise(token.reason)})}CancelToken.prototype.throwIfRequested=function throwIfRequested(){if(this.reason){throw this.reason}};CancelToken.source=function source(){var cancel;var token=new CancelToken(function executor(c){cancel=c});return{token:token,cancel:cancel}};module.exports=CancelToken},{"./Cancel":113}],115:[function(require,module,exports){"use strict";module.exports=function isCancel(value){return!!(value&&value.__CANCEL__)}},{}],116:[function(require,module,exports){"use strict";var utils=require("./../utils");var buildURL=require("../helpers/buildURL");var InterceptorManager=require("./InterceptorManager");var dispatchRequest=require("./dispatchRequest");var mergeConfig=require("./mergeConfig");function Axios(instanceConfig){this.defaults=instanceConfig;this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}Axios.prototype.request=function request(config){if(typeof config==="string"){config=arguments[1]||{};config.url=arguments[0]}else{config=config||{}}config=mergeConfig(this.defaults,config);if(config.method){config.method=config.method.toLowerCase()}else if(this.defaults.method){config.method=this.defaults.method.toLowerCase()}else{config.method="get"}var chain=[dispatchRequest,undefined];var promise=Promise.resolve(config);this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor){chain.unshift(interceptor.fulfilled,interceptor.rejected)});this.interceptors.response.forEach(function pushResponseInterceptors(interceptor){chain.push(interceptor.fulfilled,interceptor.rejected)});while(chain.length){promise=promise.then(chain.shift(),chain.shift())}return promise};Axios.prototype.getUri=function getUri(config){config=mergeConfig(this.defaults,config);return buildURL(config.url,config.params,config.paramsSerializer).replace(/^\?/,"")};utils.forEach(["delete","get","head","options"],function forEachMethodNoData(method){Axios.prototype[method]=function(url,config){return this.request(mergeConfig(config||{},{method:method,url:url,data:(config||{}).data}))}});utils.forEach(["post","put","patch"],function forEachMethodWithData(method){Axios.prototype[method]=function(url,data,config){return this.request(mergeConfig(config||{},{method:method,url:url,data:data}))}});module.exports=Axios},{"../helpers/buildURL":127,"./../utils":136,"./InterceptorManager":117,"./dispatchRequest":120,"./mergeConfig":122}],117:[function(require,module,exports){"use strict";var utils=require("./../utils");function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(fulfilled,rejected){this.handlers.push({fulfilled:fulfilled,rejected:rejected});return this.handlers.length-1};InterceptorManager.prototype.eject=function eject(id){if(this.handlers[id]){this.handlers[id]=null}};InterceptorManager.prototype.forEach=function forEach(fn){utils.forEach(this.handlers,function forEachHandler(h){if(h!==null){fn(h)}})};module.exports=InterceptorManager},{"./../utils":136}],118:[function(require,module,exports){"use strict";var isAbsoluteURL=require("../helpers/isAbsoluteURL");var combineURLs=require("../helpers/combineURLs");module.exports=function buildFullPath(baseURL,requestedURL){if(baseURL&&!isAbsoluteURL(requestedURL)){return combineURLs(baseURL,requestedURL)}return requestedURL}},{"../helpers/combineURLs":128,"../helpers/isAbsoluteURL":130}],119:[function(require,module,exports){"use strict";var enhanceError=require("./enhanceError");module.exports=function createError(message,config,code,request,response){var error=new Error(message);return enhanceError(error,config,code,request,response)}},{"./enhanceError":121}],120:[function(require,module,exports){"use strict";var utils=require("./../utils");var transformData=require("./transformData");var isCancel=require("../cancel/isCancel");var defaults=require("../defaults");function throwIfCancellationRequested(config){if(config.cancelToken){config.cancelToken.throwIfRequested()}}module.exports=function dispatchRequest(config){throwIfCancellationRequested(config);config.headers=config.headers||{};config.data=transformData(config.data,config.headers,config.transformRequest);config.headers=utils.merge(config.headers.common||{},config.headers[config.method]||{},config.headers);utils.forEach(["delete","get","head","post","put","patch","common"],function cleanHeaderConfig(method){delete config.headers[method]});var adapter=config.adapter||defaults.adapter;return adapter(config).then(function onAdapterResolution(response){throwIfCancellationRequested(config);response.data=transformData(response.data,response.headers,config.transformResponse);return response},function onAdapterRejection(reason){if(!isCancel(reason)){throwIfCancellationRequested(config);if(reason&&reason.response){reason.response.data=transformData(reason.response.data,reason.response.headers,config.transformResponse)}}return Promise.reject(reason)})}},{"../cancel/isCancel":115,"../defaults":125,"./../utils":136,"./transformData":124}],121:[function(require,module,exports){"use strict";module.exports=function enhanceError(error,config,code,request,response){error.config=config;if(code){error.code=code}error.request=request;error.response=response;error.isAxiosError=true;error.toJSON=function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}};return error}},{}],122:[function(require,module,exports){"use strict";var utils=require("../utils");module.exports=function mergeConfig(config1,config2){config2=config2||{};var config={};var valueFromConfig2Keys=["url","method","data"];var mergeDeepPropertiesKeys=["headers","auth","proxy","params"];var defaultToConfig2Keys=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"];var directMergeKeys=["validateStatus"];function getMergedValue(target,source){if(utils.isPlainObject(target)&&utils.isPlainObject(source)){return utils.merge(target,source)}else if(utils.isPlainObject(source)){return utils.merge({},source)}else if(utils.isArray(source)){return source.slice()}return source}function mergeDeepProperties(prop){if(!utils.isUndefined(config2[prop])){config[prop]=getMergedValue(config1[prop],config2[prop])}else if(!utils.isUndefined(config1[prop])){config[prop]=getMergedValue(undefined,config1[prop])}}utils.forEach(valueFromConfig2Keys,function valueFromConfig2(prop){if(!utils.isUndefined(config2[prop])){config[prop]=getMergedValue(undefined,config2[prop])}});utils.forEach(mergeDeepPropertiesKeys,mergeDeepProperties);utils.forEach(defaultToConfig2Keys,function defaultToConfig2(prop){if(!utils.isUndefined(config2[prop])){config[prop]=getMergedValue(undefined,config2[prop])}else if(!utils.isUndefined(config1[prop])){config[prop]=getMergedValue(undefined,config1[prop])}});utils.forEach(directMergeKeys,function merge(prop){if(prop in config2){config[prop]=getMergedValue(config1[prop],config2[prop])}else if(prop in config1){config[prop]=getMergedValue(undefined,config1[prop])}});var axiosKeys=valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);var otherKeys=Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key){return axiosKeys.indexOf(key)===-1});utils.forEach(otherKeys,mergeDeepProperties);return config}},{"../utils":136}],123:[function(require,module,exports){"use strict";var createError=require("./createError");module.exports=function settle(resolve,reject,response){var validateStatus=response.config.validateStatus;if(!response.status||!validateStatus||validateStatus(response.status)){resolve(response)}else{reject(createError("Request failed with status code "+response.status,response.config,null,response.request,response))}}},{"./createError":119}],124:[function(require,module,exports){"use strict";var utils=require("./../utils");module.exports=function transformData(data,headers,fns){utils.forEach(fns,function transform(fn){data=fn(data,headers)});return data}},{"./../utils":136}],125:[function(require,module,exports){(function(process){"use strict";var utils=require("./utils");var normalizeHeaderName=require("./helpers/normalizeHeaderName");var DEFAULT_CONTENT_TYPE={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(headers,value){if(!utils.isUndefined(headers)&&utils.isUndefined(headers["Content-Type"])){headers["Content-Type"]=value}}function getDefaultAdapter(){var adapter;if(typeof XMLHttpRequest!=="undefined"){adapter=require("./adapters/xhr")}else if(typeof process!=="undefined"&&Object.prototype.toString.call(process)==="[object process]"){adapter=require("./adapters/http")}return adapter}var defaults={adapter:getDefaultAdapter(),transformRequest:[function transformRequest(data,headers){normalizeHeaderName(headers,"Accept");normalizeHeaderName(headers,"Content-Type");if(utils.isFormData(data)||utils.isArrayBuffer(data)||utils.isBuffer(data)||utils.isStream(data)||utils.isFile(data)||utils.isBlob(data)){return data}if(utils.isArrayBufferView(data)){return data.buffer}if(utils.isURLSearchParams(data)){setContentTypeIfUnset(headers,"application/x-www-form-urlencoded;charset=utf-8");return data.toString()}if(utils.isObject(data)){setContentTypeIfUnset(headers,"application/json;charset=utf-8");return JSON.stringify(data)}return data}],transformResponse:[function transformResponse(data){if(typeof data==="string"){try{data=JSON.parse(data)}catch(e){}}return data}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function validateStatus(status){return status>=200&&status<300}};defaults.headers={common:{Accept:"application/json, text/plain, */*"}};utils.forEach(["delete","get","head"],function forEachMethodNoData(method){defaults.headers[method]={}});utils.forEach(["post","put","patch"],function forEachMethodWithData(method){defaults.headers[method]=utils.merge(DEFAULT_CONTENT_TYPE)});module.exports=defaults}).call(this,require("_process"))},{"./adapters/http":111,"./adapters/xhr":111,"./helpers/normalizeHeaderName":133,"./utils":136,_process:267}],126:[function(require,module,exports){"use strict";module.exports=function bind(fn,thisArg){return function wrap(){var args=new Array(arguments.length);for(var i=0;i<args.length;i++){args[i]=arguments[i]}return fn.apply(thisArg,args)}}},{}],127:[function(require,module,exports){"use strict";var utils=require("./../utils");function encode(val){return encodeURIComponent(val).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}module.exports=function buildURL(url,params,paramsSerializer){if(!params){return url}var serializedParams;if(paramsSerializer){serializedParams=paramsSerializer(params)}else if(utils.isURLSearchParams(params)){serializedParams=params.toString()}else{var parts=[];utils.forEach(params,function serialize(val,key){if(val===null||typeof val==="undefined"){return}if(utils.isArray(val)){key=key+"[]"}else{val=[val]}utils.forEach(val,function parseValue(v){if(utils.isDate(v)){v=v.toISOString()}else if(utils.isObject(v)){v=JSON.stringify(v)}parts.push(encode(key)+"="+encode(v))})});serializedParams=parts.join("&")}if(serializedParams){var hashmarkIndex=url.indexOf("#");if(hashmarkIndex!==-1){url=url.slice(0,hashmarkIndex)}url+=(url.indexOf("?")===-1?"?":"&")+serializedParams}return url}},{"./../utils":136}],128:[function(require,module,exports){"use strict";module.exports=function combineURLs(baseURL,relativeURL){return relativeURL?baseURL.replace(/\/+$/,"")+"/"+relativeURL.replace(/^\/+/,""):baseURL}},{}],129:[function(require,module,exports){"use strict";var utils=require("./../utils");module.exports=utils.isStandardBrowserEnv()?function standardBrowserEnv(){return{write:function write(name,value,expires,path,domain,secure){var cookie=[];cookie.push(name+"="+encodeURIComponent(value));if(utils.isNumber(expires)){cookie.push("expires="+new Date(expires).toGMTString())}if(utils.isString(path)){cookie.push("path="+path)}if(utils.isString(domain)){cookie.push("domain="+domain)}if(secure===true){cookie.push("secure")}document.cookie=cookie.join("; ")},read:function read(name){var match=document.cookie.match(new RegExp("(^|;\\s*)("+name+")=([^;]*)"));return match?decodeURIComponent(match[3]):null},remove:function remove(name){this.write(name,"",Date.now()-864e5)}}}():function nonStandardBrowserEnv(){return{write:function write(){},read:function read(){return null},remove:function remove(){}}}()},{"./../utils":136}],130:[function(require,module,exports){"use strict";module.exports=function isAbsoluteURL(url){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url)}},{}],131:[function(require,module,exports){"use strict";module.exports=function isAxiosError(payload){return typeof payload==="object"&&payload.isAxiosError===true}},{}],132:[function(require,module,exports){"use strict";var utils=require("./../utils");module.exports=utils.isStandardBrowserEnv()?function standardBrowserEnv(){var msie=/(msie|trident)/i.test(navigator.userAgent);var urlParsingNode=document.createElement("a");var originURL;function resolveURL(url){var href=url;if(msie){urlParsingNode.setAttribute("href",href);href=urlParsingNode.href}urlParsingNode.setAttribute("href",href);return{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,""):"",host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,""):"",hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,""):"",hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:urlParsingNode.pathname.charAt(0)==="/"?urlParsingNode.pathname:"/"+urlParsingNode.pathname}}originURL=resolveURL(window.location.href);return function isURLSameOrigin(requestURL){var parsed=utils.isString(requestURL)?resolveURL(requestURL):requestURL;return parsed.protocol===originURL.protocol&&parsed.host===originURL.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}()},{"./../utils":136}],133:[function(require,module,exports){"use strict";var utils=require("../utils");module.exports=function normalizeHeaderName(headers,normalizedName){utils.forEach(headers,function processHeader(value,name){if(name!==normalizedName&&name.toUpperCase()===normalizedName.toUpperCase()){headers[normalizedName]=value;delete headers[name]}})}},{"../utils":136}],134:[function(require,module,exports){"use strict";var utils=require("./../utils");var ignoreDuplicateOf=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];module.exports=function parseHeaders(headers){var parsed={};var key;var val;var i;if(!headers){return parsed}utils.forEach(headers.split("\n"),function parser(line){i=line.indexOf(":");key=utils.trim(line.substr(0,i)).toLowerCase();val=utils.trim(line.substr(i+1));if(key){if(parsed[key]&&ignoreDuplicateOf.indexOf(key)>=0){return}if(key==="set-cookie"){parsed[key]=(parsed[key]?parsed[key]:[]).concat([val])}else{parsed[key]=parsed[key]?parsed[key]+", "+val:val}}});return parsed}},{"./../utils":136}],135:[function(require,module,exports){"use strict";module.exports=function spread(callback){return function wrap(arr){return callback.apply(null,arr)}}},{}],136:[function(require,module,exports){"use strict";var bind=require("./helpers/bind");var toString=Object.prototype.toString;function isArray(val){return toString.call(val)==="[object Array]"}function isUndefined(val){return typeof val==="undefined"}function isBuffer(val){return val!==null&&!isUndefined(val)&&val.constructor!==null&&!isUndefined(val.constructor)&&typeof val.constructor.isBuffer==="function"&&val.constructor.isBuffer(val)}function isArrayBuffer(val){return toString.call(val)==="[object ArrayBuffer]"}function isFormData(val){return typeof FormData!=="undefined"&&val instanceof FormData}function isArrayBufferView(val){var result;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){result=ArrayBuffer.isView(val)}else{result=val&&val.buffer&&val.buffer instanceof ArrayBuffer}return result}function isString(val){return typeof val==="string"}function isNumber(val){return typeof val==="number"}function isObject(val){return val!==null&&typeof val==="object"}function isPlainObject(val){if(toString.call(val)!=="[object Object]"){return false}var prototype=Object.getPrototypeOf(val);return prototype===null||prototype===Object.prototype}function isDate(val){return toString.call(val)==="[object Date]"}function isFile(val){return toString.call(val)==="[object File]"}function isBlob(val){return toString.call(val)==="[object Blob]"}function isFunction(val){return toString.call(val)==="[object Function]"}function isStream(val){return isObject(val)&&isFunction(val.pipe)}function isURLSearchParams(val){return typeof URLSearchParams!=="undefined"&&val instanceof URLSearchParams}function trim(str){return str.replace(/^\s*/,"").replace(/\s*$/,"")}function isStandardBrowserEnv(){if(typeof navigator!=="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")){return false}return typeof window!=="undefined"&&typeof document!=="undefined"}function forEach(obj,fn){if(obj===null||typeof obj==="undefined"){return}if(typeof obj!=="object"){obj=[obj]}if(isArray(obj)){for(var i=0,l=obj.length;i<l;i++){fn.call(null,obj[i],i,obj)}}else{for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){fn.call(null,obj[key],key,obj)}}}}function merge(){var result={};function assignValue(val,key){if(isPlainObject(result[key])&&isPlainObject(val)){result[key]=merge(result[key],val)}else if(isPlainObject(val)){result[key]=merge({},val)}else if(isArray(val)){result[key]=val.slice()}else{result[key]=val}}for(var i=0,l=arguments.length;i<l;i++){forEach(arguments[i],assignValue)}return result}function extend(a,b,thisArg){forEach(b,function assignValue(val,key){if(thisArg&&typeof val==="function"){a[key]=bind(val,thisArg)}else{a[key]=val}});return a}function stripBOM(content){if(content.charCodeAt(0)===65279){content=content.slice(1)}return content}module.exports={isArray:isArray,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isFunction:isFunction,isStream:isStream,isURLSearchParams:isURLSearchParams,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM}},{"./helpers/bind":126}],137:[function(require,module,exports){"use strict";var _Buffer=require("safe-buffer").Buffer;function base(ALPHABET){if(ALPHABET.length>=255){throw new TypeError("Alphabet too long")}var BASE_MAP=new Uint8Array(256);BASE_MAP.fill(255);for(var i=0;i<ALPHABET.length;i++){var x=ALPHABET.charAt(i);var xc=x.charCodeAt(0);if(BASE_MAP[xc]!==255){throw new TypeError(x+" is ambiguous")}BASE_MAP[xc]=i}var BASE=ALPHABET.length;var LEADER=ALPHABET.charAt(0);var FACTOR=Math.log(BASE)/Math.log(256);var iFACTOR=Math.log(256)/Math.log(BASE);function encode(source){if(!_Buffer.isBuffer(source)){throw new TypeError("Expected Buffer")}if(source.length===0){return""}var zeroes=0;var length=0;var pbegin=0;var pend=source.length;while(pbegin!==pend&&source[pbegin]===0){pbegin++;zeroes++}var size=(pend-pbegin)*iFACTOR+1>>>0;var b58=new Uint8Array(size);while(pbegin!==pend){var carry=source[pbegin];var i=0;for(var it1=size-1;(carry!==0||i<length)&&it1!==-1;it1--,i++){carry+=256*b58[it1]>>>0;b58[it1]=carry%BASE>>>0;carry=carry/BASE>>>0}if(carry!==0){throw new Error("Non-zero carry")}length=i;pbegin++}var it2=size-length;while(it2!==size&&b58[it2]===0){it2++}var str=LEADER.repeat(zeroes);for(;it2<size;++it2){str+=ALPHABET.charAt(b58[it2])}return str}function decodeUnsafe(source){if(typeof source!=="string"){throw new TypeError("Expected String")}if(source.length===0){return _Buffer.alloc(0)}var psz=0;if(source[psz]===" "){return}var zeroes=0;var length=0;while(source[psz]===LEADER){zeroes++;psz++}var size=(source.length-psz)*FACTOR+1>>>0;var b256=new Uint8Array(size);while(source[psz]){var carry=BASE_MAP[source.charCodeAt(psz)];if(carry===255){return}var i=0;for(var it3=size-1;(carry!==0||i<length)&&it3!==-1;it3--,i++){carry+=BASE*b256[it3]>>>0;b256[it3]=carry%256>>>0;carry=carry/256>>>0}if(carry!==0){throw new Error("Non-zero carry")}length=i;psz++}if(source[psz]===" "){return}var it4=size-length;while(it4!==size&&b256[it4]===0){it4++}var vch=_Buffer.allocUnsafe(zeroes+(size-it4));vch.fill(0,0,zeroes);var j=zeroes;while(it4!==size){vch[j++]=b256[it4++]}return vch}function decode(string){var buffer=decodeUnsafe(string);if(buffer){return buffer}throw new Error("Non-base"+BASE+" character")}return{encode:encode,decodeUnsafe:decodeUnsafe,decode:decode}}module.exports=base},{"safe-buffer":293}],138:[function(require,module,exports){"use strict";exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i}revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var validLen=b64.indexOf("=");if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen]}function byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;var len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i<len;i+=4){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[curByte++]=tmp>>16&255;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&255}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&255;arr[curByte++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16&16711680)+(uint8[i+1]<<8&65280)+(uint8[i+2]&255);output.push(tripletToBase64(tmp))}return output.join("")}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;var parts=[];var maxChunkLength=16383;for(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"=")}return parts.join("")}},{}],139:[function(require,module,exports){(function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number)){return number}this.negative=0;this.words=null;this.length=0;this.red=null;if(number!==null){if(base==="le"||base==="be"){endian=base;base=10}this._init(number||0,base||10,endian||"be")}}if(typeof module==="object"){module.exports=BN}else{exports.BN=BN}BN.BN=BN;BN.wordSize=26;var Buffer;try{Buffer=require("buffer").Buffer}catch(e){}BN.isBN=function isBN(num){if(num instanceof BN){return true}return num!==null&&typeof num==="object"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)};BN.max=function max(left,right){if(left.cmp(right)>0)return left;return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex"){base=16}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-"){start++}if(base===16){this._parseHex(number,start)}else{this._parseBase(number,base,start)}if(number[0]==="-"){this.negative=1}this._strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;if(endian==="be"){for(i=number.length-1,j=0;i>=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(i=0,j=0;i<number.length;i+=3){w=number[i]|number[i+1]<<8|number[i+2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this._strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);var z=0;for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4;var b;if(c>=49&&c<=54){b=c-49+10}else if(c>=17&&c<=22){b=c-17+10}else{b=c}r|=b;z|=b}assert(!(z&240),"Invalid character in "+str);return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;for(i=number.length-6,j=0;i>=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this._strip()};function parseBase(str,start,end,mul){var r=0;var b=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul;if(c>=49){b=c-49+10}else if(c>=17){b=c-17+10}else{b=c}assert(c>=0&&b<mul,"Invalid character");r+=b}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base){limbLen++}limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i<end;i+=limbLen){word=parseBase(number,i,i+limbLen,base);this.imuln(limbPow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}if(mod!==0){var pow=1;word=parseBase(number,i,number.length,base);for(i=0;i<mod;i++){pow*=base}this.imuln(pow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++){dest.words[i]=this.words[i]}dest.length=this.length;dest.negative=this.negative;dest.red=this.red};function move(dest,src){dest.words=src.words;dest.length=src.length;dest.negative=src.negative;dest.red=src.red}BN.prototype._move=function _move(dest){move(dest,this)};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype._expand=function _expand(size){while(this.length<size){this.words[this.length++]=0}return this};BN.prototype._strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};if(typeof Symbol!=="undefined"&&typeof Symbol.for==="function"){BN.prototype[Symbol.for("nodejs.util.inspect.custom")]=inspect}else{BN.prototype.inspect=inspect}function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==="hex"){out="";var off=0;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out}else{out=word+out}off+=2;if(off>=26){off-=26;i--}}if(carry!==0){out=carry.toString(16)+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];out="";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modrn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out}else{out=r+out}}if(this.isZero()){out="0"+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}assert(false,"Base should be between 2 and 36")};BN.prototype.toNumber=function toNumber(){var ret=this.words[0];if(this.length===2){ret+=this.words[1]*67108864}else if(this.length===3&&this.words[2]===1){ret+=4503599627370496+this.words[1]*67108864}else if(this.length>2){assert(false,"Number can only safely store up to 53 bits")}return this.negative!==0?-ret:ret};BN.prototype.toJSON=function toJSON(){return this.toString(16,2)};if(Buffer){BN.prototype.toBuffer=function toBuffer(endian,length){return this.toArrayLike(Buffer,endian,length)}}BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length)};var allocate=function allocate(ArrayType,size){if(ArrayType.allocUnsafe){return ArrayType.allocUnsafe(size)}return new ArrayType(size)};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){this._strip();var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length");assert(reqLength>0,"Requested array length <= 0");var res=allocate(ArrayType,reqLength);var postfix=endian==="le"?"LE":"BE";this["_toArrayLike"+postfix](res,byteLength);return res};BN.prototype._toArrayLikeLE=function _toArrayLikeLE(res,byteLength){var position=0;var carry=0;for(var i=0,shift=0;i<this.length;i++){var word=this.words[i]<<shift|carry;res[position++]=word&255;if(position<res.length){res[position++]=word>>8&255}if(position<res.length){res[position++]=word>>16&255}if(shift===6){if(position<res.length){res[position++]=word>>24&255}carry=0;shift=0}else{carry=word>>>24;shift+=2}}if(position<res.length){res[position++]=carry;while(position<res.length){res[position++]=0}}};BN.prototype._toArrayLikeBE=function _toArrayLikeBE(res,byteLength){var position=res.length-1;var carry=0;for(var i=0,shift=0;i<this.length;i++){var word=this.words[i]<<shift|carry;res[position--]=word&255;if(position>=0){res[position--]=word>>8&255}if(position>=0){res[position--]=word>>16&255}if(shift===6){if(position>=0){res[position--]=word>>24&255}carry=0;shift=0}else{carry=word>>>24;shift+=2}}if(position>=0){res[position--]=carry;while(position>=0){res[position--]=0}}};if(Math.clz32){BN.prototype._countBits=function _countBits(w){return 32-Math.clz32(w)}}else{BN.prototype._countBits=function _countBits(w){var t=w;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit<w.length;bit++){var off=bit/26|0;var wbit=bit%26;w[bit]=num.words[off]>>>wbit&1}return w}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);r+=b;if(b!==26)break}return r};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(width){if(this.negative!==0){return this.abs().inotn(width).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(width){if(this.testn(width-1)){return this.notn(width).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(num){while(this.length<num.length){this.words[this.length++]=0}for(var i=0;i<num.length;i++){this.words[i]=this.words[i]|num.words[i]}return this._strip()};BN.prototype.ior=function ior(num){assert((this.negative|num.negative)===0);return this.iuor(num)};BN.prototype.or=function or(num){if(this.length>num.length)return this.clone().ior(num);return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length){b=num}else{b=this}for(var i=0;i<b.length;i++){this.words[i]=this.words[i]&num.words[i]}this.length=b.length;return this._strip()};BN.prototype.iand=function iand(num){assert((this.negative|num.negative)===0);return this.iuand(num)};BN.prototype.and=function and(num){if(this.length>num.length)return this.clone().iand(num);return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;i<b.length;i++){this.words[i]=a.words[i]^b.words[i]}if(this!==a){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=a.length;return this._strip()};BN.prototype.ixor=function ixor(num){assert((this.negative|num.negative)===0);return this.iuxor(num)};BN.prototype.xor=function xor(num){if(this.length>num.length)return this.clone().ixor(num);return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)};BN.prototype.inotn=function inotn(width){assert(typeof width==="number"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--}for(var i=0;i<bytesNeeded;i++){this.words[i]=~this.words[i]&67108863}if(bitsLeft>0){this.words[i]=~this.words[i]&67108863>>26-bitsLeft}return this._strip()};BN.prototype.notn=function notn(width){return this.clone().inotn(width)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1<<wbit}else{this.words[off]=this.words[off]&~(1<<wbit)}return this._strip()};BN.prototype.iadd=function iadd(num){var r;if(this.negative!==0&&num.negative===0){this.negative=0;r=this.isub(num);this.negative^=1;return this._normSign()}else if(this.negative===0&&num.negative!==0){num.negative=0;r=this.isub(num);num.negative=1;return r._normSign()}var a,b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)+(b.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}return this};BN.prototype.add=function add(num){var res;if(num.negative!==0&&this.negative===0){num.negative=0;res=this.sub(num);num.negative^=1;return res}else if(num.negative===0&&this.negative!==0){this.negative=0;res=num.sub(this);this.negative=1;return res}if(this.length>num.length)return this.clone().iadd(num);return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a,b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)-(b.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}if(carry===0&&i<a.length&&a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=Math.max(this.length,i);if(a!==this){this.negative=1}return this._strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len;len=len-1|0;var a=self.words[0]|0;var b=num.words[0]|0;var r=a*b;var lo=r&67108863;var carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/67108864|0;rword=r&67108863}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out._strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0;w0&=67108863;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);lo=lo+Math.imul(al0,bl1)|0;mid=mid+Math.imul(al0,bh1)|0;mid=mid+Math.imul(ah0,bl1)|0;hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0;w1&=67108863;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);lo=lo+Math.imul(al1,bl1)|0;mid=mid+Math.imul(al1,bh1)|0;mid=mid+Math.imul(ah1,bl1)|0;hi=hi+Math.imul(ah1,bh1)|0;lo=lo+Math.imul(al0,bl2)|0;mid=mid+Math.imul(al0,bh2)|0;mid=mid+Math.imul(ah0,bl2)|0;hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);lo=lo+Math.imul(al2,bl1)|0;mid=mid+Math.imul(al2,bh1)|0;mid=mid+Math.imul(ah2,bl1)|0;hi=hi+Math.imul(ah2,bh1)|0;lo=lo+Math.imul(al1,bl2)|0;mid=mid+Math.imul(al1,bh2)|0;mid=mid+Math.imul(ah1,bl2)|0;hi=hi+Math.imul(ah1,bh2)|0;lo=lo+Math.imul(al0,bl3)|0;mid=mid+Math.imul(al0,bh3)|0;mid=mid+Math.imul(ah0,bl3)|0;hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);lo=lo+Math.imul(al3,bl1)|0;mid=mid+Math.imul(al3,bh1)|0;mid=mid+Math.imul(ah3,bl1)|0;hi=hi+Math.imul(ah3,bh1)|0;lo=lo+Math.imul(al2,bl2)|0;mid=mid+Math.imul(al2,bh2)|0;mid=mid+Math.imul(ah2,bl2)|0;hi=hi+Math.imul(ah2,bh2)|0;lo=lo+Math.imul(al1,bl3)|0;mid=mid+Math.imul(al1,bh3)|0;mid=mid+Math.imul(ah1,bl3)|0;hi=hi+Math.imul(ah1,bh3)|0;lo=lo+Math.imul(al0,bl4)|0;mid=mid+Math.imul(al0,bh4)|0;mid=mid+Math.imul(ah0,bl4)|0;hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);lo=lo+Math.imul(al4,bl1)|0;mid=mid+Math.imul(al4,bh1)|0;mid=mid+Math.imul(ah4,bl1)|0;hi=hi+Math.imul(ah4,bh1)|0;lo=lo+Math.imul(al3,bl2)|0;mid=mid+Math.imul(al3,bh2)|0;mid=mid+Math.imul(ah3,bl2)|0;hi=hi+Math.imul(ah3,bh2)|0;lo=lo+Math.imul(al2,bl3)|0;mid=mid+Math.imul(al2,bh3)|0;mid=mid+Math.imul(ah2,bl3)|0;hi=hi+Math.imul(ah2,bh3)|0;lo=lo+Math.imul(al1,bl4)|0;mid=mid+Math.imul(al1,bh4)|0;mid=mid+Math.imul(ah1,bl4)|0;hi=hi+Math.imul(ah1,bh4)|0;lo=lo+Math.imul(al0,bl5)|0;mid=mid+Math.imul(al0,bh5)|0;mid=mid+Math.imul(ah0,bl5)|0;hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);lo=lo+Math.imul(al5,bl1)|0;mid=mid+Math.imul(al5,bh1)|0;mid=mid+Math.imul(ah5,bl1)|0;hi=hi+Math.imul(ah5,bh1)|0;lo=lo+Math.imul(al4,bl2)|0;mid=mid+Math.imul(al4,bh2)|0;mid=mid+Math.imul(ah4,bl2)|0;hi=hi+Math.imul(ah4,bh2)|0;lo=lo+Math.imul(al3,bl3)|0;mid=mid+Math.imul(al3,bh3)|0;mid=mid+Math.imul(ah3,bl3)|0;hi=hi+Math.imul(ah3,bh3)|0;lo=lo+Math.imul(al2,bl4)|0;mid=mid+Math.imul(al2,bh4)|0;mid=mid+Math.imul(ah2,bl4)|0;hi=hi+Math.imul(ah2,bh4)|0;lo=lo+Math.imul(al1,bl5)|0;mid=mid+Math.imul(al1,bh5)|0;mid=mid+Math.imul(ah1,bl5)|0;hi=hi+Math.imul(ah1,bh5)|0;lo=lo+Math.imul(al0,bl6)|0;mid=mid+Math.imul(al0,bh6)|0;mid=mid+Math.imul(ah0,bl6)|0;hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);lo=lo+Math.imul(al6,bl1)|0;mid=mid+Math.imul(al6,bh1)|0;mid=mid+Math.imul(ah6,bl1)|0;hi=hi+Math.imul(ah6,bh1)|0;lo=lo+Math.imul(al5,bl2)|0;mid=mid+Math.imul(al5,bh2)|0;mid=mid+Math.imul(ah5,bl2)|0;hi=hi+Math.imul(ah5,bh2)|0;lo=lo+Math.imul(al4,bl3)|0;mid=mid+Math.imul(al4,bh3)|0;mid=mid+Math.imul(ah4,bl3)|0;hi=hi+Math.imul(ah4,bh3)|0;lo=lo+Math.imul(al3,bl4)|0;mid=mid+Math.imul(al3,bh4)|0;mid=mid+Math.imul(ah3,bl4)|0;hi=hi+Math.imul(ah3,bh4)|0;lo=lo+Math.imul(al2,bl5)|0;mid=mid+Math.imul(al2,bh5)|0;mid=mid+Math.imul(ah2,bl5)|0;hi=hi+Math.imul(ah2,bh5)|0;lo=lo+Math.imul(al1,bl6)|0;mid=mid+Math.imul(al1,bh6)|0;mid=mid+Math.imul(ah1,bl6)|0;hi=hi+Math.imul(ah1,bh6)|0;lo=lo+Math.imul(al0,bl7)|0;mid=mid+Math.imul(al0,bh7)|0;mid=mid+Math.imul(ah0,bl7)|0;hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);lo=lo+Math.imul(al7,bl1)|0;mid=mid+Math.imul(al7,bh1)|0;mid=mid+Math.imul(ah7,bl1)|0;hi=hi+Math.imul(ah7,bh1)|0;lo=lo+Math.imul(al6,bl2)|0;mid=mid+Math.imul(al6,bh2)|0;mid=mid+Math.imul(ah6,bl2)|0;hi=hi+Math.imul(ah6,bh2)|0;lo=lo+Math.imul(al5,bl3)|0;mid=mid+Math.imul(al5,bh3)|0;mid=mid+Math.imul(ah5,bl3)|0;hi=hi+Math.imul(ah5,bh3)|0;lo=lo+Math.imul(al4,bl4)|0;mid=mid+Math.imul(al4,bh4)|0;mid=mid+Math.imul(ah4,bl4)|0;hi=hi+Math.imul(ah4,bh4)|0;lo=lo+Math.imul(al3,bl5)|0;mid=mid+Math.imul(al3,bh5)|0;mid=mid+Math.imul(ah3,bl5)|0;hi=hi+Math.imul(ah3,bh5)|0;lo=lo+Math.imul(al2,bl6)|0;mid=mid+Math.imul(al2,bh6)|0;mid=mid+Math.imul(ah2,bl6)|0;hi=hi+Math.imul(ah2,bh6)|0;lo=lo+Math.imul(al1,bl7)|0;mid=mid+Math.imul(al1,bh7)|0;mid=mid+Math.imul(ah1,bl7)|0;hi=hi+Math.imul(ah1,bh7)|0;lo=lo+Math.imul(al0,bl8)|0;mid=mid+Math.imul(al0,bh8)|0;mid=mid+Math.imul(ah0,bl8)|0;hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);lo=lo+Math.imul(al8,bl1)|0;mid=mid+Math.imul(al8,bh1)|0;mid=mid+Math.imul(ah8,bl1)|0;hi=hi+Math.imul(ah8,bh1)|0;lo=lo+Math.imul(al7,bl2)|0;mid=mid+Math.imul(al7,bh2)|0;mid=mid+Math.imul(ah7,bl2)|0;hi=hi+Math.imul(ah7,bh2)|0;lo=lo+Math.imul(al6,bl3)|0;mid=mid+Math.imul(al6,bh3)|0;mid=mid+Math.imul(ah6,bl3)|0;hi=hi+Math.imul(ah6,bh3)|0;lo=lo+Math.imul(al5,bl4)|0;mid=mid+Math.imul(al5,bh4)|0;mid=mid+Math.imul(ah5,bl4)|0;hi=hi+Math.imul(ah5,bh4)|0;lo=lo+Math.imul(al4,bl5)|0;mid=mid+Math.imul(al4,bh5)|0;mid=mid+Math.imul(ah4,bl5)|0;hi=hi+Math.imul(ah4,bh5)|0;lo=lo+Math.imul(al3,bl6)|0;mid=mid+Math.imul(al3,bh6)|0;mid=mid+Math.imul(ah3,bl6)|0;hi=hi+Math.imul(ah3,bh6)|0;lo=lo+Math.imul(al2,bl7)|0;mid=mid+Math.imul(al2,bh7)|0;mid=mid+Math.imul(ah2,bl7)|0;hi=hi+Math.imul(ah2,bh7)|0;lo=lo+Math.imul(al1,bl8)|0;mid=mid+Math.imul(al1,bh8)|0;mid=mid+Math.imul(ah1,bl8)|0;hi=hi+Math.imul(ah1,bh8)|0;lo=lo+Math.imul(al0,bl9)|0;mid=mid+Math.imul(al0,bh9)|0;mid=mid+Math.imul(ah0,bl9)|0;hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);lo=lo+Math.imul(al8,bl2)|0;mid=mid+Math.imul(al8,bh2)|0;mid=mid+Math.imul(ah8,bl2)|0;hi=hi+Math.imul(ah8,bh2)|0;lo=lo+Math.imul(al7,bl3)|0;mid=mid+Math.imul(al7,bh3)|0;mid=mid+Math.imul(ah7,bl3)|0;hi=hi+Math.imul(ah7,bh3)|0;lo=lo+Math.imul(al6,bl4)|0;mid=mid+Math.imul(al6,bh4)|0;mid=mid+Math.imul(ah6,bl4)|0;hi=hi+Math.imul(ah6,bh4)|0;lo=lo+Math.imul(al5,bl5)|0;mid=mid+Math.imul(al5,bh5)|0;mid=mid+Math.imul(ah5,bl5)|0;hi=hi+Math.imul(ah5,bh5)|0;lo=lo+Math.imul(al4,bl6)|0;mid=mid+Math.imul(al4,bh6)|0;mid=mid+Math.imul(ah4,bl6)|0;hi=hi+Math.imul(ah4,bh6)|0;lo=lo+Math.imul(al3,bl7)|0;mid=mid+Math.imul(al3,bh7)|0;mid=mid+Math.imul(ah3,bl7)|0;hi=hi+Math.imul(ah3,bh7)|0;lo=lo+Math.imul(al2,bl8)|0;mid=mid+Math.imul(al2,bh8)|0;mid=mid+Math.imul(ah2,bl8)|0;hi=hi+Math.imul(ah2,bh8)|0;lo=lo+Math.imul(al1,bl9)|0;mid=mid+Math.imul(al1,bh9)|0;mid=mid+Math.imul(ah1,bl9)|0;hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);lo=lo+Math.imul(al8,bl3)|0;mid=mid+Math.imul(al8,bh3)|0;mid=mid+Math.imul(ah8,bl3)|0;hi=hi+Math.imul(ah8,bh3)|0;lo=lo+Math.imul(al7,bl4)|0;mid=mid+Math.imul(al7,bh4)|0;mid=mid+Math.imul(ah7,bl4)|0;hi=hi+Math.imul(ah7,bh4)|0;lo=lo+Math.imul(al6,bl5)|0;mid=mid+Math.imul(al6,bh5)|0;mid=mid+Math.imul(ah6,bl5)|0;hi=hi+Math.imul(ah6,bh5)|0;lo=lo+Math.imul(al5,bl6)|0;mid=mid+Math.imul(al5,bh6)|0;mid=mid+Math.imul(ah5,bl6)|0;hi=hi+Math.imul(ah5,bh6)|0;lo=lo+Math.imul(al4,bl7)|0;mid=mid+Math.imul(al4,bh7)|0;mid=mid+Math.imul(ah4,bl7)|0;hi=hi+Math.imul(ah4,bh7)|0;lo=lo+Math.imul(al3,bl8)|0;mid=mid+Math.imul(al3,bh8)|0;mid=mid+Math.imul(ah3,bl8)|0;hi=hi+Math.imul(ah3,bh8)|0;lo=lo+Math.imul(al2,bl9)|0;mid=mid+Math.imul(al2,bh9)|0;mid=mid+Math.imul(ah2,bl9)|0;hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);lo=lo+Math.imul(al8,bl4)|0;mid=mid+Math.imul(al8,bh4)|0;mid=mid+Math.imul(ah8,bl4)|0;hi=hi+Math.imul(ah8,bh4)|0;lo=lo+Math.imul(al7,bl5)|0;mid=mid+Math.imul(al7,bh5)|0;mid=mid+Math.imul(ah7,bl5)|0;hi=hi+Math.imul(ah7,bh5)|0;lo=lo+Math.imul(al6,bl6)|0;mid=mid+Math.imul(al6,bh6)|0;mid=mid+Math.imul(ah6,bl6)|0;hi=hi+Math.imul(ah6,bh6)|0;lo=lo+Math.imul(al5,bl7)|0;mid=mid+Math.imul(al5,bh7)|0;mid=mid+Math.imul(ah5,bl7)|0;hi=hi+Math.imul(ah5,bh7)|0;lo=lo+Math.imul(al4,bl8)|0;mid=mid+Math.imul(al4,bh8)|0;mid=mid+Math.imul(ah4,bl8)|0;hi=hi+Math.imul(ah4,bh8)|0;lo=lo+Math.imul(al3,bl9)|0;mid=mid+Math.imul(al3,bh9)|0;mid=mid+Math.imul(ah3,bl9)|0;hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);lo=lo+Math.imul(al8,bl5)|0;mid=mid+Math.imul(al8,bh5)|0;mid=mid+Math.imul(ah8,bl5)|0;hi=hi+Math.imul(ah8,bh5)|0;lo=lo+Math.imul(al7,bl6)|0;mid=mid+Math.imul(al7,bh6)|0;mid=mid+Math.imul(ah7,bl6)|0;hi=hi+Math.imul(ah7,bh6)|0;lo=lo+Math.imul(al6,bl7)|0;mid=mid+Math.imul(al6,bh7)|0;mid=mid+Math.imul(ah6,bl7)|0;hi=hi+Math.imul(ah6,bh7)|0;lo=lo+Math.imul(al5,bl8)|0;mid=mid+Math.imul(al5,bh8)|0;mid=mid+Math.imul(ah5,bl8)|0;hi=hi+Math.imul(ah5,bh8)|0;lo=lo+Math.imul(al4,bl9)|0;mid=mid+Math.imul(al4,bh9)|0;mid=mid+Math.imul(ah4,bl9)|0;hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);lo=lo+Math.imul(al8,bl6)|0;mid=mid+Math.imul(al8,bh6)|0;mid=mid+Math.imul(ah8,bl6)|0;hi=hi+Math.imul(ah8,bh6)|0;lo=lo+Math.imul(al7,bl7)|0;mid=mid+Math.imul(al7,bh7)|0;mid=mid+Math.imul(ah7,bl7)|0;hi=hi+Math.imul(ah7,bh7)|0;lo=lo+Math.imul(al6,bl8)|0;mid=mid+Math.imul(al6,bh8)|0;mid=mid+Math.imul(ah6,bl8)|0;hi=hi+Math.imul(ah6,bh8)|0;lo=lo+Math.imul(al5,bl9)|0;mid=mid+Math.imul(al5,bh9)|0;mid=mid+Math.imul(ah5,bl9)|0;hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);lo=lo+Math.imul(al8,bl7)|0;mid=mid+Math.imul(al8,bh7)|0;mid=mid+Math.imul(ah8,bl7)|0;hi=hi+Math.imul(ah8,bh7)|0;lo=lo+Math.imul(al7,bl8)|0;mid=mid+Math.imul(al7,bh8)|0;mid=mid+Math.imul(ah7,bl8)|0;hi=hi+Math.imul(ah7,bh8)|0;lo=lo+Math.imul(al6,bl9)|0;mid=mid+Math.imul(al6,bh9)|0;mid=mid+Math.imul(ah6,bl9)|0;hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);lo=lo+Math.imul(al8,bl8)|0;mid=mid+Math.imul(al8,bh8)|0;mid=mid+Math.imul(ah8,bl8)|0;hi=hi+Math.imul(ah8,bh8)|0;lo=lo+Math.imul(al7,bl9)|0;mid=mid+Math.imul(al7,bh9)|0;mid=mid+Math.imul(ah7,bl9)|0;hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);lo=lo+Math.imul(al8,bl9)|0;mid=mid+Math.imul(al8,bh9)|0;mid=mid+Math.imul(ah8,bl9)|0;hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0;w17&=67108863;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w18>>>26)|0;w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul){comb10MulTo=smallMulTo}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out._strip()}function jumboMulTo(self,num,out){return bigMulTo(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out)}else if(len<63){res=smallMulTo(this,num,out)}else if(len<1024){res=bigMulTo(this,num,out)}else{res=jumboMulTo(this,num,out)}return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i<N;i++){t[i]=this.revBin(i,l,N)}return t};FFTM.prototype.revBin=function revBin(x,l,N){if(x===0||x===N-1)return x;var rb=0;for(var i=0;i<l;i++){rb|=(x&1)<<l-i-1;x>>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++){rtws[i]=rws[rbt[i]];itws[i]=iws[rbt[i]]}};FFTM.prototype.transform=function transform(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1){var l=s<<1;var rtwdf=Math.cos(2*Math.PI/l);var itwdf=Math.sin(2*Math.PI/l);for(var p=0;p<N;p+=l){var rtwdf_=rtwdf;var itwdf_=itwdf;for(var j=0;j<s;j++){var re=rtws[p+j];var ie=itws[p+j];var ro=rtws[p+j+s];var io=itws[p+j+s];var rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro;ro=rx;rtws[p+j]=re+ro;itws[p+j]=ie+io;rtws[p+j+s]=re-ro;itws[p+j+s]=ie-io;if(j!==l){rx=rtwdf*rtwdf_-itwdf*itwdf_;itwdf_=rtwdf*itwdf_+itwdf*rtwdf_;rtwdf_=rx}}}}};FFTM.prototype.guessLen13b=function guessLen13b(n,m){var N=Math.max(m,n)|1;var odd=N&1;var i=0;for(N=N/2|0;N;N=N>>>1){i++}return 1<<i+1+odd};FFTM.prototype.conjugate=function conjugate(rws,iws,N){if(N<=1)return;for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1];rws[N-i-1]=t;t=iws[i];iws[i]=-iws[N-i-1];iws[N-i-1]=-t}};FFTM.prototype.normalize13b=function normalize13b(ws,N){var carry=0;for(var i=0;i<N/2;i++){var w=Math.round(ws[2*i+1]/N)*8192+Math.round(ws[2*i]/N)+carry;ws[i]=w&67108863;if(w<67108864){carry=0}else{carry=w/67108864|0}}return ws};FFTM.prototype.convert13b=function convert13b(ws,len,rws,N){var carry=0;for(var i=0;i<len;i++){carry=carry+(ws[i]|0);rws[2*i]=carry&8191;carry=carry>>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(i=2*len;i<N;++i){rws[i]=0}assert(carry===0);assert((carry&~8191)===0)};FFTM.prototype.stub=function stub(N){var ph=new Array(N);for(var i=0;i<N;i++){ph[i]=0}return ph};FFTM.prototype.mulp=function mulp(x,y,out){var N=2*this.guessLen13b(x.length,y.length);var rbt=this.makeRBT(N);var _=this.stub(N);var rws=new Array(N);var rwst=new Array(N);var iwst=new Array(N);var nrws=new Array(N);var nrwst=new Array(N);var niwst=new Array(N);var rmws=out.words;rmws.length=N;this.convert13b(x.words,x.length,rws,N);this.convert13b(y.words,y.length,nrws,N);this.transform(rws,_,rwst,iwst,N,rbt);this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i];rwst[i]=rx}this.conjugate(rwst,iwst,N);this.transform(rwst,iwst,rmws,_,N,rbt);this.conjugate(rmws,_,N);this.normalize13b(rmws,N);out.negative=x.negative^y.negative;out.length=x.length+y.length;return out._strip()};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.mulf=function mulf(num){var out=new BN(null);out.words=new Array(this.length+num.length);return jumboMulTo(this,num,out)};BN.prototype.imul=function imul(num){return this.clone().mulTo(num,this)};BN.prototype.imuln=function imuln(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(typeof num==="number");assert(num<67108864);var carry=0;for(var i=0;i<this.length;i++){var w=(this.words[i]|0)*num;var lo=(w&67108863)+(carry&67108863);carry>>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return isNegNum?this.ineg():this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i<w.length;i++,res=res.sqr()){if(w[i]!==0)break}if(++i<w.length){for(var q=res.sqr();i<w.length;i++,q=q.sqr()){if(w[i]===0)continue;res=res.mul(q)}}return res};BN.prototype.iushln=function iushln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=(this.words[i]|0)-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i]}for(i=0;i<s;i++){this.words[i]=0}this.length+=s}return this._strip()};BN.prototype.ishln=function ishln(bits){assert(this.negative===0);return this.iushln(bits)};BN.prototype.iushrn=function iushrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);var h;if(hint){h=(hint-hint%26)/26}else{h=0}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;h-=s;h=Math.max(0,h);if(maskedWords){for(var i=0;i<s;i++){maskedWords.words[i]=this.words[i]}maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(i=0;i<this.length;i++){this.words[i]=this.words[i+s]}}else{this.words[0]=0;this.length=1}var carry=0;for(i=this.length-1;i>=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry}if(this.length===0){this.words[0]=0;this.length=1}return this._strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s)return false;var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(this.length<=s){return this}if(r!==0){s++}this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this._strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.isubn(-num);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<=num){this.words[0]=num-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(num);this.negative=1;return this}return this._iaddn(num)};BN.prototype._iaddn=function _iaddn(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1){this.words[i+1]=1}else{this.words[i+1]++}}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}}return this._strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(num,mul,shift){var len=num.length+shift;var i;this._expand(len);var w;var carry=0;for(i=0;i<num.length;i++){w=(this.words[i+shift]|0)+carry;var right=(num.words[i]|0)*mul;w-=right&67108863;carry=(w>>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i<this.length-shift;i++){w=(this.words[i+shift]|0)+carry;carry=w>>26;this.words[i+shift]=w&67108863}if(carry===0)return this._strip();assert(carry===-1);carry=0;for(i=0;i<this.length;i++){w=-(this.words[i]|0)+carry;carry=w>>26;this.words[i]=w&67108863}this.negative=1;return this._strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i<q.length;i++){q.words[i]=0}}var diff=a.clone()._ishlnsubmul(b,1,m);if(diff.negative===0){a=diff;if(q){q.words[m]=1}}for(var j=m-1;j>=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1}}if(q){q.words[j]=qj}}if(q){q._strip()}a._strip();if(mode!=="div"&&shift!==0){a.iushrn(shift)}return{div:q||null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=="mod"){div=res.div.neg()}if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num)}}return{div:div,mod:mod}}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=="mod"){div=res.div.neg()}return{div:div,mod:res.mod}}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num)}}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this}}if(num.length===1){if(mode==="div"){return{div:this.divn(num.words[0]),mod:null}}if(mode==="mod"){return{div:null,mod:new BN(this.modrn(num.words[0]))}}return{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modrn=function modrn(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num}return isNegNum?-acc:acc};BN.prototype.modn=function modn(num){return this.modrn(num)};BN.prototype.idivn=function idivn(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}this._strip();return isNegNum?this.ineg():this};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p)}else{x=x.clone()}var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp)}A.iushrn(1);B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp)}C.iushrn(1);D.iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p)}else{a=a.clone()}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd()){x1.iadd(delta)}x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd()){x2.iadd(delta)}x2.iushrn(1)}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0){res=x1}else{res=x2}if(res.cmpn(0)<0){res.iadd(p)}return res};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven()){a.iushrn(1)}while(b.isEven()){b.iushrn(1)}var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){this._expand(s+1);this.words[s]|=q;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i]|0;w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this._strip();var res;if(this.length>1){res=1}else{if(negative){num=-num}assert(num<=67108863,"Number is too big");var w=this.words[0]|0;res=w===num?0:w<num?-1:1}if(this.negative!==0)return-res|0;return res};BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(a<b){res=-1}else if(a>b){res=1}break}return res};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1};BN.prototype.gt=function gt(num){return this.cmp(num)===1};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0};BN.prototype.gte=function gte(num){return this.cmp(num)>=0};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1};BN.prototype.lt=function lt(num){return this.cmp(num)===-1};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0};BN.prototype.lte=function lte(num){return this.cmp(num)<=0};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0};BN.prototype.eq=function eq(num){return this.cmp(num)===0};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{r._strip()}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i<outLen;i++){output.words[i]=input.words[i]}output.length=outLen;if(input.length<=9){input.words[0]=0;input.length=1;return}var prev=input.words[9];output.words[output.length++]=prev&mask;for(i=10;i<input.length;i++){var next=input.words[i]|0;input.words[i-10]=(next&mask)<<4|prev>>>22;prev=next}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10}else{input.length-=9}};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var lo=0;for(var i=0;i<num.length;i++){var w=num.words[i]|0;lo+=w*977;num.words[i]=lo&67108863;lo=w*64+(lo/67108864|0)}if(num.words[num.length-1]===0){num.length--;if(num.words[num.length-1]===0){num.length--}}return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=(num.words[i]|0)*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0){num.words[num.length++]=carry}return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256"){prime=new K256}else if(name==="p224"){prime=new P224}else if(name==="p192"){prime=new P192}else if(name==="p25519"){prime=new P25519}else{throw new Error("Unknown prime "+name)}primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{assert(m.gtn(1),"modulus must be greater than 1");this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);move(a,a.umod(this.m)._forceRed(this));return a};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone()}return this.m.sub(a)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone())};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1)}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne)}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr()}assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._invmp(this.m);if(inv.negative!==0){inv.negative=0;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){if(num.isZero())return new BN(1).toRed(this);if(num.cmpn(1)===0)return a.clone();var windowSize=4;var wnd=new Array(1<<windowSize);wnd[0]=new BN(1).toRed(this);wnd[1]=a;for(var i=2;i<wnd.length;i++){wnd[i]=this.mul(wnd[i-1],a)}var res=wnd[0];var current=0;var currentLen=0;var start=num.bitLength()%26;if(start===0){start=26}for(i=num.length-1;i>=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res)}if(bit===0&&current===0){currentLen=0;continue}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0}start=26}return res};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(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)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module==="undefined"||module,this)},{buffer:141}],140:[function(require,module,exports){var r;module.exports=function rand(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function generate(len){return this._rand(len)};Rand.prototype._rand=function _rand(n){if(this.rand.getBytes)return this.rand.getBytes(n);var res=new Uint8Array(n);for(var i=0;i<res.length;i++)res[i]=this.rand.getByte();return res};if(typeof self==="object"){if(self.crypto&&self.crypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);self.crypto.getRandomValues(arr);return arr}}else if(self.msCrypto&&self.msCrypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);self.msCrypto.getRandomValues(arr);return arr}}else if(typeof window==="object"){Rand.prototype._rand=function(){throw new Error("Not implemented yet")}}}else{try{var crypto=require("crypto");if(typeof crypto.randomBytes!=="function")throw new Error("Not supported");Rand.prototype._rand=function _rand(n){return crypto.randomBytes(n)}}catch(e){}}},{crypto:141}],141:[function(require,module,exports){},{}],142:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function asUInt32Array(buf){if(!Buffer.isBuffer(buf))buf=Buffer.from(buf);var len=buf.length/4|0;var out=new Array(len);for(var i=0;i<len;i++){out[i]=buf.readUInt32BE(i*4)}return out}function scrubVec(v){for(var i=0;i<v.length;v++){v[i]=0}}function cryptBlock(M,keySchedule,SUB_MIX,SBOX,nRounds){var SUB_MIX0=SUB_MIX[0];var SUB_MIX1=SUB_MIX[1];var SUB_MIX2=SUB_MIX[2];var SUB_MIX3=SUB_MIX[3];var s0=M[0]^keySchedule[0];var s1=M[1]^keySchedule[1];var s2=M[2]^keySchedule[2];var s3=M[3]^keySchedule[3];var t0,t1,t2,t3;var ksRow=4;for(var round=1;round<nRounds;round++){t0=SUB_MIX0[s0>>>24]^SUB_MIX1[s1>>>16&255]^SUB_MIX2[s2>>>8&255]^SUB_MIX3[s3&255]^keySchedule[ksRow++];t1=SUB_MIX0[s1>>>24]^SUB_MIX1[s2>>>16&255]^SUB_MIX2[s3>>>8&255]^SUB_MIX3[s0&255]^keySchedule[ksRow++];t2=SUB_MIX0[s2>>>24]^SUB_MIX1[s3>>>16&255]^SUB_MIX2[s0>>>8&255]^SUB_MIX3[s1&255]^keySchedule[ksRow++];t3=SUB_MIX0[s3>>>24]^SUB_MIX1[s0>>>16&255]^SUB_MIX2[s1>>>8&255]^SUB_MIX3[s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0&255])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];t0=t0>>>0;t1=t1>>>0;t2=t2>>>0;t3=t3>>>0;return[t0,t1,t2,t3]}var RCON=[0,1,2,4,8,16,32,64,128,27,54];var G=function(){var d=new Array(256);for(var j=0;j<256;j++){if(j<128){d[j]=j<<1}else{d[j]=j<<1^283}}var SBOX=[];var INV_SBOX=[];var SUB_MIX=[[],[],[],[]];var INV_SUB_MIX=[[],[],[],[]];var x=0;var xi=0;for(var i=0;i<256;++i){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&255^99;SBOX[x]=sx;INV_SBOX[sx]=x;var x2=d[x];var x4=d[x2];var x8=d[x4];var t=d[sx]*257^sx*16843008;SUB_MIX[0][x]=t<<24|t>>>8;SUB_MIX[1][x]=t<<16|t>>>16;SUB_MIX[2][x]=t<<8|t>>>24;SUB_MIX[3][x]=t;t=x8*16843009^x4*65537^x2*257^x*16843008;INV_SUB_MIX[0][sx]=t<<24|t>>>8;INV_SUB_MIX[1][sx]=t<<16|t>>>16;INV_SUB_MIX[2][sx]=t<<8|t>>>24;INV_SUB_MIX[3][sx]=t;if(x===0){x=xi=1}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX}}();function AES(key){this._key=asUInt32Array(key);this._reset()}AES.blockSize=4*4;AES.keySize=256/8;AES.prototype.blockSize=AES.blockSize;AES.prototype.keySize=AES.keySize;AES.prototype._reset=function(){var keyWords=this._key;var keySize=keyWords.length;var nRounds=keySize+6;var ksRows=(nRounds+1)*4;var keySchedule=[];for(var k=0;k<keySize;k++){keySchedule[k]=keyWords[k]}for(k=keySize;k<ksRows;k++){var t=keySchedule[k-1];if(k%keySize===0){t=t<<8|t>>>24;t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255];t^=RCON[k/keySize|0]<<24}else if(keySize>6&&k%keySize===4){t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255]}keySchedule[k]=keySchedule[k-keySize]^t}var invKeySchedule=[];for(var ik=0;ik<ksRows;ik++){var ksR=ksRows-ik;var tt=keySchedule[ksR-(ik%4?0:4)];if(ik<4||ksR<=4){invKeySchedule[ik]=tt}else{invKeySchedule[ik]=G.INV_SUB_MIX[0][G.SBOX[tt>>>24]]^G.INV_SUB_MIX[1][G.SBOX[tt>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[tt>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[tt&255]]}}this._nRounds=nRounds;this._keySchedule=keySchedule;this._invKeySchedule=invKeySchedule};AES.prototype.encryptBlockRaw=function(M){M=asUInt32Array(M);return cryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)};AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M);var buf=Buffer.allocUnsafe(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf};AES.prototype.decryptBlock=function(M){M=asUInt32Array(M);var m1=M[1];M[1]=M[3];M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds);var buf=Buffer.allocUnsafe(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf};AES.prototype.scrub=function(){scrubVec(this._keySchedule);scrubVec(this._invKeySchedule);scrubVec(this._key)};module.exports.AES=AES},{"safe-buffer":293}],143:[function(require,module,exports){var aes=require("./aes");var Buffer=require("safe-buffer").Buffer;var Transform=require("cipher-base");var inherits=require("inherits");var GHASH=require("./ghash");var xor=require("buffer-xor");var incr32=require("./incr32");function xorTest(a,b){var out=0;if(a.length!==b.length)out++;var len=Math.min(a.length,b.length);for(var i=0;i<len;++i){out+=a[i]^b[i]}return out}function calcIv(self,iv,ck){if(iv.length===12){self._finID=Buffer.concat([iv,Buffer.from([0,0,0,1])]);return Buffer.concat([iv,Buffer.from([0,0,0,2])])}var ghash=new GHASH(ck);var len=iv.length;var toPad=len%16;ghash.update(iv);if(toPad){toPad=16-toPad;ghash.update(Buffer.alloc(toPad,0))}ghash.update(Buffer.alloc(8,0));var ivBits=len*8;var tail=Buffer.alloc(8);tail.writeUIntBE(ivBits,0,8);ghash.update(tail);self._finID=ghash.state;var out=Buffer.from(self._finID);incr32(out);return out}function StreamCipher(mode,key,iv,decrypt){Transform.call(this);var h=Buffer.alloc(4,0);this._cipher=new aes.AES(key);var ck=this._cipher.encryptBlock(h);this._ghash=new GHASH(ck);iv=calcIv(this,iv,ck);this._prev=Buffer.from(iv);this._cache=Buffer.allocUnsafe(0);this._secCache=Buffer.allocUnsafe(0);this._decrypt=decrypt;this._alen=0;this._len=0;this._mode=mode;this._authTag=null;this._called=false}inherits(StreamCipher,Transform);StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;if(rump<16){rump=Buffer.alloc(rump,0);this._ghash.update(rump)}}this._called=true;var out=this._mode.encrypt(this,chunk);if(this._decrypt){this._ghash.update(chunk)}else{this._ghash.update(out)}this._len+=chunk.length;return out};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var tag=xor(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt&&xorTest(tag,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=tag;this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(this._decrypt||!Buffer.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag};StreamCipher.prototype.setAuthTag=function setAuthTag(tag){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=tag};StreamCipher.prototype.setAAD=function setAAD(buf){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(buf);this._alen+=buf.length};module.exports=StreamCipher},{"./aes":142,"./ghash":147,"./incr32":148,"buffer-xor":191,"cipher-base":192,inherits:245,"safe-buffer":293}],144:[function(require,module,exports){var ciphers=require("./encrypter");var deciphers=require("./decrypter");var modes=require("./modes/list.json");function getCiphers(){return Object.keys(modes)}exports.createCipher=exports.Cipher=ciphers.createCipher;exports.createCipheriv=exports.Cipheriv=ciphers.createCipheriv;exports.createDecipher=exports.Decipher=deciphers.createDecipher;exports.createDecipheriv=exports.Decipheriv=deciphers.createDecipheriv;exports.listCiphers=exports.getCiphers=getCiphers},{"./decrypter":145,"./encrypter":146,"./modes/list.json":156}],145:[function(require,module,exports){var AuthCipher=require("./authCipher");var Buffer=require("safe-buffer").Buffer;var MODES=require("./modes");var StreamCipher=require("./streamCipher");var Transform=require("cipher-base");var aes=require("./aes");var ebtk=require("evp_bytestokey");var inherits=require("inherits");function Decipher(mode,key,iv){Transform.call(this);this._cache=new Splitter;this._last=void 0;this._cipher=new aes.AES(key);this._prev=Buffer.from(iv);this._mode=mode;this._autopadding=true}inherits(Decipher,Transform);Decipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get(this._autopadding)){thing=this._mode.decrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};Decipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding){return unpad(this._mode.decrypt(this,chunk))}else if(chunk){throw new Error("data not multiple of block length")}};Decipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo;return this};function Splitter(){this.cache=Buffer.allocUnsafe(0)}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(autoPadding){var out;if(autoPadding){if(this.cache.length>16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}return null};Splitter.prototype.flush=function(){if(this.cache.length)return this.cache};function unpad(last){var padded=last[15];if(padded<1||padded>16){throw new Error("unable to decrypt data")}var i=-1;while(++i<padded){if(last[i+(16-padded)]!==padded){throw new Error("unable to decrypt data")}}if(padded===16)return;return last.slice(0,16-padded)}function createDecipheriv(suite,password,iv){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");if(typeof iv==="string")iv=Buffer.from(iv);if(config.mode!=="GCM"&&iv.length!==config.iv)throw new TypeError("invalid iv length "+iv.length);if(typeof password==="string")password=Buffer.from(password);if(password.length!==config.key/8)throw new TypeError("invalid key length "+password.length);if(config.type==="stream"){return new StreamCipher(config.module,password,iv,true)}else if(config.type==="auth"){return new AuthCipher(config.module,password,iv,true)}return new Decipher(config.module,password,iv)}function createDecipher(suite,password){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");var keys=ebtk(password,false,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)}exports.createDecipher=createDecipher;exports.createDecipheriv=createDecipheriv},{"./aes":142,"./authCipher":143,"./modes":155,"./streamCipher":158,"cipher-base":192,evp_bytestokey:229,inherits:245,"safe-buffer":293}],146:[function(require,module,exports){var MODES=require("./modes");var AuthCipher=require("./authCipher");var Buffer=require("safe-buffer").Buffer;var StreamCipher=require("./streamCipher");var Transform=require("cipher-base");var aes=require("./aes");var ebtk=require("evp_bytestokey");var inherits=require("inherits");function Cipher(mode,key,iv){Transform.call(this);this._cache=new Splitter;this._cipher=new aes.AES(key);this._prev=Buffer.from(iv);this._mode=mode;this._autopadding=true}inherits(Cipher,Transform);Cipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get()){thing=this._mode.encrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};var PADDING=Buffer.alloc(16,16);Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding){chunk=this._mode.encrypt(this,chunk);this._cipher.scrub();return chunk}if(!chunk.equals(PADDING)){this._cipher.scrub();throw new Error("data not multiple of block length")}};Cipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo;return this};function Splitter(){this.cache=Buffer.allocUnsafe(0)}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}return null};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=Buffer.allocUnsafe(len);var i=-1;while(++i<len){padBuff.writeUInt8(len,i)}return Buffer.concat([this.cache,padBuff])};function createCipheriv(suite,password,iv){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");if(typeof password==="string")password=Buffer.from(password);if(password.length!==config.key/8)throw new TypeError("invalid key length "+password.length);if(typeof iv==="string")iv=Buffer.from(iv);if(config.mode!=="GCM"&&iv.length!==config.iv)throw new TypeError("invalid iv length "+iv.length);if(config.type==="stream"){return new StreamCipher(config.module,password,iv)}else if(config.type==="auth"){return new AuthCipher(config.module,password,iv)}return new Cipher(config.module,password,iv)}function createCipher(suite,password){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");var keys=ebtk(password,false,config.key,config.iv);return createCipheriv(suite,keys.key,keys.iv)}exports.createCipheriv=createCipheriv;exports.createCipher=createCipher},{"./aes":142,"./authCipher":143,"./modes":155,"./streamCipher":158,"cipher-base":192,evp_bytestokey:229,inherits:245,"safe-buffer":293}],147:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;var ZEROES=Buffer.alloc(16,0);function toArray(buf){return[buf.readUInt32BE(0),buf.readUInt32BE(4),buf.readUInt32BE(8),buf.readUInt32BE(12)]}function fromArray(out){var buf=Buffer.allocUnsafe(16);buf.writeUInt32BE(out[0]>>>0,0);buf.writeUInt32BE(out[1]>>>0,4);buf.writeUInt32BE(out[2]>>>0,8);buf.writeUInt32BE(out[3]>>>0,12);return buf}function GHASH(key){this.h=key;this.state=Buffer.alloc(16,0);this.cache=Buffer.allocUnsafe(0)}GHASH.prototype.ghash=function(block){var i=-1;while(++i<block.length){this.state[i]^=block[i]}this._multiply()};GHASH.prototype._multiply=function(){var Vi=toArray(this.h);var Zi=[0,0,0,0];var j,xi,lsbVi;var i=-1;while(++i<128){xi=(this.state[~~(i/8)]&1<<7-i%8)!==0;if(xi){Zi[0]^=Vi[0];Zi[1]^=Vi[1];Zi[2]^=Vi[2];Zi[3]^=Vi[3]}lsbVi=(Vi[3]&1)!==0;for(j=3;j>0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31}Vi[0]=Vi[0]>>>1;if(lsbVi){Vi[0]=Vi[0]^225<<24}}this.state=fromArray(Zi)};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk)}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,ZEROES],16))}this.ghash(fromArray([0,abl,0,bl]));return this.state};module.exports=GHASH},{"safe-buffer":293}],148:[function(require,module,exports){function incr32(iv){var len=iv.length;var item;while(len--){item=iv.readUInt8(len);if(item===255){iv.writeUInt8(0,len)}else{item++;iv.writeUInt8(item,len);break}}}module.exports=incr32},{}],149:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":191}],150:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;var xor=require("buffer-xor");function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out}exports.encrypt=function(self,data,decrypt){var out=Buffer.allocUnsafe(0);var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=Buffer.allocUnsafe(0)}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len)}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}}return out}},{"buffer-xor":191,"safe-buffer":293}],151:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function encryptByte(self,byteParam,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i<len){pad=self._cipher.encryptBlock(self._prev);bit=byteParam&1<<7-i?128:0;value=pad[0]^bit;out+=(value&128)>>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value)}return out}function shiftIn(buffer,value){var len=buffer.length;var i=-1;var out=Buffer.allocUnsafe(buffer.length);buffer=Buffer.concat([buffer,Buffer.from([value])]);while(++i<len){out[i]=buffer[i]<<1|buffer[i+1]>>7}return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=Buffer.allocUnsafe(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out}},{"safe-buffer":293}],152:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function encryptByte(self,byteParam,decrypt){var pad=self._cipher.encryptBlock(self._prev);var out=pad[0]^byteParam;self._prev=Buffer.concat([self._prev.slice(1),Buffer.from([decrypt?byteParam:out])]);return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=Buffer.allocUnsafe(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out}},{"safe-buffer":293}],153:[function(require,module,exports){var xor=require("buffer-xor");var Buffer=require("safe-buffer").Buffer;var incr32=require("../incr32");function getBlock(self){var out=self._cipher.encryptBlockRaw(self._prev);incr32(self._prev);return out}var blockSize=16;exports.encrypt=function(self,chunk){var chunkNum=Math.ceil(chunk.length/blockSize);var start=self._cache.length;self._cache=Buffer.concat([self._cache,Buffer.allocUnsafe(chunkNum*blockSize)]);for(var i=0;i<chunkNum;i++){var out=getBlock(self);var offset=start+i*blockSize;self._cache.writeUInt32BE(out[0],offset+0);self._cache.writeUInt32BE(out[1],offset+4);self._cache.writeUInt32BE(out[2],offset+8);self._cache.writeUInt32BE(out[3],offset+12)}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)}},{"../incr32":148,"buffer-xor":191,"safe-buffer":293}],154:[function(require,module,exports){exports.encrypt=function(self,block){return self._cipher.encryptBlock(block)};exports.decrypt=function(self,block){return self._cipher.decryptBlock(block)}},{}],155:[function(require,module,exports){var modeModules={ECB:require("./ecb"),CBC:require("./cbc"),CFB:require("./cfb"),CFB8:require("./cfb8"),CFB1:require("./cfb1"),OFB:require("./ofb"),CTR:require("./ctr"),GCM:require("./ctr")};var modes=require("./list.json");for(var key in modes){modes[key].module=modeModules[modes[key].mode]}module.exports=modes},{"./cbc":149,"./cfb":150,"./cfb1":151,"./cfb8":152,"./ctr":153,"./ecb":154,"./list.json":156,"./ofb":157}],156:[function(require,module,exports){module.exports={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},aes192:{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},aes256:{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}}},{}],157:[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");function getBlock(self){self._prev=self._cipher.encryptBlock(self._prev);return self._prev}exports.encrypt=function(self,chunk){while(self._cache.length<chunk.length){self._cache=Buffer.concat([self._cache,getBlock(self)])}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)}}).call(this,require("buffer").Buffer)},{buffer:185,"buffer-xor":191}],158:[function(require,module,exports){var aes=require("./aes");var Buffer=require("safe-buffer").Buffer;var Transform=require("cipher-base");var inherits=require("inherits");function StreamCipher(mode,key,iv,decrypt){Transform.call(this);this._cipher=new aes.AES(key);this._prev=Buffer.from(iv);this._cache=Buffer.allocUnsafe(0);this._secCache=Buffer.allocUnsafe(0);this._decrypt=decrypt;this._mode=mode}inherits(StreamCipher,Transform);StreamCipher.prototype._update=function(chunk){return this._mode.encrypt(this,chunk,this._decrypt)};StreamCipher.prototype._final=function(){this._cipher.scrub()};module.exports=StreamCipher},{"./aes":142,"cipher-base":192,inherits:245,"safe-buffer":293}],159:[function(require,module,exports){var DES=require("browserify-des");var aes=require("browserify-aes/browser");var aesModes=require("browserify-aes/modes");var desModes=require("browserify-des/modes");var ebtk=require("evp_bytestokey");function createCipher(suite,password){suite=suite.toLowerCase();var keyLen,ivLen;if(aesModes[suite]){keyLen=aesModes[suite].key;ivLen=aesModes[suite].iv}else if(desModes[suite]){keyLen=desModes[suite].key*8;ivLen=desModes[suite].iv}else{throw new TypeError("invalid suite type")}var keys=ebtk(password,false,keyLen,ivLen);return createCipheriv(suite,keys.key,keys.iv)}function createDecipher(suite,password){suite=suite.toLowerCase();var keyLen,ivLen;if(aesModes[suite]){keyLen=aesModes[suite].key;ivLen=aesModes[suite].iv}else if(desModes[suite]){keyLen=desModes[suite].key*8;ivLen=desModes[suite].iv}else{throw new TypeError("invalid suite type")}var keys=ebtk(password,false,keyLen,ivLen);return createDecipheriv(suite,keys.key,keys.iv)}function createCipheriv(suite,key,iv){suite=suite.toLowerCase();if(aesModes[suite])return aes.createCipheriv(suite,key,iv);if(desModes[suite])return new DES({key:key,iv:iv,mode:suite});throw new TypeError("invalid suite type")}function createDecipheriv(suite,key,iv){suite=suite.toLowerCase();if(aesModes[suite])return aes.createDecipheriv(suite,key,iv);if(desModes[suite])return new DES({key:key,iv:iv,mode:suite,decrypt:true});throw new TypeError("invalid suite type")}function getCiphers(){return Object.keys(desModes).concat(aes.getCiphers())}exports.createCipher=exports.Cipher=createCipher;exports.createCipheriv=exports.Cipheriv=createCipheriv;exports.createDecipher=exports.Decipher=createDecipher;exports.createDecipheriv=exports.Decipheriv=createDecipheriv;exports.listCiphers=exports.getCiphers=getCiphers},{"browserify-aes/browser":144,"browserify-aes/modes":155,"browserify-des":160,"browserify-des/modes":161,evp_bytestokey:229}],160:[function(require,module,exports){var CipherBase=require("cipher-base");var des=require("des.js");var inherits=require("inherits");var Buffer=require("safe-buffer").Buffer;var modes={"des-ede3-cbc":des.CBC.instantiate(des.EDE),"des-ede3":des.EDE,"des-ede-cbc":des.CBC.instantiate(des.EDE),"des-ede":des.EDE,"des-cbc":des.CBC.instantiate(des.DES),"des-ecb":des.DES};modes.des=modes["des-cbc"];modes.des3=modes["des-ede3-cbc"];module.exports=DES;inherits(DES,CipherBase);function DES(opts){CipherBase.call(this);var modeName=opts.mode.toLowerCase();var mode=modes[modeName];var type;if(opts.decrypt){type="decrypt"}else{type="encrypt"}var key=opts.key;if(!Buffer.isBuffer(key)){key=Buffer.from(key)}if(modeName==="des-ede"||modeName==="des-ede-cbc"){key=Buffer.concat([key,key.slice(0,8)])}var iv=opts.iv;if(!Buffer.isBuffer(iv)){iv=Buffer.from(iv)}this._des=mode.create({key:key,iv:iv,type:type})}DES.prototype._update=function(data){return Buffer.from(this._des.update(data))};DES.prototype._final=function(){return Buffer.from(this._des.final())}},{"cipher-base":192,"des.js":201,inherits:245,"safe-buffer":293}],161:[function(require,module,exports){exports["des-ecb"]={key:8,iv:0};exports["des-cbc"]=exports.des={key:8,iv:8};exports["des-ede3-cbc"]=exports.des3={key:24,iv:8};exports["des-ede3"]={key:24,iv:0};exports["des-ede-cbc"]={key:16,iv:8};exports["des-ede"]={key:16,iv:0}},{}],162:[function(require,module,exports){(function(Buffer){var bn=require("bn.js");var randomBytes=require("randombytes");module.exports=crt;function blind(priv){var r=getr(priv);var blinder=r.toRed(bn.mont(priv.modulus)).redPow(new bn(priv.publicExponent)).fromRed();return{blinder:blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv){var blinds=blind(priv);var len=priv.modulus.byteLength();var mod=bn.mont(priv.modulus);var blinded=new bn(msg).mul(blinds.blinder).umod(priv.modulus);var c1=blinded.toRed(bn.mont(priv.prime1));var c2=blinded.toRed(bn.mont(priv.prime2));var qinv=priv.coefficient;var p=priv.prime1;var q=priv.prime2;var m1=c1.redPow(priv.exponent1);var m2=c2.redPow(priv.exponent2);m1=m1.fromRed();m2=m2.fromRed();var h=m1.isub(m2).imul(qinv).umod(p);h.imul(q);m2.iadd(h);return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false,len))}crt.getr=getr;function getr(priv){var len=priv.modulus.byteLength();var r=new bn(randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.umod(priv.prime1)||!r.umod(priv.prime2)){r=new bn(randomBytes(len))}return r}}).call(this,require("buffer").Buffer)},{"bn.js":163,buffer:185,randombytes:276}],163:[function(require,module,exports){arguments[4][109][0].apply(exports,arguments)},{buffer:141,dup:109}],164:[function(require,module,exports){module.exports=require("./browser/algorithms.json")},{"./browser/algorithms.json":165}],165:[function(require,module,exports){module.exports={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"}}},{}],166:[function(require,module,exports){module.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],167:[function(require,module,exports){var Buffer=require("buffer").Buffer;var createHash=require("create-hash");var stream=require("readable-stream");var inherits=require("inherits");var sign=require("./sign");var verify=require("./verify");var algorithms=require("./algorithms.json");Object.keys(algorithms).forEach(function(key){algorithms[key].id=Buffer.from(algorithms[key].id,"hex");algorithms[key.toLowerCase()]=algorithms[key]});function Sign(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hashType=data.hash;this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign}inherits(Sign,stream.Writable);Sign.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Sign.prototype.update=function update(data,enc){if(typeof data==="string")data=Buffer.from(data,enc);this._hash.update(data);return this};Sign.prototype.sign=function signMethod(key,enc){this.end();var hash=this._hash.digest();var sig=sign(hash,key,this._hashType,this._signType,this._tag);return enc?sig.toString(enc):sig};function Verify(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign}inherits(Verify,stream.Writable);Verify.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Verify.prototype.update=function update(data,enc){if(typeof data==="string")data=Buffer.from(data,enc);this._hash.update(data);return this};Verify.prototype.verify=function verifyMethod(key,sig,enc){if(typeof sig==="string")sig=Buffer.from(sig,enc);this.end();var hash=this._hash.digest();return verify(sig,hash,key,this._signType,this._tag)};function createSign(algorithm){return new Sign(algorithm)}function createVerify(algorithm){return new Verify(algorithm)}module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}},{"./algorithms.json":165,"./sign":168,"./verify":169,buffer:185,"create-hash":196,inherits:245,"readable-stream":184}],168:[function(require,module,exports){var Buffer=require("buffer").Buffer;var createHmac=require("create-hmac");var crt=require("browserify-rsa");var EC=require("elliptic").ec;var BN=require("bn.js");var parseKeys=require("parse-asn1");var curves=require("./curves.json");function sign(hash,key,hashType,signType,tag){var priv=parseKeys(key);if(priv.curve){if(signType!=="ecdsa"&&signType!=="ecdsa/rsa")throw new Error("wrong private key type");return ecSign(hash,priv)}else if(priv.type==="dsa"){if(signType!=="dsa")throw new Error("wrong private key type");return dsaSign(hash,priv,hashType)}else{if(signType!=="rsa"&&signType!=="ecdsa/rsa")throw new Error("wrong private key type")}hash=Buffer.concat([tag,hash]);var len=priv.modulus.byteLength();var pad=[0,1];while(hash.length+pad.length+1<len)pad.push(255);pad.push(0);var i=-1;while(++i<hash.length)pad.push(hash[i]);var out=crt(pad,priv);return out}function ecSign(hash,priv){var curveId=curves[priv.curve.join(".")];if(!curveId)throw new Error("unknown curve "+priv.curve.join("."));var curve=new EC(curveId);var key=curve.keyFromPrivate(priv.privateKey);var out=key.sign(hash);return Buffer.from(out.toDER())}function dsaSign(hash,priv,algo){var x=priv.params.priv_key;var p=priv.params.p;var q=priv.params.q;var g=priv.params.g;var r=new BN(0);var k;var H=bits2int(hash,q).mod(q);var s=false;var kv=getKey(x,q,hash,algo);while(s===false){k=makeKey(q,kv,algo);r=makeR(g,k,p,q);s=k.invm(q).imul(H.add(x.mul(r))).mod(q);if(s.cmpn(0)===0){s=false;r=new BN(0)}}return toDER(r,s)}function toDER(r,s){r=r.toArray();s=s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);var total=r.length+s.length+4;var res=[48,total,2,r.length];res=res.concat(r,[2,s.length],s);return Buffer.from(res)}function getKey(x,q,hash,algo){x=Buffer.from(x.toArray());if(x.length<q.byteLength()){var zeros=Buffer.alloc(q.byteLength()-x.length);x=Buffer.concat([zeros,x])}var hlen=hash.length;var hbits=bits2octets(hash,q);var v=Buffer.alloc(hlen);v.fill(1);var k=Buffer.alloc(hlen);k=createHmac(algo,k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();v=createHmac(algo,k).update(v).digest();k=createHmac(algo,k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();v=createHmac(algo,k).update(v).digest();return{k:k,v:v}}function bits2int(obits,q){var bits=new BN(obits);var shift=(obits.length<<3)-q.bitLength();if(shift>0)bits.ishrn(shift);return bits}function bits2octets(bits,q){bits=bits2int(bits,q);bits=bits.mod(q);var out=Buffer.from(bits.toArray());if(out.length<q.byteLength()){var zeros=Buffer.alloc(q.byteLength()-out.length);out=Buffer.concat([zeros,out])}return out}function makeKey(q,kv,algo){var t;var k;do{t=Buffer.alloc(0);while(t.length*8<q.bitLength()){kv.v=createHmac(algo,kv.k).update(kv.v).digest();t=Buffer.concat([t,kv.v])}k=bits2int(t,q);kv.k=createHmac(algo,kv.k).update(kv.v).update(Buffer.from([0])).digest();kv.v=createHmac(algo,kv.k).update(kv.v).digest()}while(k.cmp(q)!==-1);return k}function makeR(g,k,p,q){return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)}module.exports=sign;module.exports.getKey=getKey;module.exports.makeKey=makeKey},{"./curves.json":166,"bn.js":139,"browserify-rsa":162,buffer:185,"create-hmac":198,elliptic:212,"parse-asn1":259}],169:[function(require,module,exports){var Buffer=require("buffer").Buffer;var BN=require("bn.js");var EC=require("elliptic").ec;var parseKeys=require("parse-asn1");var curves=require("./curves.json");function verify(sig,hash,key,signType,tag){var pub=parseKeys(key);if(pub.type==="ec"){if(signType!=="ecdsa"&&signType!=="ecdsa/rsa")throw new Error("wrong public key type");return ecVerify(sig,hash,pub)}else if(pub.type==="dsa"){if(signType!=="dsa")throw new Error("wrong public key type");return dsaVerify(sig,hash,pub)}else{if(signType!=="rsa"&&signType!=="ecdsa/rsa")throw new Error("wrong public key type")}hash=Buffer.concat([tag,hash]);var len=pub.modulus.byteLength();var pad=[1];var padNum=0;while(hash.length+pad.length+2<len){pad.push(255);padNum++}pad.push(0);var i=-1;while(++i<hash.length){pad.push(hash[i])}pad=Buffer.from(pad);var red=BN.mont(pub.modulus);sig=new BN(sig).toRed(red);sig=sig.redPow(new BN(pub.publicExponent));sig=Buffer.from(sig.fromRed().toArray());var out=padNum<8?1:0;len=Math.min(sig.length,pad.length);if(sig.length!==pad.length)out=1;i=-1;while(++i<len)out|=sig[i]^pad[i];return out===0}function ecVerify(sig,hash,pub){var curveId=curves[pub.data.algorithm.curve.join(".")];if(!curveId)throw new Error("unknown curve "+pub.data.algorithm.curve.join("."));var curve=new EC(curveId);var pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash,sig,pubkey)}function dsaVerify(sig,hash,pub){var p=pub.data.p;var q=pub.data.q;var g=pub.data.g;var y=pub.data.pub_key;var unpacked=parseKeys.signature.decode(sig,"der");var s=unpacked.s;var r=unpacked.r;checkValue(s,q);checkValue(r,q);var montp=BN.mont(p);var w=s.invm(q);var v=g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);return v.cmp(r)===0}function checkValue(b,q){if(b.cmpn(0)<=0)throw new Error("invalid sig");if(b.cmp(q)>=q)throw new Error("invalid sig")}module.exports=verify},{"./curves.json":166,"bn.js":139,buffer:185,elliptic:212,"parse-asn1":259}],170:[function(require,module,exports){"use strict";function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;subClass.__proto__=superClass}var codes={};function createErrorType(code,message,Base){if(!Base){Base=Error}function getMessage(arg1,arg2,arg3){if(typeof message==="string"){return message}else{return message(arg1,arg2,arg3)}}var NodeError=function(_Base){_inheritsLoose(NodeError,_Base);function NodeError(arg1,arg2,arg3){return _Base.call(this,getMessage(arg1,arg2,arg3))||this}return NodeError}(Base);NodeError.prototype.name=Base.name;NodeError.prototype.code=code;codes[code]=NodeError}function oneOf(expected,thing){if(Array.isArray(expected)){var len=expected.length;expected=expected.map(function(i){return String(i)});if(len>2){return"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(", "),", or ")+expected[len-1]}else if(len===2){return"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1])}else{return"of ".concat(thing," ").concat(expected[0])}}else{return"of ".concat(thing," ").concat(String(expected))}}function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search}function endsWith(str,search,this_len){if(this_len===undefined||this_len>str.length){this_len=str.length}return str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){if(typeof start!=="number"){start=0}if(start+search.length>str.length){return false}else{return str.indexOf(search,start)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){var determiner;if(typeof expected==="string"&&startsWith(expected,"not ")){determiner="must not be";expected=expected.replace(/^not /,"")}else{determiner="must be"}var msg;if(endsWith(name," argument")){msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"))}else{var type=includes(name,".")?"property":"argument";msg='The "'.concat(name,'" ').concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}msg+=". Received type ".concat(typeof actual);return msg},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");module.exports.codes=codes},{}],171:[function(require,module,exports){(function(process){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key)}return keys};module.exports=Duplex;var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);{var keys=objectKeys(Writable.prototype);for(var v=0;v<keys.length;v++){var method=keys[v];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]}}function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);this.allowHalfOpen=true;if(options){if(options.readable===false)this.readable=false;if(options.writable===false)this.writable=false;if(options.allowHalfOpen===false){this.allowHalfOpen=false;this.once("end",onend)}}}Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});Object.defineProperty(Duplex.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(Duplex.prototype,"writableLength",{enumerable:false,get:function get(){return this._writableState.length}});function onend(){if(this._writableState.ended)return;process.nextTick(onEndNT,this)}function onEndNT(self){self.end()}Object.defineProperty(Duplex.prototype,"destroyed",{enumerable:false,get:function get(){if(this._readableState===undefined||this._writableState===undefined){return false}return this._readableState.destroyed&&this._writableState.destroyed},set:function set(value){if(this._readableState===undefined||this._writableState===undefined){return}this._readableState.destroyed=value;this._writableState.destroyed=value}})}).call(this,require("_process"))},{"./_stream_readable":173,"./_stream_writable":175,_process:267,inherits:245}],172:[function(require,module,exports){"use strict";module.exports=PassThrough;var Transform=require("./_stream_transform");require("inherits")(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":174,inherits:245}],173:[function(require,module,exports){(function(process,global){"use strict";module.exports=Readable;var Duplex;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;var EElistenerCount=function EElistenerCount(emitter,type){return emitter.listeners(type).length};var Stream=require("./internal/streams/stream");var Buffer=require("buffer").Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk)}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array}var debugUtil=require("util");var debug;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog("stream")}else{debug=function debug(){}}var BufferList=require("./internal/streams/buffer_list");var destroyImpl=require("./internal/streams/destroy");var _require=require("./internal/streams/state"),getHighWaterMark=_require.getHighWaterMark;var _require$codes=require("../errors").codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_STREAM_PUSH_AFTER_EOF=_require$codes.ERR_STREAM_PUSH_AFTER_EOF,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_STREAM_UNSHIFT_AFTER_END_EVENT=_require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;var StringDecoder;var createReadableStreamAsyncIterator;var from;require("inherits")(Readable,Stream);var errorOrDestroy=destroyImpl.errorOrDestroy;var kProxyEvents=["error","close","destroy","pause","resume"];function prependListener(emitter,event,fn){if(typeof emitter.prependListener==="function")return emitter.prependListener(event,fn);if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(Array.isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]]}function ReadableState(options,stream,isDuplex){Duplex=Duplex||require("./_stream_duplex");options=options||{};if(typeof isDuplex!=="boolean")isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.readableObjectMode;this.highWaterMark=getHighWaterMark(this,options,"readableHighWaterMark",isDuplex);this.buffer=new BufferList;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;this.emitClose=options.emitClose!==false;this.autoDestroy=!!options.autoDestroy;this.destroyed=false;this.defaultEncoding=options.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}function Readable(options){Duplex=Duplex||require("./_stream_duplex");if(!(this instanceof Readable))return new Readable(options);var isDuplex=this instanceof Duplex;this._readableState=new ReadableState(options,this,isDuplex);this.readable=true;if(options){if(typeof options.read==="function")this._read=options.read;if(typeof options.destroy==="function")this._destroy=options.destroy}Stream.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{enumerable:false,get:function get(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function set(value){if(!this._readableState){return}this._readableState.destroyed=value}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype.push=function(chunk,encoding){var state=this._readableState;var skipChunkCheck;if(!state.objectMode){if(typeof chunk==="string"){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer.from(chunk,encoding);encoding=""}skipChunkCheck=true}}else{skipChunkCheck=true}return readableAddChunk(this,chunk,encoding,false,skipChunkCheck)};Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,true,false)};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){debug("readableAddChunk",chunk);var state=stream._readableState;if(chunk===null){state.reading=false;onEofChunk(stream,state)}else{var er;if(!skipChunkCheck)er=chunkInvalid(state,chunk);if(er){errorOrDestroy(stream,er)}else if(state.objectMode||chunk&&chunk.length>0){if(typeof chunk!=="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk)}if(addToFront){if(state.endEmitted)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else addChunk(stream,state,chunk,true)}else if(state.ended){errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF)}else if(state.destroyed){return false}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state)}else{addChunk(stream,state,chunk,false)}}}else if(!addToFront){state.reading=false;maybeReadMore(stream,state)}}return!state.ended&&(state.length<state.highWaterMark||state.length===0)}function addChunk(stream,state,chunk,addToFront){if(state.flowing&&state.length===0&&!state.sync){state.awaitDrain=0;stream.emit("data",chunk)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}maybeReadMore(stream,state)}function chunkInvalid(state,chunk){var er;if(!_isUint8Array(chunk)&&typeof chunk!=="string"&&chunk!==undefined&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer","Uint8Array"],chunk)}return er}Readable.prototype.isPaused=function(){return this._readableState.flowing===false};Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;var decoder=new StringDecoder(enc);this._readableState.decoder=decoder;this._readableState.encoding=this._readableState.decoder.encoding;var p=this._readableState.buffer.head;var content="";while(p!==null){content+=decoder.write(p.data);p=p.next}this._readableState.buffer.clear();if(content!=="")this._readableState.buffer.push(content);this._readableState.length=content.length;return this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug("length less than watermark",doRead)}if(state.ended||state.reading){doRead=false;debug("reading or ended",doRead)}else if(doRead){debug("do read");state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false;if(!state.reading)n=howMuchToRead(nOrig,state)}var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=state.length<=state.highWaterMark;n=0}else{state.length-=n;state.awaitDrain=0}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function onEofChunk(stream,state){debug("onEofChunk");if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.sync){emitReadable(stream)}else{state.needReadable=false;if(!state.emittedReadable){state.emittedReadable=true;emitReadable_(stream)}}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable);state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;process.nextTick(emitReadable_,stream)}}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended);if(!state.destroyed&&(state.length||state.ended)){stream.emit("readable");state.emittedReadable=false}state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark;flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length<state.highWaterMark||state.flowing&&state.length===0)){var len=state.length;debug("maybeReadMore read 0");stream.read(0);if(len===state.length)break}state.readingMore=false}Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:unpipe;if(state.endEmitted)process.nextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable,unpipeInfo){debug("onunpipe");if(readable===src){if(unpipeInfo&&unpipeInfo.hasUnpiped===false){unpipeInfo.hasUnpiped=true;cleanup()}}}function onend(){debug("onend");dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=false;function cleanup(){debug("cleanup");dest.removeListener("close",onclose);dest.removeListener("finish",onfinish);dest.removeListener("drain",ondrain);dest.removeListener("error",onerror);dest.removeListener("unpipe",onunpipe);src.removeListener("end",onend);src.removeListener("end",unpipe);src.removeListener("data",ondata);cleanedUp=true;if(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain()}src.on("data",ondata);function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret);if(ret===false){if((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",state.awaitDrain);state.awaitDrain++}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)errorOrDestroy(dest,er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function pipeOnDrainFunctionResult(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this,unpipeInfo);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i<len;i++){dests[i].emit("unpipe",this,{hasUnpiped:false})}return this}var index=indexOf(state.pipes,dest);if(index===-1)return this;state.pipes.splice(index,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this,unpipeInfo);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);var state=this._readableState;if(ev==="data"){state.readableListening=this.listenerCount("readable")>0;if(state.flowing!==false)this.resume()}else if(ev==="readable"){if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.flowing=false;state.emittedReadable=false;debug("on readable",state.length,state.reading);if(state.length){emitReadable(this)}else if(!state.reading){process.nextTick(nReadingNextTick,this)}}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);if(ev==="readable"){process.nextTick(updateReadableListening,this)}return res};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev==="readable"||ev===undefined){process.nextTick(updateReadableListening,this)}return res};function updateReadableListening(self){var state=self._readableState;state.readableListening=self.listenerCount("readable")>0;if(state.resumeScheduled&&!state.paused){state.flowing=true}else if(self.listenerCount("data")>0){self.resume()}}function nReadingNextTick(self){debug("readable nexttick read 0");self.read(0)}Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=!state.readableListening;resume(this,state)}state.paused=false;return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;process.nextTick(resume_,stream,state)}}function resume_(stream,state){debug("resume",state.reading);if(!state.reading){stream.read(0)}state.resumeScheduled=false;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){debug("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);while(state.flowing&&stream.read()!==null){}}Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk)}_this.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===undefined&&typeof stream[i]==="function"){this[i]=function methodWrap(method){return function methodWrapReturnFunction(){return stream[method].apply(stream,arguments)}}(i)}}for(var n=0;n<kProxyEvents.length;n++){stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]))}this._read=function(n){debug("wrapped _read",n);if(paused){paused=false;stream.resume()}};return this};if(typeof Symbol==="function"){Readable.prototype[Symbol.asyncIterator]=function(){if(createReadableStreamAsyncIterator===undefined){createReadableStreamAsyncIterator=require("./internal/streams/async_iterator")}return createReadableStreamAsyncIterator(this)}}Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:false,get:function get(){return this._readableState.highWaterMark}});Object.defineProperty(Readable.prototype,"readableBuffer",{enumerable:false,get:function get(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Readable.prototype,"readableFlowing",{enumerable:false,get:function get(){return this._readableState.flowing},set:function set(state){if(this._readableState){this._readableState.flowing=state}}});Readable._fromList=fromList;Object.defineProperty(Readable.prototype,"readableLength",{enumerable:false,get:function get(){return this._readableState.length}});function fromList(n,state){if(state.length===0)return null;var ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=state.buffer.consume(n,state.decoder)}return ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){debug("endReadableNT",state.endEmitted,state.length);if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end");if(state.autoDestroy){var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy()}}}}if(typeof Symbol==="function"){Readable.from=function(iterable,opts){if(from===undefined){from=require("./internal/streams/from")}return from(Readable,iterable,opts)}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../errors":170,"./_stream_duplex":171,"./internal/streams/async_iterator":176,"./internal/streams/buffer_list":177,"./internal/streams/destroy":178,"./internal/streams/from":180,"./internal/streams/state":182,"./internal/streams/stream":183,_process:267,buffer:185,events:186,inherits:245,"string_decoder/":303,util:141}],174:[function(require,module,exports){"use strict";module.exports=Transform;var _require$codes=require("../errors").codes,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_TRANSFORM_ALREADY_TRANSFORMING=_require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,ERR_TRANSFORM_WITH_LENGTH_0=_require$codes.ERR_TRANSFORM_WITH_LENGTH_0;var Duplex=require("./_stream_duplex");require("inherits")(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=false;var cb=ts.writecb;if(cb===null){return this.emit("error",new ERR_MULTIPLE_CALLBACK)}ts.writechunk=null;ts.writecb=null;if(data!=null)this.push(data);cb(er);var rs=this._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){this._read(rs.highWaterMark)}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};this._readableState.needReadable=true;this._readableState.sync=false;if(options){if(typeof options.transform==="function")this._transform=options.transform;if(typeof options.flush==="function")this._flush=options.flush}this.on("prefinish",prefinish)}function prefinish(){var _this=this;if(typeof this._flush==="function"&&!this._readableState.destroyed){this._flush(function(er,data){done(_this,er,data)})}else{done(this,null,null)}}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"))};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)}else{ts.needTransform=true}};Transform.prototype._destroy=function(err,cb){Duplex.prototype._destroy.call(this,err,function(err2){cb(err2)})};function done(stream,er,data){if(er)return stream.emit("error",er);if(data!=null)stream.push(data);if(stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0;if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING;return stream.push(null)}},{"../errors":170,"./_stream_duplex":171,inherits:245}],175:[function(require,module,exports){(function(process,global){"use strict";module.exports=Writable;function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null}function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(_this,state)}}var Duplex;Writable.WritableState=WritableState;var internalUtil={deprecate:require("util-deprecate")};var Stream=require("./internal/streams/stream");var Buffer=require("buffer").Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk)}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array}var destroyImpl=require("./internal/streams/destroy");var _require=require("./internal/streams/state"),getHighWaterMark=_require.getHighWaterMark;var _require$codes=require("../errors").codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE=_require$codes.ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED,ERR_STREAM_NULL_VALUES=_require$codes.ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END=_require$codes.ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING=_require$codes.ERR_UNKNOWN_ENCODING;var errorOrDestroy=destroyImpl.errorOrDestroy;require("inherits")(Writable,Stream);function nop(){}function WritableState(options,stream,isDuplex){Duplex=Duplex||require("./_stream_duplex");options=options||{};if(typeof isDuplex!=="boolean")isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.writableObjectMode;this.highWaterMark=getHighWaterMark(this,options,"writableHighWaterMark",isDuplex);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.emitClose=options.emitClose!==false;this.autoDestroy=!!options.autoDestroy;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next}return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function writableStateBufferGetter(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(_){}})();var realHasInstance;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){realHasInstance=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(object){if(realHasInstance.call(this,object))return true;if(this!==Writable)return false;return object&&object._writableState instanceof WritableState}})}else{realHasInstance=function realHasInstance(object){return object instanceof this}}function Writable(options){Duplex=Duplex||require("./_stream_duplex");var isDuplex=this instanceof Duplex;if(!isDuplex&&!realHasInstance.call(Writable,this))return new Writable(options);this._writableState=new WritableState(options,this,isDuplex);this.writable=true;if(options){if(typeof options.write==="function")this._write=options.write;if(typeof options.writev==="function")this._writev=options.writev;if(typeof options.destroy==="function")this._destroy=options.destroy;if(typeof options.final==="function")this._final=options.final}Stream.call(this)}Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function writeAfterEnd(stream,cb){var er=new ERR_STREAM_WRITE_AFTER_END;errorOrDestroy(stream,er);process.nextTick(cb,er)}function validChunk(stream,state,chunk,cb){var er;if(chunk===null){er=new ERR_STREAM_NULL_VALUES}else if(typeof chunk!=="string"&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE("chunk",["string","Buffer"],chunk)}if(er){errorOrDestroy(stream,er);process.nextTick(cb,er);return false}return true}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;var isBuf=!state.objectMode&&_isUint8Array(chunk);if(isBuf&&!Buffer.isBuffer(chunk)){chunk=_uint8ArrayToBuffer(chunk)}if(typeof encoding==="function"){cb=encoding;encoding=null}if(isBuf)encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=nop;if(state.ending)writeAfterEnd(this,cb);else if(isBuf||validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb)}return ret};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){if(typeof encoding==="string")encoding=encoding.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new ERR_UNKNOWN_ENCODING(encoding);this._writableState.defaultEncoding=encoding;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=Buffer.from(chunk,encoding)}return chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding="buffer";chunk=newChunk}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk:chunk,encoding:encoding,isBuf:isBuf,callback:cb,next:null};if(last){last.next=state.lastBufferedRequest}else{state.bufferedRequest=state.lastBufferedRequest}state.bufferedRequestCount+=1}else{doWrite(stream,state,false,len,chunk,encoding,cb)}return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(state.destroyed)state.onwrite(new ERR_STREAM_DESTROYED("write"));else if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync){process.nextTick(cb,er);process.nextTick(finishMaybe,stream,state);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er)}else{cb(er);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er);finishMaybe(stream,state)}}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;if(typeof cb!=="function")throw new ERR_MULTIPLE_CALLBACK;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state)||stream.destroyed;if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state)}if(sync){process.nextTick(afterWrite,stream,state,finished,cb)}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;var allBuffers=true;while(entry){buffer[count]=entry;if(!entry.isBuf)allBuffers=false;entry=entry.next;count+=1}buffer.allBuffers=allBuffers;doWrite(stream,state,true,state.length,buffer,"",holder.finish);state.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null}else{state.corkedRequestsFree=new CorkedRequest(state)}state.bufferedRequestCount=0}else{while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;state.bufferedRequestCount--;if(state.writing){break}}if(entry===null)state.lastBufferedRequest=null}state.bufferedRequest=entry;state.bufferProcessing=false}Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);if(state.corked){state.corked=1;this.uncork()}if(!state.ending)endWritable(this,state,cb);return this};Object.defineProperty(Writable.prototype,"writableLength",{enumerable:false,get:function get(){return this._writableState.length}});function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}function callFinal(stream,state){stream._final(function(err){state.pendingcb--;if(err){errorOrDestroy(stream,err)}state.prefinished=true;stream.emit("prefinish");finishMaybe(stream,state)})}function prefinish(stream,state){if(!state.prefinished&&!state.finalCalled){if(typeof stream._final==="function"&&!state.destroyed){state.pendingcb++;state.finalCalled=true;process.nextTick(callFinal,stream,state)}else{state.prefinished=true;stream.emit("prefinish")}}}function finishMaybe(stream,state){var need=needFinish(state);if(need){prefinish(stream,state);if(state.pendingcb===0){state.finished=true;stream.emit("finish");if(state.autoDestroy){var rState=stream._readableState;if(!rState||rState.autoDestroy&&rState.endEmitted){stream.destroy()}}}}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)process.nextTick(cb);else stream.once("finish",cb)}state.ended=true;stream.writable=false}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;corkReq.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next}state.corkedRequestsFree.next=corkReq}Object.defineProperty(Writable.prototype,"destroyed",{enumerable:false,get:function get(){if(this._writableState===undefined){return false}return this._writableState.destroyed},set:function set(value){if(!this._writableState){return}this._writableState.destroyed=value}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../errors":170,"./_stream_duplex":171,"./internal/streams/destroy":178,"./internal/streams/state":182,"./internal/streams/stream":183,_process:267,buffer:185,inherits:245,"util-deprecate":305}],176:[function(require,module,exports){(function(process){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var finished=require("./end-of-stream");var kLastResolve=Symbol("lastResolve");var kLastReject=Symbol("lastReject");var kError=Symbol("error");var kEnded=Symbol("ended");var kLastPromise=Symbol("lastPromise");var kHandlePromise=Symbol("handlePromise");var kStream=Symbol("stream");function createIterResult(value,done){return{value:value,done:done}}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();if(data!==null){iter[kLastPromise]=null;iter[kLastResolve]=null;iter[kLastReject]=null;resolve(createIterResult(data,false))}}}function onReadable(iter){process.nextTick(readAndResolve,iter)}function wrapForNext(lastPromise,iter){return function(resolve,reject){lastPromise.then(function(){if(iter[kEnded]){resolve(createIterResult(undefined,true));return}iter[kHandlePromise](resolve,reject)},reject)}}var AsyncIteratorPrototype=Object.getPrototypeOf(function(){});var ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_Object$setPrototypeO={get stream(){return this[kStream]},next:function next(){var _this=this;var error=this[kError];if(error!==null){return Promise.reject(error)}if(this[kEnded]){return Promise.resolve(createIterResult(undefined,true))}if(this[kStream].destroyed){return new Promise(function(resolve,reject){process.nextTick(function(){if(_this[kError]){reject(_this[kError])}else{resolve(createIterResult(undefined,true))}})})}var lastPromise=this[kLastPromise];var promise;if(lastPromise){promise=new Promise(wrapForNext(lastPromise,this))}else{var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterResult(data,false))}promise=new Promise(this[kHandlePromise])}this[kLastPromise]=promise;return promise}},_defineProperty(_Object$setPrototypeO,Symbol.asyncIterator,function(){return this}),_defineProperty(_Object$setPrototypeO,"return",function _return(){var _this2=this;return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return}resolve(createIterResult(undefined,true))})})}),_Object$setPrototypeO),AsyncIteratorPrototype);var createReadableStreamAsyncIterator=function createReadableStreamAsyncIterator(stream){var _Object$create;var iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:true}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:true}),_defineProperty(_Object$create,kLastReject,{value:null,writable:true}),_defineProperty(_Object$create,kError,{value:null,writable:true}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:true}),_defineProperty(_Object$create,kHandlePromise,{value:function value(resolve,reject){var data=iterator[kStream].read();if(data){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(data,false))}else{iterator[kLastResolve]=resolve;iterator[kLastReject]=reject}},writable:true}),_Object$create));iterator[kLastPromise]=null;finished(stream,function(err){if(err&&err.code!=="ERR_STREAM_PREMATURE_CLOSE"){var reject=iterator[kLastReject];if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err)}iterator[kError]=err;return}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true))}iterator[kEnded]=true});stream.on("readable",onReadable.bind(null,iterator));return iterator};module.exports=createReadableStreamAsyncIterator}).call(this,require("_process"))},{"./end-of-stream":179,_process:267}],177:[function(require,module,exports){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])})}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}}return target}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}var _require=require("buffer"),Buffer=_require.Buffer;var _require2=require("util"),inspect=_require2.inspect;var custom=inspect&&inspect.custom||"inspect";function copyBuffer(src,target,offset){Buffer.prototype.copy.call(src,target,offset)}module.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}_createClass(BufferList,[{key:"push",value:function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length}},{key:"unshift",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length}},{key:"shift",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0}},{key:"join",value:function join(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next){ret+=s+p.data}return ret}},{key:"concat",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next}return ret}},{key:"consume",value:function consume(n,hasStrings){var ret;if(n<this.head.data.length){ret=this.head.data.slice(0,n);this.head.data=this.head.data.slice(n)}else if(n===this.head.data.length){ret=this.shift()}else{ret=hasStrings?this._getString(n):this._getBuffer(n)}return ret}},{key:"first",value:function first(){return this.head.data}},{key:"_getString",value:function _getString(n){var p=this.head;var c=1;var ret=p.data;n-=ret.length;while(p=p.next){var str=p.data;var nb=n>str.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=str.slice(nb)}break}++c}this.length-=c;return ret}},{key:"_getBuffer",value:function _getBuffer(n){var ret=Buffer.allocUnsafe(n);var p=this.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null}else{this.head=p;p.data=buf.slice(nb)}break}++c}this.length-=c;return ret}},{key:custom,value:function value(_,options){return inspect(this,_objectSpread({},options,{depth:0,customInspect:false}))}}]);return BufferList}()},{buffer:185,util:141}],178:[function(require,module,exports){(function(process){"use strict";function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err)}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(err||null,function(err){if(!cb&&err){if(!_this._writableState){process.nextTick(emitErrorAndCloseNT,_this,err)}else if(!_this._writableState.errorEmitted){_this._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,_this,err)}else{process.nextTick(emitCloseNT,_this)}}else if(cb){process.nextTick(emitCloseNT,_this);cb(err)}else{process.nextTick(emitCloseNT,_this)}});return this}function emitErrorAndCloseNT(self,err){emitErrorNT(self,err);emitCloseNT(self)}function emitCloseNT(self){if(self._writableState&&!self._writableState.emitClose)return;if(self._readableState&&!self._readableState.emitClose)return;self.emit("close")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(self,err){self.emit("error",err)}function errorOrDestroy(stream,err){var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit("error",err)}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}}).call(this,require("_process"))},{_process:267}],179:[function(require,module,exports){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}callback.apply(this,args)}}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function eos(stream,opts,callback){if(typeof opts==="function")return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=function onlegacyfinish(){if(!stream.writable)onfinish()};var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=function onfinish(){writable=false;writableEnded=true;if(!readable)callback.call(stream)};var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=function onend(){readable=false;readableEnded=true;if(!writable)callback.call(stream)};var onerror=function onerror(err){callback.call(stream,err)};var onclose=function onclose(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE;return callback.call(stream,err)}};var onrequest=function onrequest(){stream.req.on("finish",onfinish)};if(isRequest(stream)){stream.on("complete",onfinish);stream.on("abort",onclose);if(stream.req)onrequest();else stream.on("request",onrequest)}else if(writable&&!stream._writableState){stream.on("end",onlegacyfinish);stream.on("close",onlegacyfinish)}stream.on("end",onend);stream.on("finish",onfinish);if(opts.error!==false)stream.on("error",onerror);stream.on("close",onclose);return function(){stream.removeListener("complete",onfinish);stream.removeListener("abort",onclose);stream.removeListener("request",onrequest);if(stream.req)stream.req.removeListener("finish",onfinish);stream.removeListener("end",onlegacyfinish);stream.removeListener("close",onlegacyfinish);stream.removeListener("finish",onfinish);stream.removeListener("end",onend);stream.removeListener("error",onerror);stream.removeListener("close",onclose)}}module.exports=eos},{"../../../errors":170}],180:[function(require,module,exports){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],181:[function(require,module,exports){"use strict";var eos;function once(callback){var called=false;return function(){if(called)return;called=true;callback.apply(void 0,arguments)}}var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&typeof stream.abort==="function"}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=false;stream.on("close",function(){closed=true});if(eos===undefined)eos=require("./end-of-stream");eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=true;callback()});var destroyed=false;return function(err){if(closed)return;if(destroyed)return;destroyed=true;if(isRequest(stream))return stream.abort();if(typeof stream.destroy==="function")return stream.destroy();callback(err||new ERR_STREAM_DESTROYED("pipe"))}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=="function")return noop;return streams.pop()}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key]}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS("streams")}var error;var destroys=streams.map(function(stream,i){var reading=i<streams.length-1;var writing=i>0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error)})});return streams.reduce(pipe)}module.exports=pipeline},{"../../../errors":170,"./end-of-stream":179}],182:[function(require,module,exports){"use strict";var ERR_INVALID_OPT_VALUE=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return Math.floor(hwm)}return state.objectMode?16:16*1024}module.exports={getHighWaterMark:getHighWaterMark}},{"../../../errors":170}],183:[function(require,module,exports){module.exports=require("events").EventEmitter},{events:186}],184:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js");exports.finished=require("./lib/internal/streams/end-of-stream.js");exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":171,"./lib/_stream_passthrough.js":172,"./lib/_stream_readable.js":173,"./lib/_stream_transform.js":174,"./lib/_stream_writable.js":175,"./lib/internal/streams/end-of-stream.js":179,"./lib/internal/streams/pipeline.js":181}],185:[function(require,module,exports){(function(Buffer){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;exports.kMaxLength=K_MAX_LENGTH;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=="undefined"&&typeof console.error==="function"){console.error("This browser lacks typed array (Uint8Array) support which is required by "+"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.")}function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,"parent",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,"offset",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value "'+length+'" is invalid for option "size"')}var buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf}function Buffer(arg,encodingOrOffset,length){if(typeof arg==="number"){if(typeof encodingOrOffset==="string"){throw new TypeError('The "string" argument must be of type string. Received type number')}return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}if(typeof Symbol!=="undefined"&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false})}Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value==="string"){return fromString(value,encodingOrOffset)}if(ArrayBuffer.isView(value)){return fromArrayLike(value)}if(value==null){throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('The "value" argument must not be of type number. Received type number')}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length)}var b=fromObject(value);if(b)return b;if(typeof Symbol!=="undefined"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==="function"){return Buffer.from(value[Symbol.toPrimitive]("string"),encodingOrOffset,length)}throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, "+"or Array-like Object. Received type "+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=="number"){throw new TypeError('"size" argument must be of type number')}else if(size<0){throw new RangeError('The value "'+size+'" is invalid for option "size"')}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size)}if(fill!==undefined){return typeof encoding==="string"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!=="string"||encoding===""){encoding="utf8"}if(!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){buf=buf.slice(0,actual)}return buf}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i<length;i+=1){buf[i]=array[i]&255}return buf}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset){throw new RangeError('"offset" is outside of buffer bounds')}if(array.byteLength<byteOffset+(length||0)){throw new RangeError('"length" is outside of buffer bounds')}var buf;if(byteOffset===undefined&&length===undefined){buf=new Uint8Array(array)}else if(length===undefined){buf=new Uint8Array(array,byteOffset)}else{buf=new Uint8Array(array,byteOffset,length)}buf.__proto__=Buffer.prototype;return buf}function fromObject(obj){if(Buffer.isBuffer(obj)){var len=checked(obj.length)|0;var buf=createBuffer(len);if(buf.length===0){return buf}obj.copy(buf,0,0,len);return buf}if(obj.length!==undefined){if(typeof obj.length!=="number"||numberIsNaN(obj.length)){return createBuffer(0)}return fromArrayLike(obj)}if(obj.type==="Buffer"&&Array.isArray(obj.data)){return fromArrayLike(obj.data)}}function checked(length){if(length>=K_MAX_LENGTH){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+K_MAX_LENGTH.toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.concat=function concat(list,length){if(!Array.isArray(list)){throw new TypeError('"list" argument must be an Array of Buffers')}if(list.length===0){return Buffer.alloc(0)}var i;if(length===undefined){length=0;for(i=0;i<list.length;++i){length+=list[i].length}}var buffer=Buffer.allocUnsafe(length);var pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array)){buf=Buffer.from(buf)}if(!Buffer.isBuffer(buf)){throw new TypeError('"list" argument must be an Array of Buffers')}buf.copy(buffer,pos);pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer.isBuffer(string)){return string.length}if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer)){return string.byteLength}if(typeof string!=="string"){throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. '+"Received type "+typeof string)}var len=string.length;var mustMatch=arguments.length>2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length}encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;i<len;i+=2){swap(this,i,i+1)}return this};Buffer.prototype.swap32=function swap32(){var len=this.length;if(len%4!==0){throw new RangeError("Buffer size must be a multiple of 32-bits")}for(var i=0;i<len;i+=4){swap(this,i,i+3);swap(this,i+1,i+2)}return this};Buffer.prototype.swap64=function swap64(){var len=this.length;if(len%8!==0){throw new RangeError("Buffer size must be a multiple of 64-bits")}for(var i=0;i<len;i+=8){swap(this,i,i+7);swap(this,i+1,i+6);swap(this,i+2,i+5);swap(this,i+3,i+4)}return this};Buffer.prototype.toString=function toString(){var length=this.length;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;str=this.toString("hex",0,max).replace(/(.{2})/g,"$1 ").trim();if(this.length>max)str+=" ... ";return"<Buffer "+str+">"};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength)}if(!Buffer.isBuffer(target)){throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. '+"Received type "+typeof target)}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i<len;++i){if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i];y=targetCopy[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(buffer.length===0)return-1;if(typeof byteOffset==="string"){encoding=byteOffset;byteOffset=0}else if(byteOffset>2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(numberIsNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++){if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===valLength)return foundIndex*indexSize}else{if(foundIndex!==-1)i-=i-foundIndex;foundIndex=-1}}}else{if(byteOffset+valLength>arrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;j<valLength;j++){if(read(arr,i+j)!==read(val,j)){found=false;break}}if(found)return i}}return-1}Buffer.prototype.includes=function includes(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1};Buffer.prototype.indexOf=function indexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,true)};Buffer.prototype.lastIndexOf=function lastIndexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,false)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(length>strLen/2){length=strLen/2}for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer.prototype.write=function write(string,offset,length,encoding){if(offset===undefined){encoding="utf8";length=this.length;offset=0}else if(length===undefined&&typeof offset==="string"){encoding=offset;length=this.length;offset=0}else if(isFinite(offset)){offset=offset>>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported")}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH))}return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]&127)}return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;++i){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf=this.subarray(start,end);newBuf.__proto__=Buffer.prototype;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}return val};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,255,0);this[offset]=value&255;return offset+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,65535,0);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255;return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){if(value<0&&sub===0&&this[offset+i-1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value&255;this[offset+1]=value>>>8;return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);this[offset]=value>>>8;this[offset+1]=value&255;return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255;return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||this.length===0)return 0;if(targetStart<0){throw new RangeError("targetStart out of bounds")}if(start<0||start>=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start}var len=end-start;if(this===target&&typeof Uint8Array.prototype.copyWithin==="function"){this.copyWithin(targetStart,start,end)}else if(this===target&&start<targetStart&&targetStart<end){for(var i=len-1;i>=0;--i){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart)}return len};Buffer.prototype.fill=function fill(val,start,end,encoding){if(typeof val==="string"){if(typeof start==="string"){encoding=start;start=0;end=this.length}else if(typeof end==="string"){encoding=end;end=this.length}if(encoding!==undefined&&typeof encoding!=="string"){throw new TypeError("encoding must be a string")}if(typeof encoding==="string"&&!Buffer.isEncoding(encoding)){throw new TypeError("Unknown encoding: "+encoding)}if(val.length===1){var code=val.charCodeAt(0);if(encoding==="utf8"&&code<128||encoding==="latin1"){val=code}}}else if(typeof val==="number"){val=val&255}if(start<0||this.length<start||this.length<end){throw new RangeError("Out of range index")}if(end<=start){return this}start=start>>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i<end;++i){this[i]=val}}else{var bytes=Buffer.isBuffer(val)?val:Buffer.from(val,encoding);var len=bytes.length;if(len===0){throw new TypeError('The value "'+val+'" is invalid for argument "value"')}for(i=0;i<end-start;++i){this[i+start]=bytes[i%len]}}return this};var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){str=str.split("=")[0];str=str.trim().replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;++i){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;++i){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;++i){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;++i){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}}).call(this,require("buffer").Buffer)},{"base64-js":138,buffer:185,ieee754:244}],186:[function(require,module,exports){var objectCreate=Object.create||objectCreatePolyfill;var objectKeys=Object.keys||objectKeysPolyfill;var bind=Function.prototype.bind||functionBindPolyfill;function EventEmitter(){if(!this._events||!Object.prototype.hasOwnProperty.call(this,"_events")){this._events=objectCreate(null);this._eventsCount=0}this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;var defaultMaxListeners=10;var hasDefineProperty;try{var o={};if(Object.defineProperty)Object.defineProperty(o,"x",{value:0});hasDefineProperty=o.x===0}catch(err){hasDefineProperty=false}if(hasDefineProperty){Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:true,get:function(){return defaultMaxListeners},set:function(arg){if(typeof arg!=="number"||arg<0||arg!==arg)throw new TypeError('"defaultMaxListeners" must be a positive number');defaultMaxListeners=arg}})}else{EventEmitter.defaultMaxListeners=defaultMaxListeners}EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=="number"||n<0||isNaN(n))throw new TypeError('"n" argument must be a positive number');this._maxListeners=n;return this};function $getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this)};function emitNone(handler,isFn,self){if(isFn)handler.call(self);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self)}}function emitOne(handler,isFn,self,arg1){if(isFn)handler.call(self,arg1);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1)}}function emitTwo(handler,isFn,self,arg1,arg2){if(isFn)handler.call(self,arg1,arg2);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2)}}function emitThree(handler,isFn,self,arg1,arg2,arg3){if(isFn)handler.call(self,arg1,arg2,arg3);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2,arg3)}}function emitMany(handler,isFn,self,args){if(isFn)handler.apply(self,args);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].apply(self,args)}}EventEmitter.prototype.emit=function emit(type){var er,handler,len,args,i,events;var doError=type==="error";events=this._events;if(events)doError=doError&&events.error==null;else if(!doError)return false;if(doError){if(arguments.length>1)er=arguments[1];if(er instanceof Error){throw er}else{var err=new Error('Unhandled "error" event. ('+er+")");err.context=er;throw err}return false}handler=events[type];if(!handler)return false;var isFn=typeof handler==="function";len=arguments.length;switch(len){case 1:emitNone(handler,isFn,this);break;case 2:emitOne(handler,isFn,this,arguments[1]);break;case 3:emitTwo(handler,isFn,this,arguments[1],arguments[2]);break;case 4:emitThree(handler,isFn,this,arguments[1],arguments[2],arguments[3]);break;default:args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];emitMany(handler,isFn,this,args)}return true};function _addListener(target,type,listener,prepend){var m;var events;var existing;if(typeof listener!=="function")throw new TypeError('"listener" argument must be a function');events=target._events;if(!events){events=target._events=objectCreate(null);target._eventsCount=0}else{if(events.newListener){target.emit("newListener",type,listener.listener?listener.listener:listener);events=target._events}existing=events[type]}if(!existing){existing=events[type]=listener;++target._eventsCount}else{if(typeof existing==="function"){existing=events[type]=prepend?[listener,existing]:[existing,listener]}else{if(prepend){existing.unshift(listener)}else{existing.push(listener)}}if(!existing.warned){m=$getMaxListeners(target);if(m&&m>0&&existing.length>m){existing.warned=true;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+' "'+String(type)+'" listeners '+"added. Use emitter.setMaxListeners() to "+"increase limit.");w.name="MaxListenersExceededWarning";w.emitter=target;w.type=type;w.count=existing.length;if(typeof console==="object"&&console.warn){console.warn("%s: %s",w.name,w.message)}}}}return target}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true)};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;switch(arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:var args=new Array(arguments.length);for(var i=0;i<args.length;++i)args[i]=arguments[i];this.listener.apply(this.target,args)}}}function _onceWrap(target,type,listener){var state={fired:false,wrapFn:undefined,target:target,type:type,listener:listener};var wrapped=bind.call(onceWrapper,state);wrapped.listener=listener;state.wrapFn=wrapped;return wrapped}EventEmitter.prototype.once=function once(type,listener){if(typeof listener!=="function")throw new TypeError('"listener" argument must be a function');this.on(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){if(typeof listener!=="function")throw new TypeError('"listener" argument must be a function');this.prependListener(type,_onceWrap(this,type,listener));return this};EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;if(typeof listener!=="function")throw new TypeError('"listener" argument must be a function');events=this._events;if(!events)return this;list=events[type];if(!list)return this;if(list===listener||list.listener===listener){if(--this._eventsCount===0)this._events=objectCreate(null);else{delete events[type];if(events.removeListener)this.emit("removeListener",type,list.listener||listener)}}else if(typeof list!=="function"){position=-1;for(i=list.length-1;i>=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break}}if(position<0)return this;if(position===0)list.shift();else spliceOne(list,position);if(list.length===1)events[type]=list[0];if(events.removeListener)this.emit("removeListener",type,originalListener||listener)}return this};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(!events)return this;if(!events.removeListener){if(arguments.length===0){this._events=objectCreate(null);this._eventsCount=0}else if(events[type]){if(--this._eventsCount===0)this._events=objectCreate(null);else delete events[type]}return this}if(arguments.length===0){var keys=objectKeys(events);var key;for(i=0;i<keys.length;++i){key=keys[i];if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events=objectCreate(null);this._eventsCount=0;return this}listeners=events[type];if(typeof listeners==="function"){this.removeListener(type,listeners)}else if(listeners){for(i=listeners.length-1;i>=0;i--){this.removeListener(type,listeners[i])}}return this};function _listeners(target,type,unwrap){var events=target._events;if(!events)return[];var evlistener=events[type];if(!evlistener)return[];if(typeof evlistener==="function")return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length)}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true)};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false)};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==="function"){return emitter.listenerCount(type)}else{return listenerCount.call(emitter,type)}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events){var evlistener=events[type];if(typeof evlistener==="function"){return 1}else if(evlistener){return evlistener.length}}return 0}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k<n;i+=1,k+=1)list[i]=list[k];list.pop()}function arrayClone(arr,n){var copy=new Array(n);for(var i=0;i<n;++i)copy[i]=arr[i];return copy}function unwrapListeners(arr){var ret=new Array(arr.length);for(var i=0;i<ret.length;++i){ret[i]=arr[i].listener||arr[i]}return ret}function objectCreatePolyfill(proto){var F=function(){};F.prototype=proto;return new F}function objectKeysPolyfill(obj){var keys=[];for(var k in obj)if(Object.prototype.hasOwnProperty.call(obj,k)){keys.push(k)}return k}function functionBindPolyfill(context){var fn=this;return function(){return fn.apply(context,arguments)}}},{}],187:[function(require,module,exports){(function(setImmediate,clearImmediate){var nextTick=require("process/browser.js").nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;exports.setTimeout=function(){return new Timeout(apply.call(setTimeout,window,arguments),clearTimeout)};exports.setInterval=function(){return new Timeout(apply.call(setInterval,window,arguments),clearInterval)};exports.clearTimeout=exports.clearInterval=function(timeout){timeout.close()};function Timeout(id,clearFn){this._id=id;this._clearFn=clearFn}Timeout.prototype.unref=Timeout.prototype.ref=function(){};Timeout.prototype.close=function(){this._clearFn.call(window,this._id)};exports.enroll=function(item,msecs){clearTimeout(item._idleTimeoutId);item._idleTimeout=msecs};exports.unenroll=function(item){clearTimeout(item._idleTimeoutId);item._idleTimeout=-1};exports._unrefActive=exports.active=function(item){clearTimeout(item._idleTimeoutId);var msecs=item._idleTimeout;if(msecs>=0){item._idleTimeoutId=setTimeout(function onTimeout(){if(item._onTimeout)item._onTimeout()},msecs)}};exports.setImmediate=typeof setImmediate==="function"?setImmediate:function(fn){var id=nextImmediateId++;var args=arguments.length<2?false:slice.call(arguments,1);immediateIds[id]=true;nextTick(function onNextTick(){if(immediateIds[id]){if(args){fn.apply(null,args)}else{fn.call(null)}exports.clearImmediate(id)}});return id};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id]}}).call(this,require("timers").setImmediate,require("timers").clearImmediate)},{"process/browser.js":267,timers:187}],188:[function(require,module,exports){var basex=require("base-x");var ALPHABET="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";module.exports=basex(ALPHABET)},{"base-x":137}],189:[function(require,module,exports){"use strict";var base58=require("bs58");var Buffer=require("safe-buffer").Buffer;module.exports=function(checksumFn){function encode(payload){var checksum=checksumFn(payload);return base58.encode(Buffer.concat([payload,checksum],payload.length+4))}function decodeRaw(buffer){var payload=buffer.slice(0,-4);var checksum=buffer.slice(-4);var newChecksum=checksumFn(payload);if(checksum[0]^newChecksum[0]|checksum[1]^newChecksum[1]|checksum[2]^newChecksum[2]|checksum[3]^newChecksum[3])return;return payload}function decodeUnsafe(string){var buffer=base58.decodeUnsafe(string);if(!buffer)return;return decodeRaw(buffer)}function decode(string){var buffer=base58.decode(string);var payload=decodeRaw(buffer,checksumFn);if(!payload)throw new Error("Invalid checksum");return payload}return{encode:encode,decode:decode,decodeUnsafe:decodeUnsafe}}},{bs58:188,"safe-buffer":293}],190:[function(require,module,exports){"use strict";var createHash=require("create-hash");var bs58checkBase=require("./base");function sha256x2(buffer){var tmp=createHash("sha256").update(buffer).digest();return createHash("sha256").update(tmp).digest()}module.exports=bs58checkBase(sha256x2)},{"./base":189,"create-hash":196}],191:[function(require,module,exports){(function(Buffer){module.exports=function xor(a,b){var length=Math.min(a.length,b.length);var buffer=new Buffer(length);for(var i=0;i<length;++i){buffer[i]=a[i]^b[i]}return buffer}}).call(this,require("buffer").Buffer)},{buffer:185}],192:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;var Transform=require("stream").Transform;var StringDecoder=require("string_decoder").StringDecoder;var inherits=require("inherits");function CipherBase(hashMode){Transform.call(this);this.hashMode=typeof hashMode==="string";if(this.hashMode){this[hashMode]=this._finalOrDigest}else{this.final=this._finalOrDigest}if(this._final){this.__final=this._final;this._final=null}this._decoder=null;this._encoding=null}inherits(CipherBase,Transform);CipherBase.prototype.update=function(data,inputEnc,outputEnc){if(typeof data==="string"){data=Buffer.from(data,inputEnc)}var outData=this._update(data);if(this.hashMode)return this;if(outputEnc){outData=this._toString(outData,outputEnc)}return outData};CipherBase.prototype.setAutoPadding=function(){};CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};CipherBase.prototype._transform=function(data,_,next){var err;try{if(this.hashMode){this._update(data)}else{this.push(this._update(data))}}catch(e){err=e}finally{next(err)}};CipherBase.prototype._flush=function(done){var err;try{this.push(this.__final())}catch(e){err=e}done(err)};CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this.__final()||Buffer.alloc(0);if(outputEnc){outData=this._toString(outData,outputEnc,true)}return outData};CipherBase.prototype._toString=function(value,enc,fin){if(!this._decoder){this._decoder=new StringDecoder(enc);this._encoding=enc}if(this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);if(fin){out+=this._decoder.end()}return out};module.exports=CipherBase},{inherits:245,"safe-buffer":293,stream:302,string_decoder:303}],193:[function(require,module,exports){(function(Buffer){function isArray(arg){if(Array.isArray){return Array.isArray(arg)}return objectToString(arg)==="[object Array]"}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=Buffer.isBuffer;function objectToString(o){return Object.prototype.toString.call(o)}}).call(this,{isBuffer:require("../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../insert-module-globals/node_modules/is-buffer/index.js":246}],194:[function(require,module,exports){(function(Buffer){var elliptic=require("elliptic");var BN=require("bn.js");module.exports=function createECDH(curve){return new ECDH(curve)};var aliases={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};aliases.p224=aliases.secp224r1;aliases.p256=aliases.secp256r1=aliases.prime256v1;aliases.p192=aliases.secp192r1=aliases.prime192v1;aliases.p384=aliases.secp384r1;aliases.p521=aliases.secp521r1;function ECDH(curve){this.curveType=aliases[curve];if(!this.curveType){this.curveType={name:curve}}this.curve=new elliptic.ec(this.curveType.name);this.keys=void 0}ECDH.prototype.generateKeys=function(enc,format){this.keys=this.curve.genKeyPair();return this.getPublicKey(enc,format)};ECDH.prototype.computeSecret=function(other,inenc,enc){inenc=inenc||"utf8";if(!Buffer.isBuffer(other)){other=new Buffer(other,inenc)}var otherPub=this.curve.keyFromPublic(other).getPublic();var out=otherPub.mul(this.keys.getPrivate()).getX();return formatReturnValue(out,enc,this.curveType.byteLength)};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format==="compressed",true);if(format==="hybrid"){if(key[key.length-1]%2){key[0]=7}else{key[0]=6}}return formatReturnValue(key,enc)};ECDH.prototype.getPrivateKey=function(enc){return formatReturnValue(this.keys.getPrivate(),enc)};ECDH.prototype.setPublicKey=function(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}this.keys._importPublic(pub);return this};ECDH.prototype.setPrivateKey=function(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}var _priv=new BN(priv);_priv=_priv.toString(16);this.keys=this.curve.genKeyPair();this.keys._importPrivate(_priv);return this};function formatReturnValue(bn,enc,len){if(!Array.isArray(bn)){bn=bn.toArray()}var buf=new Buffer(bn);if(len&&buf.length<len){var zeros=new Buffer(len-buf.length);zeros.fill(0);buf=Buffer.concat([zeros,buf])}if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"bn.js":195,buffer:185,elliptic:212}],195:[function(require,module,exports){arguments[4][109][0].apply(exports,arguments)},{buffer:141,dup:109}],196:[function(require,module,exports){"use strict";var inherits=require("inherits");var MD5=require("md5.js");var RIPEMD160=require("ripemd160");var sha=require("sha.js");var Base=require("cipher-base");function Hash(hash){Base.call(this,"digest");this._hash=hash}inherits(Hash,Base);Hash.prototype._update=function(data){this._hash.update(data)};Hash.prototype._final=function(){return this._hash.digest()};module.exports=function createHash(alg){alg=alg.toLowerCase();if(alg==="md5")return new MD5;if(alg==="rmd160"||alg==="ripemd160")return new RIPEMD160;return new Hash(sha(alg))}},{"cipher-base":192,inherits:245,"md5.js":250,ripemd160:292,"sha.js":295}],197:[function(require,module,exports){var MD5=require("md5.js");module.exports=function(buffer){return(new MD5).update(buffer).digest()}},{"md5.js":250}],198:[function(require,module,exports){"use strict";var inherits=require("inherits");var Legacy=require("./legacy");var Base=require("cipher-base");var Buffer=require("safe-buffer").Buffer;var md5=require("create-hash/md5");var RIPEMD160=require("ripemd160");var sha=require("sha.js");var ZEROS=Buffer.alloc(128);function Hmac(alg,key){Base.call(this,"digest");if(typeof key==="string"){key=Buffer.from(key)}var blocksize=alg==="sha512"||alg==="sha384"?128:64;this._alg=alg;this._key=key;if(key.length>blocksize){var hash=alg==="rmd160"?new RIPEMD160:sha(alg);key=hash.update(key).digest()}else if(key.length<blocksize){key=Buffer.concat([key,ZEROS],blocksize)}var ipad=this._ipad=Buffer.allocUnsafe(blocksize);var opad=this._opad=Buffer.allocUnsafe(blocksize);for(var i=0;i<blocksize;i++){ipad[i]=key[i]^54;opad[i]=key[i]^92}this._hash=alg==="rmd160"?new RIPEMD160:sha(alg);this._hash.update(ipad)}inherits(Hmac,Base);Hmac.prototype._update=function(data){this._hash.update(data)};Hmac.prototype._final=function(){var h=this._hash.digest();var hash=this._alg==="rmd160"?new RIPEMD160:sha(this._alg);return hash.update(this._opad).update(h).digest()};module.exports=function createHmac(alg,key){alg=alg.toLowerCase();if(alg==="rmd160"||alg==="ripemd160"){return new Hmac("rmd160",key)}if(alg==="md5"){return new Legacy(md5,key)}return new Hmac(alg,key)}},{"./legacy":199,"cipher-base":192,"create-hash/md5":197,inherits:245,ripemd160:292,"safe-buffer":293,"sha.js":295}],199:[function(require,module,exports){"use strict";var inherits=require("inherits");var Buffer=require("safe-buffer").Buffer;var Base=require("cipher-base");var ZEROS=Buffer.alloc(128);var blocksize=64;function Hmac(alg,key){Base.call(this,"digest");if(typeof key==="string"){key=Buffer.from(key)}this._alg=alg;this._key=key;if(key.length>blocksize){key=alg(key)}else if(key.length<blocksize){key=Buffer.concat([key,ZEROS],blocksize)}var ipad=this._ipad=Buffer.allocUnsafe(blocksize);var opad=this._opad=Buffer.allocUnsafe(blocksize);for(var i=0;i<blocksize;i++){ipad[i]=key[i]^54;opad[i]=key[i]^92}this._hash=[ipad]}inherits(Hmac,Base);Hmac.prototype._update=function(data){this._hash.push(data)};Hmac.prototype._final=function(){var h=this._alg(Buffer.concat(this._hash));return this._alg(Buffer.concat([this._opad,h]))};module.exports=Hmac},{"cipher-base":192,inherits:245,"safe-buffer":293}],200:[function(require,module,exports){"use strict";exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require("randombytes");exports.createHash=exports.Hash=require("create-hash");exports.createHmac=exports.Hmac=require("create-hmac");var algos=require("browserify-sign/algos");var algoKeys=Object.keys(algos);var hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require("pbkdf2");exports.pbkdf2=p.pbkdf2;exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require("browserify-cipher");exports.Cipher=aes.Cipher;exports.createCipher=aes.createCipher;exports.Cipheriv=aes.Cipheriv;exports.createCipheriv=aes.createCipheriv;exports.Decipher=aes.Decipher;exports.createDecipher=aes.createDecipher;exports.Decipheriv=aes.Decipheriv;exports.createDecipheriv=aes.createDecipheriv;exports.getCiphers=aes.getCiphers;exports.listCiphers=aes.listCiphers;var dh=require("diffie-hellman");exports.DiffieHellmanGroup=dh.DiffieHellmanGroup;exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup;exports.getDiffieHellman=dh.getDiffieHellman;exports.createDiffieHellman=dh.createDiffieHellman;exports.DiffieHellman=dh.DiffieHellman;var sign=require("browserify-sign");exports.createSign=sign.createSign;exports.Sign=sign.Sign;exports.createVerify=sign.createVerify;exports.Verify=sign.Verify;exports.createECDH=require("create-ecdh");var publicEncrypt=require("public-encrypt");exports.publicEncrypt=publicEncrypt.publicEncrypt;exports.privateEncrypt=publicEncrypt.privateEncrypt;exports.publicDecrypt=publicEncrypt.publicDecrypt;exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require("randomfill");exports.randomFill=rf.randomFill;exports.randomFillSync=rf.randomFillSync;exports.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))};exports.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}},{"browserify-cipher":159,"browserify-sign":167,"browserify-sign/algos":164,"create-ecdh":194,"create-hash":196,"create-hmac":198,"diffie-hellman":207,pbkdf2:261,"public-encrypt":268,randombytes:276,randomfill:277}],201:[function(require,module,exports){"use strict";exports.utils=require("./des/utils");exports.Cipher=require("./des/cipher");exports.DES=require("./des/des");exports.CBC=require("./des/cbc");exports.EDE=require("./des/ede")},{"./des/cbc":202,"./des/cipher":203,"./des/des":204,"./des/ede":205,"./des/utils":206}],202:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var proto={};function CBCState(iv){assert.equal(iv.length,8,"Invalid IV length");this.iv=new Array(8);for(var i=0;i<this.iv.length;i++)this.iv[i]=iv[i]}function instantiate(Base){function CBC(options){Base.call(this,options);this._cbcInit()}inherits(CBC,Base);var keys=Object.keys(proto);for(var i=0;i<keys.length;i++){var key=keys[i];CBC.prototype[key]=proto[key]}CBC.create=function create(options){return new CBC(options)};return CBC}exports.instantiate=instantiate;proto._cbcInit=function _cbcInit(){var state=new CBCState(this.options.iv);this._cbcState=state};proto._update=function _update(inp,inOff,out,outOff){var state=this._cbcState;var superProto=this.constructor.super_.prototype;var iv=state.iv;if(this.type==="encrypt"){for(var i=0;i<this.blockSize;i++)iv[i]^=inp[inOff+i];superProto._update.call(this,iv,0,out,outOff);for(var i=0;i<this.blockSize;i++)iv[i]=out[outOff+i]}else{superProto._update.call(this,inp,inOff,out,outOff);for(var i=0;i<this.blockSize;i++)out[outOff+i]^=iv[i];for(var i=0;i<this.blockSize;i++)iv[i]=inp[inOff+i]}}},{inherits:245,"minimalistic-assert":253}],203:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");function Cipher(options){this.options=options;this.type=this.options.type;this.blockSize=8;this._init();this.buffer=new Array(this.blockSize);this.bufferOff=0}module.exports=Cipher;Cipher.prototype._init=function _init(){};Cipher.prototype.update=function update(data){if(data.length===0)return[];if(this.type==="decrypt")return this._updateDecrypt(data);else return this._updateEncrypt(data)};Cipher.prototype._buffer=function _buffer(data,off){var min=Math.min(this.buffer.length-this.bufferOff,data.length-off);for(var i=0;i<min;i++)this.buffer[this.bufferOff+i]=data[off+i];this.bufferOff+=min;return min};Cipher.prototype._flushBuffer=function _flushBuffer(out,off){this._update(this.buffer,0,out,off);this.bufferOff=0;return this.blockSize};Cipher.prototype._updateEncrypt=function _updateEncrypt(data){var inputOff=0;var outputOff=0;var count=(this.bufferOff+data.length)/this.blockSize|0;var out=new Array(count*this.blockSize);if(this.bufferOff!==0){inputOff+=this._buffer(data,inputOff);if(this.bufferOff===this.buffer.length)outputOff+=this._flushBuffer(out,outputOff)}var max=data.length-(data.length-inputOff)%this.blockSize;for(;inputOff<max;inputOff+=this.blockSize){this._update(data,inputOff,out,outputOff);outputOff+=this.blockSize}for(;inputOff<data.length;inputOff++,this.bufferOff++)this.buffer[this.bufferOff]=data[inputOff];return out};Cipher.prototype._updateDecrypt=function _updateDecrypt(data){var inputOff=0;var outputOff=0;var count=Math.ceil((this.bufferOff+data.length)/this.blockSize)-1;var out=new Array(count*this.blockSize);for(;count>0;count--){inputOff+=this._buffer(data,inputOff);outputOff+=this._flushBuffer(out,outputOff)}inputOff+=this._buffer(data,inputOff);return out};Cipher.prototype.final=function final(buffer){var first;if(buffer)first=this.update(buffer);var last;if(this.type==="encrypt")last=this._finalEncrypt();else last=this._finalDecrypt();if(first)return first.concat(last);else return last};Cipher.prototype._pad=function _pad(buffer,off){if(off===0)return false;while(off<buffer.length)buffer[off++]=0;return true};Cipher.prototype._finalEncrypt=function _finalEncrypt(){if(!this._pad(this.buffer,this.bufferOff))return[];var out=new Array(this.blockSize);this._update(this.buffer,0,out,0);return out};Cipher.prototype._unpad=function _unpad(buffer){return buffer};Cipher.prototype._finalDecrypt=function _finalDecrypt(){assert.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var out=new Array(this.blockSize);this._flushBuffer(out,0);return this._unpad(out)}},{"minimalistic-assert":253}],204:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var utils=require("./utils");var Cipher=require("./cipher");function DESState(){this.tmp=new Array(2);this.keys=null}function DES(options){Cipher.call(this,options);var state=new DESState;this._desState=state;this.deriveKeys(state,options.key)}inherits(DES,Cipher);module.exports=DES;DES.create=function create(options){return new DES(options)};var shiftTable=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];DES.prototype.deriveKeys=function deriveKeys(state,key){state.keys=new Array(16*2);assert.equal(key.length,this.blockSize,"Invalid key length");var kL=utils.readUInt32BE(key,0);var kR=utils.readUInt32BE(key,4);utils.pc1(kL,kR,state.tmp,0);kL=state.tmp[0];kR=state.tmp[1];for(var i=0;i<state.keys.length;i+=2){var shift=shiftTable[i>>>1];kL=utils.r28shl(kL,shift);kR=utils.r28shl(kR,shift);utils.pc2(kL,kR,state.keys,i)}};DES.prototype._update=function _update(inp,inOff,out,outOff){var state=this._desState;var l=utils.readUInt32BE(inp,inOff);var r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];if(this.type==="encrypt")this._encrypt(state,l,r,state.tmp,0);else this._decrypt(state,l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];utils.writeUInt32BE(out,l,outOff);utils.writeUInt32BE(out,r,outOff+4)};DES.prototype._pad=function _pad(buffer,off){var value=buffer.length-off;for(var i=off;i<buffer.length;i++)buffer[i]=value;return true};DES.prototype._unpad=function _unpad(buffer){var pad=buffer[buffer.length-1];for(var i=buffer.length-pad;i<buffer.length;i++)assert.equal(buffer[i],pad);return buffer.slice(0,buffer.length-pad)};DES.prototype._encrypt=function _encrypt(state,lStart,rStart,out,off){var l=lStart;var r=rStart;for(var i=0;i<state.keys.length;i+=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(r,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=r;r=(l^f)>>>0;l=t}utils.rip(r,l,out,off)};DES.prototype._decrypt=function _decrypt(state,lStart,rStart,out,off){var l=rStart;var r=lStart;for(var i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(l,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=l;l=(r^f)>>>0;r=t}utils.rip(l,r,out,off)}},{"./cipher":203,"./utils":206,inherits:245,"minimalistic-assert":253}],205:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var Cipher=require("./cipher");var DES=require("./des");function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8);var k2=key.slice(8,16);var k3=key.slice(16,24);if(type==="encrypt"){this.ciphers=[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]}else{this.ciphers=[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1})]}}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher);module.exports=EDE;EDE.create=function create(options){return new EDE(options)};EDE.prototype._update=function _update(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff);state.ciphers[1]._update(out,outOff,out,outOff);state.ciphers[2]._update(out,outOff,out,outOff)};EDE.prototype._pad=DES.prototype._pad;EDE.prototype._unpad=DES.prototype._unpad},{"./cipher":203,"./des":204,inherits:245,"minimalistic-assert":253}],206:[function(require,module,exports){"use strict";exports.readUInt32BE=function readUInt32BE(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0};exports.writeUInt32BE=function writeUInt32BE(bytes,value,off){bytes[0+off]=value>>>24;bytes[1+off]=value>>>16&255;bytes[2+off]=value>>>8&255;bytes[3+off]=value&255};exports.ip=function ip(inL,inR,out,off){var outL=0;var outR=0;for(var i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>>j+i&1}}for(var i=6;i>=0;i-=2){for(var j=1;j<=25;j+=8){outR<<=1;outR|=inR>>>j+i&1}for(var j=1;j<=25;j+=8){outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.rip=function rip(inL,inR,out,off){var outL=0;var outR=0;for(var i=0;i<4;i++){for(var j=24;j>=0;j-=8){outL<<=1;outL|=inR>>>j+i&1;outL<<=1;outL|=inL>>>j+i&1}}for(var i=4;i<8;i++){for(var j=24;j>=0;j-=8){outR<<=1;outR|=inR>>>j+i&1;outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.pc1=function pc1(inL,inR,out,off){var outL=0;var outR=0;for(var i=7;i>=5;i--){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var i=1;i<=3;i++){for(var j=0;j<=24;j+=8){outR<<=1;outR|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.r28shl=function r28shl(num,shift){return num<<shift&268435455|num>>>28-shift};var pc2table=[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];exports.pc2=function pc2(inL,inR,out,off){var outL=0;var outR=0;var len=pc2table.length>>>1;for(var i=0;i<len;i++){outL<<=1;outL|=inL>>>pc2table[i]&1}for(var i=len;i<pc2table.length;i++){outR<<=1;outR|=inR>>>pc2table[i]&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.expand=function expand(r,out,off){var outL=0;var outR=0;outL=(r&1)<<5|r>>>27;for(var i=23;i>=15;i-=4){outL<<=6;outL|=r>>>i&63}for(var i=11;i>=3;i-=4){outR|=r>>>i&63;outR<<=6}outR|=(r&31)<<1|r>>>31;out[off+0]=outL>>>0;out[off+1]=outR>>>0};var sTable=[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];exports.substitute=function substitute(inL,inR){var out=0;for(var i=0;i<4;i++){var b=inL>>>18-i*6&63;var sb=sTable[i*64+b];out<<=4;out|=sb}for(var i=0;i<4;i++){var b=inR>>>18-i*6&63;var sb=sTable[4*64+i*64+b];out<<=4;out|=sb}return out>>>0};var permuteTable=[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];exports.permute=function permute(num){var out=0;for(var i=0;i<permuteTable.length;i++){out<<=1;out|=num>>>permuteTable[i]&1}return out>>>0};exports.padSplit=function padSplit(num,size,group){var str=num.toString(2);while(str.length<size)str="0"+str;var out=[];for(var i=0;i<size;i+=group)out.push(str.slice(i,i+group));return out.join(" ")}},{}],207:[function(require,module,exports){(function(Buffer){var generatePrime=require("./lib/generatePrime");var primes=require("./lib/primes.json");var DH=require("./lib/dh");function getDiffieHellman(mod){var prime=new Buffer(primes[mod].prime,"hex");var gen=new Buffer(primes[mod].gen,"hex");return new DH(prime,gen)}var ENCODINGS={binary:true,hex:true,base64:true};function createDiffieHellman(prime,enc,generator,genc){if(Buffer.isBuffer(enc)||ENCODINGS[enc]===undefined){return createDiffieHellman(prime,"binary",enc,generator)}enc=enc||"binary";genc=genc||"binary";generator=generator||new Buffer([2]);if(!Buffer.isBuffer(generator)){generator=new Buffer(generator,genc)}if(typeof prime==="number"){return new DH(generatePrime(prime,generator),generator,true)}if(!Buffer.isBuffer(prime)){prime=new Buffer(prime,enc)}return new DH(prime,generator,true)}exports.DiffieHellmanGroup=exports.createDiffieHellmanGroup=exports.getDiffieHellman=getDiffieHellman;exports.createDiffieHellman=exports.DiffieHellman=createDiffieHellman}).call(this,require("buffer").Buffer)},{"./lib/dh":208,"./lib/generatePrime":209,"./lib/primes.json":210,buffer:185}],208:[function(require,module,exports){(function(Buffer){var BN=require("bn.js");var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var TWENTYFOUR=new BN(24);var ELEVEN=new BN(11);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var primes=require("./generatePrime");var randomBytes=require("randombytes");module.exports=DH;function setPublicKey(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}this._pub=new BN(pub);return this}function setPrivateKey(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}this._priv=new BN(priv);return this}var primeCache={};function checkPrime(prime,generator){var gen=generator.toString("hex");var hex=[gen,prime.toString(16)].join("_");if(hex in primeCache){return primeCache[hex]}var error=0;if(prime.isEven()||!primes.simpleSieve||!primes.fermatTest(prime)||!millerRabin.test(prime)){error+=1;if(gen==="02"||gen==="05"){error+=8}else{error+=4}primeCache[hex]=error;return error}if(!millerRabin.test(prime.shrn(1))){error+=2}var rem;switch(gen){case"02":if(prime.mod(TWENTYFOUR).cmp(ELEVEN)){error+=8}break;case"05":rem=prime.mod(TEN);if(rem.cmp(THREE)&&rem.cmp(SEVEN)){error+=8}break;default:error+=4}primeCache[hex]=error;return error}function DH(prime,generator,malleable){this.setGenerator(generator);this.__prime=new BN(prime);this._prime=BN.mont(this.__prime);this._primeLen=prime.length;this._pub=undefined;this._priv=undefined;this._primeCode=undefined;if(malleable){this.setPublicKey=setPublicKey;this.setPrivateKey=setPrivateKey}else{this._primeCode=8}}Object.defineProperty(DH.prototype,"verifyError",{enumerable:true,get:function(){if(typeof this._primeCode!=="number"){this._primeCode=checkPrime(this.__prime,this.__gen)}return this._primeCode}});DH.prototype.generateKeys=function(){if(!this._priv){this._priv=new BN(randomBytes(this._primeLen))}this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed();return this.getPublicKey()};DH.prototype.computeSecret=function(other){other=new BN(other);other=other.toRed(this._prime);var secret=other.redPow(this._priv).fromRed();var out=new Buffer(secret.toArray());var prime=this.getPrime();if(out.length<prime.length){var front=new Buffer(prime.length-out.length);front.fill(0);out=Buffer.concat([front,out])}return out};DH.prototype.getPublicKey=function getPublicKey(enc){return formatReturnValue(this._pub,enc)};DH.prototype.getPrivateKey=function getPrivateKey(enc){return formatReturnValue(this._priv,enc)};DH.prototype.getPrime=function(enc){return formatReturnValue(this.__prime,enc)};DH.prototype.getGenerator=function(enc){return formatReturnValue(this._gen,enc)};DH.prototype.setGenerator=function(gen,enc){enc=enc||"utf8";if(!Buffer.isBuffer(gen)){gen=new Buffer(gen,enc)}this.__gen=gen;this._gen=new BN(gen);return this};function formatReturnValue(bn,enc){var buf=new Buffer(bn.toArray());if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"./generatePrime":209,"bn.js":211,buffer:185,"miller-rabin":251,randombytes:276}],209:[function(require,module,exports){var randomBytes=require("randombytes");module.exports=findPrime;findPrime.simpleSieve=simpleSieve;findPrime.fermatTest=fermatTest;var BN=require("bn.js");var TWENTYFOUR=new BN(24);var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var ONE=new BN(1);var TWO=new BN(2);var FIVE=new BN(5);var SIXTEEN=new BN(16);var EIGHT=new BN(8);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var ELEVEN=new BN(11);var FOUR=new BN(4);var TWELVE=new BN(12);var primes=null;function _getPrimes(){if(primes!==null)return primes;var limit=1048576;var res=[];res[0]=2;for(var i=1,k=3;k<limit;k+=2){var sqrt=Math.ceil(Math.sqrt(k));for(var j=0;j<i&&res[j]<=sqrt;j++)if(k%res[j]===0)break;if(i!==j&&res[j]<=sqrt)continue;res[i++]=k}primes=res;return res}function simpleSieve(p){var primes=_getPrimes();for(var i=0;i<primes.length;i++)if(p.modn(primes[i])===0){if(p.cmpn(primes[i])===0){return true}else{return false}}return true}function fermatTest(p){var red=BN.mont(p);return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1)===0}function findPrime(bits,gen){if(bits<16){if(gen===2||gen===5){return new BN([140,123])}else{return new BN([140,39])}}gen=new BN(gen);var num,n2;while(true){num=new BN(randomBytes(Math.ceil(bits/8)));while(num.bitLength()>bits){num.ishrn(1)}if(num.isEven()){num.iadd(ONE)}if(!num.testn(1)){num.iadd(TWO)}if(!gen.cmp(TWO)){while(num.mod(TWENTYFOUR).cmp(ELEVEN)){num.iadd(FOUR)}}else if(!gen.cmp(FIVE)){while(num.mod(TEN).cmp(THREE)){num.iadd(FOUR)}}n2=num.shrn(1);if(simpleSieve(n2)&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num)){return num}}}},{"bn.js":211,"miller-rabin":251,randombytes:276}],210:[function(require,module,exports){module.exports={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"}}},{}],211:[function(require,module,exports){arguments[4][109][0].apply(exports,arguments)},{buffer:141,dup:109}],212:[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version;elliptic.utils=require("./elliptic/utils");elliptic.rand=require("brorand");elliptic.curve=require("./elliptic/curve");elliptic.curves=require("./elliptic/curves");elliptic.ec=require("./elliptic/ec");elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":228,"./elliptic/curve":215,"./elliptic/curves":218,"./elliptic/ec":219,"./elliptic/eddsa":222,"./elliptic/utils":226,brorand:140}],213:[function(require,module,exports){"use strict";var BN=require("bn.js");var utils=require("../utils");var getNAF=utils.getNAF;var getJSF=utils.getJSF;var assert=utils.assert;function BaseCurve(type,conf){this.type=type;this.p=new BN(conf.p,16);this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p);this.zero=new BN(0).toRed(this.red);this.one=new BN(1).toRed(this.red);this.two=new BN(2).toRed(this.red);this.n=conf.n&&new BN(conf.n,16);this.g=conf.g&&this.pointFromJSON(conf.g,conf.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 adjustCount=this.n&&this.p.div(this.n);if(!adjustCount||adjustCount.cmpn(100)>0){this.redN=null}else{this._maxwellTrick=true;this.redN=this.n.toRed(this.red)}}module.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function validate(){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(p,k){assert(p.precomputed);var doubles=p._getDoubles();var naf=getNAF(k,1,this._bitLength);var I=(1<<doubles.step+1)-(doubles.step%2===0?2:1);I/=3;var repr=[];for(var j=0;j<naf.length;j+=doubles.step){var nafW=0;for(var k=j+doubles.step-1;k>=j;k--)nafW=(nafW<<1)+naf[k];repr.push(nafW)}var a=this.jpoint(null,null,null);var b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(var j=0;j<repr.length;j++){var nafW=repr[j];if(nafW===i)b=b.mixedAdd(doubles.points[j]);else if(nafW===-i)b=b.mixedAdd(doubles.points[j].neg())}a=a.add(b)}return a.toP()};BaseCurve.prototype._wnafMul=function _wnafMul(p,k){var w=4;var nafPoints=p._getNAFPoints(w);w=nafPoints.wnd;var wnd=nafPoints.points;var naf=getNAF(k,w,this._bitLength);var acc=this.jpoint(null,null,null);for(var i=naf.length-1;i>=0;i--){for(var k=0;i>=0&&naf[i]===0;i--)k++;if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;var z=naf[i];assert(z!==0);if(p.type==="affine"){if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg())}else{if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}}return p.type==="affine"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(defW,points,coeffs,len,jacobianResult){var wndWidth=this._wnafT1;var wnd=this._wnafT2;var naf=this._wnafT3;var max=0;for(var i=0;i<len;i++){var p=points[i];var nafPoints=p._getNAFPoints(defW);wndWidth[i]=nafPoints.wnd;wnd[i]=nafPoints.points}for(var i=len-1;i>=1;i-=2){var a=i-1;var b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a],this._bitLength);naf[b]=getNAF(coeffs[b],wndWidth[b],this._bitLength);max=Math.max(naf[a].length,max);max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0){comb[1]=points[a].add(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}else if(points[a].y.cmp(points[b].y.redNeg())===0){comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].add(points[b].neg())}else{comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}var index=[-3,-1,-5,-7,0,7,5,1,3];var jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max);naf[a]=new Array(max);naf[b]=new Array(max);for(var j=0;j<max;j++){var ja=jsf[0][j]|0;var jb=jsf[1][j]|0;naf[a][j]=index[(ja+1)*3+(jb+1)];naf[b][j]=0;wnd[a]=comb}}var acc=this.jpoint(null,null,null);var tmp=this._wnafT4;for(var i=max;i>=0;i--){var k=0;while(i>=0){var zero=true;for(var j=0;j<len;j++){tmp[j]=naf[j][i]|0;if(tmp[j]!==0)zero=false}if(!zero)break;k++;i--}if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;for(var j=0;j<len;j++){var z=tmp[j];var p;if(z===0)continue;else if(z>0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type==="affine")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(var i=0;i<len;i++)wnd[i]=null;if(jacobianResult)return acc;else return acc.toP()};function BasePoint(curve,type){this.curve=curve;this.type=type;this.precomputed=null}BaseCurve.BasePoint=BasePoint;BasePoint.prototype.eq=function eq(){throw new Error("Not implemented")};BasePoint.prototype.validate=function validate(){return this.curve.validate(this)};BaseCurve.prototype.decodePoint=function decodePoint(bytes,enc){bytes=utils.toArray(bytes,enc);var len=this.p.byteLength();if((bytes[0]===4||bytes[0]===6||bytes[0]===7)&&bytes.length-1===2*len){if(bytes[0]===6)assert(bytes[bytes.length-1]%2===0);else if(bytes[0]===7)assert(bytes[bytes.length-1]%2===1);var res=this.point(bytes.slice(1,1+len),bytes.slice(1+len,1+2*len));return res}else if((bytes[0]===2||bytes[0]===3)&&bytes.length-1===len){return this.pointFromX(bytes.slice(1,1+len),bytes[0]===3)}throw new Error("Unknown point format")};BasePoint.prototype.encodeCompressed=function encodeCompressed(enc){return this.encode(enc,true)};BasePoint.prototype._encode=function _encode(compact){var len=this.curve.p.byteLength();var x=this.getX().toArray("be",len);if(compact)return[this.getY().isEven()?2:3].concat(x);return[4].concat(x,this.getY().toArray("be",len))};BasePoint.prototype.encode=function encode(enc,compact){return utils.encode(this._encode(compact),enc)};BasePoint.prototype.precompute=function precompute(power){if(this.precomputed)return this;var precomputed={doubles:null,naf:null,beta:null};precomputed.naf=this._getNAFPoints(8);precomputed.doubles=this._getDoubles(4,power);precomputed.beta=this._getBeta();this.precomputed=precomputed;return this};BasePoint.prototype._hasDoubles=function _hasDoubles(k){if(!this.precomputed)return false;var doubles=this.precomputed.doubles;if(!doubles)return false;return doubles.points.length>=Math.ceil((k.bitLength()+1)/doubles.step)};BasePoint.prototype._getDoubles=function _getDoubles(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this];var acc=this;for(var i=0;i<power;i+=step){for(var j=0;j<step;j++)acc=acc.dbl();doubles.push(acc)}return{step:step,points:doubles}};BasePoint.prototype._getNAFPoints=function _getNAFPoints(wnd){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;var res=[this];var max=(1<<wnd)-1;var dbl=max===1?null:this.dbl();for(var i=1;i<max;i++)res[i]=res[i-1].add(dbl);return{wnd:wnd,points:res}};BasePoint.prototype._getBeta=function _getBeta(){return null};BasePoint.prototype.dblp=function dblp(k){var r=this;for(var i=0;i<k;i++)r=r.dbl();return r}},{"../utils":226,"bn.js":227}],214:[function(require,module,exports){"use strict";var utils=require("../utils");var BN=require("bn.js");var inherits=require("inherits");var Base=require("./base");var assert=utils.assert;function EdwardsCurve(conf){this.twisted=(conf.a|0)!==1;this.mOneA=this.twisted&&(conf.a|0)===-1;this.extended=this.mOneA;Base.call(this,"edwards",conf);this.a=new BN(conf.a,16).umod(this.red.m);this.a=this.a.toRed(this.red);this.c=new BN(conf.c,16).toRed(this.red);this.c2=this.c.redSqr();this.d=new BN(conf.d,16).toRed(this.red);this.dd=this.d.redAdd(this.d);assert(!this.twisted||this.c.fromRed().cmpn(1)===0);this.oneC=(conf.c|0)===1}inherits(EdwardsCurve,Base);module.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function _mulA(num){if(this.mOneA)return num.redNeg();else return this.a.redMul(num)};EdwardsCurve.prototype._mulC=function _mulC(num){if(this.oneC)return num;else return this.c.redMul(num)};EdwardsCurve.prototype.jpoint=function jpoint(x,y,z,t){return this.point(x,y,z,t)};EdwardsCurve.prototype.pointFromX=function pointFromX(x,odd){x=new BN(x,16);if(!x.red)x=x.toRed(this.red);var x2=x.redSqr();var rhs=this.c2.redSub(this.a.redMul(x2));var lhs=this.one.redSub(this.c2.redMul(this.d).redMul(x2));var y2=rhs.redMul(lhs.redInvm());var y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw new Error("invalid point");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};EdwardsCurve.prototype.pointFromY=function pointFromY(y,odd){y=new BN(y,16);if(!y.red)y=y.toRed(this.red);var y2=y.redSqr();var lhs=y2.redSub(this.c2);var rhs=y2.redMul(this.d).redMul(this.c2).redSub(this.a);var x2=lhs.redMul(rhs.redInvm());if(x2.cmp(this.zero)===0){if(odd)throw new Error("invalid point");else return this.point(this.zero,y)}var x=x2.redSqrt();if(x.redSqr().redSub(x2).cmp(this.zero)!==0)throw new Error("invalid point");if(x.fromRed().isOdd()!==odd)x=x.redNeg();return this.point(x,y)};EdwardsCurve.prototype.validate=function validate(point){if(point.isInfinity())return true;point.normalize();var x2=point.x.redSqr();var y2=point.y.redSqr();var lhs=x2.redMul(this.a).redAdd(y2);var rhs=this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));return lhs.cmp(rhs)===0};function Point(curve,x,y,z,t){Base.BasePoint.call(this,curve,"projective");if(x===null&&y===null&&z===null){this.x=this.curve.zero;this.y=this.curve.one;this.z=this.curve.one;this.t=this.curve.zero;this.zOne=true}else{this.x=new BN(x,16);this.y=new BN(y,16);this.z=z?new BN(z,16):this.curve.one;this.t=t&&new BN(t,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);this.zOne=this.z===this.curve.one;if(this.curve.extended&&!this.t){this.t=this.x.redMul(this.y);if(!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}inherits(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};EdwardsCurve.prototype.point=function point(x,y,z,t){return new Point(this,x,y,z,t)};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1],obj[2])};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function _extDbl(){var a=this.x.redSqr();var b=this.y.redSqr();var c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a);var e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);var g=d.redAdd(b);var f=g.redSub(c);var h=d.redSub(b);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function _projDbl(){var b=this.x.redAdd(this.y).redSqr();var c=this.x.redSqr();var d=this.y.redSqr();var nx;var ny;var nz;if(this.curve.twisted){var e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne){nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));ny=f.redMul(e.redSub(d));nz=f.redSqr().redSub(f).redSub(f)}else{var h=this.z.redSqr();var j=f.redSub(h).redISub(h);nx=b.redSub(c).redISub(d).redMul(j);ny=f.redMul(e.redSub(d));nz=f.redMul(j)}}else{var e=c.redAdd(d);var h=this.curve._mulC(this.z).redSqr();var j=e.redSub(h).redSub(h);nx=this.curve._mulC(b.redISub(e)).redMul(j);ny=this.curve._mulC(e).redMul(c.redISub(d));nz=e.redMul(j)}return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function _extAdd(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x));var b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));var c=this.t.redMul(this.curve.dd).redMul(p.t);var d=this.z.redMul(p.z.redAdd(p.z));var e=b.redSub(a);var f=d.redSub(c);var g=d.redAdd(c);var h=b.redAdd(a);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function _projAdd(p){var a=this.z.redMul(p.z);var b=a.redSqr();var c=this.x.redMul(p.x);var d=this.y.redMul(p.y);var e=this.curve.d.redMul(c).redMul(d);var f=b.redSub(e);var g=b.redAdd(e);var tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);var nx=a.redMul(f).redMul(tmp);var ny;var nz;if(this.curve.twisted){ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));nz=f.redMul(g)}else{ny=a.redMul(g).redMul(d.redSub(c));nz=this.curve._mulC(f).redMul(g)}return this.curve.point(nx,ny,nz)};Point.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function mul(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,false)};Point.prototype.jmulAdd=function jmulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,true)};Point.prototype.normalize=function normalize(){if(this.zOne)return this;var zi=this.z.redInvm();this.x=this.x.redMul(zi);this.y=this.y.redMul(zi);if(this.t)this.t=this.t.redMul(zi);this.z=this.curve.one;this.zOne=true;return this};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed()};Point.prototype.eq=function eq(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0};Point.prototype.eqXToP=function eqXToP(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(rx)===0)return true;var xc=x.clone();var t=this.curve.redN.redMul(this.z);for(;;){xc.iadd(this.curve.n);if(xc.cmp(this.curve.p)>=0)return false;rx.redIAdd(t);if(this.x.cmp(rx)===0)return true}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add},{"../utils":226,"./base":213,"bn.js":227,inherits:245}],215:[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base");curve.short=require("./short");curve.mont=require("./mont");curve.edwards=require("./edwards")},{"./base":213,"./edwards":214,"./mont":216,"./short":217}],216:[function(require,module,exports){"use strict";var BN=require("bn.js");var inherits=require("inherits");var Base=require("./base");var utils=require("../utils");function MontCurve(conf){Base.call(this,"mont",conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.i4=new BN(4).toRed(this.red).redInvm();this.two=new BN(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function validate(point){var x=point.normalize().x;var x2=x.redSqr();var rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);var y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective");if(x===null&&z===null){this.x=this.curve.one;this.z=this.curve.zero}else{this.x=new BN(x,16);this.z=new BN(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function decodePoint(bytes,enc){return this.point(utils.toArray(bytes,enc),1)};MontCurve.prototype.point=function point(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};Point.prototype.precompute=function precompute(){};Point.prototype._encode=function _encode(){return this.getX().toArray("be",this.curve.p.byteLength())};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0};Point.prototype.dbl=function dbl(){var a=this.x.redAdd(this.z);var aa=a.redSqr();var b=this.x.redSub(this.z);var bb=b.redSqr();var c=aa.redSub(bb);var nx=aa.redMul(bb);var nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function add(){throw new Error("Not supported on Montgomery curve")};Point.prototype.diffAdd=function diffAdd(p,diff){var a=this.x.redAdd(this.z);var b=this.x.redSub(this.z);var c=p.x.redAdd(p.z);var d=p.x.redSub(p.z);var da=d.redMul(a);var cb=c.redMul(b);var nx=diff.z.redMul(da.redAdd(cb).redSqr());var nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function mul(k){var t=k.clone();var a=this;var b=this.curve.point(null,null);var c=this;for(var bits=[];t.cmpn(0)!==0;t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--){if(bits[i]===0){a=a.diffAdd(b,c);b=b.dbl()}else{b=a.diffAdd(b,c);a=a.dbl()}}return b};Point.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")};Point.prototype.jumlAdd=function jumlAdd(){throw new Error("Not supported on Montgomery curve")};Point.prototype.eq=function eq(other){return this.getX().cmp(other.getX())===0};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()}},{"../utils":226,"./base":213,"bn.js":227,inherits:245}],217:[function(require,module,exports){"use strict";var utils=require("../utils");var BN=require("bn.js");var inherits=require("inherits");var Base=require("./base");var assert=utils.assert;function ShortCurve(conf){Base.call(this,"short",conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;this.endo=this._getEndomorphism(conf);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4)}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta;var lambda;if(conf.beta){beta=new BN(conf.beta,16).toRed(this.red)}else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1];beta=beta.toRed(this.red)}if(conf.lambda){lambda=new BN(conf.lambda,16)}else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0){lambda=lambdas[0]}else{lambda=lambdas[1];assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}}var basis;if(conf.basis){basis=conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}})}else{basis=this._getEndoBasis(lambda)}return{beta:beta,lambda:lambda,basis:basis}};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(num){var red=num===this.p?this.red:BN.mont(num);var tinv=new BN(2).toRed(red).redInvm();var ntinv=tinv.redNeg();var s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);var l1=ntinv.redAdd(s).fromRed();var l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(lambda){var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2));var u=lambda;var v=this.n.clone();var x1=new BN(1);var y1=new BN(0);var x2=new BN(0);var y2=new BN(1);var a0;var b0;var a1;var b1;var a2;var b2;var prevR;var i=0;var r;var x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u));x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0){a0=prevR.neg();b0=x1;a1=r.neg();b1=x}else if(a1&&++i===2){break}prevR=r;v=u;u=r;x2=x1;x1=x;y2=y1;y1=y}a2=r.neg();b2=x;var len1=a1.sqr().add(b1.sqr());var len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0){a2=a0;b2=b0}if(a1.negative){a1=a1.neg();b1=b1.neg()}if(a2.negative){a2=a2.neg();b2=b2.neg()}return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function _endoSplit(k){var basis=this.endo.basis;var v1=basis[0];var v2=basis[1];var c1=v2.b.mul(k).divRound(this.n);var c2=v1.b.neg().mul(k).divRound(this.n);var p1=c1.mul(v1.a);var p2=c2.mul(v2.a);var q1=c1.mul(v1.b);var q2=c2.mul(v2.b);var k1=k.sub(p1).sub(p2);var k2=q1.add(q2).neg();return{k1:k1,k2:k2}};ShortCurve.prototype.pointFromX=function pointFromX(x,odd){x=new BN(x,16);if(!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);var y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw new Error("invalid point");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.validate=function validate(point){if(point.inf)return true;var x=point.x;var y=point.y;var ax=this.a.redMul(x);var rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(points,coeffs,jacobianResult){var npoints=this._endoWnafT1;var ncoeffs=this._endoWnafT2;for(var i=0;i<points.length;i++){var split=this._endoSplit(coeffs[i]);var p=points[i];var beta=p._getBeta();if(split.k1.negative){split.k1.ineg();p=p.neg(true)}if(split.k2.negative){split.k2.ineg();beta=beta.neg(true)}npoints[i*2]=p;npoints[i*2+1]=beta;ncoeffs[i*2]=split.k1;ncoeffs[i*2+1]=split.k2}var res=this._wnafMulAdd(1,npoints,ncoeffs,i*2,jacobianResult);for(var j=0;j<i*2;j++){npoints[j]=null;ncoeffs[j]=null}return res};function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine");if(x===null&&y===null){this.x=null;this.y=null;this.inf=true}else{this.x=new BN(x,16);this.y=new BN(y,16);if(isRed){this.x.forceRed(this.curve.red);this.y.forceRed(this.curve.red)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);this.inf=false}}inherits(Point,Base.BasePoint);ShortCurve.prototype.point=function point(x,y,isRed){return new Point(this,x,y,isRed)};ShortCurve.prototype.pointFromJSON=function pointFromJSON(obj,red){return Point.fromJSON(this,obj,red)};Point.prototype._getBeta=function _getBeta(){if(!this.curve.endo)return;var pre=this.precomputed;if(pre&&pre.beta)return pre.beta;var beta=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(pre){var curve=this.curve;var endoMul=function(p){return curve.point(p.x.redMul(curve.endo.beta),p.y)};pre.beta=beta;beta.precomputed={beta:null,naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(endoMul)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(endoMul)}}}return beta};Point.prototype.toJSON=function toJSON(){if(!this.precomputed)return[this.x,this.y];return[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]};Point.fromJSON=function fromJSON(curve,obj,red){if(typeof obj==="string")obj=JSON.parse(obj);var res=curve.point(obj[0],obj[1],red);if(!obj[2])return res;function obj2point(obj){return curve.point(obj[0],obj[1],red)}var pre=obj[2];res.precomputed={beta:null,doubles:pre.doubles&&{step:pre.doubles.step,points:[res].concat(pre.doubles.points.map(obj2point))},naf:pre.naf&&{wnd:pre.naf.wnd,points:[res].concat(pre.naf.points.map(obj2point))}};return res};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.inf};Point.prototype.add=function add(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x);var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function dbl(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a;var x2=this.x.redSqr();var dyinv=ys1.redInvm();var c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);var nx=c.redSqr().redISub(this.x.redAdd(this.x));var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function getX(){return this.x.fromRed()};Point.prototype.getY=function getY(){return this.y.fromRed()};Point.prototype.mul=function mul(k){k=new BN(k,16);if(this.isInfinity())return this;else if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.jmulAdd=function jmulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs,true);else return this.curve._wnafMulAdd(1,points,coeffs,2,true)};Point.prototype.eq=function eq(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function neg(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed;var negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian");if(x===null&&y===null&&z===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new BN(0)}else{this.x=new BN(x,16);this.y=new BN(y,16);this.z=new BN(z,16)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function jpoint(x,y,z){return new JPoint(this,x,y,z)};JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm();var zinv2=zinv.redSqr();var ax=this.x.redMul(zinv2);var ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr();var z2=this.z.redSqr();var u1=this.x.redMul(pz2);var u2=p.x.redMul(z2);var s1=this.y.redMul(pz2.redMul(p.z));var s2=p.y.redMul(z2.redMul(this.z));var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function mixedAdd(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr();var u1=this.x;var u2=p.x.redMul(z2);var s1=this.y;var s2=p.y.redMul(z2).redMul(this.z);var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function dblp(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var r=this;for(var i=0;i<pow;i++)r=r.dbl();return r}var a=this.curve.a;var tinv=this.curve.tinv;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jyd=jy.redAdd(jy);for(var i=0;i<pow;i++){var jx2=jx.redSqr();var jyd2=jyd.redSqr();var jyd4=jyd2.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var t1=jx.redMul(jyd2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var dny=c.redMul(t2);dny=dny.redIAdd(dny).redISub(jyd4);var nz=jyd.redMul(jz);if(i+1<pow)jz4=jz4.redMul(jyd4);jx=nx;jz=nz;jyd=dny}return this.curve.jpoint(jx,jyd.redMul(tinv),jz)};JPoint.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.zeroA)return this._zeroDbl();else if(this.curve.threeA)return this._threeDbl();else return this._dbl()};JPoint.prototype._zeroDbl=function _zeroDbl(){var nx;var ny;var nz;if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx);var t=m.redSqr().redISub(s).redISub(s);var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);nx=t;ny=m.redMul(s.redISub(t)).redISub(yyyy8);nz=this.y.redAdd(this.y)}else{var a=this.x.redSqr();var b=this.y.redSqr();var c=b.redSqr();var d=this.x.redAdd(b).redSqr().redISub(a).redISub(c);d=d.redIAdd(d);var e=a.redAdd(a).redIAdd(a);var f=e.redSqr();var c8=c.redIAdd(c);c8=c8.redIAdd(c8);c8=c8.redIAdd(c8);nx=f.redISub(d).redISub(d);ny=e.redMul(d.redISub(nx)).redISub(c8);nz=this.y.redMul(this.z);nz=nz.redIAdd(nz)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._threeDbl=function _threeDbl(){var nx;var ny;var nz;if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);var t=m.redSqr().redISub(s).redISub(s);nx=t;var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);ny=m.redMul(s.redISub(t)).redISub(yyyy8);nz=this.y.redAdd(this.y)}else{var delta=this.z.redSqr();var gamma=this.y.redSqr();var beta=this.x.redMul(gamma);var alpha=this.x.redSub(delta).redMul(this.x.redAdd(delta));alpha=alpha.redAdd(alpha).redIAdd(alpha);var beta4=beta.redIAdd(beta);beta4=beta4.redIAdd(beta4);var beta8=beta4.redAdd(beta4);nx=alpha.redSqr().redISub(beta8);nz=this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);var ggamma8=gamma.redSqr();ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);ny=alpha.redMul(beta4.redISub(nx)).redISub(ggamma8)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._dbl=function _dbl(){var a=this.curve.a;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jx2=jx.redSqr();var jy2=jy.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var jxd4=jx.redAdd(jx);jxd4=jxd4.redIAdd(jxd4);var t1=jxd4.redMul(jy2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var jyd8=jy2.redSqr();jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);var ny=c.redMul(t2).redISub(jyd8);var nz=jy.redAdd(jy).redMul(jz);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var xx=this.x.redSqr();var yy=this.y.redSqr();var zz=this.z.redSqr();var yyyy=yy.redSqr();var m=xx.redAdd(xx).redIAdd(xx);var mm=m.redSqr();var e=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);e=e.redIAdd(e);e=e.redAdd(e).redIAdd(e);e=e.redISub(mm);var ee=e.redSqr();var t=yyyy.redIAdd(yyyy);t=t.redIAdd(t);t=t.redIAdd(t);t=t.redIAdd(t);var u=m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);var yyu4=yy.redMul(u);yyu4=yyu4.redIAdd(yyu4);yyu4=yyu4.redIAdd(yyu4);var nx=this.x.redMul(ee).redISub(yyu4);nx=nx.redIAdd(nx);nx=nx.redIAdd(nx);var ny=this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);var nz=this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mul=function mul(k,kbase){k=new BN(k,kbase);return this.curve._wnafMul(this,k)};JPoint.prototype.eq=function eq(p){if(p.type==="affine")return this.eq(p.toJ());if(this===p)return true;var z2=this.z.redSqr();var pz2=p.z.redSqr();if(this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0)!==0)return false;var z3=z2.redMul(this.z);var pz3=pz2.redMul(p.z);return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0)===0};JPoint.prototype.eqXToP=function eqXToP(x){var zs=this.z.redSqr();var rx=x.toRed(this.curve.red).redMul(zs);if(this.x.cmp(rx)===0)return true;var xc=x.clone();var t=this.curve.redN.redMul(zs);for(;;){xc.iadd(this.curve.n);if(xc.cmp(this.curve.p)>=0)return false;rx.redIAdd(t);if(this.x.cmp(rx)===0)return true}};JPoint.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC JPoint Infinity>";return"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"};JPoint.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0}},{"../utils":226,"./base":213,"bn.js":227,inherits:245}],218:[function(require,module,exports){"use strict";var curves=exports;var hash=require("hash.js");var curve=require("./curve");var utils=require("./utils");var assert=utils.assert;function PresetCurve(options){if(options.type==="short")this.curve=new curve.short(options);else if(options.type==="edwards")this.curve=new curve.edwards(options);else this.curve=new curve.mont(options);this.g=this.curve.g;this.n=this.curve.n;this.hash=options.hash;assert(this.g.validate(),"Invalid curve");assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:true,enumerable:true,get:function(){var curve=new PresetCurve(options);Object.defineProperty(curves,name,{configurable:true,enumerable:true,value:curve});return curve}})}defineCurve("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:hash.sha256,gRed:false,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});defineCurve("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:hash.sha256,gRed:false,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});defineCurve("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:hash.sha256,gRed:false,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});defineCurve("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:hash.sha384,gRed:false,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"]});defineCurve("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:hash.sha512,gRed:false,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"]});defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["9"]});defineCurve("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:hash.sha256,gRed:false,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var pre;try{pre=require("./precomputed/secp256k1")}catch(e){pre=undefined}defineCurve("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:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:false,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"./curve":215,"./precomputed/secp256k1":225,"./utils":226,"hash.js":231}],219:[function(require,module,exports){"use strict";var BN=require("bn.js");var HmacDRBG=require("hmac-drbg");var utils=require("../utils");var curves=require("../curves");var rand=require("brorand");var assert=utils.assert;var KeyPair=require("./key");var Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options==="string"){assert(curves.hasOwnProperty(options),"Unknown curve "+options);options=curves[options]}if(options instanceof curves.PresetCurve)options={curve:options};this.curve=options.curve.curve;this.n=this.curve.n;this.nh=this.n.ushrn(1);this.g=this.curve.g;this.g=options.curve.g;this.g.precompute(options.curve.n.bitLength()+1);this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function keyPair(options){return new KeyPair(this,options)};EC.prototype.keyFromPrivate=function keyFromPrivate(priv,enc){return KeyPair.fromPrivate(this,priv,enc)};EC.prototype.keyFromPublic=function keyFromPublic(pub,enc){return KeyPair.fromPublic(this,pub,enc)};EC.prototype.genKeyPair=function genKeyPair(options){if(!options)options={};var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||"utf8",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||"utf8",nonce:this.n.toArray()});var bytes=this.n.byteLength();var ns2=this.n.sub(new BN(2));do{var priv=new BN(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;priv.iaddn(1);return this.keyFromPrivate(priv)}while(true)};EC.prototype._truncateToN=function truncateToN(msg,truncOnly){var delta=msg.byteLength()*8-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function sign(msg,key,enc,options){if(typeof enc==="object"){options=enc;enc=null}if(!options)options={};key=this.keyFromPrivate(key,enc);msg=this._truncateToN(new BN(msg,16));var bytes=this.n.byteLength();var bkey=key.getPrivate().toArray("be",bytes);var nonce=msg.toArray("be",bytes);var drbg=new HmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce,pers:options.pers,persEnc:options.persEnc||"utf8"});var ns1=this.n.sub(new BN(1));for(var iter=0;true;iter++){var k=options.k?options.k(iter):new BN(drbg.generate(this.n.byteLength()));k=this._truncateToN(k,true);if(k.cmpn(1)<=0||k.cmp(ns1)>=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX();var r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));s=s.umod(this.n);if(s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);if(options.canonical&&s.cmp(this.nh)>0){s=this.n.sub(s);recoveryParam^=1}return new Signature({r:r,s:s,recoveryParam:recoveryParam})}};EC.prototype.verify=function verify(msg,signature,key,enc){msg=this._truncateToN(new BN(msg,16));key=this.keyFromPublic(key,enc);signature=new Signature(signature,"hex");var r=signature.r;var s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;var sinv=s.invm(this.n);var u1=sinv.mul(msg).umod(this.n);var u2=sinv.mul(r).umod(this.n);if(!this.curve._maxwellTrick){var p=this.g.mulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.getX().umod(this.n).cmp(r)===0}var p=this.g.jmulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.eqXToP(r)};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits");signature=new Signature(signature,enc);var n=this.n;var e=new BN(msg);var r=signature.r;var s=signature.s;var isYOdd=j&1;var isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error("Unable to find sencond key candinate");if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n);var s1=n.sub(e).mul(rInv).umod(n);var s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){signature=new Signature(signature,enc);if(signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e){continue}if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../curves":218,"../utils":226,"./key":220,"./signature":221,"bn.js":227,brorand:140,"hmac-drbg":243}],220:[function(require,module,exports){"use strict";var BN=require("bn.js");var utils=require("../utils");var assert=utils.assert;function KeyPair(ec,options){this.ec=ec;this.priv=null;this.pub=null;if(options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair;KeyPair.fromPublic=function fromPublic(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub:pub,pubEnc:enc})};KeyPair.fromPrivate=function fromPrivate(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv:priv,privEnc:enc})};KeyPair.prototype.validate=function validate(){var pub=this.getPublic();if(pub.isInfinity())return{result:false,reason:"Invalid public key"};if(!pub.validate())return{result:false,reason:"Public key is not a point"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:false,reason:"Public key * N != O"};return{result:true,reason:null}};KeyPair.prototype.getPublic=function getPublic(compact,enc){if(typeof compact==="string"){enc=compact;compact=null}if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact)};KeyPair.prototype.getPrivate=function getPrivate(enc){if(enc==="hex")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function _importPrivate(key,enc){this.priv=new BN(key,enc||16);this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function _importPublic(key,enc){if(key.x||key.y){if(this.ec.curve.type==="mont"){assert(key.x,"Need x coordinate")}else if(this.ec.curve.type==="short"||this.ec.curve.type==="edwards"){assert(key.x&&key.y,"Need both x and y coordinate")}this.pub=this.ec.curve.point(key.x,key.y);return}this.pub=this.ec.curve.decodePoint(key,enc)};KeyPair.prototype.derive=function derive(pub){return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function sign(msg,enc,options){return this.ec.sign(msg,this,enc,options)};KeyPair.prototype.verify=function verify(msg,signature){return this.ec.verify(msg,signature,this)};KeyPair.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},{"../utils":226,"bn.js":227}],221:[function(require,module,exports){"use strict";var BN=require("bn.js");var utils=require("../utils");var assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;assert(options.r&&options.s,"Signature without r or s");this.r=new BN(options.r,16);this.s=new BN(options.s,16);if(options.recoveryParam===undefined)this.recoveryParam=null;else this.recoveryParam=options.recoveryParam}module.exports=Signature;function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&128)){return initial}var octetLen=initial&15;if(octetLen===0||octetLen>4){return false}var val=0;for(var i=0,off=p.place;i<octetLen;i++,off++){val<<=8;val|=buf[off];val>>>=0}if(val<=127){return false}p.place=off;return val}function rmPadding(buf){var i=0;var len=buf.length-1;while(!buf[i]&&!(buf[i+1]&128)&&i<len){i++}if(i===0){return buf}return buf.slice(i)}Signature.prototype._importDER=function _importDER(data,enc){data=utils.toArray(data,enc);var p=new Position;if(data[p.place++]!==48){return false}var len=getLength(data,p);if(len===false){return false}if(len+p.place!==data.length){return false}if(data[p.place++]!==2){return false}var rlen=getLength(data,p);if(rlen===false){return false}var r=data.slice(p.place,rlen+p.place);p.place+=rlen;if(data[p.place++]!==2){return false}var slen=getLength(data,p);if(slen===false){return false}if(data.length!==slen+p.place){return false}var s=data.slice(p.place,slen+p.place);if(r[0]===0){if(r[1]&128){r=r.slice(1)}else{return false}}if(s[0]===0){if(s[1]&128){s=s.slice(1)}else{return false}}this.r=new BN(r);this.s=new BN(s);this.recoveryParam=null;return true};function constructLength(arr,len){if(len<128){arr.push(len);return}var octets=1+(Math.log(len)/Math.LN2>>>3);arr.push(octets|128);while(--octets){arr.push(len>>>(octets<<3)&255)}arr.push(len)}Signature.prototype.toDER=function toDER(enc){var r=this.r.toArray();var s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);r=rmPadding(r);s=rmPadding(s);while(!s[0]&&!(s[1]&128)){s=s.slice(1)}var arr=[2];constructLength(arr,r.length);arr=arr.concat(r);arr.push(2);constructLength(arr,s.length);var backHalf=arr.concat(s);var res=[48];constructLength(res,backHalf.length);res=res.concat(backHalf);return utils.encode(res,enc)}},{"../utils":226,"bn.js":227}],222:[function(require,module,exports){"use strict";var hash=require("hash.js");var curves=require("../curves");var utils=require("../utils");var assert=utils.assert;var parseBytes=utils.parseBytes;var KeyPair=require("./key");var Signature=require("./signature");function EDDSA(curve){assert(curve==="ed25519","only tested with ed25519 so far");if(!(this instanceof EDDSA))return new EDDSA(curve);var curve=curves[curve].curve;this.curve=curve;this.g=curve.g;this.g.precompute(curve.n.bitLength()+1);this.pointClass=curve.point().constructor;this.encodingLength=Math.ceil(curve.n.bitLength()/8);this.hash=hash.sha512}module.exports=EDDSA;EDDSA.prototype.sign=function sign(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret);var r=this.hashInt(key.messagePrefix(),message);var R=this.g.mul(r);var Rencoded=this.encodePoint(R);var s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv());var S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})};EDDSA.prototype.verify=function verify(message,sig,pub){message=parseBytes(message);sig=this.makeSignature(sig);var key=this.keyFromPublic(pub);var h=this.hashInt(sig.Rencoded(),key.pubBytes(),message);var SG=this.g.mul(sig.S());var RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)};EDDSA.prototype.hashInt=function hashInt(){var hash=this.hash();for(var i=0;i<arguments.length;i++)hash.update(arguments[i]);return utils.intFromLE(hash.digest()).umod(this.curve.n)};EDDSA.prototype.keyFromPublic=function keyFromPublic(pub){return KeyPair.fromPublic(this,pub)};EDDSA.prototype.keyFromSecret=function keyFromSecret(secret){return KeyPair.fromSecret(this,secret)};EDDSA.prototype.makeSignature=function makeSignature(sig){if(sig instanceof Signature)return sig;return new Signature(this,sig)};EDDSA.prototype.encodePoint=function encodePoint(point){var enc=point.getY().toArray("le",this.encodingLength);enc[this.encodingLength-1]|=point.getX().isOdd()?128:0;return enc};EDDSA.prototype.decodePoint=function decodePoint(bytes){bytes=utils.parseBytes(bytes);var lastIx=bytes.length-1;var normed=bytes.slice(0,lastIx).concat(bytes[lastIx]&~128);var xIsOdd=(bytes[lastIx]&128)!==0;var y=utils.intFromLE(normed);return this.curve.pointFromY(y,xIsOdd)};EDDSA.prototype.encodeInt=function encodeInt(num){return num.toArray("le",this.encodingLength)};EDDSA.prototype.decodeInt=function decodeInt(bytes){return utils.intFromLE(bytes)};EDDSA.prototype.isPoint=function isPoint(val){return val instanceof this.pointClass}},{"../curves":218,"../utils":226,"./key":223,"./signature":224,"hash.js":231}],223:[function(require,module,exports){"use strict";var utils=require("../utils");var assert=utils.assert;var parseBytes=utils.parseBytes;var cachedProperty=utils.cachedProperty;function KeyPair(eddsa,params){this.eddsa=eddsa;this._secret=parseBytes(params.secret);if(eddsa.isPoint(params.pub))this._pub=params.pub;else this._pubBytes=parseBytes(params.pub)}KeyPair.fromPublic=function fromPublic(eddsa,pub){if(pub instanceof KeyPair)return pub;return new KeyPair(eddsa,{pub:pub})};KeyPair.fromSecret=function fromSecret(eddsa,secret){if(secret instanceof KeyPair)return secret;return new KeyPair(eddsa,{secret:secret})};KeyPair.prototype.secret=function secret(){return this._secret};cachedProperty(KeyPair,"pubBytes",function pubBytes(){return this.eddsa.encodePoint(this.pub())});cachedProperty(KeyPair,"pub",function pub(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())});cachedProperty(KeyPair,"privBytes",function privBytes(){var eddsa=this.eddsa;var hash=this.hash();var lastIx=eddsa.encodingLength-1;var a=hash.slice(0,eddsa.encodingLength);a[0]&=248;a[lastIx]&=127;a[lastIx]|=64;return a});cachedProperty(KeyPair,"priv",function priv(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty(KeyPair,"hash",function hash(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty(KeyPair,"messagePrefix",function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair.prototype.sign=function sign(message){assert(this._secret,"KeyPair can only verify");return this.eddsa.sign(message,this)};KeyPair.prototype.verify=function verify(message,sig){return this.eddsa.verify(message,sig,this)};KeyPair.prototype.getSecret=function getSecret(enc){assert(this._secret,"KeyPair is public only");return utils.encode(this.secret(),enc)};KeyPair.prototype.getPublic=function getPublic(enc){return utils.encode(this.pubBytes(),enc)};module.exports=KeyPair},{"../utils":226}],224:[function(require,module,exports){"use strict";var BN=require("bn.js");var utils=require("../utils");var assert=utils.assert;var cachedProperty=utils.cachedProperty;var parseBytes=utils.parseBytes;function Signature(eddsa,sig){this.eddsa=eddsa;if(typeof sig!=="object")sig=parseBytes(sig);if(Array.isArray(sig)){sig={R:sig.slice(0,eddsa.encodingLength),S:sig.slice(eddsa.encodingLength)}}assert(sig.R&&sig.S,"Signature without R or S");if(eddsa.isPoint(sig.R))this._R=sig.R;if(sig.S instanceof BN)this._S=sig.S;this._Rencoded=Array.isArray(sig.R)?sig.R:sig.Rencoded;this._Sencoded=Array.isArray(sig.S)?sig.S:sig.Sencoded}cachedProperty(Signature,"S",function S(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature,"R",function R(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature,"Rencoded",function Rencoded(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature,"Sencoded",function Sencoded(){return this.eddsa.encodeInt(this.S())});Signature.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded())};Signature.prototype.toHex=function toHex(){return utils.encode(this.toBytes(),"hex").toUpperCase()};module.exports=Signature},{"../utils":226,"bn.js":227}],225:[function(require,module,exports){module.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"]]}}},{}],226:[function(require,module,exports){"use strict";var utils=exports;var BN=require("bn.js");var minAssert=require("minimalistic-assert");var minUtils=require("minimalistic-crypto-utils");utils.assert=minAssert;utils.toArray=minUtils.toArray;utils.zero2=minUtils.zero2;utils.toHex=minUtils.toHex;utils.encode=minUtils.encode;function getNAF(num,w,bits){var naf=new Array(Math.max(num.bitLength(),bits)+1);naf.fill(0);var ws=1<<w+1;var k=num.clone();for(var i=0;i<naf.length;i++){var z;var mod=k.andln(ws-1);if(k.isOdd()){if(mod>(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else{z=0}naf[i]=z;k.iushrn(1)}return naf}utils.getNAF=getNAF;function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone();k2=k2.clone();var d1=0;var d2=0;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3;var m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0){u1=0}else{var m8=k1.andln(7)+d1&7;if((m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14}jsf[0].push(u1);var u2;if((m24&1)===0){u2=0}else{var m8=k2.andln(7)+d2&7;if((m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24}jsf[1].push(u2);if(2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1);k2.iushrn(1)}return jsf}utils.getJSF=getJSF;function cachedProperty(obj,name,computer){var key="_"+name;obj.prototype[name]=function cachedProperty(){return this[key]!==undefined?this[key]:this[key]=computer.call(this)}}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes==="string"?utils.toArray(bytes,"hex"):bytes}utils.parseBytes=parseBytes;function intFromLE(bytes){return new BN(bytes,"hex","le")}utils.intFromLE=intFromLE},{"bn.js":227,"minimalistic-assert":253,"minimalistic-crypto-utils":254}],227:[function(require,module,exports){(function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number)){return number}this.negative=0;this.words=null;this.length=0;this.red=null;if(number!==null){if(base==="le"||base==="be"){endian=base;base=10}this._init(number||0,base||10,endian||"be")}}if(typeof module==="object"){module.exports=BN}else{exports.BN=BN}BN.BN=BN;BN.wordSize=26;var Buffer;try{Buffer=require("buffer").Buffer}catch(e){}BN.isBN=function isBN(num){if(num instanceof BN){return true}return num!==null&&typeof num==="object"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)};BN.max=function max(left,right){if(left.cmp(right)>0)return left;return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex"){base=16}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-"){start++}if(base===16){this._parseHex(number,start)}else{this._parseBase(number,base,start)}if(number[0]==="-"){this.negative=1}this.strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;if(endian==="be"){for(i=number.length-1,j=0;i>=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(i=0,j=0;i<number.length;i+=3){w=number[i]|number[i+1]<<8|number[i+2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4;if(c>=49&&c<=54){r|=c-49+10}else if(c>=17&&c<=22){r|=c-17+10}else{r|=c&15}}return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;for(i=number.length-6,j=0;i>=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this.strip()};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul;if(c>=49){r+=c-49+10}else if(c>=17){r+=c-17+10}else{r+=c}}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base){limbLen++}limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i<end;i+=limbLen){word=parseBase(number,i,i+limbLen,base);this.imuln(limbPow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}if(mod!==0){var pow=1;word=parseBase(number,i,number.length,base);for(i=0;i<mod;i++){pow*=base}this.imuln(pow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++){dest.words[i]=this.words[i]}dest.length=this.length;dest.negative=this.negative;dest.red=this.red};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype._expand=function _expand(size){while(this.length<size){this.words[this.length++]=0}return this};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==="hex"){out="";var off=0;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out}else{out=word+out}off+=2;if(off>=26){off-=26;i--}}if(carry!==0){out=carry.toString(16)+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];out="";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out}else{out=r+out}}if(this.isZero()){out="0"+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}assert(false,"Base should be between 2 and 36")};BN.prototype.toNumber=function toNumber(){var ret=this.words[0];if(this.length===2){ret+=this.words[1]*67108864}else if(this.length===3&&this.words[2]===1){ret+=4503599627370496+this.words[1]*67108864}else if(this.length>2){assert(false,"Number can only safely store up to 53 bits")}return this.negative!==0?-ret:ret};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toBuffer=function toBuffer(endian,length){assert(typeof Buffer!=="undefined");return this.toArrayLike(Buffer,endian,length)};BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length)};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length");assert(reqLength>0,"Requested array length <= 0");this.strip();var littleEndian=endian==="le";var res=new ArrayType(reqLength);var b,i;var q=this.clone();if(!littleEndian){for(i=0;i<reqLength-byteLength;i++){res[i]=0}for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[reqLength-i-1]=b}}else{for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[i]=b}for(;i<reqLength;i++){res[i]=0}}return res};if(Math.clz32){BN.prototype._countBits=function _countBits(w){return 32-Math.clz32(w)}}else{BN.prototype._countBits=function _countBits(w){var t=w;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit<w.length;bit++){var off=bit/26|0;var wbit=bit%26;w[bit]=(num.words[off]&1<<wbit)>>>wbit}return w}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);r+=b;if(b!==26)break}return r};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(width){if(this.negative!==0){return this.abs().inotn(width).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(width){if(this.testn(width-1)){return this.notn(width).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(num){while(this.length<num.length){this.words[this.length++]=0}for(var i=0;i<num.length;i++){this.words[i]=this.words[i]|num.words[i]}return this.strip()};BN.prototype.ior=function ior(num){assert((this.negative|num.negative)===0);return this.iuor(num)};BN.prototype.or=function or(num){if(this.length>num.length)return this.clone().ior(num);return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length){b=num}else{b=this}for(var i=0;i<b.length;i++){this.words[i]=this.words[i]&num.words[i]}this.length=b.length;return this.strip()};BN.prototype.iand=function iand(num){assert((this.negative|num.negative)===0);return this.iuand(num)};BN.prototype.and=function and(num){if(this.length>num.length)return this.clone().iand(num);return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;i<b.length;i++){this.words[i]=a.words[i]^b.words[i]}if(this!==a){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=a.length;return this.strip()};BN.prototype.ixor=function ixor(num){assert((this.negative|num.negative)===0);return this.iuxor(num)};BN.prototype.xor=function xor(num){if(this.length>num.length)return this.clone().ixor(num);return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)};BN.prototype.inotn=function inotn(width){assert(typeof width==="number"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--}for(var i=0;i<bytesNeeded;i++){this.words[i]=~this.words[i]&67108863}if(bitsLeft>0){this.words[i]=~this.words[i]&67108863>>26-bitsLeft}return this.strip()};BN.prototype.notn=function notn(width){return this.clone().inotn(width)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1<<wbit}else{this.words[off]=this.words[off]&~(1<<wbit)}return this.strip()};BN.prototype.iadd=function iadd(num){var r;if(this.negative!==0&&num.negative===0){this.negative=0;r=this.isub(num);this.negative^=1;return this._normSign()}else if(this.negative===0&&num.negative!==0){num.negative=0;r=this.isub(num);num.negative=1;return r._normSign()}var a,b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)+(b.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}return this};BN.prototype.add=function add(num){var res;if(num.negative!==0&&this.negative===0){num.negative=0;res=this.sub(num);num.negative^=1;return res}else if(num.negative===0&&this.negative!==0){this.negative=0;res=num.sub(this);this.negative=1;return res}if(this.length>num.length)return this.clone().iadd(num);return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a,b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)-(b.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}if(carry===0&&i<a.length&&a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=Math.max(this.length,i);if(a!==this){this.negative=1}return this.strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len;len=len-1|0;var a=self.words[0]|0;var b=num.words[0]|0;var r=a*b;var lo=r&67108863;var carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/67108864|0;rword=r&67108863}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out.strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid=mid+Math.imul(ah0,bl0)|0;hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0;w0&=67108863;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid=mid+Math.imul(ah1,bl0)|0;hi=Math.imul(ah1,bh0);lo=lo+Math.imul(al0,bl1)|0;mid=mid+Math.imul(al0,bh1)|0;mid=mid+Math.imul(ah0,bl1)|0;hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0;w1&=67108863;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid=mid+Math.imul(ah2,bl0)|0;hi=Math.imul(ah2,bh0);lo=lo+Math.imul(al1,bl1)|0;mid=mid+Math.imul(al1,bh1)|0;mid=mid+Math.imul(ah1,bl1)|0;hi=hi+Math.imul(ah1,bh1)|0;lo=lo+Math.imul(al0,bl2)|0;mid=mid+Math.imul(al0,bh2)|0;mid=mid+Math.imul(ah0,bl2)|0;hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0;w2&=67108863;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid=mid+Math.imul(ah3,bl0)|0;hi=Math.imul(ah3,bh0);lo=lo+Math.imul(al2,bl1)|0;mid=mid+Math.imul(al2,bh1)|0;mid=mid+Math.imul(ah2,bl1)|0;hi=hi+Math.imul(ah2,bh1)|0;lo=lo+Math.imul(al1,bl2)|0;mid=mid+Math.imul(al1,bh2)|0;mid=mid+Math.imul(ah1,bl2)|0;hi=hi+Math.imul(ah1,bh2)|0;lo=lo+Math.imul(al0,bl3)|0;mid=mid+Math.imul(al0,bh3)|0;mid=mid+Math.imul(ah0,bl3)|0;hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0;w3&=67108863;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid=mid+Math.imul(ah4,bl0)|0;hi=Math.imul(ah4,bh0);lo=lo+Math.imul(al3,bl1)|0;mid=mid+Math.imul(al3,bh1)|0;mid=mid+Math.imul(ah3,bl1)|0;hi=hi+Math.imul(ah3,bh1)|0;lo=lo+Math.imul(al2,bl2)|0;mid=mid+Math.imul(al2,bh2)|0;mid=mid+Math.imul(ah2,bl2)|0;hi=hi+Math.imul(ah2,bh2)|0;lo=lo+Math.imul(al1,bl3)|0;mid=mid+Math.imul(al1,bh3)|0;mid=mid+Math.imul(ah1,bl3)|0;hi=hi+Math.imul(ah1,bh3)|0;lo=lo+Math.imul(al0,bl4)|0;mid=mid+Math.imul(al0,bh4)|0;mid=mid+Math.imul(ah0,bl4)|0;hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0;w4&=67108863;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid=mid+Math.imul(ah5,bl0)|0;hi=Math.imul(ah5,bh0);lo=lo+Math.imul(al4,bl1)|0;mid=mid+Math.imul(al4,bh1)|0;mid=mid+Math.imul(ah4,bl1)|0;hi=hi+Math.imul(ah4,bh1)|0;lo=lo+Math.imul(al3,bl2)|0;mid=mid+Math.imul(al3,bh2)|0;mid=mid+Math.imul(ah3,bl2)|0;hi=hi+Math.imul(ah3,bh2)|0;lo=lo+Math.imul(al2,bl3)|0;mid=mid+Math.imul(al2,bh3)|0;mid=mid+Math.imul(ah2,bl3)|0;hi=hi+Math.imul(ah2,bh3)|0;lo=lo+Math.imul(al1,bl4)|0;mid=mid+Math.imul(al1,bh4)|0;mid=mid+Math.imul(ah1,bl4)|0;hi=hi+Math.imul(ah1,bh4)|0;lo=lo+Math.imul(al0,bl5)|0;mid=mid+Math.imul(al0,bh5)|0;mid=mid+Math.imul(ah0,bl5)|0;hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0;w5&=67108863;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid=mid+Math.imul(ah6,bl0)|0;hi=Math.imul(ah6,bh0);lo=lo+Math.imul(al5,bl1)|0;mid=mid+Math.imul(al5,bh1)|0;mid=mid+Math.imul(ah5,bl1)|0;hi=hi+Math.imul(ah5,bh1)|0;lo=lo+Math.imul(al4,bl2)|0;mid=mid+Math.imul(al4,bh2)|0;mid=mid+Math.imul(ah4,bl2)|0;hi=hi+Math.imul(ah4,bh2)|0;lo=lo+Math.imul(al3,bl3)|0;mid=mid+Math.imul(al3,bh3)|0;mid=mid+Math.imul(ah3,bl3)|0;hi=hi+Math.imul(ah3,bh3)|0;lo=lo+Math.imul(al2,bl4)|0;mid=mid+Math.imul(al2,bh4)|0;mid=mid+Math.imul(ah2,bl4)|0;hi=hi+Math.imul(ah2,bh4)|0;lo=lo+Math.imul(al1,bl5)|0;mid=mid+Math.imul(al1,bh5)|0;mid=mid+Math.imul(ah1,bl5)|0;hi=hi+Math.imul(ah1,bh5)|0;lo=lo+Math.imul(al0,bl6)|0;mid=mid+Math.imul(al0,bh6)|0;mid=mid+Math.imul(ah0,bl6)|0;hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0;w6&=67108863;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid=mid+Math.imul(ah7,bl0)|0;hi=Math.imul(ah7,bh0);lo=lo+Math.imul(al6,bl1)|0;mid=mid+Math.imul(al6,bh1)|0;mid=mid+Math.imul(ah6,bl1)|0;hi=hi+Math.imul(ah6,bh1)|0;lo=lo+Math.imul(al5,bl2)|0;mid=mid+Math.imul(al5,bh2)|0;mid=mid+Math.imul(ah5,bl2)|0;hi=hi+Math.imul(ah5,bh2)|0;lo=lo+Math.imul(al4,bl3)|0;mid=mid+Math.imul(al4,bh3)|0;mid=mid+Math.imul(ah4,bl3)|0;hi=hi+Math.imul(ah4,bh3)|0;lo=lo+Math.imul(al3,bl4)|0;mid=mid+Math.imul(al3,bh4)|0;mid=mid+Math.imul(ah3,bl4)|0;hi=hi+Math.imul(ah3,bh4)|0;lo=lo+Math.imul(al2,bl5)|0;mid=mid+Math.imul(al2,bh5)|0;mid=mid+Math.imul(ah2,bl5)|0;hi=hi+Math.imul(ah2,bh5)|0;lo=lo+Math.imul(al1,bl6)|0;mid=mid+Math.imul(al1,bh6)|0;mid=mid+Math.imul(ah1,bl6)|0;hi=hi+Math.imul(ah1,bh6)|0;lo=lo+Math.imul(al0,bl7)|0;mid=mid+Math.imul(al0,bh7)|0;mid=mid+Math.imul(ah0,bl7)|0;hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0;w7&=67108863;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid=mid+Math.imul(ah8,bl0)|0;hi=Math.imul(ah8,bh0);lo=lo+Math.imul(al7,bl1)|0;mid=mid+Math.imul(al7,bh1)|0;mid=mid+Math.imul(ah7,bl1)|0;hi=hi+Math.imul(ah7,bh1)|0;lo=lo+Math.imul(al6,bl2)|0;mid=mid+Math.imul(al6,bh2)|0;mid=mid+Math.imul(ah6,bl2)|0;hi=hi+Math.imul(ah6,bh2)|0;lo=lo+Math.imul(al5,bl3)|0;mid=mid+Math.imul(al5,bh3)|0;mid=mid+Math.imul(ah5,bl3)|0;hi=hi+Math.imul(ah5,bh3)|0;lo=lo+Math.imul(al4,bl4)|0;mid=mid+Math.imul(al4,bh4)|0;mid=mid+Math.imul(ah4,bl4)|0;hi=hi+Math.imul(ah4,bh4)|0;lo=lo+Math.imul(al3,bl5)|0;mid=mid+Math.imul(al3,bh5)|0;mid=mid+Math.imul(ah3,bl5)|0;hi=hi+Math.imul(ah3,bh5)|0;lo=lo+Math.imul(al2,bl6)|0;mid=mid+Math.imul(al2,bh6)|0;mid=mid+Math.imul(ah2,bl6)|0;hi=hi+Math.imul(ah2,bh6)|0;lo=lo+Math.imul(al1,bl7)|0;mid=mid+Math.imul(al1,bh7)|0;mid=mid+Math.imul(ah1,bl7)|0;hi=hi+Math.imul(ah1,bh7)|0;lo=lo+Math.imul(al0,bl8)|0;mid=mid+Math.imul(al0,bh8)|0;mid=mid+Math.imul(ah0,bl8)|0;hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0;w8&=67108863;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid=mid+Math.imul(ah9,bl0)|0;hi=Math.imul(ah9,bh0);lo=lo+Math.imul(al8,bl1)|0;mid=mid+Math.imul(al8,bh1)|0;mid=mid+Math.imul(ah8,bl1)|0;hi=hi+Math.imul(ah8,bh1)|0;lo=lo+Math.imul(al7,bl2)|0;mid=mid+Math.imul(al7,bh2)|0;mid=mid+Math.imul(ah7,bl2)|0;hi=hi+Math.imul(ah7,bh2)|0;lo=lo+Math.imul(al6,bl3)|0;mid=mid+Math.imul(al6,bh3)|0;mid=mid+Math.imul(ah6,bl3)|0;hi=hi+Math.imul(ah6,bh3)|0;lo=lo+Math.imul(al5,bl4)|0;mid=mid+Math.imul(al5,bh4)|0;mid=mid+Math.imul(ah5,bl4)|0;hi=hi+Math.imul(ah5,bh4)|0;lo=lo+Math.imul(al4,bl5)|0;mid=mid+Math.imul(al4,bh5)|0;mid=mid+Math.imul(ah4,bl5)|0;hi=hi+Math.imul(ah4,bh5)|0;lo=lo+Math.imul(al3,bl6)|0;mid=mid+Math.imul(al3,bh6)|0;mid=mid+Math.imul(ah3,bl6)|0;hi=hi+Math.imul(ah3,bh6)|0;lo=lo+Math.imul(al2,bl7)|0;mid=mid+Math.imul(al2,bh7)|0;mid=mid+Math.imul(ah2,bl7)|0;hi=hi+Math.imul(ah2,bh7)|0;lo=lo+Math.imul(al1,bl8)|0;mid=mid+Math.imul(al1,bh8)|0;mid=mid+Math.imul(ah1,bl8)|0;hi=hi+Math.imul(ah1,bh8)|0;lo=lo+Math.imul(al0,bl9)|0;mid=mid+Math.imul(al0,bh9)|0;mid=mid+Math.imul(ah0,bl9)|0;hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0;w9&=67108863;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid=mid+Math.imul(ah9,bl1)|0;hi=Math.imul(ah9,bh1);lo=lo+Math.imul(al8,bl2)|0;mid=mid+Math.imul(al8,bh2)|0;mid=mid+Math.imul(ah8,bl2)|0;hi=hi+Math.imul(ah8,bh2)|0;lo=lo+Math.imul(al7,bl3)|0;mid=mid+Math.imul(al7,bh3)|0;mid=mid+Math.imul(ah7,bl3)|0;hi=hi+Math.imul(ah7,bh3)|0;lo=lo+Math.imul(al6,bl4)|0;mid=mid+Math.imul(al6,bh4)|0;mid=mid+Math.imul(ah6,bl4)|0;hi=hi+Math.imul(ah6,bh4)|0;lo=lo+Math.imul(al5,bl5)|0;mid=mid+Math.imul(al5,bh5)|0;mid=mid+Math.imul(ah5,bl5)|0;hi=hi+Math.imul(ah5,bh5)|0;lo=lo+Math.imul(al4,bl6)|0;mid=mid+Math.imul(al4,bh6)|0;mid=mid+Math.imul(ah4,bl6)|0;hi=hi+Math.imul(ah4,bh6)|0;lo=lo+Math.imul(al3,bl7)|0;mid=mid+Math.imul(al3,bh7)|0;mid=mid+Math.imul(ah3,bl7)|0;hi=hi+Math.imul(ah3,bh7)|0;lo=lo+Math.imul(al2,bl8)|0;mid=mid+Math.imul(al2,bh8)|0;mid=mid+Math.imul(ah2,bl8)|0;hi=hi+Math.imul(ah2,bh8)|0;lo=lo+Math.imul(al1,bl9)|0;mid=mid+Math.imul(al1,bh9)|0;mid=mid+Math.imul(ah1,bl9)|0;hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0;w10&=67108863;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid=mid+Math.imul(ah9,bl2)|0;hi=Math.imul(ah9,bh2);lo=lo+Math.imul(al8,bl3)|0;mid=mid+Math.imul(al8,bh3)|0;mid=mid+Math.imul(ah8,bl3)|0;hi=hi+Math.imul(ah8,bh3)|0;lo=lo+Math.imul(al7,bl4)|0;mid=mid+Math.imul(al7,bh4)|0;mid=mid+Math.imul(ah7,bl4)|0;hi=hi+Math.imul(ah7,bh4)|0;lo=lo+Math.imul(al6,bl5)|0;mid=mid+Math.imul(al6,bh5)|0;mid=mid+Math.imul(ah6,bl5)|0;hi=hi+Math.imul(ah6,bh5)|0;lo=lo+Math.imul(al5,bl6)|0;mid=mid+Math.imul(al5,bh6)|0;mid=mid+Math.imul(ah5,bl6)|0;hi=hi+Math.imul(ah5,bh6)|0;lo=lo+Math.imul(al4,bl7)|0;mid=mid+Math.imul(al4,bh7)|0;mid=mid+Math.imul(ah4,bl7)|0;hi=hi+Math.imul(ah4,bh7)|0;lo=lo+Math.imul(al3,bl8)|0;mid=mid+Math.imul(al3,bh8)|0;mid=mid+Math.imul(ah3,bl8)|0;hi=hi+Math.imul(ah3,bh8)|0;lo=lo+Math.imul(al2,bl9)|0;mid=mid+Math.imul(al2,bh9)|0;mid=mid+Math.imul(ah2,bl9)|0;hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0;w11&=67108863;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid=mid+Math.imul(ah9,bl3)|0;hi=Math.imul(ah9,bh3);lo=lo+Math.imul(al8,bl4)|0;mid=mid+Math.imul(al8,bh4)|0;mid=mid+Math.imul(ah8,bl4)|0;hi=hi+Math.imul(ah8,bh4)|0;lo=lo+Math.imul(al7,bl5)|0;mid=mid+Math.imul(al7,bh5)|0;mid=mid+Math.imul(ah7,bl5)|0;hi=hi+Math.imul(ah7,bh5)|0;lo=lo+Math.imul(al6,bl6)|0;mid=mid+Math.imul(al6,bh6)|0;mid=mid+Math.imul(ah6,bl6)|0;hi=hi+Math.imul(ah6,bh6)|0;lo=lo+Math.imul(al5,bl7)|0;mid=mid+Math.imul(al5,bh7)|0;mid=mid+Math.imul(ah5,bl7)|0;hi=hi+Math.imul(ah5,bh7)|0;lo=lo+Math.imul(al4,bl8)|0;mid=mid+Math.imul(al4,bh8)|0;mid=mid+Math.imul(ah4,bl8)|0;hi=hi+Math.imul(ah4,bh8)|0;lo=lo+Math.imul(al3,bl9)|0;mid=mid+Math.imul(al3,bh9)|0;mid=mid+Math.imul(ah3,bl9)|0;hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0;w12&=67108863;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid=mid+Math.imul(ah9,bl4)|0;hi=Math.imul(ah9,bh4);lo=lo+Math.imul(al8,bl5)|0;mid=mid+Math.imul(al8,bh5)|0;mid=mid+Math.imul(ah8,bl5)|0;hi=hi+Math.imul(ah8,bh5)|0;lo=lo+Math.imul(al7,bl6)|0;mid=mid+Math.imul(al7,bh6)|0;mid=mid+Math.imul(ah7,bl6)|0;hi=hi+Math.imul(ah7,bh6)|0;lo=lo+Math.imul(al6,bl7)|0;mid=mid+Math.imul(al6,bh7)|0;mid=mid+Math.imul(ah6,bl7)|0;hi=hi+Math.imul(ah6,bh7)|0;lo=lo+Math.imul(al5,bl8)|0;mid=mid+Math.imul(al5,bh8)|0;mid=mid+Math.imul(ah5,bl8)|0;hi=hi+Math.imul(ah5,bh8)|0;lo=lo+Math.imul(al4,bl9)|0;mid=mid+Math.imul(al4,bh9)|0;mid=mid+Math.imul(ah4,bl9)|0;hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0;w13&=67108863;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid=mid+Math.imul(ah9,bl5)|0;hi=Math.imul(ah9,bh5);lo=lo+Math.imul(al8,bl6)|0;mid=mid+Math.imul(al8,bh6)|0;mid=mid+Math.imul(ah8,bl6)|0;hi=hi+Math.imul(ah8,bh6)|0;lo=lo+Math.imul(al7,bl7)|0;mid=mid+Math.imul(al7,bh7)|0;mid=mid+Math.imul(ah7,bl7)|0;hi=hi+Math.imul(ah7,bh7)|0;lo=lo+Math.imul(al6,bl8)|0;mid=mid+Math.imul(al6,bh8)|0;mid=mid+Math.imul(ah6,bl8)|0;hi=hi+Math.imul(ah6,bh8)|0;lo=lo+Math.imul(al5,bl9)|0;mid=mid+Math.imul(al5,bh9)|0;mid=mid+Math.imul(ah5,bl9)|0;hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0;w14&=67108863;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid=mid+Math.imul(ah9,bl6)|0;hi=Math.imul(ah9,bh6);lo=lo+Math.imul(al8,bl7)|0;mid=mid+Math.imul(al8,bh7)|0;mid=mid+Math.imul(ah8,bl7)|0;hi=hi+Math.imul(ah8,bh7)|0;lo=lo+Math.imul(al7,bl8)|0;mid=mid+Math.imul(al7,bh8)|0;mid=mid+Math.imul(ah7,bl8)|0;hi=hi+Math.imul(ah7,bh8)|0;lo=lo+Math.imul(al6,bl9)|0;mid=mid+Math.imul(al6,bh9)|0;mid=mid+Math.imul(ah6,bl9)|0;hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0;w15&=67108863;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid=mid+Math.imul(ah9,bl7)|0;hi=Math.imul(ah9,bh7);lo=lo+Math.imul(al8,bl8)|0;mid=mid+Math.imul(al8,bh8)|0;mid=mid+Math.imul(ah8,bl8)|0;hi=hi+Math.imul(ah8,bh8)|0;lo=lo+Math.imul(al7,bl9)|0;mid=mid+Math.imul(al7,bh9)|0;mid=mid+Math.imul(ah7,bl9)|0;hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0;w16&=67108863;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid=mid+Math.imul(ah9,bl8)|0;hi=Math.imul(ah9,bh8);lo=lo+Math.imul(al8,bl9)|0;mid=mid+Math.imul(al8,bh9)|0;mid=mid+Math.imul(ah8,bl9)|0;hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0;w17&=67108863;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid=mid+Math.imul(ah9,bl9)|0;hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w18>>>26)|0;w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul){comb10MulTo=smallMulTo}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out)}else if(len<63){res=smallMulTo(this,num,out)}else if(len<1024){res=bigMulTo(this,num,out)}else{res=jumboMulTo(this,num,out)}return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i<N;i++){t[i]=this.revBin(i,l,N)}return t};FFTM.prototype.revBin=function revBin(x,l,N){if(x===0||x===N-1)return x;var rb=0;for(var i=0;i<l;i++){rb|=(x&1)<<l-i-1;x>>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++){rtws[i]=rws[rbt[i]];itws[i]=iws[rbt[i]]}};FFTM.prototype.transform=function transform(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1){var l=s<<1;var rtwdf=Math.cos(2*Math.PI/l);var itwdf=Math.sin(2*Math.PI/l);for(var p=0;p<N;p+=l){var rtwdf_=rtwdf;var itwdf_=itwdf;for(var j=0;j<s;j++){var re=rtws[p+j];var ie=itws[p+j];var ro=rtws[p+j+s];var io=itws[p+j+s];var rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro;ro=rx;rtws[p+j]=re+ro;itws[p+j]=ie+io;rtws[p+j+s]=re-ro;itws[p+j+s]=ie-io;if(j!==l){rx=rtwdf*rtwdf_-itwdf*itwdf_;itwdf_=rtwdf*itwdf_+itwdf*rtwdf_;rtwdf_=rx}}}}};FFTM.prototype.guessLen13b=function guessLen13b(n,m){var N=Math.max(m,n)|1;var odd=N&1;var i=0;for(N=N/2|0;N;N=N>>>1){i++}return 1<<i+1+odd};FFTM.prototype.conjugate=function conjugate(rws,iws,N){if(N<=1)return;for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1];rws[N-i-1]=t;t=iws[i];iws[i]=-iws[N-i-1];iws[N-i-1]=-t}};FFTM.prototype.normalize13b=function normalize13b(ws,N){var carry=0;for(var i=0;i<N/2;i++){var w=Math.round(ws[2*i+1]/N)*8192+Math.round(ws[2*i]/N)+carry;ws[i]=w&67108863;if(w<67108864){carry=0}else{carry=w/67108864|0}}return ws};FFTM.prototype.convert13b=function convert13b(ws,len,rws,N){var carry=0;for(var i=0;i<len;i++){carry=carry+(ws[i]|0);rws[2*i]=carry&8191;carry=carry>>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(i=2*len;i<N;++i){rws[i]=0}assert(carry===0);assert((carry&~8191)===0)};FFTM.prototype.stub=function stub(N){var ph=new Array(N);for(var i=0;i<N;i++){ph[i]=0}return ph};FFTM.prototype.mulp=function mulp(x,y,out){var N=2*this.guessLen13b(x.length,y.length);var rbt=this.makeRBT(N);var _=this.stub(N);var rws=new Array(N);var rwst=new Array(N);var iwst=new Array(N);var nrws=new Array(N);var nrwst=new Array(N);var niwst=new Array(N);var rmws=out.words;rmws.length=N;this.convert13b(x.words,x.length,rws,N);this.convert13b(y.words,y.length,nrws,N);this.transform(rws,_,rwst,iwst,N,rbt);this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i];rwst[i]=rx}this.conjugate(rwst,iwst,N);this.transform(rwst,iwst,rmws,_,N,rbt);this.conjugate(rmws,_,N);this.normalize13b(rmws,N);out.negative=x.negative^y.negative;out.length=x.length+y.length;return out.strip()};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.mulf=function mulf(num){var out=new BN(null);out.words=new Array(this.length+num.length);return jumboMulTo(this,num,out)};BN.prototype.imul=function imul(num){return this.clone().mulTo(num,this)};BN.prototype.imuln=function imuln(num){assert(typeof num==="number");assert(num<67108864);var carry=0;for(var i=0;i<this.length;i++){var w=(this.words[i]|0)*num;var lo=(w&67108863)+(carry&67108863);carry>>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i<w.length;i++,res=res.sqr()){if(w[i]!==0)break}if(++i<w.length){for(var q=res.sqr();i<w.length;i++,q=q.sqr()){if(w[i]===0)continue;res=res.mul(q)}}return res};BN.prototype.iushln=function iushln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=(this.words[i]|0)-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i]}for(i=0;i<s;i++){this.words[i]=0}this.length+=s}return this.strip()};BN.prototype.ishln=function ishln(bits){assert(this.negative===0);return this.iushln(bits)};BN.prototype.iushrn=function iushrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);var h;if(hint){h=(hint-hint%26)/26}else{h=0}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;h-=s;h=Math.max(0,h);if(maskedWords){for(var i=0;i<s;i++){maskedWords.words[i]=this.words[i]}maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(i=0;i<this.length;i++){this.words[i]=this.words[i+s]}}else{this.words[0]=0;this.length=1}var carry=0;for(i=this.length-1;i>=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry}if(this.length===0){this.words[0]=0;this.length=1}return this.strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s)return false;var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(this.length<=s){return this}if(r!==0){s++}this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.isubn(-num);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<num){this.words[0]=num-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(num);this.negative=1;return this}return this._iaddn(num)};BN.prototype._iaddn=function _iaddn(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1){this.words[i+1]=1}else{this.words[i+1]++}}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}}return this.strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(num,mul,shift){var len=num.length+shift;var i;this._expand(len);var w;var carry=0;for(i=0;i<num.length;i++){w=(this.words[i+shift]|0)+carry;var right=(num.words[i]|0)*mul;w-=right&67108863;carry=(w>>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i<this.length-shift;i++){w=(this.words[i+shift]|0)+carry;carry=w>>26;this.words[i+shift]=w&67108863}if(carry===0)return this.strip();assert(carry===-1);carry=0;for(i=0;i<this.length;i++){w=-(this.words[i]|0)+carry;carry=w>>26;this.words[i]=w&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i<q.length;i++){q.words[i]=0}}var diff=a.clone()._ishlnsubmul(b,1,m);if(diff.negative===0){a=diff;if(q){q.words[m]=1}}for(var j=m-1;j>=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1}}if(q){q.words[j]=qj}}if(q){q.strip()}a.strip();if(mode!=="div"&&shift!==0){a.iushrn(shift)}return{div:q||null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=="mod"){div=res.div.neg()}if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num)}}return{div:div,mod:mod}}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=="mod"){div=res.div.neg()}return{div:div,mod:res.mod}}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num)}}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this}}if(num.length===1){if(mode==="div"){return{div:this.divn(num.words[0]),mod:null}}if(mode==="mod"){return{div:null,mod:new BN(this.modn(num.words[0]))}}return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num}return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p)}else{x=x.clone()}var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp)}A.iushrn(1);B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp)}C.iushrn(1);D.iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p)}else{a=a.clone()}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd()){x1.iadd(delta)}x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd()){x2.iadd(delta)}x2.iushrn(1)}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0){res=x1}else{res=x2}if(res.cmpn(0)<0){res.iadd(p)}return res};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven()){a.iushrn(1)}while(b.isEven()){b.iushrn(1)}var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){this._expand(s+1);this.words[s]|=q;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i]|0;w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1){res=1}else{if(negative){num=-num}assert(num<=67108863,"Number is too big");var w=this.words[0]|0;res=w===num?0:w<num?-1:1}if(this.negative!==0)return-res|0;return res};BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(a<b){res=-1}else if(a>b){res=1}break}return res};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1};BN.prototype.gt=function gt(num){return this.cmp(num)===1};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0};BN.prototype.gte=function gte(num){return this.cmp(num)>=0};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1};BN.prototype.lt=function lt(num){return this.cmp(num)===-1};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0};BN.prototype.lte=function lte(num){return this.cmp(num)<=0};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0};BN.prototype.eq=function eq(num){return this.cmp(num)===0};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{if(r.strip!==undefined){r.strip()}else{r._strip()}}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i<outLen;i++){output.words[i]=input.words[i]}output.length=outLen;if(input.length<=9){input.words[0]=0;input.length=1;return}var prev=input.words[9];output.words[output.length++]=prev&mask;for(i=10;i<input.length;i++){var next=input.words[i]|0;input.words[i-10]=(next&mask)<<4|prev>>>22;prev=next}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10}else{input.length-=9}};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var lo=0;for(var i=0;i<num.length;i++){var w=num.words[i]|0;lo+=w*977;num.words[i]=lo&67108863;lo=w*64+(lo/67108864|0)}if(num.words[num.length-1]===0){num.length--;if(num.words[num.length-1]===0){num.length--}}return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=(num.words[i]|0)*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0){num.words[num.length++]=carry}return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256"){prime=new K256}else if(name==="p224"){prime=new P224}else if(name==="p192"){prime=new P192}else if(name==="p25519"){prime=new P25519}else{throw new Error("Unknown prime "+name)}primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{assert(m.gtn(1),"modulus must be greater than 1");this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone()}return this.m.sub(a)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone())};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1)}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne)}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr()}assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._invmp(this.m);if(inv.negative!==0){inv.negative=0;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){if(num.isZero())return new BN(1).toRed(this);if(num.cmpn(1)===0)return a.clone();var windowSize=4;var wnd=new Array(1<<windowSize);wnd[0]=new BN(1).toRed(this);wnd[1]=a;for(var i=2;i<wnd.length;i++){wnd[i]=this.mul(wnd[i-1],a)}var res=wnd[0];var current=0;var currentLen=0;var start=num.bitLength()%26;if(start===0){start=26}for(i=num.length-1;i>=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res)}if(bit===0&&current===0){currentLen=0;continue}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0}start=26}return res};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(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)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module==="undefined"||module,this)},{buffer:141}],228:[function(require,module,exports){module.exports={_args:[["elliptic@6.5.3","/app"]],_development:true,_from:"elliptic@6.5.3",_id:"elliptic@6.5.3",_inBundle:false,_integrity:"sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",_location:"/elliptic",_phantomChildren:{},_requested:{type:"version",registry:true,raw:"elliptic@6.5.3",name:"elliptic",escapedName:"elliptic",rawSpec:"6.5.3",saveSpec:null,fetchSpec:"6.5.3"},_requiredBy:["/browserify-sign","/create-ecdh"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",_spec:"6.5.3",_where:"/app",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},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"},description:"EC cryptography",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"},files:["lib"],homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",name:"elliptic",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},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",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.5.3"}},{}],229:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;var MD5=require("md5.js");function EVP_BytesToKey(password,salt,keyBits,ivLen){if(!Buffer.isBuffer(password))password=Buffer.from(password,"binary");if(salt){if(!Buffer.isBuffer(salt))salt=Buffer.from(salt,"binary");if(salt.length!==8)throw new RangeError("salt should be Buffer with 8 byte length")}var keyLen=keyBits/8;var key=Buffer.alloc(keyLen);var iv=Buffer.alloc(ivLen||0);var tmp=Buffer.alloc(0);while(keyLen>0||ivLen>0){var hash=new MD5;hash.update(tmp);hash.update(password);if(salt)hash.update(salt);tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length);tmp.copy(key,keyStart,0,used);keyLen-=used}if(used<tmp.length&&ivLen>0){var ivStart=iv.length-ivLen;var length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length);ivLen-=length}}tmp.fill(0);return{key:key,iv:iv}}module.exports=EVP_BytesToKey},{"md5.js":250,"safe-buffer":293}],230:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer;var Transform=require("stream").Transform;var inherits=require("inherits");function throwIfNotStringOrBuffer(val,prefix){if(!Buffer.isBuffer(val)&&typeof val!=="string"){throw new TypeError(prefix+" must be a string or a buffer")}}function HashBase(blockSize){Transform.call(this);this._block=Buffer.allocUnsafe(blockSize);this._blockSize=blockSize;this._blockOffset=0;this._length=[0,0,0,0];this._finalized=false}inherits(HashBase,Transform);HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)};HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)};HashBase.prototype.update=function(data,encoding){throwIfNotStringOrBuffer(data,"Data");if(this._finalized)throw new Error("Digest already called");if(!Buffer.isBuffer(data))data=Buffer.from(data,encoding);var block=this._block;var offset=0;while(this._blockOffset+data.length-offset>=this._blockSize){for(var i=this._blockOffset;i<this._blockSize;)block[i++]=data[offset++];this._update();this._blockOffset=0}while(offset<data.length)block[this._blockOffset++]=data[offset++];for(var j=0,carry=data.length*8;carry>0;++j){this._length[j]+=carry;carry=this._length[j]/4294967296|0;if(carry>0)this._length[j]-=4294967296*carry}return this};HashBase.prototype._update=function(){throw new Error("_update is not implemented")};HashBase.prototype.digest=function(encoding){if(this._finalized)throw new Error("Digest already called");this._finalized=true;var digest=this._digest();if(encoding!==undefined)digest=digest.toString(encoding);this._block.fill(0);this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return digest};HashBase.prototype._digest=function(){throw new Error("_digest is not implemented")};module.exports=HashBase},{inherits:245,"safe-buffer":293,stream:302}],231:[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils");hash.common=require("./hash/common");hash.sha=require("./hash/sha");hash.ripemd=require("./hash/ripemd");hash.hmac=require("./hash/hmac");hash.sha1=hash.sha.sha1;hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.sha384=hash.sha.sha384;hash.sha512=hash.sha.sha512;hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":232,"./hash/hmac":233,"./hash/ripemd":234,"./hash/sha":235,"./hash/utils":242}],232:[function(require,module,exports){"use strict";var utils=require("./utils");var assert=require("minimalistic-assert");function BlockHash(){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}exports.BlockHash=BlockHash;BlockHash.prototype.update=function update(msg,enc){msg=utils.toArray(msg,enc);if(!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);this.pendingTotal+=msg.length;if(this.pending.length>=this._delta8){msg=this.pending;var r=msg.length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length);if(this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i<msg.length;i+=this._delta32)this._update(msg,i,i+this._delta32)}return this};BlockHash.prototype.digest=function digest(enc){this.update(this._pad());assert(this.pending===null);return this._digest(enc)};BlockHash.prototype._pad=function pad(){var len=this.pendingTotal;var bytes=this._delta8;var k=bytes-(len+this.padLength)%bytes;var res=new Array(k+this.padLength);res[0]=128;for(var i=1;i<k;i++)res[i]=0;len<<=3;if(this.endian==="big"){for(var t=8;t<this.padLength;t++)res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=len>>>24&255;res[i++]=len>>>16&255;res[i++]=len>>>8&255;res[i++]=len&255}else{res[i++]=len&255;res[i++]=len>>>8&255;res[i++]=len>>>16&255;res[i++]=len>>>24&255;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;for(t=8;t<this.padLength;t++)res[i++]=0}return res}},{"./utils":242,"minimalistic-assert":253}],233:[function(require,module,exports){"use strict";var utils=require("./utils");var assert=require("minimalistic-assert");function Hmac(hash,key,enc){if(!(this instanceof Hmac))return new Hmac(hash,key,enc);this.Hash=hash;this.blockSize=hash.blockSize/8;this.outSize=hash.outSize/8;this.inner=null;this.outer=null;this._init(utils.toArray(key,enc))}module.exports=Hmac;Hmac.prototype._init=function init(key){if(key.length>this.blockSize)key=(new this.Hash).update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i<this.blockSize;i++)key.push(0);for(i=0;i<key.length;i++)key[i]^=54;this.inner=(new this.Hash).update(key);for(i=0;i<key.length;i++)key[i]^=106;this.outer=(new this.Hash).update(key)};Hmac.prototype.update=function update(msg,enc){this.inner.update(msg,enc);return this};Hmac.prototype.digest=function digest(enc){this.outer.update(this.inner.digest());return this.outer.digest(enc)}},{"./utils":242,"minimalistic-assert":253}],234:[function(require,module,exports){"use strict";var utils=require("./utils");var common=require("./common");var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_3=utils.sum32_3;var sum32_4=utils.sum32_4;var BlockHash=common.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;BlockHash.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.endian="little"}utils.inherits(RIPEMD160,BlockHash);exports.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.padLength=64;RIPEMD160.prototype._update=function update(msg,start){var A=this.h[0];var B=this.h[1];var C=this.h[2];var D=this.h[3];var E=this.h[4];var Ah=A;var Bh=B;var Ch=C;var Dh=D;var Eh=E;for(var j=0;j<80;j++){var T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]+start],K(j)),s[j]),E);A=E;E=D;D=rotl32(C,10);C=B;B=T;T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]+start],Kh(j)),sh[j]),Eh);Ah=Eh;Eh=Dh;Dh=rotl32(Ch,10);Ch=Bh;Bh=T}T=sum32_3(this.h[1],C,Dh);this.h[1]=sum32_3(this.h[2],D,Eh);this.h[2]=sum32_3(this.h[3],E,Ah);this.h[3]=sum32_3(this.h[4],A,Bh);this.h[4]=sum32_3(this.h[0],B,Ch);this.h[0]=T};RIPEMD160.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"little");else return utils.split32(this.h,"little")};function f(j,x,y,z){if(j<=15)return x^y^z;else if(j<=31)return x&y|~x&z;else if(j<=47)return(x|~y)^z;else if(j<=63)return x&z|y&~z;else return x^(y|~z)}function K(j){if(j<=15)return 0;else if(j<=31)return 1518500249;else if(j<=47)return 1859775393;else if(j<=63)return 2400959708;else return 2840853838}function Kh(j){if(j<=15)return 1352829926;else if(j<=31)return 1548603684;else if(j<=47)return 1836072691;else if(j<=63)return 2053994217;else return 0}var r=[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];var rh=[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];var 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];var sh=[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]},{"./common":232,"./utils":242}],235:[function(require,module,exports){"use strict";exports.sha1=require("./sha/1");exports.sha224=require("./sha/224");exports.sha256=require("./sha/256");exports.sha384=require("./sha/384");exports.sha512=require("./sha/512")},{"./sha/1":236,"./sha/224":237,"./sha/256":238,"./sha/384":239,"./sha/512":240}],236:[function(require,module,exports){"use strict";var utils=require("../utils");var common=require("../common");var shaCommon=require("./common");var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_5=utils.sum32_5;var ft_1=shaCommon.ft_1;var BlockHash=common.BlockHash;var sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.W=new Array(80)}utils.inherits(SHA1,BlockHash);module.exports=SHA1;SHA1.blockSize=512;SHA1.outSize=160;SHA1.hmacStrength=80;SHA1.padLength=64;SHA1.prototype._update=function _update(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i<W.length;i++)W[i]=rotl32(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);var a=this.h[0];var b=this.h[1];var c=this.h[2];var d=this.h[3];var e=this.h[4];for(i=0;i<W.length;i++){var s=~~(i/20);var t=sum32_5(rotl32(a,5),ft_1(s,b,c,d),e,W[i],sha1_K[s]);e=d;d=c;c=rotl32(b,30);b=a;a=t}this.h[0]=sum32(this.h[0],a);this.h[1]=sum32(this.h[1],b);this.h[2]=sum32(this.h[2],c);this.h[3]=sum32(this.h[3],d);this.h[4]=sum32(this.h[4],e)};SHA1.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")}},{"../common":232,"../utils":242,"./common":241}],237:[function(require,module,exports){"use strict";var utils=require("../utils");var SHA256=require("./256");function SHA224(){if(!(this instanceof SHA224))return new SHA224;SHA256.call(this);this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}utils.inherits(SHA224,SHA256);module.exports=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.padLength=64;SHA224.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h.slice(0,7),"big");else return utils.split32(this.h.slice(0,7),"big")}},{"../utils":242,"./256":238}],238:[function(require,module,exports){"use strict";var utils=require("../utils");var common=require("../common");var shaCommon=require("./common");var assert=require("minimalistic-assert");var sum32=utils.sum32;var sum32_4=utils.sum32_4;var sum32_5=utils.sum32_5;var ch32=shaCommon.ch32;var maj32=shaCommon.maj32;var s0_256=shaCommon.s0_256;var s1_256=shaCommon.s1_256;var g0_256=shaCommon.g0_256;var g1_256=shaCommon.g1_256;var BlockHash=common.BlockHash;var sha256_K=[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 SHA256(){if(!(this instanceof SHA256))return new SHA256;BlockHash.call(this);this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];this.k=sha256_K;this.W=new Array(64)}utils.inherits(SHA256,BlockHash);module.exports=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.padLength=64;SHA256.prototype._update=function _update(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i<W.length;i++)W[i]=sum32_4(g1_256(W[i-2]),W[i-7],g0_256(W[i-15]),W[i-16]);var a=this.h[0];var b=this.h[1];var c=this.h[2];var d=this.h[3];var e=this.h[4];var f=this.h[5];var g=this.h[6];var h=this.h[7];assert(this.k.length===W.length);for(i=0;i<W.length;i++){var T1=sum32_5(h,s1_256(e),ch32(e,f,g),this.k[i],W[i]);var T2=sum32(s0_256(a),maj32(a,b,c));h=g;g=f;f=e;e=sum32(d,T1);d=c;c=b;b=a;a=sum32(T1,T2)}this.h[0]=sum32(this.h[0],a);this.h[1]=sum32(this.h[1],b);this.h[2]=sum32(this.h[2],c);this.h[3]=sum32(this.h[3],d);this.h[4]=sum32(this.h[4],e);this.h[5]=sum32(this.h[5],f);this.h[6]=sum32(this.h[6],g);this.h[7]=sum32(this.h[7],h)};SHA256.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")}},{"../common":232,"../utils":242,"./common":241,"minimalistic-assert":253}],239:[function(require,module,exports){"use strict";var utils=require("../utils");var SHA512=require("./512");function SHA384(){if(!(this instanceof SHA384))return new SHA384;SHA512.call(this);this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}utils.inherits(SHA384,SHA512);module.exports=SHA384;SHA384.blockSize=1024;SHA384.outSize=384;SHA384.hmacStrength=192;SHA384.padLength=128;SHA384.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h.slice(0,12),"big");else return utils.split32(this.h.slice(0,12),"big")}},{"../utils":242,"./512":240}],240:[function(require,module,exports){"use strict";var utils=require("../utils");var common=require("../common");var assert=require("minimalistic-assert");var rotr64_hi=utils.rotr64_hi;var rotr64_lo=utils.rotr64_lo;var shr64_hi=utils.shr64_hi;var shr64_lo=utils.shr64_lo;var sum64=utils.sum64;var sum64_hi=utils.sum64_hi;var sum64_lo=utils.sum64_lo;var sum64_4_hi=utils.sum64_4_hi;var sum64_4_lo=utils.sum64_4_lo;var sum64_5_hi=utils.sum64_5_hi;var sum64_5_lo=utils.sum64_5_lo;var BlockHash=common.BlockHash;var sha512_K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function SHA512(){if(!(this instanceof SHA512))return new SHA512;BlockHash.call(this);this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209];this.k=sha512_K;this.W=new Array(160)}utils.inherits(SHA512,BlockHash);module.exports=SHA512;SHA512.blockSize=1024;SHA512.outSize=512;SHA512.hmacStrength=192;SHA512.padLength=128;SHA512.prototype._prepareBlock=function _prepareBlock(msg,start){var W=this.W;for(var i=0;i<32;i++)W[i]=msg[start+i];for(;i<W.length;i+=2){var c0_hi=g1_512_hi(W[i-4],W[i-3]);var c0_lo=g1_512_lo(W[i-4],W[i-3]);var c1_hi=W[i-14];var c1_lo=W[i-13];var c2_hi=g0_512_hi(W[i-30],W[i-29]);var c2_lo=g0_512_lo(W[i-30],W[i-29]);var c3_hi=W[i-32];var c3_lo=W[i-31];W[i]=sum64_4_hi(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo);W[i+1]=sum64_4_lo(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo)}};SHA512.prototype._update=function _update(msg,start){this._prepareBlock(msg,start);var W=this.W;var ah=this.h[0];var al=this.h[1];var bh=this.h[2];var bl=this.h[3];var ch=this.h[4];var cl=this.h[5];var dh=this.h[6];var dl=this.h[7];var eh=this.h[8];var el=this.h[9];var fh=this.h[10];var fl=this.h[11];var gh=this.h[12];var gl=this.h[13];var hh=this.h[14];var hl=this.h[15];assert(this.k.length===W.length);for(var i=0;i<W.length;i+=2){var c0_hi=hh;var c0_lo=hl;var c1_hi=s1_512_hi(eh,el);var c1_lo=s1_512_lo(eh,el);var c2_hi=ch64_hi(eh,el,fh,fl,gh,gl);var c2_lo=ch64_lo(eh,el,fh,fl,gh,gl);var c3_hi=this.k[i];var c3_lo=this.k[i+1];var c4_hi=W[i];var c4_lo=W[i+1];var T1_hi=sum64_5_hi(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo,c4_hi,c4_lo);var T1_lo=sum64_5_lo(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo,c4_hi,c4_lo);c0_hi=s0_512_hi(ah,al);c0_lo=s0_512_lo(ah,al);c1_hi=maj64_hi(ah,al,bh,bl,ch,cl);c1_lo=maj64_lo(ah,al,bh,bl,ch,cl);var T2_hi=sum64_hi(c0_hi,c0_lo,c1_hi,c1_lo);var T2_lo=sum64_lo(c0_hi,c0_lo,c1_hi,c1_lo);hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;eh=sum64_hi(dh,dl,T1_hi,T1_lo);el=sum64_lo(dl,dl,T1_hi,T1_lo);dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;ah=sum64_hi(T1_hi,T1_lo,T2_hi,T2_lo);al=sum64_lo(T1_hi,T1_lo,T2_hi,T2_lo)}sum64(this.h,0,ah,al);sum64(this.h,2,bh,bl);sum64(this.h,4,ch,cl);sum64(this.h,6,dh,dl);sum64(this.h,8,eh,el);sum64(this.h,10,fh,fl);sum64(this.h,12,gh,gl);sum64(this.h,14,hh,hl)};SHA512.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")};function ch64_hi(xh,xl,yh,yl,zh){var r=xh&yh^~xh&zh;if(r<0)r+=4294967296;return r}function ch64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^~xl&zl;if(r<0)r+=4294967296;return r}function maj64_hi(xh,xl,yh,yl,zh){var r=xh&yh^xh&zh^yh&zh;if(r<0)r+=4294967296;return r}function maj64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^xl&zl^yl&zl;if(r<0)r+=4294967296;return r}function s0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,28);var c1_hi=rotr64_hi(xl,xh,2);var c2_hi=rotr64_hi(xl,xh,7);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function s0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,28);var c1_lo=rotr64_lo(xl,xh,2);var c2_lo=rotr64_lo(xl,xh,7);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function s1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,14);var c1_hi=rotr64_hi(xh,xl,18);var c2_hi=rotr64_hi(xl,xh,9);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function s1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,14);var c1_lo=rotr64_lo(xh,xl,18);var c2_lo=rotr64_lo(xl,xh,9);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function g0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,1);var c1_hi=rotr64_hi(xh,xl,8);var c2_hi=shr64_hi(xh,xl,7);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function g0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,1);var c1_lo=rotr64_lo(xh,xl,8);var c2_lo=shr64_lo(xh,xl,7);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function g1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,19);var c1_hi=rotr64_hi(xl,xh,29);var c2_hi=shr64_hi(xh,xl,6);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function g1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,19);var c1_lo=rotr64_lo(xl,xh,29);var c2_lo=shr64_lo(xh,xl,6);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}},{"../common":232,"../utils":242,"minimalistic-assert":253}],241:[function(require,module,exports){"use strict";var utils=require("../utils");var rotr32=utils.rotr32;function ft_1(s,x,y,z){if(s===0)return ch32(x,y,z);if(s===1||s===3)return p32(x,y,z);if(s===2)return maj32(x,y,z)}exports.ft_1=ft_1;function ch32(x,y,z){return x&y^~x&z}exports.ch32=ch32;function maj32(x,y,z){return x&y^x&z^y&z}exports.maj32=maj32;function p32(x,y,z){return x^y^z}exports.p32=p32;function s0_256(x){return rotr32(x,2)^rotr32(x,13)^rotr32(x,22)}exports.s0_256=s0_256;function s1_256(x){return rotr32(x,6)^rotr32(x,11)^rotr32(x,25)}exports.s1_256=s1_256;function g0_256(x){return rotr32(x,7)^rotr32(x,18)^x>>>3}exports.g0_256=g0_256;function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}exports.g1_256=g1_256},{"../utils":242}],242:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");exports.inherits=inherits;function isSurrogatePair(msg,i){if((msg.charCodeAt(i)&64512)!==55296){return false}if(i<0||i+1>=msg.length){return false}return(msg.charCodeAt(i+1)&64512)===56320}function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg==="string"){if(!enc){var p=0;for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);if(c<128){res[p++]=c}else if(c<2048){res[p++]=c>>6|192;res[p++]=c&63|128}else if(isSurrogatePair(msg,i)){c=65536+((c&1023)<<10)+(msg.charCodeAt(++i)&1023);res[p++]=c>>18|240;res[p++]=c>>12&63|128;res[p++]=c>>6&63|128;res[p++]=c&63|128}else{res[p++]=c>>12|224;res[p++]=c>>6&63|128;res[p++]=c&63|128}}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}}else{for(i=0;i<msg.length;i++)res[i]=msg[i]|0}return res}exports.toArray=toArray;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}exports.toHex=toHex;function htonl(w){var res=w>>>24|w>>>8&65280|w<<8&16711680|(w&255)<<24;return res>>>0}exports.htonl=htonl;function toHex32(msg,endian){var res="";for(var i=0;i<msg.length;i++){var w=msg[i];if(endian==="little")w=htonl(w);res+=zero8(w.toString(16))}return res}exports.toHex32=toHex32;function zero2(word){if(word.length===1)return"0"+word;else return word}exports.zero2=zero2;function zero8(word){if(word.length===7)return"0"+word;else if(word.length===6)return"00"+word;else if(word.length===5)return"000"+word;else if(word.length===4)return"0000"+word;else if(word.length===3)return"00000"+word;else if(word.length===2)return"000000"+word;else if(word.length===1)return"0000000"+word;else return word}exports.zero8=zero8;function join32(msg,start,end,endian){var len=end-start;assert(len%4===0);var res=new Array(len/4);for(var i=0,k=start;i<res.length;i++,k+=4){var w;if(endian==="big")w=msg[k]<<24|msg[k+1]<<16|msg[k+2]<<8|msg[k+3];else w=msg[k+3]<<24|msg[k+2]<<16|msg[k+1]<<8|msg[k];res[i]=w>>>0}return res}exports.join32=join32;function split32(msg,endian){var res=new Array(msg.length*4);for(var i=0,k=0;i<msg.length;i++,k+=4){var m=msg[i];if(endian==="big"){res[k]=m>>>24;res[k+1]=m>>>16&255;res[k+2]=m>>>8&255;res[k+3]=m&255}else{res[k+3]=m>>>24;res[k+2]=m>>>16&255;res[k+1]=m>>>8&255;res[k]=m&255}}return res}exports.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b}exports.rotr32=rotr32;function rotl32(w,b){return w<<b|w>>>32-b}exports.rotl32=rotl32;function sum32(a,b){return a+b>>>0}exports.sum32=sum32;function sum32_3(a,b,c){return a+b+c>>>0}exports.sum32_3=sum32_3;function sum32_4(a,b,c,d){return a+b+c+d>>>0}exports.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){return a+b+c+d+e>>>0}exports.sum32_5=sum32_5;function sum64(buf,pos,ah,al){var bh=buf[pos];var bl=buf[pos+1];var lo=al+bl>>>0;var hi=(lo<al?1:0)+ah+bh;buf[pos]=hi>>>0;buf[pos+1]=lo}exports.sum64=sum64;function sum64_hi(ah,al,bh,bl){var lo=al+bl>>>0;var hi=(lo<al?1:0)+ah+bh;return hi>>>0}exports.sum64_hi=sum64_hi;function sum64_lo(ah,al,bh,bl){var lo=al+bl;return lo>>>0}exports.sum64_lo=sum64_lo;function sum64_4_hi(ah,al,bh,bl,ch,cl,dh,dl){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo<al?1:0;lo=lo+cl>>>0;carry+=lo<cl?1:0;lo=lo+dl>>>0;carry+=lo<dl?1:0;var hi=ah+bh+ch+dh+carry;return hi>>>0}exports.sum64_4_hi=sum64_4_hi;function sum64_4_lo(ah,al,bh,bl,ch,cl,dh,dl){var lo=al+bl+cl+dl;return lo>>>0}exports.sum64_4_lo=sum64_4_lo;function sum64_5_hi(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo<al?1:0;lo=lo+cl>>>0;carry+=lo<cl?1:0;lo=lo+dl>>>0;carry+=lo<dl?1:0;lo=lo+el>>>0;carry+=lo<el?1:0;var hi=ah+bh+ch+dh+eh+carry;return hi>>>0}exports.sum64_5_hi=sum64_5_hi;function sum64_5_lo(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var lo=al+bl+cl+dl+el;return lo>>>0}exports.sum64_5_lo=sum64_5_lo;function rotr64_hi(ah,al,num){var r=al<<32-num|ah>>>num;return r>>>0}exports.rotr64_hi=rotr64_hi;function rotr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.rotr64_lo=rotr64_lo;function shr64_hi(ah,al,num){return ah>>>num}exports.shr64_hi=shr64_hi;function shr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.shr64_lo=shr64_lo},{inherits:245,"minimalistic-assert":253}],243:[function(require,module,exports){"use strict";var hash=require("hash.js");var utils=require("minimalistic-crypto-utils");var assert=require("minimalistic-assert");function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash;this.predResist=!!options.predResist;this.outLen=this.hash.outSize;this.minEntropy=options.minEntropy||this.hash.hmacStrength;this._reseed=null;this.reseedInterval=null;this.K=null;this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||"hex");var nonce=utils.toArray(options.nonce,options.nonceEnc||"hex");var pers=utils.toArray(options.pers,options.persEnc||"hex");assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function init(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++){this.K[i]=0;this.V[i]=1}this._update(seed);this._reseed=1;this.reseedInterval=281474976710656};HmacDRBG.prototype._hmac=function hmac(){return new hash.hmac(this.hash,this.K)};HmacDRBG.prototype._update=function update(seed){var kmac=this._hmac().update(this.V).update([0]);if(seed)kmac=kmac.update(seed);this.K=kmac.digest();this.V=this._hmac().update(this.V).digest();if(!seed)return;this.K=this._hmac().update(this.V).update([1]).update(seed).digest();this.V=this._hmac().update(this.V).digest()};HmacDRBG.prototype.reseed=function reseed(entropy,entropyEnc,add,addEnc){if(typeof entropyEnc!=="string"){addEnc=add;add=entropyEnc;entropyEnc=null}entropy=utils.toArray(entropy,entropyEnc);add=utils.toArray(add,addEnc);assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._update(entropy.concat(add||[]));this._reseed=1};HmacDRBG.prototype.generate=function generate(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");if(typeof enc!=="string"){addEnc=add;add=enc;enc=null}if(add){add=utils.toArray(add,addEnc||"hex");this._update(add)}var temp=[];while(temp.length<len){this.V=this._hmac().update(this.V).digest();temp=temp.concat(this.V)}var res=temp.slice(0,len);this._update(add);this._reseed++;return utils.encode(res,enc)}},{"hash.js":231,"minimalistic-assert":253,"minimalistic-crypto-utils":254}],244:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],245:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}}else{module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}}},{}],246:[function(require,module,exports){module.exports=function(obj){return obj!=null&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer)};function isBuffer(obj){return!!obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj)}function isSlowBuffer(obj){return typeof obj.readFloatLE==="function"&&typeof obj.slice==="function"&&isBuffer(obj.slice(0,0))}},{}],247:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],248:[function(require,module,exports){!function(e){function t(e,t){"use strict";var r,a=t.ready.then(function(){function a(){if(0!==r._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var t=["crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],a=[E,x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,z,j,q,W,J,Q,Z,$,ee,te,re,ae,_e,ne,se,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,ze,je,qe,We,Je,Qe,Ze,$e,et,tt,rt,at,_t,nt,st,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt,Et,xt,kt,St,Tt,wt,Yt,Bt,At,Kt,Mt,It,Nt,Lt,Ut,Ot,Ct,Rt,Pt,Gt,Xt,Dt,Ft,Vt,Ht,zt,jt,qt],_=0;_<a.length;_++)"function"==typeof r["_"+t[_]]&&(e[t[_]]=a[_]);var n=["SODIUM_LIBRARY_VERSION_MAJOR","SODIUM_LIBRARY_VERSION_MINOR","crypto_aead_chacha20poly1305_ABYTES","crypto_aead_chacha20poly1305_IETF_ABYTES","crypto_aead_chacha20poly1305_IETF_KEYBYTES","crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX","crypto_aead_chacha20poly1305_IETF_NPUBBYTES","crypto_aead_chacha20poly1305_IETF_NSECBYTES","crypto_aead_chacha20poly1305_KEYBYTES","crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX","crypto_aead_chacha20poly1305_NPUBBYTES","crypto_aead_chacha20poly1305_NSECBYTES","crypto_aead_chacha20poly1305_ietf_ABYTES","crypto_aead_chacha20poly1305_ietf_KEYBYTES","crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX","crypto_aead_chacha20poly1305_ietf_NPUBBYTES","crypto_aead_chacha20poly1305_ietf_NSECBYTES","crypto_aead_xchacha20poly1305_IETF_ABYTES","crypto_aead_xchacha20poly1305_IETF_KEYBYTES","crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX","crypto_aead_xchacha20poly1305_IETF_NPUBBYTES","crypto_aead_xchacha20poly1305_IETF_NSECBYTES","crypto_aead_xchacha20poly1305_ietf_ABYTES","crypto_aead_xchacha20poly1305_ietf_KEYBYTES","crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX","crypto_aead_xchacha20poly1305_ietf_NPUBBYTES","crypto_aead_xchacha20poly1305_ietf_NSECBYTES","crypto_auth_BYTES","crypto_auth_KEYBYTES","crypto_auth_hmacsha256_BYTES","crypto_auth_hmacsha256_KEYBYTES","crypto_auth_hmacsha512256_BYTES","crypto_auth_hmacsha512256_KEYBYTES","crypto_auth_hmacsha512_BYTES","crypto_auth_hmacsha512_KEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_MACBYTES","crypto_box_MESSAGEBYTES_MAX","crypto_box_NONCEBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SEALBYTES","crypto_box_SECRETKEYBYTES","crypto_box_SEEDBYTES","crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES","crypto_box_curve25519xchacha20poly1305_MACBYTES","crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX","crypto_box_curve25519xchacha20poly1305_NONCEBYTES","crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES","crypto_box_curve25519xchacha20poly1305_SEALBYTES","crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES","crypto_box_curve25519xchacha20poly1305_SEEDBYTES","crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES","crypto_box_curve25519xsalsa20poly1305_MACBYTES","crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX","crypto_box_curve25519xsalsa20poly1305_NONCEBYTES","crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES","crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES","crypto_box_curve25519xsalsa20poly1305_SEEDBYTES","crypto_core_ed25519_BYTES","crypto_core_ed25519_HASHBYTES","crypto_core_ed25519_NONREDUCEDSCALARBYTES","crypto_core_ed25519_SCALARBYTES","crypto_core_ed25519_UNIFORMBYTES","crypto_core_hchacha20_CONSTBYTES","crypto_core_hchacha20_INPUTBYTES","crypto_core_hchacha20_KEYBYTES","crypto_core_hchacha20_OUTPUTBYTES","crypto_core_hsalsa20_CONSTBYTES","crypto_core_hsalsa20_INPUTBYTES","crypto_core_hsalsa20_KEYBYTES","crypto_core_hsalsa20_OUTPUTBYTES","crypto_core_ristretto255_BYTES","crypto_core_ristretto255_HASHBYTES","crypto_core_ristretto255_NONREDUCEDSCALARBYTES","crypto_core_ristretto255_SCALARBYTES","crypto_core_salsa2012_CONSTBYTES","crypto_core_salsa2012_INPUTBYTES","crypto_core_salsa2012_KEYBYTES","crypto_core_salsa2012_OUTPUTBYTES","crypto_core_salsa20_CONSTBYTES","crypto_core_salsa20_INPUTBYTES","crypto_core_salsa20_KEYBYTES","crypto_core_salsa20_OUTPUTBYTES","crypto_generichash_BYTES","crypto_generichash_BYTES_MAX","crypto_generichash_BYTES_MIN","crypto_generichash_KEYBYTES","crypto_generichash_KEYBYTES_MAX","crypto_generichash_KEYBYTES_MIN","crypto_generichash_blake2b_BYTES","crypto_generichash_blake2b_BYTES_MAX","crypto_generichash_blake2b_BYTES_MIN","crypto_generichash_blake2b_KEYBYTES","crypto_generichash_blake2b_KEYBYTES_MAX","crypto_generichash_blake2b_KEYBYTES_MIN","crypto_generichash_blake2b_PERSONALBYTES","crypto_generichash_blake2b_SALTBYTES","crypto_hash_BYTES","crypto_hash_sha256_BYTES","crypto_hash_sha512_BYTES","crypto_kdf_BYTES_MAX","crypto_kdf_BYTES_MIN","crypto_kdf_CONTEXTBYTES","crypto_kdf_KEYBYTES","crypto_kdf_blake2b_BYTES_MAX","crypto_kdf_blake2b_BYTES_MIN","crypto_kdf_blake2b_CONTEXTBYTES","crypto_kdf_blake2b_KEYBYTES","crypto_kx_PUBLICKEYBYTES","crypto_kx_SECRETKEYBYTES","crypto_kx_SEEDBYTES","crypto_kx_SESSIONKEYBYTES","crypto_onetimeauth_BYTES","crypto_onetimeauth_KEYBYTES","crypto_onetimeauth_poly1305_BYTES","crypto_onetimeauth_poly1305_KEYBYTES","crypto_pwhash_ALG_ARGON2I13","crypto_pwhash_ALG_ARGON2ID13","crypto_pwhash_ALG_DEFAULT","crypto_pwhash_BYTES_MAX","crypto_pwhash_BYTES_MIN","crypto_pwhash_MEMLIMIT_INTERACTIVE","crypto_pwhash_MEMLIMIT_MAX","crypto_pwhash_MEMLIMIT_MIN","crypto_pwhash_MEMLIMIT_MODERATE","crypto_pwhash_MEMLIMIT_SENSITIVE","crypto_pwhash_OPSLIMIT_INTERACTIVE","crypto_pwhash_OPSLIMIT_MAX","crypto_pwhash_OPSLIMIT_MIN","crypto_pwhash_OPSLIMIT_MODERATE","crypto_pwhash_OPSLIMIT_SENSITIVE","crypto_pwhash_PASSWD_MAX","crypto_pwhash_PASSWD_MIN","crypto_pwhash_SALTBYTES","crypto_pwhash_STRBYTES","crypto_pwhash_argon2i_BYTES_MAX","crypto_pwhash_argon2i_BYTES_MIN","crypto_pwhash_argon2i_SALTBYTES","crypto_pwhash_argon2i_STRBYTES","crypto_pwhash_argon2id_BYTES_MAX","crypto_pwhash_argon2id_BYTES_MIN","crypto_pwhash_argon2id_SALTBYTES","crypto_pwhash_argon2id_STRBYTES","crypto_pwhash_scryptsalsa208sha256_BYTES_MAX","crypto_pwhash_scryptsalsa208sha256_BYTES_MIN","crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE","crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX","crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN","crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE","crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE","crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX","crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN","crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE","crypto_pwhash_scryptsalsa208sha256_SALTBYTES","crypto_pwhash_scryptsalsa208sha256_STRBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_scalarmult_curve25519_BYTES","crypto_scalarmult_curve25519_SCALARBYTES","crypto_scalarmult_ed25519_BYTES","crypto_scalarmult_ed25519_SCALARBYTES","crypto_scalarmult_ristretto255_BYTES","crypto_scalarmult_ristretto255_SCALARBYTES","crypto_secretbox_KEYBYTES","crypto_secretbox_MACBYTES","crypto_secretbox_MESSAGEBYTES_MAX","crypto_secretbox_NONCEBYTES","crypto_secretbox_xchacha20poly1305_KEYBYTES","crypto_secretbox_xchacha20poly1305_MACBYTES","crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX","crypto_secretbox_xchacha20poly1305_NONCEBYTES","crypto_secretbox_xsalsa20poly1305_KEYBYTES","crypto_secretbox_xsalsa20poly1305_MACBYTES","crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX","crypto_secretbox_xsalsa20poly1305_NONCEBYTES","crypto_secretstream_xchacha20poly1305_ABYTES","crypto_secretstream_xchacha20poly1305_HEADERBYTES","crypto_secretstream_xchacha20poly1305_KEYBYTES","crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX","crypto_secretstream_xchacha20poly1305_NPUBBYTES","crypto_secretstream_xchacha20poly1305_TAG_FINAL","crypto_secretstream_xchacha20poly1305_TAG_MESSAGE","crypto_secretstream_xchacha20poly1305_TAG_PUSH","crypto_secretstream_xchacha20poly1305_TAG_REKEY","crypto_shorthash_BYTES","crypto_shorthash_KEYBYTES","crypto_shorthash_siphash24_BYTES","crypto_shorthash_siphash24_KEYBYTES","crypto_shorthash_siphashx24_BYTES","crypto_shorthash_siphashx24_KEYBYTES","crypto_sign_BYTES","crypto_sign_MESSAGEBYTES_MAX","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_sign_ed25519_BYTES","crypto_sign_ed25519_MESSAGEBYTES_MAX","crypto_sign_ed25519_PUBLICKEYBYTES","crypto_sign_ed25519_SECRETKEYBYTES","crypto_sign_ed25519_SEEDBYTES","crypto_stream_KEYBYTES","crypto_stream_MESSAGEBYTES_MAX","crypto_stream_NONCEBYTES","crypto_stream_chacha20_IETF_KEYBYTES","crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX","crypto_stream_chacha20_IETF_NONCEBYTES","crypto_stream_chacha20_KEYBYTES","crypto_stream_chacha20_MESSAGEBYTES_MAX","crypto_stream_chacha20_NONCEBYTES","crypto_stream_chacha20_ietf_KEYBYTES","crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX","crypto_stream_chacha20_ietf_NONCEBYTES","crypto_stream_salsa2012_KEYBYTES","crypto_stream_salsa2012_MESSAGEBYTES_MAX","crypto_stream_salsa2012_NONCEBYTES","crypto_stream_salsa208_KEYBYTES","crypto_stream_salsa208_MESSAGEBYTES_MAX","crypto_stream_salsa208_NONCEBYTES","crypto_stream_salsa20_KEYBYTES","crypto_stream_salsa20_MESSAGEBYTES_MAX","crypto_stream_salsa20_NONCEBYTES","crypto_stream_xchacha20_KEYBYTES","crypto_stream_xchacha20_MESSAGEBYTES_MAX","crypto_stream_xchacha20_NONCEBYTES","crypto_stream_xsalsa20_KEYBYTES","crypto_stream_xsalsa20_MESSAGEBYTES_MAX","crypto_stream_xsalsa20_NONCEBYTES","crypto_verify_16_BYTES","crypto_verify_32_BYTES","crypto_verify_64_BYTES"];for(_=0;_<n.length;_++)"function"==typeof(c=r["_"+n[_].toLowerCase()])&&(e[n[_]]=c());var s=["SODIUM_VERSION_STRING","crypto_pwhash_STRPREFIX","crypto_pwhash_scryptsalsa208sha256_STRPREFIX"];for(_=0;_<s.length;_++){var c;"function"==typeof(c=r["_"+s[_].toLowerCase()])&&(e[s[_]]=r.UTF8ToString(c()))}}r=t;try{a();var _=new Uint8Array([98,97,108,108,115]),n=e.randombytes_buf(e.crypto_secretbox_NONCEBYTES),s=e.randombytes_buf(e.crypto_secretbox_KEYBYTES),c=e.crypto_secretbox_easy(_,n,s),o=e.crypto_secretbox_open_easy(c,n,s);if(e.memcmp(_,o))return}catch(e){if(null==r.useBackupModule)throw new Error("Both wasm and asm failed to load"+e)}r.useBackupModule(),a()});function _(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e);e=unescape(encodeURIComponent(e));for(var t=new Uint8Array(e.length),r=0,a=e.length;r<a;r++)t[r]=e.charCodeAt(r);return t}function n(e){if("function"==typeof TextDecoder)return new TextDecoder("utf-8",{fatal:!0}).decode(e);var t=Math.ceil(e.length/8192);if(t<=1)try{return decodeURIComponent(escape(String.fromCharCode.apply(null,e)))}catch(e){throw new TypeError("The encoded data was not valid.")}for(var r="",a=0,_=0;_<t;_++){var s=Array.prototype.slice.call(e,8192*_+a,8192*(_+1)+a);if(0!=s.length){var c,o=s.length,h=0;do{var p=s[--o];p>=240?(h=4,c=!0):p>=224?(h=3,c=!0):p>=192?(h=2,c=!0):p<128&&(h=1,c=!0)}while(!c);for(var y=h-(s.length-o),i=0;i<y;i++)a--,s.pop();r+=n(s)}}return r}function s(e){e=m(null,e,"input");for(var t,r,a,_="",n=0;n<e.length;n++)a=87+(r=15&e[n])+(r-10>>8&-39)<<8|87+(t=e[n]>>>4)+(t-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function o(e){if(null==e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!=c.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function h(e,t){t=o(t),e=m(_,e,"input");var a,_=[],s=0|Math.floor(e.length/3),c=e.length-3*s,h=4*s+(0!==c?0==(2&t)?4:2+(c>>>1):0),p=new l(h+1),y=u(e);return _.push(y),_.push(p.address),0===r._sodium_bin2base64(p.address,p.length,y,e.length,t)&&g(_,"conversion failed"),p.length=h,a=n(p.to_Uint8Array()),v(_),a}function p(e,t){var r=t||"uint8array";if(!y(r))throw new Error(r+" output format is not available");if(e instanceof l){if("uint8array"===r)return e.to_Uint8Array();if("text"===r)return n(e.to_Uint8Array());if("hex"===r)return s(e.to_Uint8Array());if("base64"===r)return h(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format "'+r+'"?')}if("object"==typeof e){for(var a=Object.keys(e),_={},o=0;o<a.length;o++)_[a[o]]=p(e[a[o]],r);return _}if("string"==typeof e)return e;throw new TypeError("Cannot format output")}function y(e){for(var t=["uint8array","text","hex","base64"],r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function i(e){if(e){if("string"!=typeof e)throw new TypeError("When defined, the output format must be a string");if(!y(e))throw new Error(e+" is not a supported output format")}}function l(e){this.length=e,this.address=d(e)}function u(e){var t=d(e.length);return r.HEAPU8.set(e,t),t}function d(e){var t=r._malloc(e);if(0===t)throw{message:"_malloc() failed",length:e};return t}function v(e){if(e)for(var t=0;t<e.length;t++)a=e[t],r._free(a);var a}function g(e,t){throw v(e),new Error(t)}function b(e,t){throw v(e),new TypeError(t)}function f(e,t,r){null==t&&b(e,r+" cannot be null or undefined")}function m(e,t,r){return f(e,t,r),t instanceof Uint8Array?t:"string"==typeof t?_(t):void b(e,"unsupported input type for "+r)}function E(e,t,a,_,n,s){var c=[];i(s);var o=null;null!=e&&(o=u(e=m(c,e,"secret_nonce")),e.length,c.push(o)),t=m(c,t,"ciphertext");var h,y=r._crypto_aead_chacha20poly1305_abytes(),d=t.length;d<y&&b(c,"ciphertext is too short"),h=u(t),c.push(h);var f=null,E=0;null!=a&&(f=u(a=m(c,a,"additional_data")),E=a.length,c.push(f)),_=m(c,_,"public_nonce");var x,k=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==k&&b(c,"invalid public_nonce length"),x=u(_),c.push(x),n=m(c,n,"key");var S,T=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==T&&b(c,"invalid key length"),S=u(n),c.push(S);var w=new l(d-r._crypto_aead_chacha20poly1305_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_chacha20poly1305_decrypt(Y,null,o,h,d,0,f,E,0,x,S)){var B=p(w,s);return v(c),B}g(c,"ciphertext cannot be decrypted using that key")}function x(e,t,a,_,n,s,c){var o=[];i(c);var h=null;null!=e&&(h=u(e=m(o,e,"secret_nonce")),e.length,o.push(h));var y=u(t=m(o,t,"ciphertext")),d=t.length;o.push(y),a=m(o,a,"mac");var f,E=0|r._crypto_box_macbytes();a.length!==E&&b(o,"invalid mac length"),f=u(a),o.push(f);var x=null,k=0;null!=_&&(x=u(_=m(o,_,"additional_data")),k=_.length,o.push(x)),n=m(o,n,"public_nonce");var S,T=0|r._crypto_aead_chacha20poly1305_npubbytes();n.length!==T&&b(o,"invalid public_nonce length"),S=u(n),o.push(S),s=m(o,s,"key");var w,Y=0|r._crypto_aead_chacha20poly1305_keybytes();s.length!==Y&&b(o,"invalid key length"),w=u(s),o.push(w);var B=new l(0|d),A=B.address;if(o.push(A),0===r._crypto_aead_chacha20poly1305_decrypt_detached(A,h,y,d,0,f,x,k,0,S,w)){var K=p(B,c);return v(o),K}g(o,"ciphertext cannot be decrypted using that key")}function k(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(h+r._crypto_aead_chacha20poly1305_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_chacha20poly1305_encrypt(w,null,o,h,0,y,d,0,f,E,k)){var Y=p(T,s);return v(c),Y}g(c,"invalid usage")}function S(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(0|h),w=T.address;c.push(w);var Y=new l(0|r._crypto_aead_chacha20poly1305_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_chacha20poly1305_encrypt_detached(w,B,null,o,h,0,y,d,0,f,E,k)){var A=p({ciphertext:T,mac:Y},s);return v(c),A}g(c,"invalid usage")}function T(e,t,a,_,n,s){var c=[];i(s);var o=null;null!=e&&(o=u(e=m(c,e,"secret_nonce")),e.length,c.push(o)),t=m(c,t,"ciphertext");var h,y=r._crypto_aead_chacha20poly1305_ietf_abytes(),d=t.length;d<y&&b(c,"ciphertext is too short"),h=u(t),c.push(h);var f=null,E=0;null!=a&&(f=u(a=m(c,a,"additional_data")),E=a.length,c.push(f)),_=m(c,_,"public_nonce");var x,k=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==k&&b(c,"invalid public_nonce length"),x=u(_),c.push(x),n=m(c,n,"key");var S,T=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==T&&b(c,"invalid key length"),S=u(n),c.push(S);var w=new l(d-r._crypto_aead_chacha20poly1305_ietf_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_chacha20poly1305_ietf_decrypt(Y,null,o,h,d,0,f,E,0,x,S)){var B=p(w,s);return v(c),B}g(c,"ciphertext cannot be decrypted using that key")}function w(e,t,a,_,n,s,c){var o=[];i(c);var h=null;null!=e&&(h=u(e=m(o,e,"secret_nonce")),e.length,o.push(h));var y=u(t=m(o,t,"ciphertext")),d=t.length;o.push(y),a=m(o,a,"mac");var f,E=0|r._crypto_box_macbytes();a.length!==E&&b(o,"invalid mac length"),f=u(a),o.push(f);var x=null,k=0;null!=_&&(x=u(_=m(o,_,"additional_data")),k=_.length,o.push(x)),n=m(o,n,"public_nonce");var S,T=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();n.length!==T&&b(o,"invalid public_nonce length"),S=u(n),o.push(S),s=m(o,s,"key");var w,Y=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();s.length!==Y&&b(o,"invalid key length"),w=u(s),o.push(w);var B=new l(0|d),A=B.address;if(o.push(A),0===r._crypto_aead_chacha20poly1305_ietf_decrypt_detached(A,h,y,d,0,f,x,k,0,S,w)){var K=p(B,c);return v(o),K}g(o,"ciphertext cannot be decrypted using that key")}function Y(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(h+r._crypto_aead_chacha20poly1305_ietf_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_chacha20poly1305_ietf_encrypt(w,null,o,h,0,y,d,0,f,E,k)){var Y=p(T,s);return v(c),Y}g(c,"invalid usage")}function B(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(0|h),w=T.address;c.push(w);var Y=new l(0|r._crypto_aead_chacha20poly1305_ietf_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_chacha20poly1305_ietf_encrypt_detached(w,B,null,o,h,0,y,d,0,f,E,k)){var A=p({ciphertext:T,mac:Y},s);return v(c),A}g(c,"invalid usage")}function A(e){var t=[];i(e);var a=new l(0|r._crypto_aead_chacha20poly1305_ietf_keybytes()),_=a.address;t.push(_),r._crypto_aead_chacha20poly1305_ietf_keygen(_);var n=p(a,e);return v(t),n}function K(e){var t=[];i(e);var a=new l(0|r._crypto_aead_chacha20poly1305_keybytes()),_=a.address;t.push(_),r._crypto_aead_chacha20poly1305_keygen(_);var n=p(a,e);return v(t),n}function M(e,t,a,_,n,s){var c=[];i(s);var o=null;null!=e&&(o=u(e=m(c,e,"secret_nonce")),e.length,c.push(o)),t=m(c,t,"ciphertext");var h,y=r._crypto_aead_xchacha20poly1305_ietf_abytes(),d=t.length;d<y&&b(c,"ciphertext is too short"),h=u(t),c.push(h);var f=null,E=0;null!=a&&(f=u(a=m(c,a,"additional_data")),E=a.length,c.push(f)),_=m(c,_,"public_nonce");var x,k=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==k&&b(c,"invalid public_nonce length"),x=u(_),c.push(x),n=m(c,n,"key");var S,T=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==T&&b(c,"invalid key length"),S=u(n),c.push(S);var w=new l(d-r._crypto_aead_xchacha20poly1305_ietf_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_xchacha20poly1305_ietf_decrypt(Y,null,o,h,d,0,f,E,0,x,S)){var B=p(w,s);return v(c),B}g(c,"ciphertext cannot be decrypted using that key")}function I(e,t,a,_,n,s,c){var o=[];i(c);var h=null;null!=e&&(h=u(e=m(o,e,"secret_nonce")),e.length,o.push(h));var y=u(t=m(o,t,"ciphertext")),d=t.length;o.push(y),a=m(o,a,"mac");var f,E=0|r._crypto_box_macbytes();a.length!==E&&b(o,"invalid mac length"),f=u(a),o.push(f);var x=null,k=0;null!=_&&(x=u(_=m(o,_,"additional_data")),k=_.length,o.push(x)),n=m(o,n,"public_nonce");var S,T=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();n.length!==T&&b(o,"invalid public_nonce length"),S=u(n),o.push(S),s=m(o,s,"key");var w,Y=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();s.length!==Y&&b(o,"invalid key length"),w=u(s),o.push(w);var B=new l(0|d),A=B.address;if(o.push(A),0===r._crypto_aead_xchacha20poly1305_ietf_decrypt_detached(A,h,y,d,0,f,x,k,0,S,w)){var K=p(B,c);return v(o),K}g(o,"ciphertext cannot be decrypted using that key")}function N(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(h+r._crypto_aead_xchacha20poly1305_ietf_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_xchacha20poly1305_ietf_encrypt(w,null,o,h,0,y,d,0,f,E,k)){var Y=p(T,s);return v(c),Y}g(c,"invalid usage")}function L(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"message")),h=e.length;c.push(o);var y=null,d=0;null!=t&&(y=u(t=m(c,t,"additional_data")),d=t.length,c.push(y));var f=null;null!=a&&(f=u(a=m(c,a,"secret_nonce")),a.length,c.push(f)),_=m(c,_,"public_nonce");var E,x=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==x&&b(c,"invalid public_nonce length"),E=u(_),c.push(E),n=m(c,n,"key");var k,S=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==S&&b(c,"invalid key length"),k=u(n),c.push(k);var T=new l(0|h),w=T.address;c.push(w);var Y=new l(0|r._crypto_aead_xchacha20poly1305_ietf_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_xchacha20poly1305_ietf_encrypt_detached(w,B,null,o,h,0,y,d,0,f,E,k)){var A=p({ciphertext:T,mac:Y},s);return v(c),A}g(c,"invalid usage")}function U(e){var t=[];i(e);var a=new l(0|r._crypto_aead_xchacha20poly1305_ietf_keybytes()),_=a.address;t.push(_),r._crypto_aead_xchacha20poly1305_ietf_keygen(_);var n=p(a,e);return v(t),n}function O(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_auth_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_auth_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_auth(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function C(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_auth_hmacsha256_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_auth_hmacsha256_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_auth_hmacsha256(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function R(e){var t=[];i(e);var a=new l(0|r._crypto_auth_hmacsha256_keybytes()),_=a.address;t.push(_),r._crypto_auth_hmacsha256_keygen(_);var n=p(a,e);return v(t),n}function P(e,t,a){var _=[];e=m(_,e,"tag");var n,s=0|r._crypto_auth_hmacsha256_bytes();e.length!==s&&b(_,"invalid tag length"),n=u(e),_.push(n);var c=u(t=m(_,t,"message")),o=t.length;_.push(c),a=m(_,a,"key");var h,p=0|r._crypto_auth_hmacsha256_keybytes();a.length!==p&&b(_,"invalid key length"),h=u(a),_.push(h);var y=0==(0|r._crypto_auth_hmacsha256_verify(n,c,o,0,h));return v(_),y}function G(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_auth_hmacsha512_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_auth_hmacsha512_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_auth_hmacsha512(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function X(e){var t=[];i(e);var a=new l(0|r._crypto_auth_hmacsha512_keybytes()),_=a.address;t.push(_),r._crypto_auth_hmacsha512_keygen(_);var n=p(a,e);return v(t),n}function D(e,t,a){var _=[];e=m(_,e,"tag");var n,s=0|r._crypto_auth_hmacsha512_bytes();e.length!==s&&b(_,"invalid tag length"),n=u(e),_.push(n);var c=u(t=m(_,t,"message")),o=t.length;_.push(c),a=m(_,a,"key");var h,p=0|r._crypto_auth_hmacsha512_keybytes();a.length!==p&&b(_,"invalid key length"),h=u(a),_.push(h);var y=0==(0|r._crypto_auth_hmacsha512_verify(n,c,o,0,h));return v(_),y}function F(e){var t=[];i(e);var a=new l(0|r._crypto_auth_keybytes()),_=a.address;t.push(_),r._crypto_auth_keygen(_);var n=p(a,e);return v(t),n}function V(e,t,a){var _=[];e=m(_,e,"tag");var n,s=0|r._crypto_auth_bytes();e.length!==s&&b(_,"invalid tag length"),n=u(e),_.push(n);var c=u(t=m(_,t,"message")),o=t.length;_.push(c),a=m(_,a,"key");var h,p=0|r._crypto_auth_keybytes();a.length!==p&&b(_,"invalid key length"),h=u(a),_.push(h);var y=0==(0|r._crypto_auth_verify(n,c,o,0,h));return v(_),y}function H(e,t,a){var _=[];i(a),e=m(_,e,"publicKey");var n,s=0|r._crypto_box_publickeybytes();e.length!==s&&b(_,"invalid publicKey length"),n=u(e),_.push(n),t=m(_,t,"privateKey");var c,o=0|r._crypto_box_secretkeybytes();t.length!==o&&b(_,"invalid privateKey length"),c=u(t),_.push(c);var h=new l(0|r._crypto_box_beforenmbytes()),y=h.address;if(_.push(y),0==(0|r._crypto_box_beforenm(y,n,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function z(e){var t=[];i(e);var a=new l(0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes()),_=a.address;t.push(_);var n=new l(0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes()),s=n.address;t.push(s),r._crypto_box_curve25519xchacha20poly1305_keypair(_,s);var c=p({publicKey:a,privateKey:n,keyType:"curve25519"},e);return v(t),c}function j(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"publicKey");var c,o=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();t.length!==o&&b(_,"invalid publicKey length"),c=u(t),_.push(c);var h=new l(s+r._crypto_box_curve25519xchacha20poly1305_sealbytes()|0),y=h.address;_.push(y),r._crypto_box_curve25519xchacha20poly1305_seal(y,n,s,0,c);var d=p(h,a);return v(_),d}function q(e,t,a,_){var n=[];i(_),e=m(n,e,"ciphertext");var s,c=r._crypto_box_curve25519xchacha20poly1305_sealbytes(),o=e.length;o<c&&b(n,"ciphertext is too short"),s=u(e),n.push(s),t=m(n,t,"publicKey");var h,y=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();t.length!==y&&b(n,"invalid publicKey length"),h=u(t),n.push(h),a=m(n,a,"secretKey");var d,g=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();a.length!==g&&b(n,"invalid secretKey length"),d=u(a),n.push(d);var f=new l(o-r._crypto_box_curve25519xchacha20poly1305_sealbytes()|0),E=f.address;n.push(E),r._crypto_box_curve25519xchacha20poly1305_seal_open(E,s,o,0,h,d);var x=p(f,_);return v(n),x}function W(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"message")),o=e.length;s.push(c),t=m(s,t,"nonce");var h,y=0|r._crypto_box_noncebytes();t.length!==y&&b(s,"invalid nonce length"),h=u(t),s.push(h),a=m(s,a,"publicKey");var d,f=0|r._crypto_box_publickeybytes();a.length!==f&&b(s,"invalid publicKey length"),d=u(a),s.push(d),_=m(s,_,"privateKey");var E,x=0|r._crypto_box_secretkeybytes();_.length!==x&&b(s,"invalid privateKey length"),E=u(_),s.push(E);var k=new l(0|o),S=k.address;s.push(S);var T=new l(0|r._crypto_box_macbytes()),w=T.address;if(s.push(w),0==(0|r._crypto_box_detached(S,w,c,o,0,h,d,E))){var Y=p({ciphertext:k,mac:T},n);return v(s),Y}g(s,"invalid usage")}function J(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"message")),o=e.length;s.push(c),t=m(s,t,"nonce");var h,y=0|r._crypto_box_noncebytes();t.length!==y&&b(s,"invalid nonce length"),h=u(t),s.push(h),a=m(s,a,"publicKey");var d,f=0|r._crypto_box_publickeybytes();a.length!==f&&b(s,"invalid publicKey length"),d=u(a),s.push(d),_=m(s,_,"privateKey");var E,x=0|r._crypto_box_secretkeybytes();_.length!==x&&b(s,"invalid privateKey length"),E=u(_),s.push(E);var k=new l(o+r._crypto_box_macbytes()|0),S=k.address;if(s.push(S),0==(0|r._crypto_box_easy(S,c,o,0,h,d,E))){var T=p(k,n);return v(s),T}g(s,"invalid usage")}function Q(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_box_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"sharedKey");var y,d=0|r._crypto_box_beforenmbytes();a.length!==d&&b(n,"invalid sharedKey length"),y=u(a),n.push(y);var f=new l(c+r._crypto_box_macbytes()|0),E=f.address;if(n.push(E),0==(0|r._crypto_box_easy_afternm(E,s,c,0,o,y))){var x=p(f,_);return v(n),x}g(n,"invalid usage")}function Z(e){var t=[];i(e);var a=new l(0|r._crypto_box_publickeybytes()),_=a.address;t.push(_);var n=new l(0|r._crypto_box_secretkeybytes()),s=n.address;if(t.push(s),0==(0|r._crypto_box_keypair(_,s))){var c={publicKey:p(a,e),privateKey:p(n,e),keyType:"x25519"};return v(t),c}g(t,"internal error")}function $(e,t,a,_,n,s){var c=[];i(s);var o=u(e=m(c,e,"ciphertext")),h=e.length;c.push(o),t=m(c,t,"mac");var y,d=0|r._crypto_box_macbytes();t.length!==d&&b(c,"invalid mac length"),y=u(t),c.push(y),a=m(c,a,"nonce");var f,E=0|r._crypto_box_noncebytes();a.length!==E&&b(c,"invalid nonce length"),f=u(a),c.push(f),_=m(c,_,"publicKey");var x,k=0|r._crypto_box_publickeybytes();_.length!==k&&b(c,"invalid publicKey length"),x=u(_),c.push(x),n=m(c,n,"privateKey");var S,T=0|r._crypto_box_secretkeybytes();n.length!==T&&b(c,"invalid privateKey length"),S=u(n),c.push(S);var w=new l(0|h),Y=w.address;if(c.push(Y),0==(0|r._crypto_box_open_detached(Y,o,y,h,0,f,x,S))){var B=p(w,s);return v(c),B}g(c,"incorrect key pair for the given ciphertext")}function ee(e,t,a,_,n){var s=[];i(n),e=m(s,e,"ciphertext");var c,o=r._crypto_box_macbytes(),h=e.length;h<o&&b(s,"ciphertext is too short"),c=u(e),s.push(c),t=m(s,t,"nonce");var y,d=0|r._crypto_box_noncebytes();t.length!==d&&b(s,"invalid nonce length"),y=u(t),s.push(y),a=m(s,a,"publicKey");var f,E=0|r._crypto_box_publickeybytes();a.length!==E&&b(s,"invalid publicKey length"),f=u(a),s.push(f),_=m(s,_,"privateKey");var x,k=0|r._crypto_box_secretkeybytes();_.length!==k&&b(s,"invalid privateKey length"),x=u(_),s.push(x);var S=new l(h-r._crypto_box_macbytes()|0),T=S.address;if(s.push(T),0==(0|r._crypto_box_open_easy(T,c,h,0,y,f,x))){var w=p(S,n);return v(s),w}g(s,"incorrect key pair for the given ciphertext")}function te(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"ciphertext")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_box_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"sharedKey");var y,d=0|r._crypto_box_beforenmbytes();a.length!==d&&b(n,"invalid sharedKey length"),y=u(a),n.push(y);var f=new l(c-r._crypto_box_macbytes()|0),E=f.address;if(n.push(E),0==(0|r._crypto_box_open_easy_afternm(E,s,c,0,o,y))){var x=p(f,_);return v(n),x}g(n,"incorrect secret key for the given ciphertext")}function re(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"publicKey");var c,o=0|r._crypto_box_publickeybytes();t.length!==o&&b(_,"invalid publicKey length"),c=u(t),_.push(c);var h=new l(s+r._crypto_box_sealbytes()|0),y=h.address;if(_.push(y),0==(0|r._crypto_box_seal(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function ae(e,t,a,_){var n=[];i(_),e=m(n,e,"ciphertext");var s,c=r._crypto_box_sealbytes(),o=e.length;o<c&&b(n,"ciphertext is too short"),s=u(e),n.push(s),t=m(n,t,"publicKey");var h,y=0|r._crypto_box_publickeybytes();t.length!==y&&b(n,"invalid publicKey length"),h=u(t),n.push(h),a=m(n,a,"privateKey");var d,f=0|r._crypto_box_secretkeybytes();a.length!==f&&b(n,"invalid privateKey length"),d=u(a),n.push(d);var E=new l(o-r._crypto_box_sealbytes()|0),x=E.address;if(n.push(x),0==(0|r._crypto_box_seal_open(x,s,o,0,h,d))){var k=p(E,_);return v(n),k}g(n,"incorrect key pair for the given ciphertext")}function _e(e,t){var a=[];i(t),e=m(a,e,"seed");var _,n=0|r._crypto_box_seedbytes();e.length!==n&&b(a,"invalid seed length"),_=u(e),a.push(_);var s=new l(0|r._crypto_box_publickeybytes()),c=s.address;a.push(c);var o=new l(0|r._crypto_box_secretkeybytes()),h=o.address;if(a.push(h),0==(0|r._crypto_box_seed_keypair(c,h,_))){var y={publicKey:p(s,t),privateKey:p(o,t),keyType:"x25519"};return v(a),y}g(a,"invalid usage")}function ne(e,t,a){var _=[];i(a),e=m(_,e,"p");var n,s=0|r._crypto_core_ristretto255_bytes();e.length!==s&&b(_,"invalid p length"),n=u(e),_.push(n),t=m(_,t,"q");var c,o=0|r._crypto_core_ristretto255_bytes();t.length!==o&&b(_,"invalid q length"),c=u(t),_.push(c);var h=new l(0|r._crypto_core_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_core_ristretto255_add(y,n,c))){var d=p(h,a);return v(_),d}g(_,"inputs is invalid element")}function se(e,t){var a=[];i(t);var _=u(e=m(a,e,"r"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_bytes()),s=n.address;if(a.push(s),0==(0|r._crypto_core_ristretto255_from_hash(s,_))){var c=p(n,t);return v(a),c}g(a,"invalid usage")}function ce(e,t){var a=[];i(t);var _=u(e=m(a,e,"point"));e.length,a.push(_);var n=1==(0|r._crypto_core_ristretto255_is_valid_point(_));return v(a),n}function oe(e){var t=[];i(e);var a=new l(0|r._crypto_core_ristretto255_bytes()),_=a.address;t.push(_),r._crypto_core_ristretto255_random(_);var n=p(a,e);return v(t),n}function he(e,t,a){var _=[];i(a),e=m(_,e,"x");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(_,"invalid x length"),n=u(e),_.push(n),t=m(_,t,"y");var c,o=0|r._crypto_core_ristretto255_scalarbytes();t.length!==o&&b(_,"invalid y length"),c=u(t),_.push(c);var h=new l(0|r._crypto_core_ristretto255_scalarbytes()),y=h.address;_.push(y),r._crypto_core_ristretto255_scalar_add(y,n,c);var d=p(h,a);return v(_),d}function pe(e,t){var a=[];i(t);var _=u(e=m(a,e,"s"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_scalarbytes()),s=n.address;a.push(s),r._crypto_core_ristretto255_scalar_complement(s,_);var c=p(n,t);return v(a),c}function ye(e,t){var a=[];i(t);var _=u(e=m(a,e,"s"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_scalarbytes()),s=n.address;if(a.push(s),0==(0|r._crypto_core_ristretto255_scalar_invert(s,_))){var c=p(n,t);return v(a),c}g(a,"invalid reciprocate")}function ie(e,t,a){var _=[];i(a),e=m(_,e,"x");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(_,"invalid x length"),n=u(e),_.push(n),t=m(_,t,"y");var c,o=0|r._crypto_core_ristretto255_scalarbytes();t.length!==o&&b(_,"invalid y length"),c=u(t),_.push(c);var h=new l(0|r._crypto_core_ristretto255_scalarbytes()),y=h.address;_.push(y),r._crypto_core_ristretto255_scalar_mul(y,n,c);var d=p(h,a);return v(_),d}function le(e,t){var a=[];i(t);var _=u(e=m(a,e,"s"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_scalarbytes()),s=n.address;a.push(s),r._crypto_core_ristretto255_scalar_negate(s,_);var c=p(n,t);return v(a),c}function ue(e){var t=[];i(e);var a=new l(0|r._crypto_core_ristretto255_scalarbytes()),_=a.address;t.push(_),r._crypto_core_ristretto255_random(_);var n=p(a,e);return v(t),n}function de(e,t){var a=[];i(t);var _=u(e=m(a,e,"sample"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_scalarbytes()),s=n.address;a.push(s),r._crypto_core_ristretto255_scalar_reduce(s,_);var c=p(n,t);return v(a),c}function ve(e,t,a){var _=[];i(a),e=m(_,e,"x");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(_,"invalid x length"),n=u(e),_.push(n),t=m(_,t,"y");var c,o=0|r._crypto_core_ristretto255_scalarbytes();t.length!==o&&b(_,"invalid y length"),c=u(t),_.push(c);var h=new l(0|r._crypto_core_ristretto255_scalarbytes()),y=h.address;_.push(y),r._crypto_core_ristretto255_scalar_sub(y,n,c);var d=p(h,a);return v(_),d}function ge(e,t,a){var _=[];i(a),e=m(_,e,"p");var n,s=0|r._crypto_core_ristretto255_bytes();e.length!==s&&b(_,"invalid p length"),n=u(e),_.push(n),t=m(_,t,"q");var c,o=0|r._crypto_core_ristretto255_bytes();t.length!==o&&b(_,"invalid q length"),c=u(t),_.push(c);var h=new l(0|r._crypto_core_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_core_ristretto255_sub(y,n,c))){var d=p(h,a);return v(_),d}g(_,"inputs is invalid element")}function be(e,t,a,_){var n=[];i(_),f(n,e,"hash_length"),("number"!=typeof e||(0|e)!==e||e<0)&&b(n,"hash_length must be an unsigned integer");var s=u(t=m(n,t,"message")),c=t.length;n.push(s);var o=null,h=0;null!=a&&(o=u(a=m(n,a,"key")),h=a.length,n.push(o));var y=new l(e|=0),d=y.address;if(n.push(d),0==(0|r._crypto_generichash(d,e,s,c,0,o,h))){var E=p(y,_);return v(n),E}g(n,"invalid usage")}function fe(e,t,a,_,n){var s=[];i(n),f(s,e,"subkey_len"),("number"!=typeof e||(0|e)!==e||e<0)&&b(s,"subkey_len must be an unsigned integer");var c=null,o=0;null!=t&&(c=u(t=m(s,t,"key")),o=t.length,s.push(c)),a=m(s,a,"id");var h,y=0|r._crypto_generichash_blake2b_saltbytes();a.length!==y&&b(s,"invalid id length"),h=u(a),s.push(h),_=m(s,_,"ctx");var d,E=0|r._crypto_generichash_blake2b_personalbytes();_.length!==E&&b(s,"invalid ctx length"),d=u(_),s.push(d);var x=new l(0|e),k=x.address;if(s.push(k),0==(0|r._crypto_generichash_blake2b_salt_personal(k,e,null,0,0,c,o,h,d))){var S=p(x,n);return v(s),S}g(s,"invalid usage")}function me(e,t,a){var _=[];i(a),f(_,e,"state_address"),f(_,t,"hash_length"),("number"!=typeof t||(0|t)!==t||t<0)&&b(_,"hash_length must be an unsigned integer");var n=new l(t|=0),s=n.address;if(_.push(s),0==(0|r._crypto_generichash_final(e,s,t))){var c=(r._free(e),p(n,a));return v(_),c}g(_,"invalid usage")}function Ee(e,t,a){var _=[];i(a);var n=null,s=0;null!=e&&(n=u(e=m(_,e,"key")),s=e.length,_.push(n)),f(_,t,"hash_length"),("number"!=typeof t||(0|t)!==t||t<0)&&b(_,"hash_length must be an unsigned integer");var c=new l(357).address;if(0==(0|r._crypto_generichash_init(c,n,s,t))){var o=c;return v(_),o}g(_,"invalid usage")}function xe(e){var t=[];i(e);var a=new l(0|r._crypto_generichash_keybytes()),_=a.address;t.push(_),r._crypto_generichash_keygen(_);var n=p(a,e);return v(t),n}function ke(e,t,a){var _=[];i(a),f(_,e,"state_address");var n=u(t=m(_,t,"message_chunk")),s=t.length;_.push(n),0!=(0|r._crypto_generichash_update(e,n,s))&&g(_,"invalid usage"),v(_)}function Se(e,t){var a=[];i(t);var _=u(e=m(a,e,"message")),n=e.length;a.push(_);var s=new l(0|r._crypto_hash_bytes()),c=s.address;if(a.push(c),0==(0|r._crypto_hash(c,_,n,0))){var o=p(s,t);return v(a),o}g(a,"invalid usage")}function Te(e,t){var a=[];i(t);var _=u(e=m(a,e,"message")),n=e.length;a.push(_);var s=new l(0|r._crypto_hash_sha256_bytes()),c=s.address;if(a.push(c),0==(0|r._crypto_hash_sha256(c,_,n,0))){var o=p(s,t);return v(a),o}g(a,"invalid usage")}function we(e,t){var a=[];i(t),f(a,e,"state_address");var _=new l(0|r._crypto_hash_sha256_bytes()),n=_.address;if(a.push(n),0==(0|r._crypto_hash_sha256_final(e,n))){var s=(r._free(e),p(_,t));return v(a),s}g(a,"invalid usage")}function Ye(e){var t=[];i(e);var a=new l(104).address;if(0==(0|r._crypto_hash_sha256_init(a))){var _=a;return v(t),_}g(t,"invalid usage")}function Be(e,t,a){var _=[];i(a),f(_,e,"state_address");var n=u(t=m(_,t,"message_chunk")),s=t.length;_.push(n),0!=(0|r._crypto_hash_sha256_update(e,n,s))&&g(_,"invalid usage"),v(_)}function Ae(e,t){var a=[];i(t);var _=u(e=m(a,e,"message")),n=e.length;a.push(_);var s=new l(0|r._crypto_hash_sha512_bytes()),c=s.address;if(a.push(c),0==(0|r._crypto_hash_sha512(c,_,n,0))){var o=p(s,t);return v(a),o}g(a,"invalid usage")}function Ke(e,t){var a=[];i(t),f(a,e,"state_address");var _=new l(0|r._crypto_hash_sha512_bytes()),n=_.address;if(a.push(n),0==(0|r._crypto_hash_sha512_final(e,n))){var s=(r._free(e),p(_,t));return v(a),s}g(a,"invalid usage")}function Me(e){var t=[];i(e);var a=new l(208).address;if(0==(0|r._crypto_hash_sha512_init(a))){var _=a;return v(t),_}g(t,"invalid usage")}function Ie(e,t,a){var _=[];i(a),f(_,e,"state_address");var n=u(t=m(_,t,"message_chunk")),s=t.length;_.push(n),0!=(0|r._crypto_hash_sha512_update(e,n,s))&&g(_,"invalid usage"),v(_)}function Ne(e,t,a,n,s){var c=[];i(s),f(c,e,"subkey_len"),("number"!=typeof e||(0|e)!==e||e<0)&&b(c,"subkey_len must be an unsigned integer"),f(c,t,"subkey_id"),("number"!=typeof t||(0|t)!==t||t<0)&&b(c,"subkey_id must be an unsigned integer"),"string"!=typeof a&&b(c,"ctx must be a string"),a=_(a+"\0"),null!=h&&a.length-1!==h&&b(c,"invalid ctx length");var o=u(a),h=a.length-1;c.push(o),n=m(c,n,"key");var y,d=0|r._crypto_kdf_keybytes();n.length!==d&&b(c,"invalid key length"),y=u(n),c.push(y);var g=new l(0|e),E=g.address;c.push(E),r._crypto_kdf_derive_from_key(E,e,t,t>>>24>>>8,o,y);var x=p(g,s);return v(c),x}function Le(e){var t=[];i(e);var a=new l(0|r._crypto_kdf_keybytes()),_=a.address;t.push(_),r._crypto_kdf_keygen(_);var n=p(a,e);return v(t),n}function Ue(e,t,a,_){var n=[];i(_),e=m(n,e,"clientPublicKey");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&b(n,"invalid clientPublicKey length"),s=u(e),n.push(s),t=m(n,t,"clientSecretKey");var o,h=0|r._crypto_kx_secretkeybytes();t.length!==h&&b(n,"invalid clientSecretKey length"),o=u(t),n.push(o),a=m(n,a,"serverPublicKey");var y,d=0|r._crypto_kx_publickeybytes();a.length!==d&&b(n,"invalid serverPublicKey length"),y=u(a),n.push(y);var f=new l(0|r._crypto_kx_sessionkeybytes()),E=f.address;n.push(E);var x=new l(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),0==(0|r._crypto_kx_client_session_keys(E,k,s,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(n),S}g(n,"invalid usage")}function Oe(e){var t=[];i(e);var a=new l(0|r._crypto_kx_publickeybytes()),_=a.address;t.push(_);var n=new l(0|r._crypto_kx_secretkeybytes()),s=n.address;if(t.push(s),0==(0|r._crypto_kx_keypair(_,s))){var c={publicKey:p(a,e),privateKey:p(n,e),keyType:"x25519"};return v(t),c}g(t,"internal error")}function Ce(e,t){var a=[];i(t),e=m(a,e,"seed");var _,n=0|r._crypto_kx_seedbytes();e.length!==n&&b(a,"invalid seed length"),_=u(e),a.push(_);var s=new l(0|r._crypto_kx_publickeybytes()),c=s.address;a.push(c);var o=new l(0|r._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|r._crypto_kx_seed_keypair(c,h,_))){var y={publicKey:p(s,t),privateKey:p(o,t),keyType:"x25519"};return v(a),y}g(a,"internal error")}function Re(e,t,a,_){var n=[];i(_),e=m(n,e,"serverPublicKey");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&b(n,"invalid serverPublicKey length"),s=u(e),n.push(s),t=m(n,t,"serverSecretKey");var o,h=0|r._crypto_kx_secretkeybytes();t.length!==h&&b(n,"invalid serverSecretKey length"),o=u(t),n.push(o),a=m(n,a,"clientPublicKey");var y,d=0|r._crypto_kx_publickeybytes();a.length!==d&&b(n,"invalid clientPublicKey length"),y=u(a),n.push(y);var f=new l(0|r._crypto_kx_sessionkeybytes()),E=f.address;n.push(E);var x=new l(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),0==(0|r._crypto_kx_server_session_keys(E,k,s,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(n),S}g(n,"invalid usage")}function Pe(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_onetimeauth_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_onetimeauth_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_onetimeauth(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function Ge(e,t){var a=[];i(t),f(a,e,"state_address");var _=new l(0|r._crypto_onetimeauth_bytes()),n=_.address;if(a.push(n),0==(0|r._crypto_onetimeauth_final(e,n))){var s=(r._free(e),p(_,t));return v(a),s}g(a,"invalid usage")}function Xe(e,t){var a=[];i(t);var _=null;null!=e&&(_=u(e=m(a,e,"key")),e.length,a.push(_));var n=new l(144).address;if(0==(0|r._crypto_onetimeauth_init(n,_))){var s=n;return v(a),s}g(a,"invalid usage")}function De(e){var t=[];i(e);var a=new l(0|r._crypto_onetimeauth_keybytes()),_=a.address;t.push(_),r._crypto_onetimeauth_keygen(_);var n=p(a,e);return v(t),n}function Fe(e,t,a){var _=[];i(a),f(_,e,"state_address");var n=u(t=m(_,t,"message_chunk")),s=t.length;_.push(n),0!=(0|r._crypto_onetimeauth_update(e,n,s))&&g(_,"invalid usage"),v(_)}function Ve(e,t,a){var _=[];e=m(_,e,"hash");var n,s=0|r._crypto_onetimeauth_bytes();e.length!==s&&b(_,"invalid hash length"),n=u(e),_.push(n);var c=u(t=m(_,t,"message")),o=t.length;_.push(c),a=m(_,a,"key");var h,p=0|r._crypto_onetimeauth_keybytes();a.length!==p&&b(_,"invalid key length"),h=u(a),_.push(h);var y=0==(0|r._crypto_onetimeauth_verify(n,c,o,0,h));return v(_),y}function He(e,t,a,_,n,s,c){var o=[];i(c),f(o,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&b(o,"keyLength must be an unsigned integer");var h=u(t=m(o,t,"password")),y=t.length;o.push(h),a=m(o,a,"salt");var d,E=0|r._crypto_pwhash_saltbytes();a.length!==E&&b(o,"invalid salt length"),d=u(a),o.push(d),f(o,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&b(o,"opsLimit must be an unsigned integer"),f(o,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&b(o,"memLimit must be an unsigned integer"),f(o,s,"algorithm"),("number"!=typeof s||(0|s)!==s||s<0)&&b(o,"algorithm must be an unsigned integer");var x=new l(0|e),k=x.address;if(o.push(k),0==(0|r._crypto_pwhash(k,e,0,h,y,0,d,_,0,n,s))){var S=p(x,c);return v(o),S}g(o,"invalid usage")}function ze(e,t,a,_,n,s){var c=[];i(s),f(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&b(c,"keyLength must be an unsigned integer");var o=u(t=m(c,t,"password")),h=t.length;c.push(o),a=m(c,a,"salt");var y,d=0|r._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==d&&b(c,"invalid salt length"),y=u(a),c.push(y),f(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&b(c,"opsLimit must be an unsigned integer"),f(c,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&b(c,"memLimit must be an unsigned integer");var E=new l(0|e),x=E.address;if(c.push(x),0==(0|r._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,y,_,0,n))){var k=p(E,s);return v(c),k}g(c,"invalid usage")}function je(e,t,a,_,n,s,c){var o=[];i(c);var h=u(e=m(o,e,"password")),y=e.length;o.push(h);var d=u(t=m(o,t,"salt")),E=t.length;o.push(d),f(o,a,"opsLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(o,"opsLimit must be an unsigned integer"),f(o,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&b(o,"r must be an unsigned integer"),f(o,n,"p"),("number"!=typeof n||(0|n)!==n||n<0)&&b(o,"p must be an unsigned integer"),f(o,s,"keyLength"),("number"!=typeof s||(0|s)!==s||s<0)&&b(o,"keyLength must be an unsigned integer");var x=new l(0|s),k=x.address;if(o.push(k),0==(0|r._crypto_pwhash_scryptsalsa208sha256_ll(h,y,d,E,a,0,_,n,k,s))){var S=p(x,c);return v(o),S}g(o,"invalid usage")}function qe(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"password")),c=e.length;n.push(s),f(n,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&b(n,"opsLimit must be an unsigned integer"),f(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(n,"memLimit must be an unsigned integer");var o=new l(0|r._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(o),0==(0|r._crypto_pwhash_scryptsalsa208sha256_str(o,s,c,0,t,0,a))){var h=r.UTF8ToString(o);return v(n),h}g(n,"invalid usage")}function We(e,t,a){var n=[];i(a),"string"!=typeof e&&b(n,"hashed_password must be a string"),e=_(e+"\0"),null!=c&&e.length-1!==c&&b(n,"invalid hashed_password length");var s=u(e),c=e.length-1;n.push(s);var o=u(t=m(n,t,"password")),h=t.length;n.push(o);var p=0==(0|r._crypto_pwhash_scryptsalsa208sha256_str_verify(s,o,h,0));return v(n),p}function Je(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"password")),c=e.length;n.push(s),f(n,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&b(n,"opsLimit must be an unsigned integer"),f(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(n,"memLimit must be an unsigned integer");var o=new l(0|r._crypto_pwhash_strbytes()).address;if(n.push(o),0==(0|r._crypto_pwhash_str(o,s,c,0,t,0,a))){var h=r.UTF8ToString(o);return v(n),h}g(n,"invalid usage")}function Qe(e,t,a,n){var s=[];i(n),"string"!=typeof e&&b(s,"hashed_password must be a string"),e=_(e+"\0"),null!=o&&e.length-1!==o&&b(s,"invalid hashed_password length");var c=u(e),o=e.length-1;s.push(c),f(s,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&b(s,"opsLimit must be an unsigned integer"),f(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"memLimit must be an unsigned integer");var h=0!=(0|r._crypto_pwhash_str_needs_rehash(c,t,0,a));return v(s),h}function Ze(e,t,a){var n=[];i(a),"string"!=typeof e&&b(n,"hashed_password must be a string"),e=_(e+"\0"),null!=c&&e.length-1!==c&&b(n,"invalid hashed_password length");var s=u(e),c=e.length-1;n.push(s);var o=u(t=m(n,t,"password")),h=t.length;n.push(o);var p=0==(0|r._crypto_pwhash_str_verify(s,o,h,0));return v(n),p}function $e(e,t,a){var _=[];i(a),e=m(_,e,"privateKey");var n,s=0|r._crypto_scalarmult_scalarbytes();e.length!==s&&b(_,"invalid privateKey length"),n=u(e),_.push(n),t=m(_,t,"publicKey");var c,o=0|r._crypto_scalarmult_scalarbytes();t.length!==o&&b(_,"invalid publicKey length"),c=u(t),_.push(c);var h=new l(0|r._crypto_scalarmult_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_scalarmult(y,n,c))){var d=p(h,a);return v(_),d}g(_,"weak public key")}function et(e,t){var a=[];i(t),e=m(a,e,"privateKey");var _,n=0|r._crypto_scalarmult_scalarbytes();e.length!==n&&b(a,"invalid privateKey length"),_=u(e),a.push(_);var s=new l(0|r._crypto_scalarmult_scalarbytes()),c=s.address;if(a.push(c),0==(0|r._crypto_scalarmult_base(c,_))){var o=p(s,t);return v(a),o}g(a,"insecure scalar")}function tt(e,t,a){var _=[];i(a),e=m(_,e,"scalar");var n,s=0|r._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&b(_,"invalid scalar length"),n=u(e),_.push(n),t=m(_,t,"privateKey");var c,o=0|r._crypto_scalarmult_ristretto255_bytes();t.length!==o&&b(_,"invalid privateKey length"),c=u(t),_.push(c);var h=new l(0|r._crypto_scalarmult_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_scalarmult_ristretto255(y,n,c))){var d=p(h,a);return v(_),d}g(_,"input is zero element")}function rt(e,t){var a=[];i(t);var _=u(e=m(a,e,"scalar"));e.length,a.push(_);var n=new l(0|r._crypto_core_ristretto255_bytes()),s=n.address;if(a.push(s),0==(0|r._crypto_scalarmult_ristretto255_base(s,_))){var c=p(n,t);return v(a),c}g(a,"scalar is 0")}function at(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_secretbox_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"key");var y,d=0|r._crypto_secretbox_keybytes();a.length!==d&&b(n,"invalid key length"),y=u(a),n.push(y);var f=new l(0|c),E=f.address;n.push(E);var x=new l(0|r._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),0==(0|r._crypto_secretbox_detached(E,k,s,c,0,o,y))){var S=p({mac:x,cipher:f},_);return v(n),S}g(n,"invalid usage")}function _t(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_secretbox_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"key");var y,d=0|r._crypto_secretbox_keybytes();a.length!==d&&b(n,"invalid key length"),y=u(a),n.push(y);var f=new l(c+r._crypto_secretbox_macbytes()|0),E=f.address;if(n.push(E),0==(0|r._crypto_secretbox_easy(E,s,c,0,o,y))){var x=p(f,_);return v(n),x}g(n,"invalid usage")}function nt(e){var t=[];i(e);var a=new l(0|r._crypto_secretbox_keybytes()),_=a.address;t.push(_),r._crypto_secretbox_keygen(_);var n=p(a,e);return v(t),n}function st(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"ciphertext")),o=e.length;s.push(c),t=m(s,t,"mac");var h,y=0|r._crypto_secretbox_macbytes();t.length!==y&&b(s,"invalid mac length"),h=u(t),s.push(h),a=m(s,a,"nonce");var d,f=0|r._crypto_secretbox_noncebytes();a.length!==f&&b(s,"invalid nonce length"),d=u(a),s.push(d),_=m(s,_,"key");var E,x=0|r._crypto_secretbox_keybytes();_.length!==x&&b(s,"invalid key length"),E=u(_),s.push(E);var k=new l(0|o),S=k.address;if(s.push(S),0==(0|r._crypto_secretbox_open_detached(S,c,h,o,0,d,E))){var T=p(k,n);return v(s),T}g(s,"wrong secret key for the given ciphertext")}function ct(e,t,a,_){var n=[];i(_),e=m(n,e,"ciphertext");var s,c=r._crypto_secretbox_macbytes(),o=e.length;o<c&&b(n,"ciphertext is too short"),s=u(e),n.push(s),t=m(n,t,"nonce");var h,y=0|r._crypto_secretbox_noncebytes();t.length!==y&&b(n,"invalid nonce length"),h=u(t),n.push(h),a=m(n,a,"key");var d,f=0|r._crypto_secretbox_keybytes();a.length!==f&&b(n,"invalid key length"),d=u(a),n.push(d);var E=new l(o-r._crypto_secretbox_macbytes()|0),x=E.address;if(n.push(x),0==(0|r._crypto_secretbox_open_easy(x,s,o,0,h,d))){var k=p(E,_);return v(n),k}g(n,"wrong secret key for the given ciphertext")}function ot(e,t,a){var _=[];i(a),e=m(_,e,"header");var n,s=0|r._crypto_secretstream_xchacha20poly1305_headerbytes();e.length!==s&&b(_,"invalid header length"),n=u(e),_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_secretstream_xchacha20poly1305_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(52).address;if(0==(0|r._crypto_secretstream_xchacha20poly1305_init_pull(h,n,c))){var p=h;return v(_),p}g(_,"invalid usage")}function ht(e,t){var a=[];i(t),e=m(a,e,"key");var _,n=0|r._crypto_secretstream_xchacha20poly1305_keybytes();e.length!==n&&b(a,"invalid key length"),_=u(e),a.push(_);var s=new l(52).address,c=new l(0|r._crypto_secretstream_xchacha20poly1305_headerbytes()),o=c.address;if(a.push(o),0==(0|r._crypto_secretstream_xchacha20poly1305_init_push(s,o,_))){var h={state:s,header:p(c,t)};return v(a),h}g(a,"invalid usage")}function pt(e){var t=[];i(e);var a=new l(0|r._crypto_secretstream_xchacha20poly1305_keybytes()),_=a.address;t.push(_),r._crypto_secretstream_xchacha20poly1305_keygen(_);var n=p(a,e);return v(t),n}function yt(e,t,a,_){var n=[];i(_),f(n,e,"state_address"),t=m(n,t,"cipher");var s,c=r._crypto_secretstream_xchacha20poly1305_abytes(),o=t.length;o<c&&b(n,"cipher is too short"),s=u(t),n.push(s);var h=null,y=0;null!=a&&(h=u(a=m(n,a,"ad")),y=a.length,n.push(h));var g=new l(o-r._crypto_secretstream_xchacha20poly1305_abytes()|0),E=g.address;n.push(E);var x,k=(x=d(1),n.push(x),(k=0===r._crypto_secretstream_xchacha20poly1305_pull(e,E,0,x,s,o,0,h,y)&&{tag:r.HEAPU8[x],message:g})&&{message:p(k.message,_),tag:k.tag});return v(n),k}function it(e,t,a,_,n){var s=[];i(n),f(s,e,"state_address");var c=u(t=m(s,t,"message_chunk")),o=t.length;s.push(c);var h=null,y=0;null!=a&&(h=u(a=m(s,a,"ad")),y=a.length,s.push(h)),f(s,_,"tag"),("number"!=typeof _||(0|_)!==_||_<0)&&b(s,"tag must be an unsigned integer");var d=new l(o+r._crypto_secretstream_xchacha20poly1305_abytes()|0),E=d.address;if(s.push(E),0==(0|r._crypto_secretstream_xchacha20poly1305_push(e,E,0,c,o,0,h,y,0,_))){var x=p(d,n);return v(s),x}g(s,"invalid usage")}function lt(e,t){var a=[];return i(t),f(a,e,"state_address"),r._crypto_secretstream_xchacha20poly1305_rekey(e),v(a),!0}function ut(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_shorthash_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_shorthash_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_shorthash(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function dt(e){var t=[];i(e);var a=new l(0|r._crypto_shorthash_keybytes()),_=a.address;t.push(_),r._crypto_shorthash_keygen(_);var n=p(a,e);return v(t),n}function vt(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"key");var c,o=0|r._crypto_shorthash_siphashx24_keybytes();t.length!==o&&b(_,"invalid key length"),c=u(t),_.push(c);var h=new l(0|r._crypto_shorthash_siphashx24_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_shorthash_siphashx24(y,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function gt(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"privateKey");var c,o=0|r._crypto_sign_secretkeybytes();t.length!==o&&b(_,"invalid privateKey length"),c=u(t),_.push(c);var h=new l(e.length+r._crypto_sign_bytes()|0),y=h.address;if(_.push(y),0==(0|r._crypto_sign(y,null,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function bt(e,t,a){var _=[];i(a);var n=u(e=m(_,e,"message")),s=e.length;_.push(n),t=m(_,t,"privateKey");var c,o=0|r._crypto_sign_secretkeybytes();t.length!==o&&b(_,"invalid privateKey length"),c=u(t),_.push(c);var h=new l(0|r._crypto_sign_bytes()),y=h.address;if(_.push(y),0==(0|r._crypto_sign_detached(y,null,n,s,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function ft(e,t){var a=[];i(t),e=m(a,e,"edPk");var _,n=0|r._crypto_sign_publickeybytes();e.length!==n&&b(a,"invalid edPk length"),_=u(e),a.push(_);var s=new l(0|r._crypto_scalarmult_scalarbytes()),c=s.address;if(a.push(c),0==(0|r._crypto_sign_ed25519_pk_to_curve25519(c,_))){var o=p(s,t);return v(a),o}g(a,"invalid key")}function mt(e,t){var a=[];i(t),e=m(a,e,"edSk");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&b(a,"invalid edSk length"),_=u(e),a.push(_);var s=new l(0|r._crypto_scalarmult_scalarbytes()),c=s.address;if(a.push(c),0==(0|r._crypto_sign_ed25519_sk_to_curve25519(c,_))){var o=p(s,t);return v(a),o}g(a,"invalid key")}function Et(e,t){var a=[];i(t),e=m(a,e,"privateKey");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&b(a,"invalid privateKey length"),_=u(e),a.push(_);var s=new l(0|r._crypto_sign_publickeybytes()),c=s.address;if(a.push(c),0==(0|r._crypto_sign_ed25519_sk_to_pk(c,_))){var o=p(s,t);return v(a),o}g(a,"invalid key")}function xt(e,t){var a=[];i(t),e=m(a,e,"privateKey");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&b(a,"invalid privateKey length"),_=u(e),a.push(_);var s=new l(0|r._crypto_sign_seedbytes()),c=s.address;if(a.push(c),0==(0|r._crypto_sign_ed25519_sk_to_seed(c,_))){var o=p(s,t);return v(a),o}g(a,"invalid key")}function kt(e,t,a){var _=[];i(a),f(_,e,"state_address"),t=m(_,t,"privateKey");var n,s=0|r._crypto_sign_secretkeybytes();t.length!==s&&b(_,"invalid privateKey length"),n=u(t),_.push(n);var c=new l(0|r._crypto_sign_bytes()),o=c.address;if(_.push(o),0==(0|r._crypto_sign_final_create(e,o,null,n))){var h=(r._free(e),p(c,a));return v(_),h}g(_,"invalid usage")}function St(e,t,a,_){var n=[];i(_),f(n,e,"state_address"),t=m(n,t,"signature");var s,c=0|r._crypto_sign_bytes();t.length!==c&&b(n,"invalid signature length"),s=u(t),n.push(s),a=m(n,a,"publicKey");var o,h=0|r._crypto_sign_publickeybytes();a.length!==h&&b(n,"invalid publicKey length"),o=u(a),n.push(o);var p=0==(0|r._crypto_sign_final_verify(e,s,o));return v(n),p}function Tt(e){var t=[];i(e);var a=new l(208).address;if(0==(0|r._crypto_sign_init(a))){var _=a;return v(t),_}g(t,"internal error")}function wt(e){var t=[];i(e);var a=new l(0|r._crypto_sign_publickeybytes()),_=a.address;t.push(_);var n=new l(0|r._crypto_sign_secretkeybytes()),s=n.address;if(t.push(s),0==(0|r._crypto_sign_keypair(_,s))){var c={publicKey:p(a,e),privateKey:p(n,e),keyType:"ed25519"};return v(t),c}g(t,"internal error")}function Yt(e,t,a){var _=[];i(a),e=m(_,e,"signedMessage");var n,s=r._crypto_sign_bytes(),c=e.length;c<s&&b(_,"signedMessage is too short"),n=u(e),_.push(n),t=m(_,t,"publicKey");var o,h=0|r._crypto_sign_publickeybytes();t.length!==h&&b(_,"invalid publicKey length"),o=u(t),_.push(o);var y=new l(c-r._crypto_sign_bytes()|0),d=y.address;if(_.push(d),0==(0|r._crypto_sign_open(d,null,n,c,0,o))){var f=p(y,a);return v(_),f}g(_,"incorrect signature for the given public key")}function Bt(e,t){var a=[];i(t),e=m(a,e,"seed");var _,n=0|r._crypto_sign_seedbytes();e.length!==n&&b(a,"invalid seed length"),_=u(e),a.push(_);var s=new l(0|r._crypto_sign_publickeybytes()),c=s.address;a.push(c);var o=new l(0|r._crypto_sign_secretkeybytes()),h=o.address;if(a.push(h),0==(0|r._crypto_sign_seed_keypair(c,h,_))){var y={publicKey:p(s,t),privateKey:p(o,t),keyType:"ed25519"};return v(a),y}g(a,"invalid usage")}function At(e,t,a){var _=[];i(a),f(_,e,"state_address");var n=u(t=m(_,t,"message_chunk")),s=t.length;_.push(n),0!=(0|r._crypto_sign_update(e,n,s))&&g(_,"invalid usage"),v(_)}function Kt(e,t,a){var _=[];e=m(_,e,"signature");var n,s=0|r._crypto_sign_bytes();e.length!==s&&b(_,"invalid signature length"),n=u(e),_.push(n);var c=u(t=m(_,t,"message")),o=t.length;_.push(c),a=m(_,a,"publicKey");var h,p=0|r._crypto_sign_publickeybytes();a.length!==p&&b(_,"invalid publicKey length"),h=u(a),_.push(h);var y=0==(0|r._crypto_sign_verify_detached(n,c,o,0,h));return v(_),y}function Mt(e,t,a,_){var n=[];i(_),f(n,e,"outLength"),("number"!=typeof e||(0|e)!==e||e<0)&&b(n,"outLength must be an unsigned integer"),t=m(n,t,"key");var s,c=0|r._crypto_stream_chacha20_keybytes();t.length!==c&&b(n,"invalid key length"),s=u(t),n.push(s),a=m(n,a,"nonce");var o,h=0|r._crypto_stream_chacha20_noncebytes();a.length!==h&&b(n,"invalid nonce length"),o=u(a),n.push(o);var y=new l(0|e),d=y.address;n.push(d),r._crypto_stream_chacha20(d,e,0,o,s);var g=p(y,_);return v(n),g}function It(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"input_message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_stream_chacha20_ietf_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"key");var y,d=0|r._crypto_stream_chacha20_ietf_keybytes();a.length!==d&&b(n,"invalid key length"),y=u(a),n.push(y);var f=new l(0|c),E=f.address;if(n.push(E),0===r._crypto_stream_chacha20_ietf_xor(E,s,c,0,o,y)){var x=p(f,_);return v(n),x}g(n,"invalid usage")}function Nt(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"input_message")),o=e.length;s.push(c),t=m(s,t,"nonce");var h,y=0|r._crypto_stream_chacha20_ietf_noncebytes();t.length!==y&&b(s,"invalid nonce length"),h=u(t),s.push(h),f(s,a,"nonce_increment"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"nonce_increment must be an unsigned integer"),_=m(s,_,"key");var d,E=0|r._crypto_stream_chacha20_ietf_keybytes();_.length!==E&&b(s,"invalid key length"),d=u(_),s.push(d);var x=new l(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_chacha20_ietf_xor_ic(k,c,o,0,h,a,d)){var S=p(x,n);return v(s),S}g(s,"invalid usage")}function Lt(e){var t=[];i(e);var a=new l(0|r._crypto_stream_chacha20_keybytes()),_=a.address;t.push(_),r._crypto_stream_chacha20_keygen(_);var n=p(a,e);return v(t),n}function Ut(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"input_message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_stream_chacha20_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"key");var y,d=0|r._crypto_stream_chacha20_keybytes();a.length!==d&&b(n,"invalid key length"),y=u(a),n.push(y);var f=new l(0|c),E=f.address;if(n.push(E),0===r._crypto_stream_chacha20_xor(E,s,c,0,o,y)){var x=p(f,_);return v(n),x}g(n,"invalid usage")}function Ot(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"input_message")),o=e.length;s.push(c),t=m(s,t,"nonce");var h,y=0|r._crypto_stream_chacha20_noncebytes();t.length!==y&&b(s,"invalid nonce length"),h=u(t),s.push(h),f(s,a,"nonce_increment"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"nonce_increment must be an unsigned integer"),_=m(s,_,"key");var d,E=0|r._crypto_stream_chacha20_keybytes();_.length!==E&&b(s,"invalid key length"),d=u(_),s.push(d);var x=new l(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_chacha20_xor_ic(k,c,o,0,h,a,0,d)){var S=p(x,n);return v(s),S}g(s,"invalid usage")}function Ct(e){var t=[];i(e);var a=new l(0|r._crypto_stream_keybytes()),_=a.address;t.push(_),r._crypto_stream_keygen(_);var n=p(a,e);return v(t),n}function Rt(e){var t=[];i(e);var a=new l(0|r._crypto_stream_xchacha20_keybytes()),_=a.address;t.push(_),r._crypto_stream_xchacha20_keygen(_);var n=p(a,e);return v(t),n}function Pt(e,t,a,_){var n=[];i(_);var s=u(e=m(n,e,"input_message")),c=e.length;n.push(s),t=m(n,t,"nonce");var o,h=0|r._crypto_stream_xchacha20_noncebytes();t.length!==h&&b(n,"invalid nonce length"),o=u(t),n.push(o),a=m(n,a,"key");var y,d=0|r._crypto_stream_xchacha20_keybytes();a.length!==d&&b(n,"invalid key length"),y=u(a),n.push(y);var f=new l(0|c),E=f.address;if(n.push(E),0===r._crypto_stream_xchacha20_xor(E,s,c,0,o,y)){var x=p(f,_);return v(n),x}g(n,"invalid usage")}function Gt(e,t,a,_,n){var s=[];i(n);var c=u(e=m(s,e,"input_message")),o=e.length;s.push(c),t=m(s,t,"nonce");var h,y=0|r._crypto_stream_xchacha20_noncebytes();t.length!==y&&b(s,"invalid nonce length"),h=u(t),s.push(h),f(s,a,"nonce_increment"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"nonce_increment must be an unsigned integer"),_=m(s,_,"key");var d,E=0|r._crypto_stream_xchacha20_keybytes();_.length!==E&&b(s,"invalid key length"),d=u(_),s.push(d);var x=new l(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_xchacha20_xor_ic(k,c,o,0,h,a,0,d)){var S=p(x,n);return v(s),S}g(s,"invalid usage")}function Xt(e,t){var a=[];i(t),f(a,e,"length"),("number"!=typeof e||(0|e)!==e||e<0)&&b(a,"length must be an unsigned integer");var _=new l(0|e),n=_.address;a.push(n),r._randombytes_buf(n,e);var s=p(_,t);return v(a),s}function Dt(e,t,a){var _=[];i(a),f(_,e,"length"),("number"!=typeof e||(0|e)!==e||e<0)&&b(_,"length must be an unsigned integer"),t=m(_,t,"seed");var n,s=0|r._randombytes_seedbytes();t.length!==s&&b(_,"invalid seed length"),n=u(t),_.push(n);var c=new l(0|e),o=c.address;_.push(o),r._randombytes_buf_deterministic(o,e,n);var h=p(c,a);return v(_),h}function Ft(e){i(e),r._randombytes_close()}function Vt(e){i(e);var t=r._randombytes_random()>>>0;return v([]),t}function Ht(e,t){var a=[];i(t);for(var _=r._malloc(24),n=0;n<6;n++)r.setValue(_+4*n,r.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][n]]),"i32");0!=(0|r._randombytes_set_implementation(_))&&g(a,"unsupported implementation"),v(a)}function zt(e){i(e),r._randombytes_stir()}function jt(e,t){var a=[];i(t),f(a,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&b(a,"upper_bound must be an unsigned integer");var _=r._randombytes_uniform(e)>>>0;return v(a),_}function qt(){var e=r._sodium_version_string(),t=r.UTF8ToString(e);return v([]),t}return l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(r.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var r=e.length,a=0,_=0;if(t.length!=e.length)throw new TypeError("Arguments must have the same length");for(_=0;_<r;_++)a>>=8,a+=e[_]+t[_],e[_]=255&a},e.base64_variants=c,e.compare=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==t.length)throw new TypeError("Only instances of identical length can be compared");for(var r=0,a=1,_=e.length;_-- >0;)r|=t[_]-e[_]>>8&a,a&=(t[_]^e[_])-1>>8;return r+r+a-1},e.from_base64=function(e,t){t=o(t);var a,_=[],n=new l(3*(e=m(_,e,"input")).length/4),s=u(e),c=d(4),h=d(4);return _.push(s),_.push(n.address),_.push(n.result_bin_len_p),_.push(n.b64_end_p),0!==r._sodium_base642bin(n.address,n.length,s,e.length,0,c,h,t)&&g(_,"invalid input"),r.getValue(h,"i32")-s!==e.length&&g(_,"incomplete input"),n.length=r.getValue(c,"i32"),a=n.to_Uint8Array(),v(_),a},e.from_hex=function(e){var t,a=[],_=new l((e=m(a,e,"input")).length/2),n=u(e),s=d(4);return a.push(n),a.push(_.address),a.push(_.hex_end_p),0!==r._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&g(a,"invalid input"),r.getValue(s,"i32")-n!==e.length&&g(a,"incomplete input"),t=_.to_Uint8Array(),v(a),t},e.from_string=_,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var t=256,r=0,a=e.length;r<a;r++)t>>=8,t+=e[r],e[r]=255&t},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var t=0,r=0,a=e.length;r<a;r++)t|=e[r];return 0===t},e.libsodium=t,e.memcmp=function(e,t){if(!(e instanceof Uint8Array&&t instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==t.length)throw new TypeError("Only instances of identical length can be compared");for(var r=0,a=0,_=e.length;a<_;a++)r|=e[a]^t[a];return 0===r},e.memzero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be wiped");for(var t=0,r=e.length;t<r;t++)e[t]=0},e.output_formats=function(){return["uint8array","text","hex","base64"]},e.pad=function(e,t){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((t|=0)<=0)throw new Error("block size must be > 0");var a,_=[],n=d(4),s=1,c=0,o=0|e.length,h=new l(o+t);_.push(n),_.push(h.address);for(var p=h.address,y=h.address+o+t;p<y;p++)r.HEAPU8[p]=e[c],c+=s=1&~((65535&((o-=s)>>>48|o>>>32|o>>>16|o))-1>>16);return 0!==r._sodium_pad(n,h.address,e.length,t,h.length)&&g(_,"internal error"),h.length=r.getValue(n,"i32"),a=h.to_Uint8Array(),v(_),a},e.unpad=function(e,t){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((t|=0)<=0)throw new Error("block size must be > 0");var a=[],_=u(e),n=d(4);return a.push(_),a.push(n),0!==r._sodium_unpad(n,_,e.length,t)&&g(a,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,r.getValue(n,"i32")),v(a),e},e.ready=a,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=h,e.to_hex=s,e.to_string=n,e}var r="object"==typeof e.sodium&&"function"==typeof e.sodium.onload?e.sodium.onload:null;"function"==typeof define&&define.amd?define(["exports","libsodium"],t):"object"==typeof exports&&"string"!=typeof exports.nodeName?t(exports,require("libsodium")):e.sodium=t(e.commonJsStrict={},e.libsodium),r&&e.sodium.ready.then(function(){r(e.sodium)})}(this)},{libsodium:249}],249:[function(require,module,exports){(function(process,global,Buffer,__argument0,__argument1,__argument2,__argument3,__dirname){!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof global?g=global:"object"==typeof window&&(g=window)),"object"==typeof g.sodium&&"number"==typeof g.sodium.totalMemory&&(I.TOTAL_MEMORY=g.sodium.totalMemory);var B=I;return I.ready=new Promise(function(A,I){(C=B).onAbort=I,C.print=function(A){},C.printErr=function(A){},C.onRuntimeInitialized=function(){try{C._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},C.useBackupModule=function(){var A,I=void 0!==(I={})?I:{},g={};for(A in I)I.hasOwnProperty(A)&&(g[A]=I[A]);var C=[],Q=!1,E=!1,i=!1,n=!1;Q="object"==typeof window,E="function"==typeof importScripts,i="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,n=!Q&&!i&&!E;var a,r,o,e,t="";function c(A){return I.locateFile?I.locateFile(A,t):t+A}i?(t=E?require("path").dirname(t)+"/":__dirname+"/",a=function(A,I){var g=SA(A);return g?I?g:g.toString():(o||(o=require("fs")),e||(e=require("path")),A=e.normalize(A),o.readFileSync(A,I?null:"utf8"))},r=function(A){var I=a(A,!0);return I.buffer||(I=new Uint8Array(I)),l(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),C=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=I),process.on("unhandledRejection",EA),I.inspect=function(){return"[Emscripten Module object]"}):n?("undefined"!=typeof read&&(a=function(A){var I=SA(A);return I?mA(I):read(A)}),r=function(A){var I;return(I=SA(A))?I:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(l("object"==typeof(I=read(A,"binary"))),I)},"undefined"!=typeof scriptArgs?C=scriptArgs:void 0!==arguments&&(C=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(Q||E)&&(E?t=self.location.href:document.currentScript&&(t=document.currentScript.src),t=0!==t.indexOf("blob:")?t.substr(0,t.lastIndexOf("/")+1):"",a=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=SA(A);if(g)return mA(g);throw I}},E&&(r=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=SA(A);if(g)return g;throw I}})),I.print;var f,y=I.printErr||void 0;for(A in g)g.hasOwnProperty(A)&&(I[A]=g[A]);g=null,I.arguments&&(C=I.arguments),I.thisProgram&&I.thisProgram,I.quit&&I.quit,I.wasmBinary&&(f=I.wasmBinary),I.noExitRuntime&&I.noExitRuntime;var s,w={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial),this.grow=function(A){return PA(A)}},Table:function(A){var I=new Array(A.initial);return I.grow=function(A){I.length>=22&&EA("Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."),I.push(null)},I.set=function(A,g){I[A]=g},I.get=function(A){return I[A]},I},Module:function(A){},Instance:function(A,I){this.exports=function(A,I,g){for(var B=new Uint8Array(I.buffer),C=new Uint8Array(123),Q=25;Q>=0;--Q)C[48+Q]=52+Q,C[65+Q]=Q,C[97+Q]=26+Q;function E(A,I,g){for(var B,Q,E=0,i=I,n=g.length,a=I+(3*n>>2)-("="==g[n-2])-("="==g[n-1]);E<n;E+=4)B=C[g.charCodeAt(E+1)],Q=C[g.charCodeAt(E+2)],A[i++]=C[g.charCodeAt(E)]<<2|B>>4,i<a&&(A[i++]=B<<4|Q>>2),i<a&&(A[i++]=Q<<6|C[g.charCodeAt(E+3)])}return C[43]=62,C[47]=63,E(B,1024,"InsgcmV0dXJuIE1vZHVsZS5nZXRSYW5kb21WYWx1ZSgpOyB9IgB7IGlmIChNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPT09IHVuZGVmaW5lZCkgeyB0cnkgeyB2YXIgd2luZG93XyA9ICdvYmplY3QnID09PSB0eXBlb2Ygd2luZG93ID8gd2luZG93IDogc2VsZjsgdmFyIGNyeXB0b18gPSB0eXBlb2Ygd2luZG93Xy5jcnlwdG8gIT09ICd1bmRlZmluZWQnID8gd2luZG93Xy5jcnlwdG8gOiB3aW5kb3dfLm1zQ3J5cHRvOyB2YXIgcmFuZG9tVmFsdWVzU3RhbmRhcmQgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IG5ldyBVaW50MzJBcnJheSgxKTsgY3J5cHRvXy5nZXRSYW5kb21WYWx1ZXMoYnVmKTsgcmV0dXJuIGJ1ZlswXSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVzU3RhbmRhcmQoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVzU3RhbmRhcmQ7IH0gY2F0Y2ggKGUpIHsgdHJ5IHsgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpOyB2YXIgcmFuZG9tVmFsdWVOb2RlSlMgPSBmdW5jdGlvbigpIHsgdmFyIGJ1ZiA9IGNyeXB0b1sncmFuZG9tQnl0ZXMnXSg0KTsgcmV0dXJuIChidWZbMF0gPDwgMjQgfCBidWZbMV0gPDwgMTYgfCBidWZbMl0gPDwgOCB8IGJ1ZlszXSkgPj4+IDA7IH07IHJhbmRvbVZhbHVlTm9kZUpTKCk7IE1vZHVsZS5nZXRSYW5kb21WYWx1ZSA9IHJhbmRvbVZhbHVlTm9kZUpTOyB9IGNhdGNoIChlKSB7IHRocm93ICdObyBzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm91bmQnOyB9IH0gfSB9AExpYnNvZGl1bURSR2J1Zl9sZW4gPD0gU0laRV9NQVgAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwByYW5kb21ieXRlcwBTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGJsYWtlMmJfZmluYWwAAAAAAAAAAAjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FtvdXRsZW4gPD0gVUlOVDhfTUFYAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAAAAAAAAAtnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu"),E(B,2224,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),E(B,2272,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),E(B,3264,"AQ=="),E(B,3296,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),E(B,3487,"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"),E(B,34460,"AQ=="),E(B,34496,"AQ=="),E(B,34528,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="),E(B,34720,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),E(B,35568,"YjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJA=="),E(B,35728,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMBADEuMC4xOA=="),E(B,35773,"QAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ=="),function(A,I,B){var C=I.memory,Q=g,E=new A.Int8Array(B),i=new A.Int16Array(B),n=new A.Int32Array(B),a=new A.Uint8Array(B),r=(new A.Uint16Array(B),new A.Uint32Array(B)),o=(new A.Float32Array(B),new A.Float64Array(B),A.Math.imul),e=(A.Math.fround,A.Math.abs,A.Math.clz32),t=(A.Math.min,A.Math.max,A.Math.floor,A.Math.ceil,A.Math.sqrt,I.abort),c=(A.NaN,A.Infinity,I.a),f=I.b,y=I.c,s=I.d,w=I.e,h=I.f,D=5279472,u=0,p=0,l=0;function F(A,I){var g,B,C,Q,i,r,o,e,t=0,c=0,f=0,y=0,s=0,w=0,h=0,u=0,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,cA=0,fA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0;for(D=$=D-256|0;aA=(F=BA<<3)+($+128|0)|0,O=a[4+(F=I+F|0)|0]|a[F+5|0]<<8|a[F+6|0]<<16|a[F+7|0]<<24,n[aA>>2]=a[0|F]|a[F+1|0]<<8|a[F+2|0]<<16|a[F+3|0]<<24,n[aA+4>>2]=O,16!=(0|(BA=BA+1|0)););for(F=j($,A,64),n[(I=F)+88>>2]=1595750129,n[I+92>>2]=-1521486534,G=a[(I=A)+88|0]|a[I+89|0]<<8|a[I+90|0]<<16|a[I+91|0]<<24,aA=a[I+92|0]|a[I+93|0]<<8|a[I+94|0]<<16|a[I+95|0]<<24,s=a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24,O=a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24,rA=a[I+80|0]|a[I+81|0]<<8|a[I+82|0]<<16|a[I+83|0]<<24,eA=a[I+84|0]|a[I+85|0]<<8|a[I+86|0]<<16|a[I+87|0]<<24,CA=n[F+4>>2],$=F,I=(t=n[F+36>>2])+n[F+132>>2]|0,(nA=(f=n[F+32>>2])+(BA=n[F+128>>2])|0)>>>0<BA>>>0&&(I=I+1|0),I=I+CA|0,nA=I=(BA=nA+n[F>>2]|0)>>>0<nA>>>0?I+1|0:I,BA=jg((CA=BA)^(a[(BA=A)+64|0]|a[BA+65|0]<<8|a[BA+66|0]<<16|a[BA+67|0]<<24)^-1377402159,I^(a[BA+68|0]|a[BA+69|0]<<8|a[BA+70|0]<<16|a[BA+71|0]<<24)^1359893119,32),u=I=l,I=I+1779033703|0,(BA=(y=BA)+-205731576|0)>>>0<4089235720&&(I=I+1|0),c=f^(R=BA),f=I,c=jg(c,t^I,24),BA=n[(t=F)+136>>2],I=nA+(w=l)|0,(nA=c+CA|0)>>>0<CA>>>0&&(I=I+1|0),nA=BA+nA|0,I=(g=n[t+140>>2])+I|0,q=jg((_=nA)^y,(L=_>>>0<BA>>>0?I+1|0:I)^u,16),nA=I=l,n[$+96>>2]=q,n[$+100>>2]=I,I=f+I|0,(CA=R+q|0)>>>0<R>>>0&&(I=I+1|0),y=CA,n[F+64>>2]=y,n[$+68>>2]=I,m=I,CA=jg(c^y,w^I,63),u=I=l,n[F+32>>2]=CA,n[F+36>>2]=I,t=n[F+12>>2],H=s,I=(cA=n[F+148>>2])+(s=n[F+44>>2])|0,(w=(f=n[F+144>>2])+(c=n[F+40>>2])|0)>>>0<c>>>0&&(I=I+1|0),I=I+t|0,t=O,O=I=(R=w+n[F+8>>2]|0)>>>0<w>>>0?I+1|0:I,w=t=jg(H^R^725511199,t^I^-1694144372,32),EA=I=l,I=I+-1150833019|0,(t=t+-2067093701|0)>>>0<2227873595&&(I=I+1|0),H=c^t,c=I,s=jg(H,s^I,24),I=O+(h=l)|0,(O=s+R|0)>>>0<R>>>0&&(I=I+1|0),O=(R=n[F+152>>2])+O|0,I=n[F+156>>2]+I|0,AA=jg((v=O)^w,(d=v>>>0<R>>>0?I+1|0:I)^EA,16),w=I=l,n[$+104>>2]=AA,n[$+108>>2]=I,I=c+I|0,(O=t+AA|0)>>>0<t>>>0&&(I=I+1|0),p=O,n[F+72>>2]=p,n[$+76>>2]=I,P=I,R=jg(s^p,h^I,63),t=l,O=n[F+20>>2],H=rA,I=(tA=n[F+164>>2])+(rA=n[F+52>>2])|0,(c=(K=n[F+160>>2])+(s=n[F+48>>2])|0)>>>0<s>>>0&&(I=I+1|0),I=I+O|0,Y=jg(H^(U=$=c+n[F+16>>2]|0)^-79577749,(O=U>>>0<c>>>0?I+1|0:I)^eA^528734635,32),eA=I=l,I=I+1013904242|0,($=Y+-23791573|0)>>>0<4271175723&&(I=I+1|0),H=s^(c=$),s=I,rA=$=jg(H,rA^I,24),EA=I=l,h=eA,I=I+O|0,(O=U+$|0)>>>0<$>>>0&&(I=I+1|0),I=I+(k=B=n[F+172>>2])|0,V=jg((x=$=(eA=n[F+168>>2])+O|0)^Y,(M=x>>>0<O>>>0?I+1|0:I)^h,16),I=s+(Z=l)|0,($=c+V|0)>>>0<c>>>0&&(I=I+1|0),H=I,c=jg((U=$)^rA,I^EA,63),s=l,rA=n[F+28>>2],k=G,I=(C=n[F+180>>2])+(Y=n[F+60>>2])|0,(EA=($=n[F+176>>2])+(G=n[F+56>>2])|0)>>>0<G>>>0&&(I=I+1|0),I=I+rA|0,I=(O=EA+n[F+24>>2]|0)>>>0<EA>>>0?I+1|0:I,EA=O,h=I,J=jg(k^O^327033209,I^aA^1541459225,32),aA=I=l,I=I+-1521486534|0,(O=J+1595750129|0)>>>0<1595750129&&(I=I+1|0),rA=O,G=O=jg(G^O,I^Y,24),k=rA,b=I,N=aA,rA=n[F+188>>2],I=h+(Y=l)|0,(O=G+EA|0)>>>0<EA>>>0&&(I=I+1|0),EA=O,I=I+(S=rA)|0,T=O=(aA=n[F+184>>2])+O|0,EA=jg(O^J,(h=N)^(N=O>>>0<EA>>>0?I+1|0:I),16),S=G,I=(G=l)+b|0,(h=(O=EA)+k|0)>>>0<O>>>0&&(I=I+1|0),J=h,O=I,h=jg(S^h,I^Y,63),Y=l,I=t+L|0,(L=_+R|0)>>>0<R>>>0&&(I=I+1|0),I=I+(k=fA=n[F+196>>2])|0,EA=jg((b=EA)^(k=EA=(wA=n[F+192>>2])+L|0),(_=G)^(G=k>>>0<L>>>0?I+1|0:I),32),L=F,_=I=l,S=R,I=H+I|0,(R=U+(b=EA)|0)>>>0<U>>>0&&(I=I+1|0),H=t,t=I,X=jg(S^R,H^I,24),EA=F,U=n[F+200>>2],S=b,I=G+(b=l)|0,(H=k+X|0)>>>0<k>>>0&&(I=I+1|0),G=U+H|0,I=(yA=n[EA+204>>2])+I|0,sA=G,gA=jg(S^G,(H=_)^(_=G>>>0<U>>>0?I+1|0:I),16),H=I=l,n[L+120>>2]=gA,n[L+124>>2]=I,I=t+I|0,(t=R+gA|0)>>>0<R>>>0&&(I=I+1|0),G=t,n[F+80>>2]=t,n[EA+84>>2]=I,t^=X,X=I,k=jg(t,b^I,63),b=l,EA=s,I=s+d|0,(c=v+(t=c)|0)>>>0<v>>>0&&(I=I+1|0),s=c,I=I+(L=i=n[F+212>>2])|0,nA=jg((S=q)^(q=c=(R=n[F+208>>2])+c|0),(c=c>>>0<s>>>0?I+1|0:I)^nA,32),v=t,I=(t=l)+O|0,(s=(O=nA)+J|0)>>>0<O>>>0&&(I=I+1|0),v=O=jg(v^s,I^EA,24),d=I,r=n[F+220>>2],z=nA,I=(EA=l)+c|0,(nA=q+v|0)>>>0<v>>>0&&(I=I+1|0),I=I+(S=r)|0,t=jg(z^(J=O=(L=n[F+216>>2])+nA|0),(q=J>>>0<nA>>>0?I+1|0:I)^t,16),I=(I=d)+(d=l)|0,(nA=t+s|0)>>>0<t>>>0&&(I=I+1|0),s=I,c=jg((S=nA)^v,I^EA,63),v=l,O=h,z=Y,I=Y+M|0,(h=h+x|0)>>>0<x>>>0&&(I=I+1|0),Y=h,I=I+(W=EA=n[F+228>>2])|0,W=h=(nA=n[F+224>>2])+h|0,AA=jg(h^AA,(M=w)^(w=h>>>0<Y>>>0?I+1|0:I),32),Y=O,I=m+(h=l)|0,(O=y+AA|0)>>>0<y>>>0&&(I=I+1|0),m=O=jg(Y^(y=O),I^z,24),x=I,M=h,QA=n[F+236>>2],I=(Y=l)+w|0,(w=m+W|0)>>>0<m>>>0&&(I=I+1|0),I=I+(IA=QA)|0,z=O=(h=n[F+232>>2])+w|0,w=jg(O^AA,(W=M)^(M=O>>>0<w>>>0?I+1|0:I),16),I=(I=x)+(x=l)|0,(y=y+w|0)>>>0<w>>>0&&(I=I+1|0),AA=y,y=I,Y=jg(AA^m,I^Y,63),m=l,IA=u,I=u+N|0,(u=(W=CA)+T|0)>>>0<W>>>0&&(I=I+1|0),I=I+(Q=n[F+244>>2])|0,N=Z,Z=I=(CA=(O=n[F+240>>2])+u|0)>>>0<u>>>0?I+1|0:I,V=jg((u=CA)^V,N^I,32),N=y,y=t,I=P+(CA=l)|0,(t=p+V|0)>>>0<p>>>0&&(I=I+1|0),p=I,W=jg(t^W,I^IA,24),T=I=l,P=CA,I=I+Z|0,(Z=u+(IA=W)|0)>>>0<u>>>0&&(I=I+1|0),I=I+(oA=e=n[F+252>>2])|0,I=(u=(CA=n[F+248>>2])+Z|0)>>>0<Z>>>0?I+1|0:I,Z=u,W=P,P=I,oA=jg(u^V,W^I,16),V=IA,I=p+(W=l)|0,(u=t+oA|0)>>>0<t>>>0&&(I=I+1|0),IA=u,t=I,V=jg(V^u,I^T,63),T=I=l,u=I,iA=y,I=_+Q|0,(p=(y=O)+sA|0)>>>0<y>>>0&&(I=I+1|0),I=I+u|0,u=y=p+V|0,y=jg(iA^y,(_=d)^(d=y>>>0<p>>>0?I+1|0:I),32),p=F,I=(I=N)+(N=l)|0,(AA=y+AA|0)>>>0<y>>>0&&(I=I+1|0),_=AA,AA=I,iA=T=jg(V^_,T^I,24),hA=I=l,V=I,sA=y,I=d+i|0,(y=u+R|0)>>>0<u>>>0&&(I=I+1|0),u=y,I=I+V|0,o=y=y+T|0,sA=jg(sA^y,(d=N)^(N=y>>>0<u>>>0?I+1|0:I),16),I=AA+(V=l)|0,(y=_+sA|0)>>>0<_>>>0&&(I=I+1|0),_=y,AA=I,u=jg(y^iA,I^hA,63),d=I=l,n[p+32>>2]=u,n[p+36>>2]=I,T=t,iA=w,I=tA+(p=b)|0,(t=K+(y=k)|0)>>>0<K>>>0&&(I=I+1|0),I=I+q|0,w=t=t+J|0,t=jg(iA^t,(k=t>>>0<J>>>0?I+1|0:I)^x,32),q=y,I=(y=l)+T|0,(K=t+IA|0)>>>0<t>>>0&&(I=I+1|0),J=p,p=I,J=x=jg(q^(b=K),J^I,24),q=I=l,K=I,T=t,I=k+fA|0,(t=w+wA|0)>>>0<w>>>0&&(I=I+1|0),w=t,I=I+K|0,k=t=t+x|0,T=jg(T^t,(K=t>>>0<w>>>0?I+1|0:I)^y,16),y=J,I=p+(x=l)|0,(t=b+T|0)>>>0<b>>>0&&(I=I+1|0),J=t,w=q,q=I,w=jg(y^t,w^I,63),t=l,y=c,I=(p=v)+yA|0,(U=c+U|0)>>>0<c>>>0&&(I=I+1|0),I=I+M|0,b=jg((v=c=U+z|0)^oA,(c=c>>>0<z>>>0?I+1|0:I)^W,32),M=y,I=X+(y=l)|0,(U=G+b|0)>>>0<G>>>0&&(I=I+1|0),G=p,p=I,X=M=jg(M^U,G^I,24),z=I=l,G=I,W=b,I=c+e|0,(b=(c=CA)+v|0)>>>0<c>>>0&&(I=I+1|0),I=I+G|0,I=(c=b+M|0)>>>0<b>>>0?I+1|0:I,b=c,v=I,tA=jg(W^c,I^y,16),G=X,I=p+(M=l)|0,(c=U+tA|0)>>>0<U>>>0&&(I=I+1|0),X=c,y=I,p=jg(G^c,I^z,63),U=l,z=m,I=m+QA|0,(Y=(G=Y)+(c=h)|0)>>>0<c>>>0&&(I=I+1|0),I=I+P|0,P=c=Y+Z|0,c=jg(c^gA,(Y=c>>>0<Z>>>0?I+1|0:I)^H,32),m=G,I=(I=s)+(s=l)|0,(G=c+S|0)>>>0<c>>>0&&(I=I+1|0),H=G,S=Z=jg(m^G,I^z,24),z=G=l,m=I,W=c,I=Y+C|0,(Y=(c=$)+P|0)>>>0<c>>>0&&(I=I+1|0),I=I+G|0,P=c=Y+Z|0,Y=jg(W^c,(Z=c>>>0<Y>>>0?I+1|0:I)^s,16),G=S,I=(I=m)+(m=l)|0,(s=(c=Y)+H|0)>>>0<c>>>0&&(I=I+1|0),S=s,s=I,H=jg(G^S,I^z,63),c=l,G=F,z=w,W=t,gA=Y,IA=w,I=N+g|0,(Y=(w=BA)+o|0)>>>0<w>>>0&&(I=I+1|0),I=I+t|0,t=jg(gA^(IA=w=IA+Y|0),(w=w>>>0<Y>>>0?I+1|0:I)^m,32),I=(gA=l)+y|0,(Y=t+X|0)>>>0<t>>>0&&(I=I+1|0),y=Y,Y=I,z=jg(y^z,I^W,24),m=I=l,N=I,I=w+EA|0,(X=(w=nA)+IA|0)>>>0<w>>>0&&(I=I+1|0),I=I+N|0,N=w=X+z|0,oA=jg(t^w,gA^(X=w>>>0<X>>>0?I+1|0:I),16),w=I=l,n[G+120>>2]=oA,n[G+124>>2]=I,G=z,I=I+Y|0,(t=y+oA|0)>>>0<y>>>0&&(I=I+1|0),z=t,y=I,Y=jg(G^t,I^m,63),G=l,m=p,W=U,I=U+K|0,(t=p+k|0)>>>0<k>>>0&&(I=I+1|0),p=t,I=I+(gA=yA=n[F+132>>2])|0,I=(t=(IA=n[F+128>>2])+t|0)>>>0<p>>>0?I+1|0:I,p=t,U=I,t=jg(t^sA,I^V,32),K=m,I=(I=s)+(s=l)|0,(m=t+S|0)>>>0<t>>>0&&(I=I+1|0),V=S=jg(K^(k=m),I^W,24),gA=m=l,K=I,iA=t,I=U+cA|0,(t=f+p|0)>>>0<p>>>0&&(I=I+1|0),p=t,I=I+m|0,S=t=t+S|0,t=jg(iA^t,(W=t>>>0<p>>>0?I+1|0:I)^s,16),I=(p=l)+K|0,(U=t+k|0)>>>0<t>>>0&&(I=I+1|0),K=U,s=U^V,V=I,s=jg(s,I^gA,63),U=l,m=c,gA=T,k=H,I=v+r|0,(H=b+L|0)>>>0<b>>>0&&(I=I+1|0),I=I+c|0,T=H=(T=k)+(b=H)|0,x=jg(gA^H,(c=H>>>0<b>>>0?I+1|0:I)^x,32),v=k,I=AA+(H=l)|0,(k=_+x|0)>>>0<_>>>0&&(I=I+1|0),AA=m=jg(v^k,I^m,24),gA=b=l,v=I,iA=x,_=m,I=c+rA|0,(m=(c=aA)+T|0)>>>0<c>>>0&&(I=I+1|0),I=I+b|0,x=c=_+m|0,H=jg(iA^c,(_=c>>>0<m>>>0?I+1|0:I)^H,16),m=AA,I=(AA=l)+v|0,(k=(c=H)+k|0)>>>0<c>>>0&&(I=I+1|0),v=k,c=I,k=jg(m^k,I^gA,63),b=l,T=d,I=d+B|0,(d=(m=u)+(u=eA)|0)>>>0<u>>>0&&(I=I+1|0),I=I+Z|0,d=I=(u=d+P|0)>>>0<P>>>0?I+1|0:I,gA=jg(u^tA,I^M,32),P=v,M=c,v=t,I=q+(t=l)|0,(c=J+gA|0)>>>0<J>>>0&&(I=I+1|0),q=J=jg(c^m,I^T,24),tA=T=l,m=I,Z=t,I=d+T|0,(d=u+J|0)>>>0<u>>>0&&(I=I+1|0),I=I+(iA=sA=n[F+156>>2])|0,I=(u=(t=n[F+152>>2])+d|0)>>>0<d>>>0?I+1|0:I,d=u,J=Z,Z=I,u=jg(u^gA,J^I,16),T=q,I=(J=l)+m|0,(m=(m=c)+(c=u)|0)>>>0<c>>>0&&(I=I+1|0),q=m,c=I,T=jg(T^m,I^tA,63),gA=I=l,m=I,iA=v,I=X+r|0,(v=N+L|0)>>>0<N>>>0&&(I=I+1|0),N=v,I=I+m|0,m=v=v+T|0,p=jg(iA^v,(N=v>>>0<N>>>0?I+1|0:I)^p,32),v=F,I=(I=M)+(M=l)|0,(X=p+P|0)>>>0<p>>>0&&(I=I+1|0),P=X,X=I,tA=gA=jg(T^P,gA^I,24),iA=I=l,T=I,hA=p,I=N+fA|0,(p=m+wA|0)>>>0<m>>>0&&(I=I+1|0),m=p,I=I+T|0,wA=p=p+gA|0,fA=jg(hA^p,(N=M)^(M=p>>>0<m>>>0?I+1|0:I),16),I=X+(N=l)|0,(p=P+fA|0)>>>0<P>>>0&&(I=I+1|0),P=p,X=I,p=jg(p^tA,I^iA,63),m=I=l,n[v+32>>2]=p,n[v+36>>2]=I,v=Y,T=G,gA=c,I=G+EA|0,(Y=(c=nA)+Y|0)>>>0<c>>>0&&(I=I+1|0),I=I+W|0,I=(c=Y+S|0)>>>0<S>>>0?I+1|0:I,S=c,Y=I,c=jg(c^H,I^AA,32),W=v,I=(H=l)+gA|0,(v=c+q|0)>>>0<c>>>0&&(I=I+1|0),G=v,v=I,W=AA=jg(W^G,I^T,24),gA=I=l,q=I,T=c,I=Y+yA|0,(c=S+IA|0)>>>0<IA>>>0&&(I=I+1|0),Y=c,I=I+q|0,tA=c=c+AA|0,T=jg(T^c,(q=c>>>0<Y>>>0?I+1|0:I)^H,16),I=v+(S=l)|0,(c=G+T|0)>>>0<G>>>0&&(I=I+1|0),AA=c,c^=W,W=I,Y=jg(c,I^gA,63),c=l,v=u,I=B+(G=U)|0,(u=(H=s)+(s=eA)|0)>>>0<s>>>0&&(I=I+1|0),I=I+_|0,u=s=u+x|0,s=jg(v^s,(U=s>>>0<x>>>0?I+1|0:I)^J,32),I=(I=y)+(y=l)|0,(v=s+z|0)>>>0<s>>>0&&(I=I+1|0),J=x=jg((_=H)^(H=v),I^G,24),_=G=l,v=I,z=s,I=U+cA|0,(s=f+u|0)>>>0<u>>>0&&(I=I+1|0),u=s,I=I+G|0,gA=s=s+x|0,U=jg(z^s,(x=s>>>0<u>>>0?I+1|0:I)^y,16),G=J,I=(J=l)+v|0,(y=(s=U)+H|0)>>>0<s>>>0&&(I=I+1|0),v=y,u=I,H=jg(G^y,I^_,63),s=l,I=e+(G=b)|0,(b=(y=k)+(k=CA)|0)>>>0<k>>>0&&(I=I+1|0),k=b+d|0,I=I+Z|0,b=w,w=I=k>>>0<d>>>0?I+1|0:I,Z=jg(k^oA,b^I,32),_=y,I=V+(y=l)|0,(b=K+Z|0)>>>0<K>>>0&&(I=I+1|0),d=G,G=I,_=K=jg(_^b,d^I,24),z=I=l,d=I,I=w+QA|0,(w=h+k|0)>>>0<k>>>0&&(I=I+1|0),k=w,I=I+d|0,K=w=w+K|0,IA=jg(d=w^Z,(Z=w>>>0<k>>>0?I+1|0:I)^y,16),k=_,I=G+(d=l)|0,(y=b+IA|0)>>>0<b>>>0&&(I=I+1|0),_=y,w=I,G=jg(k^y,I^z,63),y=l,k=F,b=Y,z=c,I=M+i|0,(M=(Y=R)+wA|0)>>>0<Y>>>0&&(I=I+1|0),I=I+c|0,I=(Y=(V=b)+M|0)>>>0<M>>>0?I+1|0:I,M=Y,Y=I,c=jg(M^IA,I^d,32),d=b,I=(IA=l)+u|0,(b=c+v|0)>>>0<c>>>0&&(I=I+1|0),u=b,b=I,z=jg(d^u,I^z,24),v=I=l,d=I,I=Y+Q|0,(M=(Y=O)+M|0)>>>0<Y>>>0&&(I=I+1|0),I=I+d|0,yA=Y=M+z|0,oA=jg(c^Y,IA^(M=Y>>>0<M>>>0?I+1|0:I),16),Y=I=l,n[k+120>>2]=oA,n[k+124>>2]=I,k=z,I=I+b|0,(c=u+oA|0)>>>0<u>>>0&&(I=I+1|0),z=c,u=I,k=jg(k^c,I^v,63),b=l,v=H,d=s,c=H,I=q+sA|0,(H=t+tA|0)>>>0<t>>>0&&(I=I+1|0),I=I+s|0,q=c=c+H|0,c=jg(c^fA,(s=c>>>0<H>>>0?I+1|0:I)^N,32),N=v,I=(I=w)+(w=l)|0,(v=c+_|0)>>>0<c>>>0&&(I=I+1|0),IA=N=jg(N^(H=v),I^d,24),V=v=l,d=I,iA=c,I=s+C|0,(s=(c=$)+q|0)>>>0<c>>>0&&(I=I+1|0),I=I+v|0,N=c=s+N|0,c=jg(iA^c,(_=c>>>0<s>>>0?I+1|0:I)^w,16),I=(w=l)+d|0,(H=c+H|0)>>>0<c>>>0&&(I=I+1|0),q=H,s=H^IA,IA=I,s=jg(s,I^V,63),H=l,v=G,d=y,V=G,I=x+rA|0,(x=(G=aA)+gA|0)>>>0<G>>>0&&(I=I+1|0),I=I+y|0,V=G=V+x|0,x=jg(G^T,(y=G>>>0<x>>>0?I+1|0:I)^S,32),S=v,I=X+(G=l)|0,(v=P+x|0)>>>0<P>>>0&&(I=I+1|0),S=X=jg(S^v,I^d,24),T=d=l,P=I,gA=x,I=y+g|0,(x=(y=BA)+V|0)>>>0<y>>>0&&(I=I+1|0),I=I+d|0,I=(y=x+X|0)>>>0<x>>>0?I+1|0:I,x=y,X=I,G=jg(gA^y,I^G,16),d=S,I=(S=l)+P|0,(v=(y=G)+v|0)>>>0<y>>>0&&(I=I+1|0),P=v,y=I,v=jg(d^v,I^T,63),d=l,V=p,T=m,iA=U,I=m+Z|0,(p=p+K|0)>>>0<K>>>0&&(I=I+1|0),U=p,I=I+(gA=fA=n[F+204>>2])|0,I=(p=(wA=n[F+200>>2])+p|0)>>>0<U>>>0?I+1|0:I,U=p,m=I,gA=jg(iA^p,I^J,32),K=y,y=c,I=W+(c=l)|0,(p=AA+gA|0)>>>0<AA>>>0&&(I=I+1|0),V=AA=jg(p^V,I^T,24),T=W=l,Z=p,J=I,I=m+W|0,(m=U+AA|0)>>>0<U>>>0&&(I=I+1|0),I=I+(iA=tA=n[F+164>>2])|0,AA=U=(p=n[F+160>>2])+m|0,U=jg(U^gA,(W=U>>>0<m>>>0?I+1|0:I)^c,16),I=(I=J)+(J=l)|0,(m=(c=U)+Z|0)>>>0<c>>>0&&(I=I+1|0),Z=m,c=I,V=jg(m^V,I^T,63),T=I=l,m=I,gA=y,I=M+rA|0,(M=(y=aA)+yA|0)>>>0<y>>>0&&(I=I+1|0),I=I+m|0,I=(y=M+V|0)>>>0<M>>>0?I+1|0:I,M=y,m=w,w=I,y=jg(gA^y,m^I,32),m=F,I=(I=K)+(K=l)|0,(gA=y+P|0)>>>0<y>>>0&&(I=I+1|0),iA=yA=jg(V^(P=gA),I^T,24),hA=V=l,T=P,gA=I,P=y,I=w+fA|0,(y=M+wA|0)>>>0<M>>>0&&(I=I+1|0),w=y,I=I+V|0,yA=y=y+yA|0,P=jg(P^y,(M=y>>>0<w>>>0?I+1|0:I)^K,16),I=(V=l)+gA|0,(w=(y=P)+T|0)>>>0<y>>>0&&(I=I+1|0),T=w,y=I,w=jg(w^iA,I^hA,63),K=I=l,n[m+32>>2]=w,n[m+36>>2]=I,m=k,gA=b,iA=G,I=b+sA|0,(G=t+k|0)>>>0<t>>>0&&(I=I+1|0),I=I+_|0,I=(t=G+N|0)>>>0<N>>>0?I+1|0:I,N=t,G=I,t=jg(iA^t,I^S,32),I=(I=c)+(c=l)|0,(b=t+Z|0)>>>0<t>>>0&&(I=I+1|0),_=Z=jg((k=b)^m,I^gA,24),S=b=l,m=I,iA=t,I=G+g|0,(G=(t=BA)+N|0)>>>0<t>>>0&&(I=I+1|0),I=I+b|0,gA=t=G+Z|0,G=jg(iA^t,(b=t>>>0<G>>>0?I+1|0:I)^c,16),I=(I=m)+(m=l)|0,(c=(t=G)+k|0)>>>0<t>>>0&&(I=I+1|0),Z=c,N=I,k=jg(c^_,I^S,63),t=l,_=s,S=H,I=H+QA|0,(c=s+h|0)>>>0<s>>>0&&(I=I+1|0),I=I+X|0,s=c=c+x|0,c=jg(c^U,(h=c>>>0<x>>>0?I+1|0:I)^J,32),I=(I=u)+(u=l)|0,(H=c+z|0)>>>0<c>>>0&&(I=I+1|0),U=H,H=I,_=J=jg(U^_,I^S,24),X=I=l,x=I,S=c,I=h+EA|0,(c=s+nA|0)>>>0<s>>>0&&(I=I+1|0),s=c,I=I+x|0,sA=c=c+J|0,QA=jg(S^c,(x=c>>>0<s>>>0?I+1|0:I)^u,16),I=H+(J=l)|0,(c=U+QA|0)>>>0<U>>>0&&(I=I+1|0),H=c,u=I,h=jg(c^_,I^X,63),c=l,I=r+(U=d)|0,(d=(s=v)+(v=L)|0)>>>0<v>>>0&&(I=I+1|0),I=I+W|0,X=v=d+AA|0,_=jg(v^oA,(_=Y)^(Y=v>>>0<AA>>>0?I+1|0:I),32),S=s,I=IA+(s=l)|0,(v=_+q|0)>>>0<q>>>0&&(I=I+1|0),q=U,U=I,S=q=jg(S^v,q^I,24),z=I=l,d=I,W=_,I=Y+Q|0,(_=(Y=O)+X|0)>>>0<Y>>>0&&(I=I+1|0),I=I+d|0,d=Y=_+q|0,AA=jg(W^Y,(_=Y>>>0<_>>>0?I+1|0:I)^s,16),I=U+(X=l)|0,(s=v+AA|0)>>>0<v>>>0&&(I=I+1|0),v=s,q=I,Y=jg(s^S,I^z,63),s=l,U=F,S=k,z=t,I=M+cA|0,(M=f+yA|0)>>>0<f>>>0&&(I=I+1|0),I=I+t|0,t=jg((W=k=M+k|0)^AA,(k=k>>>0<M>>>0?I+1|0:I)^X,32),I=(IA=l)+u|0,(H=t+H|0)>>>0<t>>>0&&(I=I+1|0),M=I,AA=jg((u=H)^S,I^z,24),X=I=l,H=I,I=k+C|0,(S=(k=$)+W|0)>>>0<k>>>0&&(I=I+1|0),I=I+H|0,I=(k=S+AA|0)>>>0<S>>>0?I+1|0:I,S=k,z=I,oA=jg(t^k,IA^I,16),H=I=l,n[U+120>>2]=oA,n[U+124>>2]=I,I=I+M|0,(t=u+oA|0)>>>0<u>>>0&&(I=I+1|0),M=t,u=I,U=jg(t^AA,I^X,63),k=l,X=c,t=h,I=b+B|0,(b=(h=eA)+gA|0)>>>0<h>>>0&&(I=I+1|0),I=I+c|0,AA=h=(W=t)+b|0,P=jg(h^P,(c=h>>>0<b>>>0?I+1|0:I)^V,32),b=t,I=q+(t=l)|0,(h=v+P|0)>>>0<v>>>0&&(I=I+1|0),W=X=jg(b^h,I^X,24),IA=b=l,v=I,V=P,I=c+i|0,(P=(c=R)+AA|0)>>>0<c>>>0&&(I=I+1|0),I=I+b|0,X=c=P+X|0,t=jg(V^c,(q=c>>>0<P>>>0?I+1|0:I)^t,16),I=(P=l)+v|0,(h=t+h|0)>>>0<t>>>0&&(I=I+1|0),AA=h,c=h^W,W=I,b=jg(c,I^IA,63),v=l,IA=s,V=G,h=Y,I=x+tA|0,(Y=(c=p)+sA|0)>>>0<c>>>0&&(I=I+1|0),I=I+s|0,G=c=(G=h)+Y|0,c=jg(V^c,(s=m)^(m=c>>>0<Y>>>0?I+1|0:I),32),s=h,I=(I=y)+(y=l)|0,(h=c+T|0)>>>0<c>>>0&&(I=I+1|0),x=s=jg(s^h,I^IA,24),IA=Y=l,V=I,iA=c,I=m+Y|0,(c=s+G|0)>>>0<G>>>0&&(I=I+1|0),s=c,I=I+(gA=sA=n[F+132>>2])|0,T=c=(Y=n[F+128>>2])+c|0,s=jg(iA^c,(gA=c>>>0<s>>>0?I+1|0:I)^y,16),G=x,I=(x=l)+V|0,(y=(c=s)+h|0)>>>0<c>>>0&&(I=I+1|0),c=I,G=jg(G^y,I^IA,63),m=l,IA=K,I=K+e|0,(K=(h=w)+(w=CA)|0)>>>0<w>>>0&&(I=I+1|0),I=I+_|0,K=I=(w=d+K|0)>>>0<d>>>0?I+1|0:I,d=jg(w^QA,I^J,32),J=y,_=c,y=t,I=N+(t=l)|0,(c=d+Z|0)>>>0<Z>>>0&&(I=I+1|0),V=N=jg(c^h,I^IA,24),QA=IA=l,h=c,Z=I,hA=d,I=K+IA|0,(c=w+N|0)>>>0<w>>>0&&(I=I+1|0),w=c,I=I+(iA=yA=n[F+196>>2])|0,N=c=(d=n[F+192>>2])+c|0,c=jg(hA^c,(IA=c>>>0<w>>>0?I+1|0:I)^t,16),K=V,I=(I=Z)+(Z=l)|0,(w=(t=c)+h|0)>>>0<t>>>0&&(I=I+1|0),V=w,t=I,QA=jg(K^w,I^QA,63),iA=I=l,w=I,K=y,I=z+fA|0,(y=S+wA|0)>>>0<S>>>0&&(I=I+1|0),h=y,I=I+w|0,I=(y=y+QA|0)>>>0<h>>>0?I+1|0:I,h=y,w=P,P=I,y=jg(K^y,w^I,32),w=F,I=(K=l)+_|0,(_=y+J|0)>>>0<y>>>0&&(I=I+1|0),J=_,QA=z=jg(QA^_,I^iA,24),fA=_=l,S=I,iA=y,I=P+sA|0,(y=h+Y|0)>>>0<h>>>0&&(I=I+1|0),h=y,I=I+_|0,wA=y=y+z|0,P=jg(iA^y,(_=y>>>0<h>>>0?I+1|0:I)^K,16),I=(I=S)+(S=l)|0,(h=(y=P)+J|0)>>>0<y>>>0&&(I=I+1|0),J=h,y=I,h=jg(h^QA,I^fA,63),K=I=l,n[w+32>>2]=h,n[w+36>>2]=I,z=k,QA=t,iA=s,I=k+B|0,(s=(w=U)+(t=eA)|0)>>>0<t>>>0&&(I=I+1|0),I=I+q|0,q=t=s+X|0,t=jg(iA^t,(s=t>>>0<X>>>0?I+1|0:I)^x,32),x=w,I=(w=l)+QA|0,(k=t+V|0)>>>0<t>>>0&&(I=I+1|0),U=k,V=z=jg(x^k,I^z,24),QA=k=l,x=U,X=I,U=t,I=s+rA|0,(s=(t=aA)+q|0)>>>0<t>>>0&&(I=I+1|0),I=I+k|0,q=t=s+z|0,U=jg(U^t,(z=t>>>0<s>>>0?I+1|0:I)^w,16),I=(I=X)+(X=l)|0,(s=(t=U)+x|0)>>>0<t>>>0&&(I=I+1|0),x=s,w=I,k=jg(s^V,I^QA,63),t=l,V=v,QA=c,I=v+cA|0,(b=(s=b)+(c=f)|0)>>>0<c>>>0&&(I=I+1|0),I=I+gA|0,b=c=b+T|0,c=jg(QA^c,(v=c>>>0<T>>>0?I+1|0:I)^Z,32),Z=s,I=(s=l)+u|0,(M=c+M|0)>>>0<c>>>0&&(I=I+1|0),u=M,M=I,T=V=jg(Z^u,I^V,24),QA=I=l,Z=I,gA=c,I=v+tA|0,(c=p+b|0)>>>0<b>>>0&&(I=I+1|0),p=c,I=I+Z|0,fA=c=c+V|0,gA=jg(gA^c,(v=c>>>0<p>>>0?I+1|0:I)^s,16),I=M+(Z=l)|0,(c=u+gA|0)>>>0<u>>>0&&(I=I+1|0),b=c,u=I,p=jg(c^T,I^QA,63),c=l,M=m,I=m+i|0,(m=(s=G)+(G=R)|0)>>>0<G>>>0&&(I=I+1|0),I=I+IA|0,IA=G=m+N|0,N=jg(G^oA,(m=H)^(H=G>>>0<N>>>0?I+1|0:I),32),V=s,I=W+(s=l)|0,(G=N+AA|0)>>>0<AA>>>0&&(I=I+1|0),m=I,W=AA=jg(V^G,I^M,24),V=I=l,M=I,T=N,I=H+e|0,(N=(H=CA)+IA|0)>>>0<H>>>0&&(I=I+1|0),I=I+M|0,M=H=N+AA|0,T=jg(T^H,(N=H>>>0<N>>>0?I+1|0:I)^s,16),I=m+(AA=l)|0,(s=G+T|0)>>>0<G>>>0&&(I=I+1|0),m=s,s^=W,W=I,H=jg(s,I^V,63),s=l,G=F,IA=k,V=t,QA=T,T=k,I=_+Q|0,(_=(k=O)+wA|0)>>>0<k>>>0&&(I=I+1|0),I=I+t|0,t=jg(QA^(T=k=T+_|0),(k=k>>>0<_>>>0?I+1|0:I)^AA,32),I=(QA=l)+u|0,(b=t+b|0)>>>0<t>>>0&&(I=I+1|0),_=I,V=jg(b^IA,I^V,24),AA=I=l,u=I,I=k+g|0,(IA=(k=BA)+T|0)>>>0<k>>>0&&(I=I+1|0),I=I+u|0,wA=k=IA+V|0,oA=jg(t^k,QA^(IA=k>>>0<IA>>>0?I+1|0:I),16),u=I=l,n[G+120>>2]=oA,n[G+124>>2]=I,I=I+_|0,(t=b+oA|0)>>>0<b>>>0&&(I=I+1|0),_=t,G=AA,AA=I,G=jg(t^V,G^I,63),k=l,b=c,V=P,t=p,I=z+r|0,(p=L+q|0)>>>0<q>>>0&&(I=I+1|0),P=p,I=I+c|0,q=p=(T=t)+p|0,P=jg(V^p,(c=p>>>0<P>>>0?I+1|0:I)^S,32),S=t,I=W+(t=l)|0,(p=m+P|0)>>>0<m>>>0&&(I=I+1|0),m=b,b=I,z=S=jg(S^p,m^I,24),W=I=l,m=I,V=P,I=c+EA|0,(P=(c=nA)+q|0)>>>0<c>>>0&&(I=I+1|0),I=I+m|0,m=c=P+S|0,c=jg(V^c,(P=c>>>0<P>>>0?I+1|0:I)^t,16),I=b+(q=l)|0,(t=c+p|0)>>>0<p>>>0&&(I=I+1|0),S=t,t^=z,z=I,p=jg(t,I^W,63),b=l,W=H,V=s,T=U,I=v+C|0,(U=(t=$)+fA|0)>>>0<t>>>0&&(I=I+1|0),I=I+s|0,s=t=U+H|0,t=jg(T^t,(U=t>>>0<U>>>0?I+1|0:I)^X,32),I=(I=y)+(y=l)|0,(v=t+J|0)>>>0<t>>>0&&(I=I+1|0),W=X=jg((H=v)^W,I^V,24),V=v=l,J=I,T=t,I=U+yA|0,(t=s+d|0)>>>0<s>>>0&&(I=I+1|0),s=t,I=I+v|0,v=t=t+X|0,s=jg(T^t,(X=t>>>0<s>>>0?I+1|0:I)^y,16),U=W,I=(I=J)+(J=l)|0,(y=(t=s)+H|0)>>>0<t>>>0&&(I=I+1|0),W=y,t=I,U=jg(U^y,I^V,63),H=l,V=h,T=K,iA=gA,I=N+K|0,(y=h+M|0)>>>0<M>>>0&&(I=I+1|0),h=y,I=I+(QA=fA=n[F+156>>2])|0,I=(y=(gA=n[F+152>>2])+y|0)>>>0<h>>>0?I+1|0:I,h=y,K=I,y=jg(iA^y,I^Z,32),M=t,I=(t=l)+w|0,(x=y+x|0)>>>0<y>>>0&&(I=I+1|0),V=N=jg((w=x)^V,I^T,24),QA=T=l,x=I,hA=y,I=K+T|0,(y=h+N|0)>>>0<h>>>0&&(I=I+1|0),h=y,I=I+(iA=tA=n[F+236>>2])|0,K=y=(Z=n[F+232>>2])+y|0,t=jg(hA^y,(N=y>>>0<h>>>0?I+1|0:I)^t,16),y=V,I=(I=x)+(x=l)|0,(w=t+w|0)>>>0<t>>>0&&(I=I+1|0),V=w,T=I,QA=jg(y^w,I^QA,63),iA=I=l,y=I,w=c,I=IA+cA|0,(c=f+wA|0)>>>0<f>>>0&&(I=I+1|0),I=I+y|0,IA=f=c+QA|0,f=jg(w^f,(y=f>>>0<c>>>0?I+1|0:I)^q,32),c=F,I=(w=l)+M|0,(M=f+W|0)>>>0<f>>>0&&(I=I+1|0),QA=W=jg(QA^(h=M),I^iA,24),cA=M=l,q=I,iA=f,I=y+EA|0,(y=(f=nA)+IA|0)>>>0<f>>>0&&(I=I+1|0),I=I+M|0,M=f=y+W|0,w=jg(iA^f,(W=f>>>0<y>>>0?I+1|0:I)^w,16),I=(I=q)+(q=l)|0,(y=(f=w)+h|0)>>>0<f>>>0&&(I=I+1|0),IA=y,f=y^QA,QA=I,y=jg(f,I^cA,63),h=I=l,n[c+32>>2]=y,n[c+36>>2]=I,iA=s,I=C+(c=k)|0,(G=(f=G)+(s=$)|0)>>>0<s>>>0&&(I=I+1|0),I=I+P|0,m=jg(iA^(P=s=G+m|0),(s=s>>>0<m>>>0?I+1|0:I)^J,32),k=f,I=T+(f=l)|0,(G=m+V|0)>>>0<V>>>0&&(I=I+1|0),J=c,c=I,V=J=jg(k^G,J^I,24),cA=I=l,k=I,T=m,I=s+i|0,(m=(s=R)+P|0)>>>0<s>>>0&&(I=I+1|0),I=I+k|0,wA=s=m+J|0,T=jg(T^s,(m=s>>>0<m>>>0?I+1|0:I)^f,16),I=c+(P=l)|0,(f=G+T|0)>>>0<G>>>0&&(I=I+1|0),J=f,c=f^V,V=I,G=jg(c,I^cA,63),k=l,iA=t,I=sA+(c=b)|0,(t=Y+(f=p)|0)>>>0<Y>>>0&&(I=I+1|0),I=I+X|0,s=I=(t=t+v|0)>>>0<v>>>0?I+1|0:I,b=jg(iA^t,I^x,32),v=f,I=AA+(f=l)|0,(p=b+_|0)>>>0<_>>>0&&(I=I+1|0),_=c,c=I,x=v=jg(v^p,_^I,24),_=I=l,Y=I,I=s+r|0,(s=t+L|0)>>>0<t>>>0&&(I=I+1|0),I=I+Y|0,cA=t=s+v|0,AA=jg(v=t^b,(b=t>>>0<s>>>0?I+1|0:I)^f,16),I=c+(v=l)|0,(f=p+AA|0)>>>0<p>>>0&&(I=I+1|0),Y=f,c=I,L=jg(f^x,I^_,63),f=l,I=yA+(s=H)|0,(p=d+(t=U)|0)>>>0<d>>>0&&(I=I+1|0),I=I+N|0,d=p=p+K|0,H=jg(p^oA,(H=u)^(u=p>>>0<K>>>0?I+1|0:I),32),U=t,I=z+(t=l)|0,(p=H+S|0)>>>0<S>>>0&&(I=I+1|0),_=s,s=I,x=K=jg(U^p,_^I,24),N=I=l,U=I,_=H,I=u+fA|0,(u=d+gA|0)>>>0<gA>>>0&&(I=I+1|0),H=u,I=I+U|0,I=(u=u+K|0)>>>0<H>>>0?I+1|0:I,H=u,d=I,X=jg(_^u,I^t,16),I=s+(U=l)|0,(t=p+X|0)>>>0<p>>>0&&(I=I+1|0),K=t,s=I,u=jg(t^x,I^N,63),t=l,p=F,x=G,N=k,_=c,I=k+W|0,(c=G+M|0)>>>0<M>>>0&&(I=I+1|0),G=c,I=I+(S=n[F+164>>2])|0,M=c=c+n[F+160>>2]|0,c=jg(c^X,(k=U)^(U=c>>>0<G>>>0?I+1|0:I),32),I=(I=_)+(_=l)|0,(G=c+Y|0)>>>0<c>>>0&&(I=I+1|0),k=I,N=jg(G^x,I^N,24),x=I=l,Y=I,I=U+tA|0,(U=M+Z|0)>>>0<Z>>>0&&(I=I+1|0),M=U,I=I+Y|0,gA=U=U+N|0,z=jg(c^U,_^(M=U>>>0<M>>>0?I+1|0:I),16),Y=I=l,n[p+120>>2]=z,n[p+124>>2]=I,I=I+k|0,(c=G+z|0)>>>0<G>>>0&&(I=I+1|0),G=c,k=I,p=jg(c^N,I^x,63),U=l,x=f,_=w,c=L,I=m+rA|0,(L=(w=aA)+wA|0)>>>0<w>>>0&&(I=I+1|0),I=I+f|0,f=jg(_^(Z=w=(S=c)+L|0),(w=w>>>0<L>>>0?I+1|0:I)^q,32),m=c,I=(c=l)+s|0,(L=f+K|0)>>>0<f>>>0&&(I=I+1|0),N=K=jg(m^(s=L),I^x,24),_=L=l,m=I,S=f,I=w+B|0,(w=(f=eA)+Z|0)>>>0<f>>>0&&(I=I+1|0),I=I+L|0,K=f=w+K|0,f=jg(S^f,(x=f>>>0<w>>>0?I+1|0:I)^c,16),I=(I=m)+(m=l)|0,(s=(c=f)+s|0)>>>0<c>>>0&&(I=I+1|0),Z=s,c=I,s=jg(s^N,I^_,63),w=l,L=u,N=t,_=u,I=b+e|0,(b=(u=CA)+cA|0)>>>0<u>>>0&&(I=I+1|0),I=I+t|0,X=u=_+b|0,_=jg(u^T,(t=u>>>0<b>>>0?I+1|0:I)^P,32),S=L,I=QA+(u=l)|0,(L=_+IA|0)>>>0<IA>>>0&&(I=I+1|0),b=I,q=N=jg(S^L,I^N,24),S=I=l,P=I,T=N,I=t+Q|0,(N=(t=O)+X|0)>>>0<t>>>0&&(I=I+1|0),I=I+P|0,P=t=T+N|0,W=jg(t^_,(N=t>>>0<N>>>0?I+1|0:I)^u,16),I=b+(_=l)|0,(t=L+W|0)>>>0<L>>>0&&(I=I+1|0),b=t,t=I,u=jg(b^q,I^S,63),L=l,q=h,I=h+g|0,(h=(X=y)+(y=BA)|0)>>>0<y>>>0&&(I=I+1|0),I=I+d|0,h=I=(y=h+H|0)>>>0<H>>>0?I+1|0:I,S=jg(y^AA,I^v,32),H=t,I=V+(t=l)|0,(v=J+S|0)>>>0<J>>>0&&(I=I+1|0),d=I,q=J=jg(v^X,I^q,24),IA=I=l,I=I+h|0,(h=y+J|0)>>>0<y>>>0&&(I=I+1|0),I=I+(X=n[F+204>>2])|0,J=y=h+n[F+200>>2]|0,AA=jg(y^S,(X=y>>>0<h>>>0?I+1|0:I)^t,16),y=q,I=d+(q=l)|0,(t=v+AA|0)>>>0<v>>>0&&(I=I+1|0),h=t,v=I,d=jg(y^t,I^IA,63),S=I=l,t=I,V=f,I=M+EA|0,(y=(f=nA)+gA|0)>>>0<f>>>0&&(I=I+1|0),I=I+t|0,M=f=y+d|0,f=jg(V^f,(y=f>>>0<y>>>0?I+1|0:I)^m,32),t=F,I=(I=H)+(H=l)|0,(m=f+b|0)>>>0<f>>>0&&(I=I+1|0),b=m,m=I,V=S=jg(d^b,S^I,24),T=I=l,d=I,IA=f,I=y+B|0,(y=(f=eA)+M|0)>>>0<f>>>0&&(I=I+1|0),I=I+d|0,d=f=y+S|0,IA=jg(IA^f,(S=H)^(H=f>>>0<y>>>0?I+1|0:I),16),I=m+(M=l)|0,(f=b+IA|0)>>>0<b>>>0&&(I=I+1|0),b=f,m=I,f=jg(f^V,I^T,63),y=I=l,n[t+32>>2]=f,n[t+36>>2]=I,S=U,I=U+g|0,(U=(t=p)+(p=BA)|0)>>>0<p>>>0&&(I=I+1|0),I=I+x|0,K=jg((x=p=U+K|0)^W,(p=p>>>0<K>>>0?I+1|0:I)^_,32),_=t,I=v+(t=l)|0,(U=h+K|0)>>>0<h>>>0&&(I=I+1|0),h=U,U=I,S=_=jg(_^h,I^S,24),V=I=l,v=I,W=K,I=p+e|0,(K=(p=CA)+x|0)>>>0<p>>>0&&(I=I+1|0),I=I+v|0,T=p=K+_|0,W=jg(W^p,(v=p>>>0<K>>>0?I+1|0:I)^t,16),I=U+(K=l)|0,(t=h+W|0)>>>0<h>>>0&&(I=I+1|0),U=t,x=I,h=jg(t^S,I^V,63),p=l,_=w,I=w+Q|0,(w=(t=s)+(s=O)|0)>>>0<s>>>0&&(I=I+1|0),I=I+N|0,w=I=(s=w+P|0)>>>0<P>>>0?I+1|0:I,q=jg(s^AA,I^q,32),S=t,I=k+(P=l)|0,(t=G+q|0)>>>0<G>>>0&&(I=I+1|0),G=t,k=I,N=t=jg(S^t,I^_,24),_=I=l,S=q,I=w+I|0,(t=t+s|0)>>>0<s>>>0&&(I=I+1|0),s=t,I=I+(AA=n[F+236>>2])|0,q=t=t+n[F+232>>2]|0,V=jg(S^t,(w=P)^(P=t>>>0<s>>>0?I+1|0:I),16),w=N,I=k+(N=l)|0,(t=G+V|0)>>>0<G>>>0&&(I=I+1|0),G=t,s=I,w=jg(w^t,I^_,63),t=l,k=u,S=c,I=X+(_=L)|0,(c=u+J|0)>>>0<J>>>0&&(I=I+1|0),u=c,I=I+(AA=n[F+164>>2])|0,J=c=c+n[F+160>>2]|0,c=jg(c^z,(u=c>>>0<u>>>0?I+1|0:I)^Y,32),X=k,I=(L=l)+S|0,(k=c+Z|0)>>>0<c>>>0&&(I=I+1|0),Y=k,k=I,X=_=jg(X^Y,I^_,24),S=I=l,Z=I,z=c,I=u+i|0,(u=(c=R)+J|0)>>>0<c>>>0&&(I=I+1|0),I=I+Z|0,gA=c=u+_|0,z=jg(z^c,(Z=c>>>0<u>>>0?I+1|0:I)^L,16),I=k+(J=l)|0,(c=Y+z|0)>>>0<Y>>>0&&(I=I+1|0),k=c,c=I,u=jg(k^X,I^S,63),L=l,Y=F,_=h,X=p,S=s,QA=z,I=p+H|0,(s=h+d|0)>>>0<d>>>0&&(I=I+1|0),h=s,I=I+(AA=n[F+132>>2])|0,z=s=s+n[F+128>>2]|0,s=jg(QA^s,(h=s>>>0<h>>>0?I+1|0:I)^J,32),d=_,I=(_=l)+S|0,(H=s+G|0)>>>0<s>>>0&&(I=I+1|0),p=H,H=I,J=jg(d^p,I^X,24),G=I=l,d=I,I=h+rA|0,(X=(h=aA)+z|0)>>>0<h>>>0&&(I=I+1|0),I=I+d|0,QA=h=X+J|0,AA=jg(s^h,_^(d=h>>>0<X>>>0?I+1|0:I),16),s=I=l,n[Y+120>>2]=AA,n[Y+124>>2]=I,I=I+H|0,(h=p+AA|0)>>>0<p>>>0&&(I=I+1|0),H=h,p=G,G=I,h=jg(h^J,p^I,63),p=l,Y=w,J=t,_=c,S=w,I=v+C|0,(w=(c=$)+T|0)>>>0<c>>>0&&(I=I+1|0),I=I+t|0,X=c=S+w|0,c=jg(c^IA,(w=c>>>0<w>>>0?I+1|0:I)^M,32),S=Y,I=(Y=l)+_|0,(k=(t=c)+k|0)>>>0<t>>>0&&(I=I+1|0),v=I,M=t=jg(S^k,I^J,24),J=I=l,z=c,I=w+I|0,(c=t+X|0)>>>0<t>>>0&&(I=I+1|0),I=I+(S=n[F+156>>2])|0,_=t=c+n[F+152>>2]|0,z=jg(z^t,(X=t>>>0<c>>>0?I+1|0:I)^Y,16),I=v+(Y=l)|0,(t=k+z|0)>>>0<k>>>0&&(I=I+1|0),k=t,v=I,c=jg(t^M,I^J,63),w=l,I=P+(M=L)|0,(u=q+(t=u)|0)>>>0<q>>>0&&(I=I+1|0),L=u,I=I+(J=n[F+204>>2])|0,L=I=(u=u+n[F+200>>2]|0)>>>0<L>>>0?I+1|0:I,J=jg(u^W,I^K,32),S=t,I=m+(P=l)|0,(t=b+J|0)>>>0<b>>>0&&(I=I+1|0),b=t,m=I,K=t=jg(S^t,I^M,24),M=I=l,q=J,I=L+I|0,(t=t+u|0)>>>0<u>>>0&&(I=I+1|0),u=t,I=I+(S=n[F+148>>2])|0,J=t=t+n[F+144>>2]|0,W=jg(q^t,(S=P)^(P=t>>>0<u>>>0?I+1|0:I),16),u=K,I=m+(K=l)|0,(t=b+W|0)>>>0<b>>>0&&(I=I+1|0),b=I,u=jg(u^t,I^M,63),L=l,m=f,M=y,I=y+Z|0,(y=f+gA|0)>>>0<f>>>0&&(I=I+1|0),I=I+(q=n[F+196>>2])|0,q=f=y+n[F+192>>2]|0,N=jg(f^V,(y=f>>>0<y>>>0?I+1|0:I)^N,32),S=m,I=x+(m=l)|0,(f=U+N|0)>>>0<U>>>0&&(I=I+1|0),U=f,M=f=jg(S^f,I^M,24),Z=I,V=n[F+220>>2],S=N,I=(x=l)+y|0,(y=f+q|0)>>>0<f>>>0&&(I=I+1|0),I=I+(IA=V)|0,q=f=(N=n[F+216>>2])+y|0,y=jg(S^f,(T=m)^(m=f>>>0<y>>>0?I+1|0:I),16),S=M,I=(M=l)+Z|0,(U=(f=y)+U|0)>>>0<f>>>0&&(I=I+1|0),f=x,x=I,Z=f=jg(S^U,f^I,63),S=I=l,I=d+I|0,(d=f+QA|0)>>>0<f>>>0&&(I=I+1|0),I=I+(T=n[F+236>>2])|0,T=f=d+n[F+232>>2]|0,IA=jg(f^z,(IA=Y)^(Y=f>>>0<d>>>0?I+1|0:I),32),I=b+(d=l)|0,(f=t+IA|0)>>>0<t>>>0&&(I=I+1|0),b=f,t=f^Z,Z=I,f=jg(t,I^S,24),t=F,S=f,z=I=l,I=Y+I|0,(Y=f+T|0)>>>0<f>>>0&&(I=I+1|0),I=I+V|0,V=f=Y+N|0,IA=jg(f^IA,(Y=d)^(d=f>>>0<N>>>0?I+1|0:I),16),I=Z+(N=l)|0,(f=b+IA|0)>>>0<b>>>0&&(I=I+1|0),b=f,Z=I,f=jg(f^S,I^z,63),Y=I=l,n[t+32>>2]=f,n[t+36>>2]=I,S=p,I=p+rA|0,(p=(t=h)+(h=aA)|0)>>>0<h>>>0&&(I=I+1|0),I=I+X|0,_=jg((X=h=p+_|0)^W,(h=h>>>0<_>>>0?I+1|0:I)^K,32),K=t,I=x+(t=l)|0,(p=U+_|0)>>>0<U>>>0&&(I=I+1|0),U=I,z=x=jg(K^p,I^S,24),W=I=l,K=I,S=x,I=h+Q|0,(x=(h=O)+X|0)>>>0<h>>>0&&(I=I+1|0),I=I+K|0,T=h=S+x|0,S=jg(h^_,(K=h>>>0<x>>>0?I+1|0:I)^t,16),I=U+(x=l)|0,(t=p+S|0)>>>0<p>>>0&&(I=I+1|0),_=t,X=I,h=jg(t^z,I^W,63),t=l,U=w,z=y,I=w+EA|0,(y=(p=c)+(c=nA)|0)>>>0<c>>>0&&(I=I+1|0),I=I+P|0,I=(c=y+J|0)>>>0<J>>>0?I+1|0:I,J=c,c=I,P=jg(z^J,I^M,32),I=G+(y=l)|0,(w=H+P|0)>>>0<H>>>0&&(I=I+1|0),H=w^p,p=I,M=H=jg(H,I^U,24),W=I=l,U=I,G=H,I=c+g|0,(H=(c=BA)+J|0)>>>0<c>>>0&&(I=I+1|0),I=I+U|0,I=(c=G+H|0)>>>0<H>>>0?I+1|0:I,H=c,G=I,z=jg(c^P,I^y,16),I=p+(P=l)|0,(c=w+z|0)>>>0<w>>>0&&(I=I+1|0),p=c,U=I,y=jg(c^M,I^W,63),c=l,I=m+(M=L)|0,(u=q+(w=u)|0)>>>0<q>>>0&&(I=I+1|0),L=u,I=I+(J=n[F+156>>2])|0,L=I=(u=u+n[F+152>>2]|0)>>>0<L>>>0?I+1|0:I,J=jg(u^AA,I^s,32),m=w,I=v+(w=l)|0,(s=k+J|0)>>>0<k>>>0&&(I=I+1|0),k=s,v=I,m=s=jg(m^s,I^M,24),M=I=l,I=L+I|0,(s=s+u|0)>>>0<u>>>0&&(I=I+1|0),u=s,I=I+(AA=n[F+204>>2])|0,gA=s=s+n[F+200>>2]|0,q=jg(q=s^J,(J=s>>>0<u>>>0?I+1|0:I)^w,16),I=v+(L=l)|0,(s=k+q|0)>>>0<k>>>0&&(I=I+1|0),k=s,v=I,s=jg(s^m,I^M,63),u=l,w=F,m=h,M=t,W=h,I=d+B|0,(d=(h=eA)+V|0)>>>0<h>>>0&&(I=I+1|0),I=I+t|0,d=jg((t=h=W+d|0)^q,(h=L)^(L=t>>>0<d>>>0?I+1|0:I),32),I=U+(q=l)|0,(h=p+d|0)>>>0<p>>>0&&(I=I+1|0),p=I,M=jg(h^m,I^M,24),I=L+(U=l)|0,(L=t+M|0)>>>0<t>>>0&&(I=I+1|0),t=(t=L)+(L=n[F+128>>2])|0,I=n[F+132>>2]+I|0,V=t,AA=jg(d^t,q^(m=t>>>0<L>>>0?I+1|0:I),16),L=I=l,n[w+120>>2]=AA,n[w+124>>2]=I,I=p+I|0,(t=h+AA|0)>>>0<h>>>0&&(I=I+1|0),d=t,t^=M,M=I,w=jg(t,I^U,63),h=l,p=c,t=y,I=K+e|0,(U=(y=CA)+T|0)>>>0<y>>>0&&(I=I+1|0),I=I+c|0,q=y=(q=t)+U|0,K=jg(y^IA,(c=y>>>0<U>>>0?I+1|0:I)^N,32),N=t,I=v+(y=l)|0,(t=k+K|0)>>>0<k>>>0&&(I=I+1|0),U=t,k=p,p=I,k=t=jg(N^t,k^I,24),v=I=l,T=K,I=c+I|0,(c=t+q|0)>>>0<t>>>0&&(I=I+1|0),I=I+(W=n[F+164>>2])|0,K=t=c+n[F+160>>2]|0,c=jg(T^t,(N=t>>>0<c>>>0?I+1|0:I)^y,16),q=k,I=p+(y=l)|0,(t=c+U|0)>>>0<U>>>0&&(I=I+1|0),k=t,p=v,v=I,p=jg(q^t,p^I,63),U=l,q=u,I=u+G|0,(s=H+(t=s)|0)>>>0<H>>>0&&(I=I+1|0),u=s,I=I+(W=n[F+196>>2])|0,x=jg((T=S)^(S=s=s+n[F+192>>2]|0),(s=s>>>0<u>>>0?I+1|0:I)^x,32),G=t,I=Z+(t=l)|0,(u=b+x|0)>>>0<b>>>0&&(I=I+1|0),H=I,Z=b=jg(G^u,I^q,24),q=I=l,G=I,T=b,I=s+C|0,(b=(s=$)+S|0)>>>0<s>>>0&&(I=I+1|0),I=I+G|0,G=s=T+b|0,W=jg(s^x,(b=s>>>0<b>>>0?I+1|0:I)^t,16),I=H+(x=l)|0,(t=u+W|0)>>>0<u>>>0&&(I=I+1|0),H=t,t=I,s=jg(H^Z,I^q,63),u=l,Z=f,q=Y,I=Y+J|0,(Y=f+gA|0)>>>0<f>>>0&&(I=I+1|0),I=I+(S=n[F+148>>2])|0,S=jg((T=z)^(z=f=Y+n[F+144>>2]|0),(f=f>>>0<Y>>>0?I+1|0:I)^P,32),Y=t,I=X+(t=l)|0,(P=_+S|0)>>>0<_>>>0&&(I=I+1|0),_=P^Z,Z=I,X=_=jg(_,I^q,24),q=I=l,J=I,T=_,I=f+i|0,(_=(f=R)+z|0)>>>0<f>>>0&&(I=I+1|0),I=I+J|0,J=f=T+_|0,IA=jg(f^S,(_=f>>>0<_>>>0?I+1|0:I)^t,16),t=X,I=Z+(X=l)|0,(f=P+IA|0)>>>0<P>>>0&&(I=I+1|0),P=f,Z=I,q=jg(t^f,I^q,63),S=I=l,f=I,T=c,I=m+C|0,(c=(t=$)+V|0)>>>0<t>>>0&&(I=I+1|0),I=I+f|0,z=t=c+q|0,f=jg(T^t,(c=t>>>0<c>>>0?I+1|0:I)^y,32),t=F,I=(y=l)+Y|0,(H=f+H|0)>>>0<f>>>0&&(I=I+1|0),Y=H,H=I,S=q=jg(q^Y,S^I,24),T=I=l,m=I,V=f,I=c+e|0,(c=(f=CA)+z|0)>>>0<f>>>0&&(I=I+1|0),I=I+m|0,cA=f=c+q|0,V=jg(V^f,(m=f>>>0<c>>>0?I+1|0:I)^y,16),c=S,I=H+(q=l)|0,(f=Y+V|0)>>>0<Y>>>0&&(I=I+1|0),S=f,z=I,y=jg(c^f,I^T,63),Y=I=l,n[t+32>>2]=y,n[t+36>>2]=I,I=Q+(t=h)|0,(w=(f=w)+(c=O)|0)>>>0<c>>>0&&(I=I+1|0),I=I+N|0,w=I=(c=w+K|0)>>>0<K>>>0?I+1|0:I,x=jg(c^W,I^x,32),N=f,I=Z+(h=l)|0,(f=P+x|0)>>>0<P>>>0&&(I=I+1|0),H=f,P=t,t=I,P=f=jg(N^f,P^I,24),K=I=l,I=w+I|0,(f=c+f|0)>>>0<c>>>0&&(I=I+1|0),I=I+(N=n[F+204>>2])|0,W=f=(c=f)+n[F+200>>2]|0,gA=jg(w=f^x,(x=f>>>0<c>>>0?I+1|0:I)^h,16),c=P,I=t+(P=l)|0,(f=H+gA|0)>>>0<H>>>0&&(I=I+1|0),Z=f,t=K,K=I,w=jg(c^f,t^I,63),f=l,I=b+(c=U)|0,(h=G+(t=p)|0)>>>0<G>>>0&&(I=I+1|0),p=h,I=I+(H=n[F+220>>2])|0,p=I=(h=h+n[F+216>>2]|0)>>>0<p>>>0?I+1|0:I,N=jg(h^IA,I^X,32),G=t,I=M+(U=l)|0,(t=N+d|0)>>>0<d>>>0&&(I=I+1|0),H=t,b=c,c=I,G=t=jg(G^t,b^I,24),b=I=l,I=p+I|0,(t=t+h|0)>>>0<h>>>0&&(I=I+1|0),h=t,I=I+(M=n[F+156>>2])|0,IA=t=t+n[F+152>>2]|0,QA=jg(t^N,(d=t>>>0<h>>>0?I+1|0:I)^U,16),I=c+(M=l)|0,(t=H+QA|0)>>>0<H>>>0&&(I=I+1|0),p=t,U=I,t=jg(t^G,I^b,63),h=l,H=u,I=u+_|0,(s=J+(c=s)|0)>>>0<J>>>0&&(I=I+1|0),u=s,I=I+(G=n[F+132>>2])|0,u=I=(s=s+n[F+128>>2]|0)>>>0<u>>>0?I+1|0:I,N=jg(s^AA,I^L,32),b=c,I=v+(L=l)|0,(c=k+N|0)>>>0<k>>>0&&(I=I+1|0),G=c,k=H,H=I,k=c=jg(b^c,k^I,24),b=I=l,I=u+I|0,(c=c+s|0)>>>0<s>>>0&&(I=I+1|0),s=c,I=I+(J=n[F+196>>2])|0,v=c=c+n[F+192>>2]|0,J=jg(u=c^N,(N=c>>>0<s>>>0?I+1|0:I)^L,16),I=H+(L=l)|0,(c=G+J|0)>>>0<G>>>0&&(I=I+1|0),H=c,G=I,u=jg(c^k,I^b,63),c=l,s=F,k=w,b=f,_=w,I=m+EA|0,(m=(w=nA)+cA|0)>>>0<w>>>0&&(I=I+1|0),I=I+f|0,_=jg((f=w=_+m|0)^J,(w=L)^(L=f>>>0<m>>>0?I+1|0:I),32),I=U+(AA=l)|0,(w=p+_|0)>>>0<p>>>0&&(I=I+1|0),p=w,U=I,X=jg(w^k,I^b,24),k=F,w=n[F+144>>2],I=L+(b=l)|0,(L=f+X|0)>>>0<f>>>0&&(I=I+1|0),L=(f=w)+L|0,I=(m=n[k+148>>2])+I|0,T=jg(k=_^(J=L),AA^(_=J>>>0<f>>>0?I+1|0:I),16),L=I=l,n[s+120>>2]=T,n[s+124>>2]=I,k=X,I=U+I|0,(f=p+T|0)>>>0<p>>>0&&(I=I+1|0),X=f,s=I,p=jg(k^f,I^b,63),U=l,f=t,k=h,I=h+x|0,(h=t+W|0)>>>0<t>>>0&&(I=I+1|0),I=I+(b=n[F+236>>2])|0,b=jg((x=t=h+n[F+232>>2]|0)^V,(t=t>>>0<h>>>0?I+1|0:I)^q,32),q=f,I=G+(f=l)|0,(h=b+H|0)>>>0<H>>>0&&(I=I+1|0),H=I,q=k=jg(q^h,I^k,24),W=I=l,G=I,V=b,b=k,I=t+rA|0,(k=(t=aA)+x|0)>>>0<t>>>0&&(I=I+1|0),I=I+G|0,b=t=b+k|0,t=jg(V^t,(x=t>>>0<k>>>0?I+1|0:I)^f,16),G=q,I=H+(q=l)|0,(f=t+h|0)>>>0<h>>>0&&(I=I+1|0),AA=f,H=W,W=I,h=jg(G^f,H^I,63),H=l,G=c,f=u,I=d+g|0,(k=(u=BA)+IA|0)>>>0<u>>>0&&(I=I+1|0),I=I+c|0,V=jg((c=u=(V=f)+k|0)^gA,(u=c>>>0<k>>>0?I+1|0:I)^P,32),P=f,I=z+(k=l)|0,(f=S+V|0)>>>0<S>>>0&&(I=I+1|0),d=f,P=f=jg(P^f,I^G,24),S=I,z=I=n[F+164>>2],IA=I,I=u+(G=l)|0,(f=c+f|0)>>>0<c>>>0&&(I=I+1|0),I=I+IA|0,IA=f=(cA=n[F+160>>2])+(c=f)|0,u=jg(u=f^V,(V=f>>>0<c>>>0?I+1|0:I)^k,16),k=P,I=(P=l)+S|0,(c=(f=u)+d|0)>>>0<f>>>0&&(I=I+1|0),f=I,G=jg(k^c,I^G,63),k=l,S=Y,I=Y+i|0,(Y=(d=y)+(y=R)|0)>>>0<y>>>0&&(I=I+1|0),I=I+N|0,M=jg((N=y=Y+v|0)^QA,(y=y>>>0<v>>>0?I+1|0:I)^M,32),I=K+(Y=l)|0,(v=M+Z|0)>>>0<Z>>>0&&(I=I+1|0),K=v^d,d=I,gA=Z=jg(K,I^S,24),QA=I=l,K=I,S=M,I=y+B|0,(M=(y=eA)+N|0)>>>0<y>>>0&&(I=I+1|0),I=I+K|0,K=y=M+Z|0,S=jg(S^y,(N=Y)^(Y=y>>>0<M>>>0?I+1|0:I),16),I=d+(M=l)|0,(y=v+S|0)>>>0<v>>>0&&(I=I+1|0),v=I,gA=jg(y^gA,I^QA,63),QA=I=l,d=I,N=t,I=_+i|0,(R=R+J|0)>>>0<J>>>0&&(I=I+1|0),I=I+d|0,d=R=(t=R)+gA|0,R=jg(N^R,(Z=R>>>0<t>>>0?I+1|0:I)^q,32),I=(N=l)+f|0,(t=(f=R)+c|0)>>>0<f>>>0&&(I=I+1|0),c=t,J=I,f=jg(gA^t,QA^I,24),t=F,_=f,q=I=l,gA=R,I=Z+I|0,(R=f+d|0)>>>0<d>>>0&&(I=I+1|0),I=I+m|0,QA=R=(f=R)+w|0,gA=jg(gA^R,(m=R>>>0<f>>>0?I+1|0:I)^N,16),I=J+(d=l)|0,(R=c+gA|0)>>>0<c>>>0&&(I=I+1|0),Z=R,c=I,R=jg(R^_,I^q,63),w=I=l,n[t+32>>2]=R,n[t+36>>2]=I,_=u,I=x+(t=U)|0,(u=b+(f=p)|0)>>>0<b>>>0&&(I=I+1|0),p=u,I=I+(N=n[F+196>>2])|0,P=jg(_^(x=u=u+n[F+192>>2]|0),(u=u>>>0<p>>>0?I+1|0:I)^P,32),U=f,I=v+(p=l)|0,(f=y+P|0)>>>0<y>>>0&&(I=I+1|0),y=f,v=t,t=I,U=f=jg(U^f,v^I,24),b=I=l,I=u+I|0,(u=f+x|0)>>>0<f>>>0&&(I=I+1|0),I=I+z|0,q=f=u+cA|0,z=jg(f^P,(v=f>>>0<u>>>0?I+1|0:I)^p,16),I=t+(P=l)|0,(f=y+z|0)>>>0<y>>>0&&(I=I+1|0),x=f,y=I,u=jg(f^U,I^b,63),f=l,p=h,I=rA+(U=H)|0,(h=(t=aA)+h|0)>>>0<t>>>0&&(I=I+1|0),I=I+V|0,b=t=h+IA|0,t=jg(t^S,(h=t>>>0<IA>>>0?I+1|0:I)^M,32),_=p,I=(I=s)+(s=l)|0,(H=t+X|0)>>>0<t>>>0&&(I=I+1|0),p=H,H=U,U=I,N=M=jg(_^p,H^I,24),J=I=l,H=I,_=t,I=h+C|0,(h=(t=$)+b|0)>>>0<t>>>0&&(I=I+1|0),I=I+H|0,H=t=h+M|0,S=jg(_^t,(b=t>>>0<h>>>0?I+1|0:I)^s,16),I=U+(M=l)|0,(t=p+S|0)>>>0<p>>>0&&(I=I+1|0),U=t,s=I,t=jg(t^N,I^J,63),h=l,N=k,I=k+g|0,(k=(p=G)+(G=BA)|0)>>>0<G>>>0&&(I=I+1|0),I=I+Y|0,J=G=k+K|0,K=jg(G^T,(k=L)^(L=G>>>0<K>>>0?I+1|0:I),32),k=p,I=W+(p=l)|0,(Y=K+AA|0)>>>0<AA>>>0&&(I=I+1|0),G=I,_=N=jg(k^Y,I^N,24),AA=I=l,k=I,X=K,I=L+B|0,(K=(L=eA)+J|0)>>>0<L>>>0&&(I=I+1|0),I=I+k|0,IA=L=K+N|0,X=jg(X^L,(k=L>>>0<K>>>0?I+1|0:I)^p,16),I=G+(K=l)|0,(L=Y+X|0)>>>0<Y>>>0&&(I=I+1|0),N=I,L=jg((G=L)^_,I^AA,63),p=l,Y=F,J=u,_=f,V=u,I=m+e|0,(m=(u=CA)+QA|0)>>>0<u>>>0&&(I=I+1|0),I=I+f|0,m=I=(u=V+m|0)>>>0<m>>>0?I+1|0:I,f=jg(u^X,I^K,32),I=(X=l)+s|0,(U=f+U|0)>>>0<f>>>0&&(I=I+1|0),AA=U,U=I,J=jg(AA^J,I^_,24),I=m+(K=l)|0,(s=u+J|0)>>>0<u>>>0&&(I=I+1|0),s=(u=n[F+216>>2])+s|0,I=n[F+220>>2]+I|0,V=s,s=jg(f^s,X^(m=s>>>0<u>>>0?I+1|0:I),16),u=I=l,n[Y+120>>2]=s,n[Y+124>>2]=I,_=J,I=I+U|0,(Y=(f=s)+AA|0)>>>0<f>>>0&&(I=I+1|0),J=Y,f=K,K=I,f=jg(_^Y,f^I,63),Y=l,U=t,_=h,I=h+v|0,(h=t+q|0)>>>0<t>>>0&&(I=I+1|0),I=I+(X=n[F+204>>2])|0,d=jg((X=t=h+n[F+200>>2]|0)^gA,(t=t>>>0<h>>>0?I+1|0:I)^d,32),v=U,I=N+(h=l)|0,(U=G+d|0)>>>0<G>>>0&&(I=I+1|0),G=I,_=N=jg(v^U,I^_,24),q=I=l,v=I,W=d,I=t+Q|0,(d=(t=O)+X|0)>>>0<t>>>0&&(I=I+1|0),I=I+v|0,T=t=d+N|0,AA=jg(W^t,(v=t>>>0<d>>>0?I+1|0:I)^h,16),I=G+(d=l)|0,(t=U+AA|0)>>>0<U>>>0&&(I=I+1|0),G=t,t=I,h=jg(G^_,I^q,63),U=l,_=p,X=c,q=I=n[F+156>>2],c=I,I=p+b|0,(L=H+(N=L)|0)>>>0<H>>>0&&(I=I+1|0),I=I+c|0,c=jg((W=z)^(z=L=(gA=n[F+152>>2])+(p=L)|0),(L=L>>>0<p>>>0?I+1|0:I)^P,32),I=(p=l)+X|0,(b=c+Z|0)>>>0<c>>>0&&(I=I+1|0),H=b,b=I,N=Z=jg(H^N,I^_,24),_=I=l,P=I,X=c,I=L+EA|0,(L=(c=nA)+z|0)>>>0<c>>>0&&(I=I+1|0),I=I+P|0,P=c=L+Z|0,W=jg(X^c,(Z=c>>>0<L>>>0?I+1|0:I)^p,16),X=N,I=b+(N=l)|0,(c=H+W|0)>>>0<H>>>0&&(I=I+1|0),p=c,H=I,c=jg(X^c,I^_,63),L=l,_=w,X=y,z=S,I=w+k|0,(w=(b=R)+IA|0)>>>0<b>>>0&&(I=I+1|0),I=I+(y=n[F+236>>2])|0,S=R=w+n[F+232>>2]|0,y=jg(z^R,(w=R>>>0<w>>>0?I+1|0:I)^M,32),R=b,I=(k=l)+X|0,(b=y+x|0)>>>0<y>>>0&&(I=I+1|0),M=R=jg(R^b,I^_,24),_=I,z=n[F+132>>2],QA=y,I=(x=l)+w|0,(w=R+S|0)>>>0<R>>>0&&(I=I+1|0),I=I+(IA=z)|0,X=R=(y=n[F+128>>2])+w|0,w=jg(QA^R,(S=k)^(k=R>>>0<w>>>0?I+1|0:I),16),R=M,I=(M=l)+_|0,(b=w+b|0)>>>0<w>>>0&&(I=I+1|0),_=x,x=I,_=R=jg(R^b,_^I,63),S=I=l,IA=AA,I=m+I|0,(m=R+V|0)>>>0<R>>>0&&(I=I+1|0),I=I+z|0,AA=R=y+m|0,z=jg(IA^R,(y=R>>>0<y>>>0?I+1|0:I)^d,32),R=F,I=H+(m=l)|0,(H=p+z|0)>>>0<p>>>0&&(I=I+1|0),p=H,H=I,S=_=jg(p^_,I^S,24),V=I=l,d=I,IA=_,I=y+g|0,(_=(y=BA)+AA|0)>>>0<y>>>0&&(I=I+1|0),I=I+d|0,d=y=IA+_|0,IA=jg(y^z,(IA=m)^(m=y>>>0<_>>>0?I+1|0:I),16),AA=S,I=H+(_=l)|0,(y=p+IA|0)>>>0<p>>>0&&(I=I+1|0),S=y,z=I,y=jg(AA^y,I^V,63),p=I=l,n[R+32>>2]=y,n[R+36>>2]=I,R=f,H=Y,I=Y+v|0,(Y=f+T|0)>>>0<f>>>0&&(I=I+1|0),I=I+(AA=n[F+148>>2])|0,N=jg((AA=f=Y+n[F+144>>2]|0)^W,(f=f>>>0<Y>>>0?I+1|0:I)^N,32),v=R,I=x+(Y=l)|0,(R=b+N|0)>>>0<b>>>0&&(I=I+1|0),b=R,R=H,H=I,R=jg(v^b,R^I,24),x=I=l,I=f+I|0,(f=(v=R)+AA|0)>>>0<v>>>0&&(I=I+1|0),I=I+q|0,V=R=f+gA|0,q=jg(q=R^N,(N=R>>>0<f>>>0?I+1|0:I)^Y,16),f=v,I=H+(v=l)|0,(R=b+q|0)>>>0<b>>>0&&(I=I+1|0),H=x,x=I,Y=jg(f^(b=R),H^I,63),H=l,R=h,T=w,I=Z+(f=U)|0,(w=h+P|0)>>>0<P>>>0&&(I=I+1|0),I=I+(AA=n[F+164>>2])|0,P=jg(T^(Z=w=(h=w)+n[F+160>>2]|0),(w=w>>>0<h>>>0?I+1|0:I)^M,32),U=R,I=K+(R=l)|0,(h=P+J|0)>>>0<J>>>0&&(I=I+1|0),M=f,f=I,M=K=jg(U^h,M^I,24),J=I=l,U=I,W=P,I=w+B|0,(P=(w=eA)+Z|0)>>>0<w>>>0&&(I=I+1|0),I=I+U|0,T=w=P+K|0,W=jg(W^w,(U=w>>>0<P>>>0?I+1|0:I)^R,16),I=f+(P=l)|0,(R=h+W|0)>>>0<h>>>0&&(I=I+1|0),K=I,R=jg((h=R)^M,I^J,63),w=l,M=c,Z=L,I=L+C|0,(c=(f=$)+c|0)>>>0<f>>>0&&(I=I+1|0),I=I+k|0,k=f=c+X|0,f=jg(f^s,(c=f>>>0<X>>>0?I+1|0:I)^u,32),I=(I=t)+(t=l)|0,(u=f+G|0)>>>0<f>>>0&&(I=I+1|0),s=u,u=I,M=G=jg(s^M,I^Z,24),Z=I=l,L=I,J=f,I=c+rA|0,(c=(f=aA)+k|0)>>>0<f>>>0&&(I=I+1|0),I=I+L|0,G=f=c+G|0,J=jg(J^f,(k=f>>>0<c>>>0?I+1|0:I)^t,16),t=M,I=u+(L=l)|0,(f=s+J|0)>>>0<s>>>0&&(I=I+1|0),M=f,c=I,s=jg(t^f,I^Z,63),f=l,Z=H,I=H+m|0,(Y=d+(u=Y)|0)>>>0<d>>>0&&(I=I+1|0),H=Y,I=I+(X=n[(t=F)+196>>2])|0,I=(Y=Y+n[t+192>>2]|0)>>>0<H>>>0?I+1|0:I,H=L,L=I,d=jg(Y^J,H^I,32),m=u,I=K+(J=l)|0,(u=h+d|0)>>>0<h>>>0&&(I=I+1|0),H=I,K=jg(m^(h=u),I^Z,24),I=L+(m=l)|0,(u=Y+K|0)>>>0<Y>>>0&&(I=I+1|0),u=(L=n[F+200>>2])+u|0,I=n[F+204>>2]+I|0,gA=u,AA=jg(d^u,J^(Y=u>>>0<L>>>0?I+1|0:I),16),u=I=l,n[t+120>>2]=AA,n[t+124>>2]=I,I=I+H|0,(t=h+AA|0)>>>0<h>>>0&&(I=I+1|0),H=t,h=m,m=I,t=jg(t^K,h^I,63),L=l,d=w,K=c,I=w+N|0,(w=(h=R)+V|0)>>>0<h>>>0&&(I=I+1|0),I=I+(c=QA=n[F+212>>2])|0,J=R=(Z=n[F+208>>2])+w|0,c=jg(R^IA,(w=R>>>0<w>>>0?I+1|0:I)^_,32),_=h,I=(h=l)+K|0,(K=c+M|0)>>>0<c>>>0&&(I=I+1|0),R=d,d=I,M=R=jg(_^K,R^I,24),N=I=l,_=c,I=w+I|0,(c=R+J|0)>>>0<R>>>0&&(I=I+1|0),I=I+(X=n[F+220>>2])|0,IA=R=c+n[F+216>>2]|0,c=jg(_^R,(J=R>>>0<c>>>0?I+1|0:I)^h,16),w=M,I=d+(M=l)|0,(R=c+K|0)>>>0<K>>>0&&(I=I+1|0),d=R,K=I,w=jg(w^R,I^N,63),h=l,R=s,N=f,_=q,q=s,I=U+EA|0,(U=(s=nA)+T|0)>>>0<s>>>0&&(I=I+1|0),I=I+f|0,q=s=q+U|0,X=jg(_^s,(f=s>>>0<U>>>0?I+1|0:I)^v,32),_=R,I=z+(s=l)|0,(R=S+X|0)>>>0<S>>>0&&(I=I+1|0),v=I,N=R=jg(_^(U=R),I^N,24),_=I=l,S=X,I=f+I|0,(f=R+q|0)>>>0<R>>>0&&(I=I+1|0),I=I+(z=n[F+236>>2])|0,X=R=f+n[F+232>>2]|0,S=jg(S^R,(q=R>>>0<f>>>0?I+1|0:I)^s,16),s=N,I=v+(N=l)|0,(R=U+S|0)>>>0<U>>>0&&(I=I+1|0),U=I,R=jg(s^(f=R),I^_,63),s=l,_=p,I=p+Q|0,(p=(v=y)+(y=O)|0)>>>0<y>>>0&&(I=I+1|0),I=I+k|0,P=jg((z=y=p+G|0)^W,(y=y>>>0<G>>>0?I+1|0:I)^P,32),I=x+(p=l)|0,(G=b+P|0)>>>0<b>>>0&&(I=I+1|0),k=I,x=v=jg(G^v,I^_,24),W=I=l,b=I,_=v,I=y+e|0,(v=(y=CA)+z|0)>>>0<y>>>0&&(I=I+1|0),I=I+b|0,_=jg((z=y=_+v|0)^P,(y=y>>>0<v>>>0?I+1|0:I)^p,16),I=k+(p=l)|0,(k=G+_|0)>>>0<G>>>0&&(I=I+1|0),G=k,k=I,v=jg(G^x,I^W,63),P=I=l,b=I,x=c,I=Y+Q|0,(c=O+gA|0)>>>0<O>>>0&&(I=I+1|0),I=I+b|0,W=O=c+v|0,x=jg(x^O,(c=O>>>0<c>>>0?I+1|0:I)^M,32),I=U+(Y=l)|0,(O=f+x|0)>>>0<f>>>0&&(I=I+1|0),b=I,O=jg(v^(U=O),P^I,24),f=F,P=I=l,I=c+I|0,(c=(v=O)+W|0)>>>0<v>>>0&&(I=I+1|0),I=I+QA|0,W=O=c+Z|0,M=jg(O^x,(c=Y)^(Y=O>>>0<Z>>>0?I+1|0:I),16),c=v,I=b+(v=l)|0,(O=U+M|0)>>>0<U>>>0&&(I=I+1|0),b=I,O=jg(c^(U=O),I^P,63),c=I=l,n[f+32>>2]=O,n[f+36>>2]=I,f=t,I=(P=L)+J|0,(L=t+IA|0)>>>0<t>>>0&&(I=I+1|0),I=I+(x=n[F+164>>2])|0,Z=jg((J=t=L+n[F+160>>2]|0)^S,(t=t>>>0<L>>>0?I+1|0:I)^N,32),S=f,I=k+(L=l)|0,(f=G+Z|0)>>>0<G>>>0&&(I=I+1|0),G=f,k=I,P=f=jg(S^f,I^P,24),x=I=l,I=t+I|0,(t=f+J|0)>>>0<f>>>0&&(I=I+1|0),I=I+(S=n[F+196>>2])|0,S=f=t+n[F+192>>2]|0,Z=jg(f^Z,(N=L)^(L=f>>>0<t>>>0?I+1|0:I),16),I=k+(IA=l)|0,(f=G+Z|0)>>>0<G>>>0&&(I=I+1|0),G=f,k=I,x=jg(f^P,I^x,63),f=l,P=h,I=h+q|0,(w=X+(t=w)|0)>>>0<X>>>0&&(I=I+1|0),I=I+(N=n[F+204>>2])|0,N=jg((J=w=(h=w)+n[F+200>>2]|0)^_,(w=w>>>0<h>>>0?I+1|0:I)^p,32),_=t,I=m+(t=l)|0,(h=H+N|0)>>>0<H>>>0&&(I=I+1|0),p=I,P=m=jg(_^h,I^P,24),_=I=l,H=I,I=w+e|0,(w=J+CA|0)>>>0<CA>>>0&&(I=I+1|0),I=I+H|0,N=jg((X=CA=w+m|0)^N,(w=X>>>0<w>>>0?I+1|0:I)^t,16),I=p+(H=l)|0,(CA=h+N|0)>>>0<h>>>0&&(I=I+1|0),p=I,CA=jg((h=CA)^P,I^_,63),t=l,m=R,P=s,I=y+s|0,(s=R+z|0)>>>0<R>>>0&&(I=I+1|0),I=I+(J=n[F+236>>2])|0,J=jg((_=R=s+n[F+232>>2]|0)^AA,(R=R>>>0<s>>>0?I+1|0:I)^u,32),I=K+(s=l)|0,(y=d+J|0)>>>0<d>>>0&&(I=I+1|0),u=I,P=d=jg(y^m,I^P,24),q=I=l,m=I,I=R+C|0,(R=_+$|0)>>>0<$>>>0&&(I=I+1|0),I=I+m|0,K=jg((m=$=R+d|0)^J,(d=m>>>0<R>>>0?I+1|0:I)^s,16),I=u+(J=l)|0,($=y+K|0)>>>0<y>>>0&&(I=I+1|0),u=I,R=jg((y=$)^P,I^q,63),s=l,$=F,I=Y+g|0,(Y=W+BA|0)>>>0<BA>>>0&&(I=I+1|0),I=I+(P=f)|0,_=EA,EA=I=(BA=Y+x|0)>>>0<Y>>>0?I+1|0:I,I=_+I|0,(Y=BA+nA|0)>>>0<BA>>>0&&(I=I+1|0),nA=I,EA=jg(K^BA,J^EA,32),I=p+(P=l)|0,(BA=h+EA|0)>>>0<h>>>0&&(I=I+1|0),h=f,f=I,BA=jg((p=BA)^x,h^I,24),I=(K=l)+nA|0,(h=Y+BA|0)>>>0<BA>>>0&&(I=I+1|0),n[$>>2]=h,n[$+4>>2]=I,nA=I,$=jg(h^EA,I^P,16),I=l,n[F+120>>2]=$,n[F+124>>2]=I,I=f+I|0,(f=p+$|0)>>>0<$>>>0&&(I=I+1|0),n[F+80>>2]=f,n[F+84>>2]=I,DA=F,uA=jg(f^BA,I^K,63),n[DA+40>>2]=uA,n[F+44>>2]=l,BA=F,f=t,I=t+L|0,(t=($=CA)+S|0)>>>0<$>>>0&&(I=I+1|0),I=I+(EA=n[F+132>>2])|0,t=I=(CA=t+n[F+128>>2]|0)>>>0<t>>>0?I+1|0:I,EA=jg(CA^M,I^v,32),p=$,I=u+(L=l)|0,($=y+EA|0)>>>0<y>>>0&&(I=I+1|0),y=$,$=I,f=jg(p^y,I^f,24),I=t+(u=l)|0,(t=f+CA|0)>>>0<CA>>>0&&(I=I+1|0),CA=(p=t)+(t=n[F+144>>2])|0,I=n[F+148>>2]+I|0,I=CA>>>0<t>>>0?I+1|0:I,n[BA+8>>2]=CA,n[BA+12>>2]=I,BA=jg(CA^EA,I^L,16),I=l,n[F+96>>2]=BA,n[F+100>>2]=I,I=I+$|0,($=y+BA|0)>>>0<BA>>>0&&(I=I+1|0),n[F+88>>2]=$,n[F+92>>2]=I,DA=F,uA=jg(f^$,I^u,63),n[DA+48>>2]=uA,n[F+52>>2]=l,BA=F,I=s+w|0,(f=R+X|0)>>>0<R>>>0&&(I=I+1|0),I=I+(CA=n[F+220>>2])|0,CA=I=($=f+n[F+216>>2]|0)>>>0<f>>>0?I+1|0:I,I=I+rA|0,(f=$+aA|0)>>>0<$>>>0&&(I=I+1|0),t=f,aA=I,f=jg($^Z,IA^CA,32),u=R,I=b+(R=l)|0,($=f+U|0)>>>0<U>>>0&&(I=I+1|0),CA=I,$=jg(u^(y=$),I^s,24),I=(s=l)+aA|0,(t=t+$|0)>>>0<$>>>0&&(I=I+1|0),n[BA+16>>2]=t,n[BA+20>>2]=I,BA=jg(f^t,I^R,16),I=l,n[F+104>>2]=BA,n[F+108>>2]=I,I=I+CA|0,(CA=y+BA|0)>>>0<BA>>>0&&(I=I+1|0),BA=CA,n[F+64>>2]=BA,n[F+68>>2]=I,DA=F,uA=jg($^BA,I^s,63),n[DA+56>>2]=uA,n[F+60>>2]=l,BA=F,aA=c,I=c+B|0,(CA=($=O)+eA|0)>>>0<$>>>0&&(I=I+1|0),I=I+d|0,CA=I=(O=m+CA|0)>>>0<m>>>0?I+1|0:I,eA=jg(O^N,I^H,32),t=$,I=k+(f=l)|0,($=G+eA|0)>>>0<G>>>0&&(I=I+1|0),c=aA,aA=I,R=jg(t^$,c^I,24),I=CA+(t=l)|0,(CA=R+O|0)>>>0<O>>>0&&(I=I+1|0),O=(c=CA)+(CA=n[F+152>>2])|0,I=n[F+156>>2]+I|0,I=O>>>0<CA>>>0?I+1|0:I,n[BA+24>>2]=O,n[BA+28>>2]=I,O=jg(O^eA,I^f,16),n[F+112>>2]=O,I=l,n[F+116>>2]=I,I=I+aA|0,(aA=$+O|0)>>>0<$>>>0&&(I=I+1|0),$=aA,n[F+72>>2]=$,n[BA+76>>2]=I,DA=F,uA=jg(R^$,I^t,63),n[DA+32>>2]=uA,n[F+36>>2]=l,I=A,BA=n[F+68>>2]^(a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)^nA,$=n[F+64>>2]^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)^h,E[0|I]=$,E[I+1|0]=$>>>8,E[I+2|0]=$>>>16,E[I+3|0]=$>>>24,E[I+4|0]=BA,E[I+5|0]=BA>>>8,E[I+6|0]=BA>>>16,E[I+7|0]=BA>>>24,BA=1;I=($=BA<<3)+A|0,aA=$=F+$|0,O=n[$>>2]^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),CA=n[($=$- -64|0)>>2],$=n[$+4>>2]^n[aA+4>>2]^(a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24),aA=O^CA,E[0|I]=aA,E[I+1|0]=aA>>>8,E[I+2|0]=aA>>>16,E[I+3|0]=aA>>>24,E[I+4|0]=$,E[I+5|0]=$>>>8,E[I+6|0]=$>>>16,E[I+7|0]=$>>>24,8!=(0|(BA=BA+1|0)););D=F+256|0}function G(A,I,g,B){var C=0,Q=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0;for(function(A,I){for(var g=0,B=0,C=0,Q=0,E=0;Q=C=(B=g<<3)+A|0,E=zA(I+B|0),n[Q>>2]=E,n[C+4>>2]=l,16!=(0|(g=g+1|0)););}(g,I),I=j(B,A,64),E=n[g>>2],a=n[g+4>>2],B=0;;){if(C=jg(k=n[(Q=I)+32>>2],c=n[Q+36>>2],14),o=l,C=jg(k,c,18)^C,t=l^o,i=E,E=jg(k,c,41)^C,C=(l^t)+a|0,C=(o=i+E|0)>>>0<E>>>0?C+1|0:C,E=o,h=n[Q+48>>2],E=(t=n[(a=34784+(J=B<<3)|0)>>2])+E|0,C=n[a+4>>2]+C|0,C=E>>>0<t>>>0?C+1|0:C,E=(a=h^((_=n[Q+40>>2])^h)&k)+E|0,C=(((y=n[Q+52>>2])^(G=n[Q+44>>2]))&c^y)+C|0,C=E>>>0<a>>>0?C+1|0:C,o=(a=E)+(E=n[Q+56>>2])|0,C=n[Q+60>>2]+C|0,C=o>>>0<E>>>0?C+1|0:C,a=o+(t=n[Q+24>>2])|0,E=C,C=C+n[Q+28>>2]|0,D=C=(i=a)>>>0<t>>>0?C+1|0:C,n[Q+24>>2]=i,n[Q+28>>2]=C,C=jg(f=n[Q>>2],a=n[Q+4>>2],28),t=l,C=jg(f,a,34)^C,s=l^t,t=o+(jg(f,a,39)^C)|0,C=E+(l^s)|0,C=t>>>0<o>>>0?C+1|0:C,o=(r=t)+(t=f&((s=n[Q+16>>2])|(E=n[Q+8>>2]))|E&s)|0,C=(a&((e=n[Q+20>>2])|(w=n[Q+12>>2]))|e&w)+C|0,C=o>>>0<t>>>0?C+1|0:C,t=o,o=C,n[Q+56>>2]=t,n[Q+60>>2]=C,r=s,C=jg(i,D,14),s=l,u=jg(i,D,18)^C,m=l^s,C=((c^G)&D^G)+y|0,(h=(s=(k^_)&i^_)+h|0)>>>0<s>>>0&&(C=C+1|0),s=h,h=jg(i,D,41)^u,C=(l^m)+C|0,C=(s=s+h|0)>>>0<h>>>0?C+1|0:C,s=(u=n[(y=m=(h=(1|B)<<3)+g|0)>>2])+s|0,C=n[y+4>>2]+C|0,C=s>>>0<u>>>0?C+1|0:C,s=(y=n[(h=h+34784|0)>>2])+s|0,C=n[h+4>>2]+C|0,y=C=s>>>0<y>>>0?C+1|0:C,C=C+e|0,(r=(e=s)+r|0)>>>0<e>>>0&&(C=C+1|0),e=r,h=C,n[Q+16>>2]=r,n[Q+20>>2]=C,r=I,C=jg(t,o,28),Q=l,u=jg(t,o,34)^C,p=l^Q,C=((a|w)&o|a&w)+y|0,(s=(Q=(E|f)&t|E&f)+s|0)>>>0<Q>>>0&&(C=C+1|0),Q=s,s=jg(t,o,39)^u,C=(l^p)+C|0,C=(Q=Q+s|0)>>>0<s>>>0?C+1|0:C,s=Q,Q=C,n[r+48>>2]=s,n[r+52>>2]=C,u=I,r=E,C=jg(e,h,14),E=l,y=jg(e,h,18)^C,p=l^E,C=((c^D)&h^c)+G|0,(_=(E=(i^k)&e^k)+_|0)>>>0<E>>>0&&(C=C+1|0),y=jg(e,h,41)^y,C=(l^p)+C|0,C=(E=y+_|0)>>>0<y>>>0?C+1|0:C,E=(G=n[(_=S=(y=(2|B)<<3)+g|0)>>2])+E|0,C=n[_+4>>2]+C|0,C=E>>>0<G>>>0?C+1|0:C,E=(_=n[(y=y+34784|0)>>2])+E|0,C=n[y+4>>2]+C|0,y=w,w=C=E>>>0<_>>>0?C+1|0:C,C=y+C|0,(y=E+r|0)>>>0<E>>>0&&(C=C+1|0),r=y,y=C,n[u+8>>2]=r,n[u+12>>2]=C,C=jg(s,Q,28),_=l,G=jg(s,Q,34)^C,_^=l,C=((a|o)&Q|a&o)+w|0,(w=(w=E)+(E=(t|f)&s|t&f)|0)>>>0<E>>>0&&(C=C+1|0),E=w,w=jg(s,Q,39)^G,C=(l^_)+C|0,C=(E=E+w|0)>>>0<w>>>0?C+1|0:C,w=E,E=C,n[u+40>>2]=w,n[u+44>>2]=C,_=I,u=a,C=jg(r,y,14),a=l,G=jg(r,y,18)^C,p=l^a,C=(D^(h^D)&y)+c|0,(c=(a=i^(i^e)&r)+k|0)>>>0<a>>>0&&(C=C+1|0),a=c,c=jg(r,y,41)^G,C=(l^p)+C|0,C=(a=a+c|0)>>>0<c>>>0?C+1|0:C,a=(p=n[(G=k=(c=(3|B)<<3)+g|0)>>2])+a|0,C=n[G+4>>2]+C|0,C=a>>>0<p>>>0?C+1|0:C,a=(G=n[(c=c+34784|0)>>2])+a|0,C=n[c+4>>2]+C|0,G=C=a>>>0<G>>>0?C+1|0:C,C=C+u|0,(c=a+f|0)>>>0<a>>>0&&(C=C+1|0),u=C,n[_>>2]=c,n[_+4>>2]=C,C=jg(w,E,28),f=l,p=jg(w,E,34)^C,f^=l,C=((Q|o)&E|Q&o)+G|0,(G=(F=a)+(a=(t|s)&w|t&s)|0)>>>0<a>>>0&&(C=C+1|0),a=G,G=jg(w,E,39)^p,C=(l^f)+C|0,f=a=a+G|0,a=C=a>>>0<G>>>0?C+1|0:C,n[_+32>>2]=f,n[_+36>>2]=C,G=o,C=jg(c,u,14),o=l,p=jg(c,u,18)^C,F=l^o,C=D+(h^(y^h)&u)|0,(o=i+(e^(r^e)&c)|0)>>>0<i>>>0&&(C=C+1|0),i=jg(c,u,41)^p,C=(l^F)+C|0,C=(o=i+o|0)>>>0<i>>>0?C+1|0:C,o=(p=n[(D=d=(i=(4|B)<<3)+g|0)>>2])+o|0,C=n[D+4>>2]+C|0,C=o>>>0<p>>>0?C+1|0:C,o=(D=n[(i=i+34784|0)>>2])+o|0,C=n[i+4>>2]+C|0,i=G,G=C=o>>>0<D>>>0?C+1|0:C,C=i+C|0,(i=o+t|0)>>>0<o>>>0&&(C=C+1|0),D=C,n[_+56>>2]=i,n[_+60>>2]=C,C=jg(f,a,28),t=l,p=jg(f,a,34)^C,t^=l,C=((Q|E)&a|Q&E)+G|0,(G=(F=o)+(o=(s|w)&f|s&w)|0)>>>0<o>>>0&&(C=C+1|0),o=G,G=jg(f,a,39)^p,C=(l^t)+C|0,t=o=o+G|0,o=C=o>>>0<G>>>0?C+1|0:C,n[_+24>>2]=t,n[_+28>>2]=C,G=I,p=Q,C=jg(i,D,14),Q=l,_=jg(i,D,18)^C,F=l^Q,C=h+(y^(y^u)&D)|0,(Q=e+(r^(r^c)&i)|0)>>>0<e>>>0&&(C=C+1|0),e=jg(i,D,41)^_,C=(l^F)+C|0,C=(Q=e+Q|0)>>>0<e>>>0?C+1|0:C,Q=(F=n[(h=_=(e=(5|B)<<3)+g|0)>>2])+Q|0,C=n[h+4>>2]+C|0,C=Q>>>0<F>>>0?C+1|0:C,Q=(h=n[(e=e+34784|0)>>2])+Q|0,C=n[e+4>>2]+C|0,e=p,p=C=Q>>>0<h>>>0?C+1|0:C,C=e+C|0,(e=Q+s|0)>>>0<Q>>>0&&(C=C+1|0),h=C,n[G+48>>2]=e,n[G+52>>2]=C,C=jg(t,o,28),s=l,F=jg(t,o,34)^C,s^=l,C=((E|a)&o|E&a)+p|0,(p=(p=Q)+(Q=(f|w)&t|f&w)|0)>>>0<Q>>>0&&(C=C+1|0),Q=p,p=jg(t,o,39)^F,C=(l^s)+C|0,s=Q=Q+p|0,Q=C=Q>>>0<p>>>0?C+1|0:C,n[G+16>>2]=s,n[G+20>>2]=C,p=E,C=jg(e,h,14),E=l,F=jg(e,h,18)^C,N=l^E,C=y+(u^(D^u)&h)|0,(E=r+(c^(i^c)&e)|0)>>>0<r>>>0&&(C=C+1|0),r=jg(e,h,41)^F,C=(l^N)+C|0,C=(E=r+E|0)>>>0<r>>>0?C+1|0:C,E=(F=n[(y=x=(r=(6|B)<<3)+g|0)>>2])+E|0,C=n[y+4>>2]+C|0,C=E>>>0<F>>>0?C+1|0:C,E=(y=n[(r=r+34784|0)>>2])+E|0,C=n[r+4>>2]+C|0,r=p,p=C=E>>>0<y>>>0?C+1|0:C,C=r+C|0,(r=E+w|0)>>>0<E>>>0&&(C=C+1|0),y=C,n[G+40>>2]=r,n[G+44>>2]=C,C=jg(s,Q,28),w=l,F=jg(s,Q,34)^C,w^=l,C=((a|o)&Q|a&o)+p|0,(p=(p=E)+(E=(t|f)&s|t&f)|0)>>>0<E>>>0&&(C=C+1|0),E=p,p=jg(s,Q,39)^F,C=(l^w)+C|0,w=E=E+p|0,E=C=E>>>0<p>>>0?C+1|0:C,n[G+8>>2]=w,n[G+12>>2]=C,p=I,F=a,C=jg(r,y,14),a=l,G=jg(r,y,18)^C,N=l^a,C=u+(D^(h^D)&y)|0,(a=c+(i^(i^e)&r)|0)>>>0<c>>>0&&(C=C+1|0),c=jg(r,y,41)^G,C=(l^N)+C|0,C=(a=c+a|0)>>>0<c>>>0?C+1|0:C,a=(N=n[(u=G=(c=(7|B)<<3)+g|0)>>2])+a|0,C=n[u+4>>2]+C|0,C=a>>>0<N>>>0?C+1|0:C,a=(u=n[(c=c+34784|0)>>2])+a|0,C=n[c+4>>2]+C|0,c=F,F=C=a>>>0<u>>>0?C+1|0:C,C=c+C|0,(c=a+f|0)>>>0<a>>>0&&(C=C+1|0),u=C,n[p+32>>2]=c,n[p+36>>2]=C,C=jg(w,E,28),f=l,N=jg(w,E,34)^C,f^=l,C=((Q|o)&E|Q&o)+F|0,(F=(F=a)+(a=(t|s)&w|t&s)|0)>>>0<a>>>0&&(C=C+1|0),a=F,F=jg(w,E,39)^N,C=(l^f)+C|0,f=a=a+F|0,a=C=a>>>0<F>>>0?C+1|0:C,n[p>>2]=f,n[p+4>>2]=C,F=o,C=jg(c,u,14),o=l,N=jg(c,u,18)^C,U=l^o,C=D+(h^(y^h)&u)|0,(o=i+(e^(r^e)&c)|0)>>>0<i>>>0&&(C=C+1|0),i=jg(c,u,41)^N,C=(l^U)+C|0,C=(o=i+o|0)>>>0<i>>>0?C+1|0:C,o=(U=n[(D=N=(i=(8|B)<<3)+g|0)>>2])+o|0,C=n[D+4>>2]+C|0,C=o>>>0<U>>>0?C+1|0:C,o=(D=n[(i=i+34784|0)>>2])+o|0,C=n[i+4>>2]+C|0,i=F,F=C=o>>>0<D>>>0?C+1|0:C,C=i+C|0,(i=o+t|0)>>>0<o>>>0&&(C=C+1|0),D=C,n[p+24>>2]=i,n[p+28>>2]=C,C=jg(f,a,28),t=l,U=jg(f,a,34)^C,t^=l,C=((Q|E)&a|Q&E)+F|0,(F=(F=o)+(o=(s|w)&f|s&w)|0)>>>0<o>>>0&&(C=C+1|0),o=F,F=jg(f,a,39)^U,C=(l^t)+C|0,t=o=o+F|0,o=C=o>>>0<F>>>0?C+1|0:C,n[p+56>>2]=t,n[p+60>>2]=C,F=I,U=Q,C=jg(i,D,14),Q=l,p=jg(i,D,18)^C,v=l^Q,C=h+(y^(y^u)&D)|0,(Q=e+(r^(r^c)&i)|0)>>>0<e>>>0&&(C=C+1|0),e=jg(i,D,41)^p,C=(l^v)+C|0,C=(Q=e+Q|0)>>>0<e>>>0?C+1|0:C,Q=(v=n[(h=p=(e=(9|B)<<3)+g|0)>>2])+Q|0,C=n[h+4>>2]+C|0,C=Q>>>0<v>>>0?C+1|0:C,Q=(h=n[(e=e+34784|0)>>2])+Q|0,C=n[e+4>>2]+C|0,e=U,U=C=Q>>>0<h>>>0?C+1|0:C,C=e+C|0,(e=Q+s|0)>>>0<Q>>>0&&(C=C+1|0),h=C,n[F+16>>2]=e,n[F+20>>2]=C,C=jg(t,o,28),s=l,v=jg(t,o,34)^C,s^=l,C=((E|a)&o|E&a)+U|0,(U=(U=Q)+(Q=(f|w)&t|f&w)|0)>>>0<Q>>>0&&(C=C+1|0),Q=U,U=jg(t,o,39)^v,C=(l^s)+C|0,s=Q=Q+U|0,Q=C=Q>>>0<U>>>0?C+1|0:C,n[F+48>>2]=s,n[F+52>>2]=C,v=E,C=jg(e,h,14),E=l,U=jg(e,h,18)^C,Y=l^E,C=y+(u^(D^u)&h)|0,(E=r+(c^(i^c)&e)|0)>>>0<r>>>0&&(C=C+1|0),r=jg(e,h,41)^U,C=(l^Y)+C|0,C=(E=r+E|0)>>>0<r>>>0?C+1|0:C,E=(Y=n[(y=U=(r=(10|B)<<3)+g|0)>>2])+E|0,C=n[y+4>>2]+C|0,C=E>>>0<Y>>>0?C+1|0:C,E=(y=n[(r=r+34784|0)>>2])+E|0,C=n[r+4>>2]+C|0,r=C=E>>>0<y>>>0?C+1|0:C,C=C+v|0,(y=E+w|0)>>>0<E>>>0&&(C=C+1|0),w=y,y=C,n[F+8>>2]=w,n[F+12>>2]=C,C=jg(s,Q,28),v=l,Y=jg(s,Q,34)^C,v^=l,C=((a|o)&Q|a&o)+r|0,(r=(r=E)+(E=(t|f)&s|t&f)|0)>>>0<E>>>0&&(C=C+1|0),E=r,r=jg(s,Q,39)^Y,C=(l^v)+C|0,r=C=(E=E+r|0)>>>0<r>>>0?C+1|0:C,n[F+40>>2]=E,n[F+44>>2]=C,v=I,Y=a,C=jg(w,y,14),a=l,F=jg(w,y,18)^C,b=l^a,C=u+(D^(h^D)&y)|0,(a=c+(i^(i^e)&w)|0)>>>0<c>>>0&&(C=C+1|0),c=jg(w,y,41)^F,C=(l^b)+C|0,C=(a=c+a|0)>>>0<c>>>0?C+1|0:C,a=(b=n[(u=F=(c=(11|B)<<3)+g|0)>>2])+a|0,C=n[u+4>>2]+C|0,C=a>>>0<b>>>0?C+1|0:C,a=(u=n[(c=c+34784|0)>>2])+a|0,C=n[c+4>>2]+C|0,c=C=a>>>0<u>>>0?C+1|0:C,C=C+Y|0,(u=a+f|0)>>>0<a>>>0&&(C=C+1|0),f=u,u=C,n[v>>2]=f,n[v+4>>2]=C,C=jg(E,r,28),Y=l,b=jg(E,r,34)^C,Y^=l,C=((Q|o)&r|Q&o)+c|0,(c=(c=a)+(a=(t|s)&E|t&s)|0)>>>0<a>>>0&&(C=C+1|0),a=c,c=jg(E,r,39)^b,C=(l^Y)+C|0,c=C=(a=a+c|0)>>>0<c>>>0?C+1|0:C,n[v+32>>2]=a,n[v+36>>2]=C,Y=I,b=o,C=jg(f,u,14),o=l,v=jg(f,u,18)^C,R=l^o,C=D+(h^(y^h)&u)|0,(o=i+(e^(e^w)&f)|0)>>>0<i>>>0&&(C=C+1|0),i=jg(f,u,41)^v,C=(l^R)+C|0,C=(o=i+o|0)>>>0<i>>>0?C+1|0:C,o=(R=n[(D=v=(i=(12|B)<<3)+g|0)>>2])+o|0,C=n[D+4>>2]+C|0,C=o>>>0<R>>>0?C+1|0:C,o=(D=n[(i=i+34784|0)>>2])+o|0,C=n[i+4>>2]+C|0,i=b,b=C=o>>>0<D>>>0?C+1|0:C,C=i+C|0,(i=o+t|0)>>>0<o>>>0&&(C=C+1|0),R=i,i=C,n[Y+56>>2]=R,n[Y+60>>2]=C,D=I,C=jg(a,c,28),t=l,Y=jg(a,c,34)^C,t^=l,C=((Q|r)&c|Q&r)+b|0,(b=(b=o)+(o=(E|s)&a|E&s)|0)>>>0<o>>>0&&(C=C+1|0),Y=jg(a,c,39)^Y,C=(l^t)+C|0,b=o=Y+b|0,t=C=o>>>0<Y>>>0?C+1|0:C,n[D+24>>2]=o,n[D+28>>2]=C,o=I,D=s,Y=Q,C=jg(R,i,14),Q=l,s=jg(R,i,18)^C,H=l^Q,C=h+(y^(y^u)&i)|0,(Q=e+(w^(f^w)&R)|0)>>>0<e>>>0&&(C=C+1|0),s=jg(R,i,41)^s,C=(l^H)+C|0,C=(Q=s+Q|0)>>>0<s>>>0?C+1|0:C,Q=(H=n[(s=(e=(13|B)<<3)+g|0)>>2])+Q|0,C=n[s+4>>2]+C|0,C=Q>>>0<H>>>0?C+1|0:C,Q=(h=n[(e=e+34784|0)>>2])+Q|0,C=n[e+4>>2]+C|0,h=C=Q>>>0<h>>>0?C+1|0:C,C=C+Y|0,(D=Q+D|0)>>>0<Q>>>0&&(C=C+1|0),Y=D,e=C,n[o+48>>2]=D,n[o+52>>2]=C,C=jg(b,t,28),D=l,H=jg(b,t,34)^C,D^=l,C=((r|c)&t|r&c)+h|0,(h=(h=Q)+(Q=(E|a)&b|E&a)|0)>>>0<Q>>>0&&(C=C+1|0),Q=h,h=jg(b,t,39)^H,C=(l^D)+C|0,C=(Q=Q+h|0)>>>0<h>>>0?C+1|0:C,h=Q,Q=C,n[o+16>>2]=h,n[o+20>>2]=C,C=jg(Y,e,14),D=l,H=jg(Y,e,18)^C,D^=l,C=y+(u^(i^u)&e)|0,(y=w+(f^(f^R)&Y)|0)>>>0<w>>>0&&(C=C+1|0),w=y,y=jg(Y,e,41)^H,C=(l^D)+C|0,C=(w=w+y|0)>>>0<y>>>0?C+1|0:C,w=(M=n[(D=(y=(14|B)<<3)+g|0)>>2])+w|0,C=n[D+4>>2]+C|0,C=w>>>0<M>>>0?C+1|0:C,w=(H=n[(y=y+34784|0)>>2])+w|0,C=n[y+4>>2]+C|0,C=w>>>0<H>>>0?C+1|0:C,H=w,w=C,C=r+C|0,(r=E+H|0)>>>0<E>>>0&&(C=C+1|0),y=r,E=C,n[o+40>>2]=r,n[o+44>>2]=C,C=jg(h,Q,28),r=l,M=jg(h,Q,34)^C,r^=l,C=((t|c)&Q|t&c)+w|0,(H=(w=(a|b)&h|a&b)+H|0)>>>0<w>>>0&&(C=C+1|0),w=H,H=jg(h,Q,39)^M,C=(l^r)+C|0,C=(w=w+H|0)>>>0<H>>>0?C+1|0:C,H=w,r=C,n[o+8>>2]=w,n[o+12>>2]=C,C=jg(y,E,14),w=l,M=jg(y,E,18)^C,w^=l,C=u+(i^(i^e)&E)|0,(i=f+(R^(Y^R)&y)|0)>>>0<f>>>0&&(C=C+1|0),f=jg(y,E,41)^M,C=(l^w)+C|0,C=(E=f+i|0)>>>0<f>>>0?C+1|0:C,E=(e=n[(i=w=(f=(15|B)<<3)+g|0)>>2])+E|0,C=n[i+4>>2]+C|0,C=E>>>0<e>>>0?C+1|0:C,E=(i=n[(f=f+34784|0)>>2])+E|0,C=n[f+4>>2]+C|0,f=E,C=c+(E=E>>>0<i>>>0?C+1|0:C)|0,(i=a+f|0)>>>0<a>>>0&&(C=C+1|0),n[o+32>>2]=i,n[o+36>>2]=C,C=jg(H,r,28),o=l,a=jg(H,r,34)^C,i=l^o,C=((Q|t)&r|Q&t)+E|0,(E=(Q=(h|b)&H|h&b)+f|0)>>>0<Q>>>0&&(C=C+1|0),Q=(Q=E)+(E=jg(H,r,39)^a)|0,C=(l^i)+C|0,n[(o=I)>>2]=Q,n[o+4>>2]=Q>>>0<E>>>0?C+1|0:C,64==(0|B)){for(;o=g=(B=P<<3)+A|0,B=(Q=n[(C=I+B|0)>>2])+n[o>>2]|0,C=n[o+4>>2]+n[C+4>>2]|0,n[o>>2]=B,n[o+4>>2]=B>>>0<Q>>>0?C+1|0:C,8!=(0|(P=P+1|0)););break}f=((B=B+16|0)<<3)+g|0,Y=o=n[D+4>>2],C=o>>>6|0,o=((63&o)<<26|(b=n[D>>2])>>>6)^jg(b,o,19),C^=l,o=jg(b,Y,61)^o,C=(a=n[p+4>>2])+(l^C)|0,(Q=(Q=o)+(o=y=n[p>>2])|0)>>>0<o>>>0&&(C=C+1|0),o=(i=Q)+(E=n[(Q=g+J|0)>>2])|0,C=n[Q+4>>2]+C|0,o=(i=o)>>>0<E>>>0?C+1|0:C,E=Q=n[m+4>>2],C=Q>>>7|0,Q=((127&Q)<<25|(t=n[m>>2])>>>7)^jg(t,Q,1),C^=l,r=i,i=jg(t,E,8)^Q,C=(l^C)+o|0,r=Q=r+i|0,Q=C=Q>>>0<i>>>0?C+1|0:C,n[f>>2]=r,n[f+4>>2]=C,C=n[(i=m)+76>>2]+E|0,(E=(o=n[i+72>>2])+t|0)>>>0<o>>>0&&(C=C+1|0),f=E,E=C,C=(o=t=n[w+4>>2])>>>6|0,t=((63&o)<<26|(h=n[w>>2])>>>6)^jg(h,o,19),C^=l,e=f,f=jg(h,o,61)^t,C=(l^C)+E|0,c=t=e+f|0,E=t>>>0<f>>>0?C+1|0:C,t=e=n[m+12>>2],C=e>>>7|0,e=((127&e)<<25|(f=n[m+8>>2])>>>7)^jg(f,e,1),C^=l,u=c,c=jg(f,t,8)^e,C=(l^C)+E|0,C=(e=u+c|0)>>>0<c>>>0?C+1|0:C,c=e,E=C,n[i+128>>2]=e,n[i+132>>2]=C,i=S,e=t,C=jg(r,Q,19),u=l,t=C,C=Q>>>6|0,Q=jg(r,Q,61)^t^((63&Q)<<26|r>>>6),r=f,C=(t=n[F+4>>2])+(l^C^u)|0,(f=(f=Q)+(Q=u=n[F>>2])|0)>>>0<Q>>>0&&(C=C+1|0),C=C+e|0,m=Q=r+f|0,Q=Q>>>0<f>>>0?C+1|0:C,f=e=n[k+4>>2],C=e>>>7|0,e=((127&e)<<25|(r=n[k>>2])>>>7)^jg(r,e,1),C^=l,H=m,m=jg(r,f,8)^e,C=(l^C)+Q|0,C=(e=H+m|0)>>>0<m>>>0?C+1|0:C,m=e,Q=C,n[i+128>>2]=e,n[i+132>>2]=C,C=n[(e=k)+76>>2]+f|0,(i=(f=n[e+72>>2])+r|0)>>>0<f>>>0&&(C=C+1|0),f=i,i=C,C=jg(c,E,19),r=l,H=f,f=C,C=E>>>6|0,f=jg(c,E,61)^f^((63&E)<<26|c>>>6),C=(l^C^r)+i|0,c=E=H+f|0,E=E>>>0<f>>>0?C+1|0:C,f=r=n[k+12>>2],C=r>>>7|0,r=((127&r)<<25|(i=n[k+8>>2])>>>7)^jg(i,r,1),C^=l,k=c,c=jg(i,f,8)^r,C=(l^C)+E|0,C=(r=k+c|0)>>>0<c>>>0?C+1|0:C,c=r,E=C,n[e+128>>2]=r,n[e+132>>2]=C,e=d,r=f,C=jg(m,Q,19),k=l,f=C,C=Q>>>6|0,Q=jg(m,Q,61)^f^((63&Q)<<26|m>>>6),H=i,C=(f=n[s+4>>2])+(l^C^k)|0,(i=(i=Q)+(Q=m=n[s>>2])|0)>>>0<Q>>>0&&(C=C+1|0),C=C+r|0,S=Q=H+i|0,Q=Q>>>0<i>>>0?C+1|0:C,C=(i=k=n[_+4>>2])>>>7|0,k=((127&i)<<25|(r=n[_>>2])>>>7)^jg(r,i,1),C^=l,H=S,S=jg(r,i,8)^k,C=(l^C)+Q|0,Q=C=(k=H+S|0)>>>0<S>>>0?C+1|0:C,n[e+128>>2]=k,n[e+132>>2]=C,C=n[(e=_)+76>>2]+i|0,(r=(i=n[e+72>>2])+r|0)>>>0<i>>>0&&(C=C+1|0),i=r,r=C,C=jg(c,E,19),S=l,H=i,i=C,C=E>>>6|0,i=jg(c,E,61)^i^((63&E)<<26|c>>>6),C=(l^C^S)+r|0,c=E=H+i|0,E=E>>>0<i>>>0?C+1|0:C,C=(i=r=n[_+12>>2])>>>7|0,r=((127&i)<<25|(S=n[_+8>>2])>>>7)^jg(S,i,1),C^=l,_=c,c=jg(S,i,8)^r,C=(l^C)+E|0,_=r=_+c|0,E=C=r>>>0<c>>>0?C+1|0:C,n[e+128>>2]=r,n[e+132>>2]=C,e=x,r=i,C=jg(k,Q,19),d=l,i=C,C=Q>>>6|0,i=jg(k,Q,61)^i^((63&Q)<<26|k>>>6),C=(l^C^d)+o|0,C=(Q=i+h|0)>>>0<i>>>0?C+1|0:C,i=Q,C=C+r|0,k=Q=Q+S|0,Q=Q>>>0<i>>>0?C+1|0:C,C=(i=c=n[G+4>>2])>>>7|0,c=((127&i)<<25|(r=n[G>>2])>>>7)^jg(r,i,1),C^=l,H=k,k=jg(r,i,8)^c,C=(l^C)+Q|0,Q=C=(c=H+k|0)>>>0<k>>>0?C+1|0:C,n[e+128>>2]=c,n[e+132>>2]=C,C=n[(e=G)+76>>2]+i|0,(r=(i=n[e+72>>2])+r|0)>>>0<i>>>0&&(C=C+1|0),i=r,r=C,C=jg(_,E,19),k=l,H=i,i=C,C=E>>>6|0,i=jg(_,E,61)^i^((63&E)<<26|_>>>6),C=(l^C^k)+r|0,k=E=H+i|0,E=E>>>0<i>>>0?C+1|0:C,C=(i=r=n[G+12>>2])>>>7|0,r=((127&i)<<25|(_=n[G+8>>2])>>>7)^jg(_,i,1),C^=l,G=k,k=jg(_,i,8)^r,C=(l^C)+E|0,C=(r=G+k|0)>>>0<k>>>0?C+1|0:C,k=r,E=C,n[e+128>>2]=r,n[e+132>>2]=C,r=i,C=jg(c,Q,19),G=l,i=C,C=Q>>>6|0,Q=(Q=jg(c,Q,61)^i^((63&Q)<<26|c>>>6))+(i=n[(e=N)+72>>2])|0,C=n[e+76>>2]+(l^C^G)|0,C=Q>>>0<i>>>0?C+1|0:C,i=Q,C=C+r|0,i=C=(Q=Q+_|0)>>>0<i>>>0?C+1|0:C,C=jg(y,a,1),r=l,G=Q,c=C,C=(Q=a)>>>7|0,c=c^((127&Q)<<25|y>>>7)^jg(y,Q,8),C=(l^C^r)+i|0,r=Q=G+c|0,Q=C=Q>>>0<c>>>0?C+1|0:C,n[e+128>>2]=r,n[e+132>>2]=C,C=n[(i=p)+76>>2]+a|0,(e=(a=n[i+72>>2])+y|0)>>>0<a>>>0&&(C=C+1|0),a=e,e=C,C=jg(k,E,19),c=l,y=a,a=C,C=E>>>6|0,a=jg(k,E,61)^a^((63&E)<<26|k>>>6),C=(l^C^c)+e|0,c=E=y+a|0,E=E>>>0<a>>>0?C+1|0:C,C=(a=e=n[p+12>>2])>>>7|0,e=((127&a)<<25|(y=n[p+8>>2])>>>7)^jg(y,a,1),C^=l,p=c,c=jg(y,a,8)^e,C=(l^C)+E|0,C=(e=p+c|0)>>>0<c>>>0?C+1|0:C,c=e,E=C,n[i+128>>2]=e,n[i+132>>2]=C,e=a,C=jg(r,Q,19),k=l,a=C,C=Q>>>6|0,Q=(Q=jg(r,Q,61)^a^((63&Q)<<26|r>>>6))+(a=n[(i=U)+72>>2])|0,C=n[i+76>>2]+(l^C^k)|0,C=Q>>>0<a>>>0?C+1|0:C,a=Q,C=C+e|0,a=C=(Q=Q+y|0)>>>0<a>>>0?C+1|0:C,C=jg(u,t,1),e=l,y=Q,r=C,C=(Q=t)>>>7|0,r=r^((127&Q)<<25|u>>>7)^jg(u,Q,8),C=(l^C^e)+a|0,e=Q=y+r|0,Q=C=Q>>>0<r>>>0?C+1|0:C,n[i+128>>2]=e,n[i+132>>2]=C,C=n[(i=F)+76>>2]+t|0,(t=(a=n[i+72>>2])+u|0)>>>0<a>>>0&&(C=C+1|0),a=t,t=C,C=jg(c,E,19),r=l,y=a,a=C,C=E>>>6|0,a=jg(c,E,61)^a^((63&E)<<26|c>>>6),C=(l^C^r)+t|0,r=E=y+a|0,E=E>>>0<a>>>0?C+1|0:C,C=(a=t=n[F+12>>2])>>>7|0,t=((127&a)<<25|(c=n[F+8>>2])>>>7)^jg(c,a,1),C^=l,y=r,r=jg(c,a,8)^t,C=(l^C)+E|0,C=(t=y+r|0)>>>0<r>>>0?C+1|0:C,r=t,E=C,n[i+128>>2]=r,n[i+132>>2]=C,i=a,C=jg(e,Q,19),y=l,a=C,C=Q>>>6|0,Q=(Q=jg(e,Q,61)^a^((63&Q)<<26|e>>>6))+(a=n[(t=v)+72>>2])|0,C=n[t+76>>2]+(l^C^y)|0,C=Q>>>0<a>>>0?C+1|0:C,a=Q,C=C+i|0,a=C=(Q=Q+c|0)>>>0<a>>>0?C+1|0:C,C=jg(m,f,1),i=l,c=Q,e=C,C=(Q=f)>>>7|0,e=e^((127&Q)<<25|m>>>7)^jg(m,Q,8),C=(l^C^i)+a|0,i=Q=c+e|0,Q=C=Q>>>0<e>>>0?C+1|0:C,n[t+128>>2]=i,n[t+132>>2]=C,C=n[(a=s)+76>>2]+f|0,(f=(t=n[a+72>>2])+m|0)>>>0<t>>>0&&(C=C+1|0),t=f,f=C,C=jg(r,E,19),e=l,c=t,t=C,C=E>>>6|0,t=jg(r,E,61)^t^((63&E)<<26|r>>>6),C=(l^C^e)+f|0,e=E=c+t|0,E=E>>>0<t>>>0?C+1|0:C,f=t=n[s+12>>2],C=t>>>7|0,t=((127&t)<<25|(s=n[s+8>>2])>>>7)^jg(s,t,1),C^=l,s=jg(s,f,8)^t,C=(l^C)+E|0,f=t=s+e|0,E=C=t>>>0<s>>>0?C+1|0:C,n[a+128>>2]=t,n[a+132>>2]=C,C=n[(a=D)+76>>2]+Y|0,(s=(t=n[a+72>>2])+b|0)>>>0<t>>>0&&(C=C+1|0),t=s,s=C,C=jg(i,Q,19),e=l,r=t,t=C,C=Q>>>6|0,t=jg(i,Q,61)^t^((63&Q)<<26|i>>>6),C=(l^C^e)+s|0,t=C=(Q=r+t|0)>>>0<t>>>0?C+1|0:C,C=jg(h,o,1),s=l,r=Q,i=C,C=(Q=o)>>>7|0,Q=r+(i=i^((127&Q)<<25|h>>>7)^jg(h,Q,8))|0,C=(l^C^s)+t|0,n[a+128>>2]=Q,n[a+132>>2]=Q>>>0<i>>>0?C+1|0:C,C=n[(Q=w)+76>>2]+o|0,(a=(o=n[Q+72>>2])+h|0)>>>0<o>>>0&&(C=C+1|0),o=a,a=C,C=jg(f,E,19),t=l,i=C,C=E>>>6|0,E=jg(f,E,61)^i^((63&E)<<26|f>>>6),C=(l^C^t)+a|0,s=o=E+o|0,o=o>>>0<E>>>0?C+1|0:C,C=(a=t=n[w+12>>2])>>>7|0,t=((127&a)<<25|(E=n[w+8>>2])>>>7)^jg(E,a,1),C^=l,t=(i=s)+(s=jg(E,a,8)^t)|0,C=(l^C)+o|0,n[Q+128>>2]=t,n[Q+132>>2]=t>>>0<s>>>0?C+1|0:C}}function k(A){var I,g,B,C,Q,i,n,r,o,e,t,c,f,y,s,w,h,D,u,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0;y=Cg(A),s=a[A+2|0]|a[A+3|0]<<8|a[A+4|0]<<16|a[A+5|0]<<24,w=Cg(A+5|0),h=l,gA=a[A+7|0]|a[A+8|0]<<8|a[A+9|0]<<16|a[A+10|0]<<24,BA=a[A+10|0]|a[A+11|0]<<8|a[A+12|0]<<16|a[A+13|0]<<24,D=Cg(A+13|0),CA=l,M=a[A+15|0]|a[A+16|0]<<8|a[A+17|0]<<16|a[A+18|0]<<24,O=Cg(A+18|0),d=l,U=Cg(A+21|0),H=a[A+23|0]|a[A+24|0]<<8|a[A+25|0]<<16|a[A+26|0]<<24,_=Cg(A+26|0),G=l,IA=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,X=a[A+31|0]|a[A+32|0]<<8|a[A+33|0]<<16|a[A+34|0]<<24,j=Cg(A+34|0),W=l,P=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,z=Cg(A+39|0),x=l,b=Cg(A+42|0),k=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24,u=A,F=Cg(A+47|0),p=xg(I=2097151&((3&(Y=l))<<30|F>>>2),0,136657,0),F=l,(p=(G=2097151&((3&G)<<30|_>>>2))+p|0)>>>0<G>>>0&&(F=F+1|0),_=(G=xg(g=(a[A+49|0]|a[A+50|0]<<8|a[A+51|0]<<16|a[A+52|0]<<24)>>>7&2097151,0,-997805,-1))+p|0,p=l+F|0,p=_>>>0<G>>>0?p+1|0:p,F=xg(B=(a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24)>>>4&2097151,0,654183,0),G=l+p|0,G=(_=F+_|0)>>>0<F>>>0?G+1|0:G,p=_,F=Cg(A+55|0),_=p+(F=xg(C=2097151&((1&(_=l))<<31|F>>>1),0,470296,0))|0,p=l+G|0,p=_>>>0<F>>>0?p+1|0:p,G=xg(Q=(a[A+57|0]|a[A+58|0]<<8|a[A+59|0]<<16|a[A+60|0]<<24)>>>6&2097151,0,666643,0),F=l+p|0,S=F=(_=G+_|0)>>>0<G>>>0?F+1|0:F,G=F,m=k>>>5&2097151,F=2097151&b,k=xg(i=(a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)>>>3|0,0,-683901,-1)+F|0,p=l,b=k,N=p=k>>>0<F>>>0?p+1|0:p,R=(p=k)- -1048576|0,K=k=N-((p>>>0<4293918720)+-1|0)|0,p=k>>21,r=m=(k=(2097151&k)<<11|R>>>21)+m|0,T=F=m>>>0<k>>>0?p+1|0:p,p=xg(m,F,-683901,-1),F=l+G|0,Z=Y=p+_|0,v=Y>>>0<p>>>0?F+1|0:F,F=xg(I,0,-997805,-1),p=l,(F=(G=H>>>5&2097151)+F|0)>>>0<G>>>0&&(p=p+1|0),Y=(G=F)+(F=xg(g,0,654183,0))|0,G=l+p|0,G=Y>>>0<F>>>0?G+1|0:G,p=xg(B,0,470296,0),F=l+G|0,F=(Y=p+Y|0)>>>0<p>>>0?F+1|0:F,G=xg(C,0,666643,0),p=l+F|0,G=(H=Y=G+Y|0)>>>0<G>>>0?p+1|0:p,p=2097151&U,Y=xg(I,0,654183,0)+p|0,F=l,F=Y>>>0<p>>>0?F+1|0:F,k=(p=Y)+(Y=xg(g,0,470296,0))|0,p=l+F|0,p=k>>>0<Y>>>0?p+1|0:p,Y=xg(B,0,666643,0),F=l+p|0,m=k=Y+k|0,k=F=k>>>0<Y>>>0?F+1|0:F,$=(p=m)- -1048576|0,J=Y=F-((p>>>0<4293918720)+-1|0)|0,G=(p=Y>>>21|0)+G|0,U=G=(H=Y=(F=(2097151&Y)<<11|$>>>21)+H|0)>>>0<F>>>0?G+1|0:G,q=(p=H)- -1048576|0,c=_- -1048576|0,S=S-((_>>>0<4293918720)+-1|0)|0,F=(p=(G=L=G-((p>>>0<4293918720)+-1|0)|0)>>21)+v|0,S=(F=(L=(_=(2097151&G)<<11|q>>>21)+Z|0)>>>0<_>>>0?F+1|0:F)-(((_=L)>>>0<(p=-2097152&c)>>>0)+(Y=S)|0)|0,QA=(p=_-p|0)-(F=-2097152&(f=p- -1048576|0))|0,EA=S-((p>>>0<F>>>0)+(_=S-((p>>>0<4293918720)+-1|0)|0)|0)|0,F=xg(r,T,136657,0)+H|0,p=U+l|0,p=F>>>0<H>>>0?p+1|0:p,AA=(H=F)-(F=-2097152&q)|0,Z=p-((H>>>0<F>>>0)+G|0)|0,S=b-(p=-2097152&R)|0,v=N-((b>>>0<p>>>0)+K|0)|0,p=xg(i,0,136657,0),F=l,(p=(G=2097151&((7&x)<<29|z>>>3))+p|0)>>>0<G>>>0&&(F=F+1|0),H=(G=xg(Q,0,-683901,-1))+p|0,p=l+F|0,b=H,H=H>>>0<G>>>0?p+1|0:p,p=xg(C,0,-683901,-1),F=l,(p=(G=P>>>6&2097151)+p|0)>>>0<G>>>0&&(F=F+1|0),U=(G=p)+(p=xg(i,0,-997805,-1))|0,G=l+F|0,G=U>>>0<p>>>0?G+1|0:G,F=xg(Q,0,136657,0),p=l+G|0,q=F=(R=p=(U=F+U|0)>>>0<F>>>0?p+1|0:p)-(((p=U)>>>0<4293918720)+-1|0)|0,p=(2097151&F)<<11|(z=p- -1048576|0)>>>21,F=(F>>21)+H|0,N=F=(b=p+b|0)>>>0<p>>>0?F+1|0:F,L=(p=b)- -1048576|0,K=F=F-((p>>>0<4293918720)+-1|0)|0,p=(G=F>>21)+v|0,o=H=(F=(2097151&F)<<11|L>>>21)+S|0,V=p=H>>>0<F>>>0?p+1|0:p,F=xg(H,p,-683901,-1),p=l+Z|0,iA=G=F+AA|0,P=G>>>0<F>>>0?p+1|0:p,v=m,p=xg(I,0,470296,0),F=l,(p=(G=2097151&((7&d)<<29|O>>>3))+p|0)>>>0<G>>>0&&(F=F+1|0),G=p,p=xg(g,0,666643,0),F=l+F|0,S=G=G+p|0,G=G>>>0<p>>>0?F+1|0:F,F=xg(I,0,666643,0),p=l,(F=(H=M>>>6&2097151)+F|0)>>>0<H>>>0&&(p=p+1|0),m=F,d=H=(M=p)-(((p=F)>>>0<4293918720)+-1|0)|0,F=(F=H>>>21|0)+G|0,x=F=(H=(p=(2097151&H)<<11|(AA=p- -1048576|0)>>>21)+S|0)>>>0<p>>>0?F+1|0:F,O=F-(((p=H)>>>0<4293918720)+-1|0)|0,Z=p- -1048576|0,n=b-(p=-2097152&L)|0,e=G=N-((b>>>0<p>>>0)+K|0)|0,p=((S=O)>>>21|0)+k|0,p=(v=(b=(2097151&S)<<11|Z>>>21)+v|0)>>>0<b>>>0?p+1|0:p,v=(k=xg(r,T,-997805,-1))+((b=v)-(F=-2097152&$)|0)|0,F=l+(p-((8191&J)+(b>>>0<F>>>0)|0)|0)|0,F=v>>>0<k>>>0?F+1|0:F,p=xg(o,V,136657,0),F=l+F|0,F=(k=p+v|0)>>>0<p>>>0?F+1|0:F,G=xg(n,G,-683901,-1),p=l+F|0,N=p=(k=G+k|0)>>>0<G>>>0?p+1|0:p,L=(p=k)- -1048576|0,K=G=N-((p>>>0<4293918720)+-1|0)|0,F=(p=G>>21)+P|0,v=F=(b=(G=(2097151&G)<<11|L>>>21)+iA|0)>>>0<G>>>0?F+1|0:F,J=(p=G=b)- -1048576|0,p=(p=(b=P=F-((p>>>0<4293918720)+-1|0)|0)>>21)+EA|0,QA=P=(F=(2097151&b)<<11|J>>>21)+QA|0,P=P>>>0<F>>>0?p+1|0:p,EA=G-(p=-2097152&J)|0,iA=v-((G>>>0<p>>>0)+b|0)|0,O=k-(p=-2097152&L)|0,$=N-((k>>>0<p>>>0)+K|0)|0,p=xg(r,T,654183,0),G=l+(x-((8191&S)+(H>>>0<(F=-2097152&Z)>>>0)|0)|0)|0,G=(k=p+(H-F|0)|0)>>>0<p>>>0?G+1|0:G,F=xg(o,V,-997805,-1),p=l+G|0,p=(k=F+k|0)>>>0<F>>>0?p+1|0:p,G=xg(n,e,136657,0),F=l+p|0,L=k=G+k|0,b=k>>>0<G>>>0?F+1|0:F,J=U-(p=-2097152&z)|0,x=R-((U>>>0<p>>>0)+q|0)|0,F=xg(B,0,-683901,-1),p=l,(F=(G=2097151&((1&W)<<31|j>>>1))+F|0)>>>0<G>>>0&&(p=p+1|0),G=F,F=xg(C,0,136657,0),p=l+p|0,p=(G=G+F|0)>>>0<F>>>0?p+1|0:p,k=(F=G)+(G=xg(i,0,654183,0))|0,F=l+p|0,F=k>>>0<G>>>0?F+1|0:F,p=xg(Q,0,-997805,-1),F=l+F|0,U=G=p+k|0,k=G>>>0<p>>>0?F+1|0:F,p=xg(g,0,-683901,-1),G=l,(p=(F=X>>>4&2097151)+p|0)>>>0<F>>>0&&(G=G+1|0),H=(F=xg(B,0,136657,0))+p|0,p=l+G|0,p=H>>>0<F>>>0?p+1|0:p,G=xg(C,0,-997805,-1),F=l+p|0,F=(H=G+H|0)>>>0<G>>>0?F+1|0:F,G=xg(i,0,470296,0),p=l+F|0,p=(H=G+H|0)>>>0<G>>>0?p+1|0:p,G=xg(Q,0,654183,0),F=l+p|0,N=F=(H=G+H|0)>>>0<G>>>0?F+1|0:F,q=(p=H)- -1048576|0,K=G=F-((p>>>0<4293918720)+-1|0)|0,p=(p=G>>21)+k|0,k=G=(F=(2097151&G)<<11|q>>>21)+U|0,v=p=G>>>0<F>>>0?p+1|0:p,S=(p=G)- -1048576|0,U=G=v-((p>>>0<4293918720)+-1|0)|0,F=(p=G>>21)+x|0,t=R=(G=(2097151&G)<<11|S>>>21)+J|0,X=F=R>>>0<G>>>0?F+1|0:F,p=xg(R,F,-683901,-1),G=l+b|0,x=F=p+L|0,b=F>>>0<p>>>0?G+1|0:G,j=k-(p=-2097152&S)|0,W=U=v-((k>>>0<p>>>0)+U|0)|0,G=(p=xg(r,T,470296,0))+(m-(F=-2097152&AA)|0)|0,F=l+(M-((2047&d)+(m>>>0<F>>>0)|0)|0)|0,F=G>>>0<p>>>0?F+1|0:F,p=xg(o,V,654183,0),F=l+F|0,F=(G=p+G|0)>>>0<p>>>0?F+1|0:F,k=(p=xg(n,e,-997805,-1))+G|0,G=l+F|0,G=k>>>0<p>>>0?G+1|0:G,F=xg(R,X,136657,0),p=l+G|0,p=(k=F+k|0)>>>0<F>>>0?p+1|0:p,G=xg(j,U,-683901,-1),F=l+p|0,v=F=(k=G+k|0)>>>0<G>>>0?F+1|0:F,d=(p=k)- -1048576|0,U=G=F-((p>>>0<4293918720)+-1|0)|0,p=(p=G>>21)+b|0,b=p=(G=(F=(2097151&G)<<11|d>>>21)+x|0)>>>0<F>>>0?p+1|0:p,S=(p=G)- -1048576|0,F=(p=(m=x=b-((p>>>0<4293918720)+-1|0)|0)>>21)+$|0,O=M=(x=(2097151&m)<<11|S>>>21)+O|0,x=M>>>0<x>>>0?F+1|0:F,$=G-(p=-2097152&S)|0,z=b-((G>>>0<p>>>0)+m|0)|0,L=k-(p=-2097152&d)|0,R=v-((k>>>0<p>>>0)+U|0)|0,F=xg(r,T,666643,0),p=l,(F=(G=2097151&((1&CA)<<31|D>>>1))+F|0)>>>0<G>>>0&&(p=p+1|0),k=(G=xg(o,V,470296,0))+F|0,F=l+p|0,F=k>>>0<G>>>0?F+1|0:F,G=xg(n,e,654183,0),p=l+F|0,p=(k=G+k|0)>>>0<G>>>0?p+1|0:p,F=xg(t,X,-997805,-1),G=l+p|0,G=(k=F+k|0)>>>0<F>>>0?G+1|0:G,p=xg(j,W,136657,0),F=l+G|0,U=k=p+k|0,m=k>>>0<p>>>0?F+1|0:F,b=H-(p=-2097152&q)|0,H=N-((H>>>0<p>>>0)+K|0)|0,p=xg(I,0,-683901,-1),F=l,(p=(G=IA>>>7&2097151)+p|0)>>>0<G>>>0&&(F=F+1|0),k=(G=p)+(p=xg(g,0,136657,0))|0,G=l+F|0,G=k>>>0<p>>>0?G+1|0:G,F=xg(B,0,-997805,-1),p=l+G|0,p=(k=F+k|0)>>>0<F>>>0?p+1|0:p,G=xg(C,0,654183,0),F=l+p|0,F=(k=G+k|0)>>>0<G>>>0?F+1|0:F,G=xg(i,0,666643,0),p=l+F|0,p=(k=G+k|0)>>>0<G>>>0?p+1|0:p,G=xg(Q,0,470296,0),F=l+p|0,p=F=(k=G+k|0)>>>0<G>>>0?F+1|0:F,F=Y>>21,k=(Y=(2097151&Y)<<11|c>>>21)+(G=k)|0,G=p+F|0,K=G=k>>>0<Y>>>0?G+1|0:G,N=(p=k)- -1048576|0,v=G=G-((p>>>0<4293918720)+-1|0)|0,p=(F=G>>21)+H|0,T=Y=(G=(2097151&G)<<11|N>>>21)+b|0,J=p=Y>>>0<G>>>0?p+1|0:p,p=xg(Y,p,-683901,-1),F=l+m|0,m=G=p+U|0,Y=G>>>0<p>>>0?F+1|0:F,p=xg(o,V,666643,0),G=l,(p=(F=BA>>>4&2097151)+p|0)>>>0<F>>>0&&(G=G+1|0),H=(F=xg(n,e,470296,0))+p|0,p=l+G|0,p=H>>>0<F>>>0?p+1|0:p,G=xg(t,X,654183,0),F=l+p|0,F=(H=G+H|0)>>>0<G>>>0?F+1|0:F,p=xg(j,W,-997805,-1),F=l+F|0,F=(G=p+H|0)>>>0<p>>>0?F+1|0:F,H=(p=G)+(G=xg(T,J,136657,0))|0,p=l+F|0,U=p=H>>>0<G>>>0?p+1|0:p,M=(p=H)- -1048576|0,b=G=U-((p>>>0<4293918720)+-1|0)|0,p=(F=G>>21)+Y|0,G=p=(Y=m=(G=(2097151&G)<<11|M>>>21)+m|0)>>>0<G>>>0?p+1|0:p,d=(p=Y)- -1048576|0,p=(F=(m=S=G-((p>>>0<4293918720)+-1|0)|0)>>21)+R|0,AA=q=(S=(2097151&m)<<11|d>>>21)+L|0,S=q>>>0<S>>>0?p+1|0:p,p=k-(F=-2097152&N)|0,k=K-((k>>>0<F>>>0)+v|0)|0,v=p,p=(p=_>>21)+k|0,N=p=(k=_=v+(F=(2097151&_)<<11|f>>>21)|0)>>>0<F>>>0?p+1|0:p,q=(p=k)- -1048576|0,K=_=N-((p>>>0<4293918720)+-1|0)|0,R=p=_>>21,p=xg(V=(2097151&_)<<11|q>>>21,p,-683901,-1),F=l+G|0,F=(_=p+Y|0)>>>0<p>>>0?F+1|0:F,Z=(G=_)-(p=-2097152&d)|0,L=F-((G>>>0<p>>>0)+m|0)|0,F=xg(V,R,136657,0)+H|0,p=U+l|0,p=F>>>0<H>>>0?p+1|0:p,IA=(G=F)-(F=-2097152&M)|0,M=p-((G>>>0<F>>>0)+b|0)|0,p=xg(n,e,666643,0),F=l,(p=(G=gA>>>7&2097151)+p|0)>>>0<G>>>0&&(F=F+1|0),_=(G=p)+(p=xg(t,X,470296,0))|0,G=l+F|0,G=_>>>0<p>>>0?G+1|0:G,F=xg(j,W,654183,0),p=l+G|0,p=(_=F+_|0)>>>0<F>>>0?p+1|0:p,F=xg(T,J,-997805,-1),p=l+p|0,b=G=F+_|0,G=G>>>0<F>>>0?p+1|0:p,p=xg(t,X,666643,0),F=l,(p=(_=2097151&((3&h)<<30|w>>>2))+p|0)>>>0<_>>>0&&(F=F+1|0),_=p,p=xg(j,W,470296,0),F=l+F|0,F=(_=_+p|0)>>>0<p>>>0?F+1|0:F,Y=(p=_)+(_=xg(T,J,654183,0))|0,p=l+F|0,m=p=Y>>>0<_>>>0?p+1|0:p,d=(p=_=Y)- -1048576|0,p=(F=(H=Y=m-((p>>>0<4293918720)+-1|0)|0)>>21)+G|0,U=b=(Y=(2097151&H)<<11|d>>>21)+b|0,G=p=b>>>0<Y>>>0?p+1|0:p,b=(p=b)- -1048576|0,p=(F=(Y=v=G-((p>>>0<4293918720)+-1|0)|0)>>21)+M|0,gA=X=(v=(2097151&Y)<<11|b>>>21)+IA|0,v=X>>>0<v>>>0?p+1|0:p,p=xg(V,R,-997805,-1),G=l+G|0,G=(F=p+U|0)>>>0<p>>>0?G+1|0:G,BA=F-(p=-2097152&b)|0,CA=G-((F>>>0<p>>>0)+Y|0)|0,p=xg(V,R,654183,0)+_|0,F=m+l|0,F=p>>>0<_>>>0?F+1|0:F,IA=(G=p)-(p=-2097152&d)|0,X=F-((G>>>0<p>>>0)+H|0)|0,p=xg(j,W,666643,0),G=l,(p=(F=s>>>5&2097151)+p|0)>>>0<F>>>0&&(G=G+1|0),_=(F=xg(T,J,470296,0))+p|0,p=l+G|0,H=_,G=_>>>0<F>>>0?p+1|0:p,F=2097151&y,_=xg(T,J,666643,0)+F|0,p=l,Y=_,b=_=(U=p=_>>>0<F>>>0?p+1|0:p)-(((p=_)>>>0<4293918720)+-1|0)|0,G=(F=_>>21)+G|0,m=G=(_=(p=(2097151&_)<<11|(M=p- -1048576|0)>>>21)+H|0)>>>0<p>>>0?G+1|0:G,d=(p=_)- -1048576|0,H=G=G-((p>>>0<4293918720)+-1|0)|0,p=(F=G>>21)+X|0,G=p=(J=(G=(2097151&G)<<11|d>>>21)+IA|0)>>>0<G>>>0?p+1|0:p,p=xg(V,R,470296,0)+_|0,F=m+l|0,H=(F=p>>>0<_>>>0?F+1|0:F)-(((m=p)>>>0<(_=-2097152&d)>>>0)+H|0)|0,m=p=p-_|0,_=(F=xg(V,R,666643,0))+(Y-(p=-2097152&M)|0)|0,p=l+(U-((Y>>>0<p>>>0)+b|0)|0)|0,Y=_,F=(F=(p=_>>>0<F>>>0?p+1|0:p)>>21)+H|0,W=_=m+(p=(2097151&p)<<11|_>>>21)|0,G=(p=(F=_>>>0<p>>>0?F+1|0:F)>>21)+G|0,H=_=(F=(2097151&F)<<11|_>>>21)+J|0,F=(G=(p=_)>>>0<F>>>0?G+1|0:G)>>21,G=(2097151&G)<<11|p>>>21,p=F+CA|0,b=_=G+BA|0,G=(p=(F=_)>>>0<G>>>0?p+1|0:p)>>21,p=(2097151&p)<<11|F>>>21,F=G+v|0,v=_=p+gA|0,p=(p=(F=(G=_)>>>0<p>>>0?F+1|0:F)>>21)+L|0,J=G=(F=(2097151&F)<<11|G>>>21)+Z|0,F=(F=(p=G>>>0<F>>>0?p+1|0:p)>>21)+S|0,R=G=(p=(2097151&p)<<11|G>>>21)+AA|0,p=(F=G>>>0<p>>>0?F+1|0:F)>>21,F=(2097151&F)<<11|G>>>21,G=p+z|0,M=_=F+$|0,F=(G=(p=_)>>>0<F>>>0?G+1|0:G)>>21,G=(2097151&G)<<11|p>>>21,p=F+x|0,d=_=G+O|0,G=(p=(F=_)>>>0<G>>>0?p+1|0:p)>>21,p=(2097151&p)<<11|F>>>21,F=G+iA|0,x=_=p+EA|0,p=(p=(F=(G=_)>>>0<p>>>0?F+1|0:F)>>21)+P|0,S=G=(F=(2097151&F)<<11|G>>>21)+QA|0,F=(p=G>>>0<F>>>0?p+1|0:p)>>21,_=(2097151&p)<<11|G>>>21,p=k-(G=-2097152&q)|0,G=(N-((k>>>0<G>>>0)+K|0)|0)+F|0,K=_=_+p|0,P=(2097151&(G=(F=_)>>>0<p>>>0?G+1|0:G))<<11|F>>>21,U=p=G>>21,F=2097151&Y,G=xg(P,p,666643,0)+F|0,p=l,m=G,_=p=G>>>0<F>>>0?p+1|0:p,E[0|u]=G,E[A+1|0]=(255&p)<<24|G>>>8,p=2097151&W,G=xg(P,U,470296,0)+p|0,F=l,F=G>>>0<p>>>0?F+1|0:F,Y=G,k=(2097151&(G=_))<<11|m>>>21,G=(p=G>>21)+F|0,G=(N=Y+k|0)>>>0<k>>>0?G+1|0:G,k=N,E[A+4|0]=(2047&G)<<21|k>>>11,p=F=G,G=k,E[A+3|0]=(7&p)<<29|G>>>3,G=2097151&H,H=xg(P,U,654183,0)+G|0,p=l,p=H>>>0<G>>>0?p+1|0:p,G=H,H=(2097151&F)<<11|k>>>21,F=(F>>21)+p|0,F=(N=G+H|0)>>>0<H>>>0?F+1|0:F,H=N,p=F,E[A+6|0]=(63&p)<<26|H>>>6,Y=0,G=31&((65535&_)<<16|m>>>16),F=m=2097151&k,E[A+2|0]=G|F<<5,G=2097151&b,k=xg(P,U,-997805,-1)+G|0,F=l,G=F=k>>>0<G>>>0?F+1|0:F,G=(F=p>>21)+G|0,b=k=(p=(2097151&p)<<11|H>>>21)+k|0,G=k>>>0<p>>>0?G+1|0:G,E[A+9|0]=(511&G)<<23|k>>>9,p=F=G,G=k,E[A+8|0]=(1&p)<<31|G>>>1,k=0,G=H&=2097151,E[A+5|0]=(524287&Y)<<13|m>>>19|G<<2,G=2097151&v,Y=xg(P,U,136657,0)+G|0,p=l,p=(p=Y>>>0<G>>>0?p+1|0:p)+(G=F>>21)|0,m=Y=(F=(2097151&F)<<11|b>>>21)+Y|0,p=Y>>>0<F>>>0?p+1|0:p,F=Y,E[A+12|0]=(4095&p)<<20|F>>>12,G=p,E[A+11|0]=(15&p)<<28|F>>>4,Y=0,F=v=2097151&b,E[A+7|0]=(16383&k)<<18|H>>>14|F<<7,p=2097151&J,k=xg(P,U,-683901,-1)+p|0,F=l,F=k>>>0<p>>>0?F+1|0:F,F=(p=G>>21)+F|0,H=k=(G=(2097151&G)<<11|m>>>21)+k|0,p=F=k>>>0<G>>>0?F+1|0:F,E[A+14|0]=(127&p)<<25|k>>>7,k=0,G=b=2097151&m,E[A+10|0]=(131071&Y)<<15|v>>>17|G<<4,F=p>>21,G=(m=(p=(2097151&p)<<11|H>>>21)+(2097151&R)|0)>>>0<p>>>0?F+1|0:F,E[A+17|0]=(1023&G)<<22|m>>>10,p=G,G=m,E[A+16|0]=(3&p)<<30|G>>>2,G=U=2097151&H,E[A+13|0]=(1048575&k)<<12|b>>>20|G<<1,G=(2097151&p)<<11|m>>>21,p>>=21,p=(H=G+(2097151&M)|0)>>>0<G>>>0?p+1|0:p,F=H,E[A+20|0]=(8191&p)<<19|F>>>13,E[A+19|0]=(31&p)<<27|F>>>5,F=b=2097151&m,E[A+15|0]=(32767&Y)<<17|U>>>15|F<<6,_=(2097151&p)<<11|H>>>21,p=F=p>>21,_=p=(U=_+(2097151&d)|0)>>>0<_>>>0?p+1|0:p,E[A+21|0]=U,p=H,E[A+18|0]=(262143&k)<<14|b>>>18|p<<3,p=_,E[A+22|0]=(255&p)<<24|U>>>8,G=p,p>>=21,G=(H=(Y=(2097151&G)<<11|U>>>21)+(2097151&x)|0)>>>0<Y>>>0?p+1|0:p,E[(F=A)+25|0]=(2047&G)<<21|H>>>11,p=G,G=H,E[F+24|0]=(7&p)<<29|G>>>3,G=F,Y=(2097151&p)<<11|H>>>21,p>>=21,F=p=(k=m=Y+(2097151&S)|0)>>>0<Y>>>0?p+1|0:p,E[G+27|0]=(63&p)<<26|k>>>6,Y=0,p=m=2097151&H,E[G+23|0]=31&((65535&_)<<16|U>>>16)|p<<5,F=(p=F)>>21,F=(_=(p=(2097151&p)<<11|k>>>21)+(2097151&K)|0)>>>0<p>>>0?F+1|0:F,G=_,E[A+31|0]=(131071&F)<<15|G>>>17,p=F,E[A+30|0]=(511&p)<<23|G>>>9,E[A+29|0]=(1&p)<<31|G>>>1,F=0,k&=2097151,E[A+26|0]=(524287&Y)<<13|m>>>19|k<<2,E[A+28|0]=(16383&F)<<18|k>>>14|G<<7}function _(A){var I,g=0,B=0,C=0,Q=0,E=0,i=0,o=0,e=0,c=0,f=0,y=0,s=0,w=0;D=I=D-16|0;A:{I:{g:{B:{C:{Q:{E:{i:{n:{a:{r:{o:{if((A|=0)>>>0<=244){if(3&(g=(Q=n[8961])>>>(A=(i=A>>>0<11?16:A+11&-8)>>>3|0)|0)){A=(g=n[35892+(E=(B=A+(1&(-1^g))|0)<<3)>>2])+8|0,(0|(C=n[g+8>>2]))!=(0|(E=E+35884|0))?(n[C+12>>2]=E,n[E+8>>2]=C):(s=35844,w=ng(-2,B)&Q,n[s>>2]=w),B<<=3,n[g+4>>2]=3|B,n[4+(g=g+B|0)>>2]=1|n[g+4>>2];break A}if(i>>>0<=(e=n[8963])>>>0)break o;if(g){B=g=(A=(0-(A=(0-(B=2<<A)|B)&g<<A)&A)-1|0)>>>12&16,B|=g=(A=A>>>g|0)>>>5&8,B|=g=(A=A>>>g|0)>>>2&4,g=n[35892+(C=(B=((B|=g=(A=A>>>g|0)>>>1&2)|(g=(A=A>>>g|0)>>>1&1))+(A>>>g|0)|0)<<3)>>2],(0|(A=n[g+8>>2]))!=(0|(C=C+35884|0))?(n[A+12>>2]=C,n[C+8>>2]=A):(Q=ng(-2,B)&Q,n[8961]=Q),A=g+8|0,n[g+4>>2]=3|i,E=(B<<=3)-i|0,n[4+(o=g+i|0)>>2]=1|E,n[g+B>>2]=E,e&&(g=35884+((B=e>>>3|0)<<3)|0,C=n[8966],(B=1<<B)&Q?B=n[g+8>>2]:(n[8961]=B|Q,B=g),n[g+8>>2]=C,n[B+12>>2]=C,n[C+12>>2]=g,n[C+8>>2]=B),n[8966]=o,n[8963]=E;break A}if(!(f=n[8962]))break o;for(B=g=(A=(f&0-f)-1|0)>>>12&16,B|=g=(A=A>>>g|0)>>>5&8,B|=g=(A=A>>>g|0)>>>2&4,g=n[36148+(((B|=g=(A=A>>>g|0)>>>1&2)|(g=(A=A>>>g|0)>>>1&1))+(A>>>g|0)<<2)>>2],C=(-8&n[g+4>>2])-i|0,B=g;(A=n[B+16>>2])||(A=n[B+20>>2]);)C=(B=(E=(-8&n[A+4>>2])-i|0)>>>0<C>>>0)?E:C,g=B?A:g,B=A;if((y=g+i|0)>>>0<=g>>>0)break r;if(c=n[g+24>>2],(0|(E=n[g+12>>2]))!=(0|g)){A=n[g+8>>2],n[A+12>>2]=E,n[E+8>>2]=A;break I}if(!(A=n[(B=g+20|0)>>2])){if(!(A=n[g+16>>2]))break a;B=g+16|0}for(;o=B,E=A,(A=n[(B=A+20|0)>>2])||(B=E+16|0,A=n[E+16>>2]););n[o>>2]=0;break I}if(i=-1,!(A>>>0>4294967231)&&(i=-8&(g=A+11|0),e=n[8962])){B=0-i|0,Q=0,(g=g>>>8|0)&&(Q=31,i>>>0>16777215||(Q=28+((A=((Q=(g<<=C=g+1048320>>>16&8)<<(A=g+520192>>>16&4))<<(g=Q+245760>>>16&2)>>>15|0)-(g|A|C)|0)<<1|i>>>A+21&1)|0));e:{t:{if(C=n[36148+(Q<<2)>>2])for(g=i<<(31==(0|Q)?0:25-(Q>>>1|0)|0),A=0;;){if(!((o=(-8&n[C+4>>2])-i|0)>>>0>=B>>>0||(E=C,B=o))){B=0,A=C;break t}if(o=n[C+20>>2],C=n[16+((g>>>29&4)+C|0)>>2],A=o?(0|o)==(0|C)?A:o:A,g<<=0!=(0|C),!C)break}else A=0;if(!(A|E)){if(!(A=(0-(A=2<<Q)|A)&e))break o;C=g=(A=(A&0-A)-1|0)>>>12&16,C|=g=(A=A>>>g|0)>>>5&8,C|=g=(A=A>>>g|0)>>>2&4,A=n[36148+(((C|=g=(A=A>>>g|0)>>>1&2)|(g=(A=A>>>g|0)>>>1&1))+(A>>>g|0)<<2)>>2]}if(!A)break e}for(;B=(g=(C=(-8&n[A+4>>2])-i|0)>>>0<B>>>0)?C:B,E=g?A:E,A=(g=n[A+16>>2])||n[A+20>>2];);}if(!(!E|B>>>0>=n[8963]-i>>>0)){if((Q=E+i|0)>>>0<=E>>>0)break r;if(c=n[E+24>>2],(0|E)!=(0|(g=n[E+12>>2]))){A=n[E+8>>2],n[A+12>>2]=g,n[g+8>>2]=A;break g}if(!(A=n[(C=E+20|0)>>2])){if(!(A=n[E+16>>2]))break n;C=E+16|0}for(;o=C,g=A,(A=n[(C=A+20|0)>>2])||(C=g+16|0,A=n[g+16>>2]););n[o>>2]=0;break g}}}if((g=n[8963])>>>0>=i>>>0){A=n[8966],(B=g-i|0)>>>0>=16?(n[8963]=B,C=A+i|0,n[8966]=C,n[C+4>>2]=1|B,n[A+g>>2]=B,n[A+4>>2]=3|i):(n[8966]=0,n[8963]=0,n[A+4>>2]=3|g,n[4+(g=A+g|0)>>2]=1|n[g+4>>2]),A=A+8|0;break A}if((C=n[8964])>>>0>i>>>0){g=C-i|0,n[8964]=g,B=(A=n[8967])+i|0,n[8967]=B,n[B+4>>2]=1|g,n[A+4>>2]=3|i,A=A+8|0;break A}if(A=0,B=E=i+47|0,n[9079]?g=n[9081]:(n[9082]=-1,n[9083]=-1,n[9080]=4096,n[9081]=4096,n[9079]=I+12&-16^1431655768,n[9084]=0,n[9072]=0,g=4096),(B=(Q=B+g|0)&(o=0-g|0))>>>0<=i>>>0)break A;if((g=n[9071])&&(c=(e=n[9069])+B|0)>>>0<=e>>>0|c>>>0>g>>>0)break A;if(4&a[36288])break Q;o:{e:{if(g=n[8967])for(A=36292;;){if((e=n[A>>2])+n[A+4>>2]>>>0>g>>>0&&e>>>0<=g>>>0)break e;if(!(A=n[A+8>>2]))break}if(-1==(0|(g=FI(0))))break E;if(Q=B,(C=(A=n[9080])+-1|0)&g&&(Q=(B-g|0)+(g+C&0-A)|0),Q>>>0<=i>>>0|Q>>>0>2147483646)break E;if((A=n[9071])&&(o=(C=n[9069])+Q|0)>>>0<=C>>>0|o>>>0>A>>>0)break E;if((0|g)!=(0|(A=FI(Q))))break o;break C}if((Q=o&Q-C)>>>0>2147483646)break E;if((0|(g=FI(Q)))==(n[A>>2]+n[A+4>>2]|0))break i;A=g}if(!(-1==(0|A)|i+48>>>0<=Q>>>0)){if((g=(g=n[9081])+(E-Q|0)&0-g)>>>0>2147483646){g=A;break C}if(-1!=(0|FI(g))){Q=g+Q|0,g=A;break C}FI(0-Q|0);break E}if(g=A,-1!=(0|A))break C;break E}t()}E=0;break I}g=0;break g}if(-1!=(0|g))break C}n[9072]=4|n[9072]}if(B>>>0>2147483646)break B;if((g=FI(B))>>>0>=(A=FI(0))>>>0|-1==(0|g)|-1==(0|A))break B;if((Q=A-g|0)>>>0<=i+40>>>0)break B}A=n[9069]+Q|0,n[9069]=A,A>>>0>r[9070]&&(n[9070]=A);C:{Q:{E:{if(B=n[8967]){for(A=36292;;){if(((C=n[A>>2])+(E=n[A+4>>2])|0)==(0|g))break E;if(!(A=n[A+8>>2]))break}break Q}for(g>>>0>=(A=n[8965])>>>0&&A||(n[8965]=g),A=0,n[9074]=Q,n[9073]=g,n[8969]=-1,n[8970]=n[9079],n[9076]=0;C=35884+(B=A<<3)|0,n[B+35892>>2]=C,n[B+35896>>2]=C,32!=(0|(A=A+1|0)););C=(A=Q+-40|0)-(B=g+8&7?-8-g&7:0)|0,n[8964]=C,B=g+B|0,n[8967]=B,n[B+4>>2]=1|C,n[4+(A+g|0)>>2]=40,n[8968]=n[9083];break C}if(!(8&a[A+12|0]|g>>>0<=B>>>0|C>>>0>B>>>0)){n[A+4>>2]=Q+E,g=(A=B+8&7?-8-B&7:0)+B|0,n[8967]=g,A=(C=n[8964]+Q|0)-A|0,n[8964]=A,n[g+4>>2]=1|A,n[4+(B+C|0)>>2]=40,n[8968]=n[9083];break C}}g>>>0<(E=n[8965])>>>0&&(n[8965]=g,E=0),C=g+Q|0,A=36292;Q:{E:{i:{n:{a:{r:{for(;;){if((0|C)!=n[A>>2]){if(A=n[A+8>>2])continue;break r}break}if(!(8&a[A+12|0]))break a}for(A=36292;;){if((C=n[A>>2])>>>0<=B>>>0&&(E=C+n[A+4>>2]|0)>>>0>B>>>0)break n;A=n[A+8>>2]}}if(n[A>>2]=g,n[A+4>>2]=n[A+4>>2]+Q,n[4+(c=(g+8&7?-8-g&7:0)+g|0)>>2]=3|i,A=((g=C+(C+8&7?-8-C&7:0)|0)-c|0)-i|0,o=i+c|0,(0|g)==(0|B)){n[8967]=o,A=n[8964]+A|0,n[8964]=A,n[o+4>>2]=1|A;break E}if(n[8966]==(0|g)){n[8966]=o,A=n[8963]+A|0,n[8963]=A,n[o+4>>2]=1|A,n[A+o>>2]=A;break E}if(1==(3&(B=n[g+4>>2]))){f=-8&B;a:if(B>>>0<=255){if(E=B>>>3|0,B=n[g+8>>2],(0|(C=n[g+12>>2]))==(0|B)){s=35844,w=n[8961]&ng(-2,E),n[s>>2]=w;break a}n[B+12>>2]=C,n[C+8>>2]=B}else{if(e=n[g+24>>2],(0|(Q=n[g+12>>2]))==(0|g))if((i=n[(C=g+20|0)>>2])||(i=n[(C=g+16|0)>>2])){for(;B=C,(i=n[(C=(Q=i)+20|0)>>2])||(C=Q+16|0,i=n[Q+16>>2]););n[B>>2]=0}else Q=0;else B=n[g+8>>2],n[B+12>>2]=Q,n[Q+8>>2]=B;if(e){B=n[g+28>>2];r:{if(n[(C=36148+(B<<2)|0)>>2]==(0|g)){if(n[C>>2]=Q,Q)break r;s=35848,w=n[8962]&ng(-2,B),n[s>>2]=w;break a}if(n[e+(n[e+16>>2]==(0|g)?16:20)>>2]=Q,!Q)break a}n[Q+24>>2]=e,(B=n[g+16>>2])&&(n[Q+16>>2]=B,n[B+24>>2]=Q),(B=n[g+20>>2])&&(n[Q+20>>2]=B,n[B+24>>2]=Q)}}g=g+f|0,A=A+f|0}if(n[g+4>>2]=-2&n[g+4>>2],n[o+4>>2]=1|A,n[A+o>>2]=A,A>>>0<=255){A=35884+((g=A>>>3|0)<<3)|0,(B=n[8961])&(g=1<<g)?g=n[A+8>>2]:(n[8961]=g|B,g=A),n[A+8>>2]=o,n[g+12>>2]=o,n[o+12>>2]=A,n[o+8>>2]=g;break E}if(g=0,(C=A>>>8|0)&&(g=31,A>>>0>16777215||(g=28+((g=((i=(C<<=E=C+1048320>>>16&8)<<(g=C+520192>>>16&4))<<(C=i+245760>>>16&2)>>>15|0)-(C|g|E)|0)<<1|A>>>g+21&1)|0)),n[(B=o)+28>>2]=g,n[o+16>>2]=0,n[o+20>>2]=0,B=36148+(g<<2)|0,(C=n[8962])&(E=1<<g)){for(C=A<<(31==(0|g)?0:25-(g>>>1|0)|0),g=n[B>>2];;){if(B=g,(-8&n[g+4>>2])==(0|A))break i;if(g=C>>>29|0,C<<=1,!(g=n[16+(E=(4&g)+B|0)>>2]))break}n[E+16>>2]=o}else n[8962]=C|E,n[B>>2]=o;n[o+24>>2]=B,n[o+12>>2]=o,n[o+8>>2]=o;break E}for(o=(A=Q+-40|0)-(C=g+8&7?-8-g&7:0)|0,n[8964]=o,C=g+C|0,n[8967]=C,n[C+4>>2]=1|o,n[4+(A+g|0)>>2]=40,n[8968]=n[9083],n[(C=(A=(E+(E+-39&7?39-E&7:0)|0)-47|0)>>>0<B+16>>>0?B:A)+4>>2]=27,A=n[9076],n[C+16>>2]=n[9075],n[C+20>>2]=A,A=n[9074],n[C+8>>2]=n[9073],n[C+12>>2]=A,n[9075]=C+8,n[9074]=Q,n[9073]=g,n[9076]=0,A=C+24|0;n[A+4>>2]=7,g=A+8|0,A=A+4|0,E>>>0>g>>>0;);if((0|B)==(0|C))break C;if(n[C+4>>2]=-2&n[C+4>>2],E=C-B|0,n[B+4>>2]=1|E,n[C>>2]=E,E>>>0<=255){A=35884+((g=E>>>3|0)<<3)|0,(C=n[8961])&(g=1<<g)?g=n[A+8>>2]:(n[8961]=g|C,g=A),n[A+8>>2]=B,n[g+12>>2]=B,n[B+12>>2]=A,n[B+8>>2]=g;break C}if(n[B+16>>2]=0,n[B+20>>2]=0,A=0,(C=E>>>8|0)&&(A=31,E>>>0>16777215||(A=28+((A=((o=(C<<=Q=C+1048320>>>16&8)<<(A=C+520192>>>16&4))<<(C=o+245760>>>16&2)>>>15|0)-(C|A|Q)|0)<<1|E>>>A+21&1)|0)),n[(g=B)+28>>2]=A,g=36148+(A<<2)|0,(C=n[8962])&(Q=1<<A)){for(A=E<<(31==(0|A)?0:25-(A>>>1|0)|0),g=n[g>>2];;){if(C=g,(0|E)==(-8&n[g+4>>2]))break Q;if(g=A>>>29|0,A<<=1,!(g=n[16+(Q=C+(4&g)|0)>>2]))break}n[Q+16>>2]=B,n[B+24>>2]=C}else n[8962]=C|Q,n[g>>2]=B,n[B+24>>2]=g;n[B+12>>2]=B,n[B+8>>2]=B;break C}A=n[B+8>>2],n[A+12>>2]=o,n[B+8>>2]=o,n[o+24>>2]=0,n[o+12>>2]=B,n[o+8>>2]=A}A=c+8|0;break A}A=n[C+8>>2],n[A+12>>2]=B,n[C+8>>2]=B,n[B+24>>2]=0,n[B+12>>2]=C,n[B+8>>2]=A}if(!((A=n[8964])>>>0<=i>>>0)){g=A-i|0,n[8964]=g,B=(A=n[8967])+i|0,n[8967]=B,n[B+4>>2]=1|g,n[A+4>>2]=3|i,A=A+8|0;break A}}n[8960]=48,A=0;break A}g:if(c){A=n[E+28>>2];B:{if(n[(C=36148+(A<<2)|0)>>2]==(0|E)){if(n[C>>2]=g,g)break B;e=ng(-2,A)&e,n[8962]=e;break g}if(n[c+(n[c+16>>2]==(0|E)?16:20)>>2]=g,!g)break g}n[g+24>>2]=c,(A=n[E+16>>2])&&(n[g+16>>2]=A,n[A+24>>2]=g),(A=n[E+20>>2])&&(n[g+20>>2]=A,n[A+24>>2]=g)}g:if(B>>>0<=15)A=B+i|0,n[E+4>>2]=3|A,n[4+(A=A+E|0)>>2]=1|n[A+4>>2];else if(n[E+4>>2]=3|i,n[Q+4>>2]=1|B,n[B+Q>>2]=B,B>>>0<=255)A=35884+((g=B>>>3|0)<<3)|0,(B=n[8961])&(g=1<<g)?g=n[A+8>>2]:(n[8961]=g|B,g=A),n[A+8>>2]=Q,n[g+12>>2]=Q,n[Q+12>>2]=A,n[Q+8>>2]=g;else{A=0,(C=B>>>8|0)&&(A=31,B>>>0>16777215||(A=28+((A=((o=(C<<=i=C+1048320>>>16&8)<<(A=C+520192>>>16&4))<<(C=o+245760>>>16&2)>>>15|0)-(C|A|i)|0)<<1|B>>>A+21&1)|0)),n[(g=Q)+28>>2]=A,n[Q+16>>2]=0,n[Q+20>>2]=0,g=36148+(A<<2)|0;B:{if((C=1<<A)&e){for(A=B<<(31==(0|A)?0:25-(A>>>1|0)|0),i=n[g>>2];;){if((-8&n[(g=i)+4>>2])==(0|B))break B;if(C=A>>>29|0,A<<=1,!(i=n[16+(C=(4&C)+g|0)>>2]))break}n[C+16>>2]=Q}else n[8962]=C|e,n[g>>2]=Q;n[Q+24>>2]=g,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break g}A=n[g+8>>2],n[A+12>>2]=Q,n[g+8>>2]=Q,n[Q+24>>2]=0,n[Q+12>>2]=g,n[Q+8>>2]=A}A=E+8|0;break A}I:if(c){A=n[g+28>>2];g:{if(n[(B=36148+(A<<2)|0)>>2]==(0|g)){if(n[B>>2]=E,E)break g;s=35848,w=ng(-2,A)&f,n[s>>2]=w;break I}if(n[c+(n[c+16>>2]==(0|g)?16:20)>>2]=E,!E)break I}n[E+24>>2]=c,(A=n[g+16>>2])&&(n[E+16>>2]=A,n[A+24>>2]=E),(A=n[g+20>>2])&&(n[E+20>>2]=A,n[A+24>>2]=E)}C>>>0<=15?(A=C+i|0,n[g+4>>2]=3|A,n[4+(A=A+g|0)>>2]=1|n[A+4>>2]):(n[g+4>>2]=3|i,n[y+4>>2]=1|C,n[C+y>>2]=C,e&&(A=35884+((B=e>>>3|0)<<3)|0,E=n[8966],(B=1<<B)&Q?B=n[A+8>>2]:(n[8961]=B|Q,B=A),n[A+8>>2]=E,n[B+12>>2]=E,n[E+12>>2]=A,n[E+8>>2]=B),n[8966]=y,n[8963]=C),A=g+8|0}return D=I+16|0,0|A}function H(A,I,g){var B,C,Q,E,i,a,r,e,t,c,f,y,s,w,h,D,u,p,F,G,k,_,H,Y,b,m,U,v,S,N,R,M,d,P,J,x,L,K,q,X,V,T,W,j,Z,O,z,$,AA,IA,gA,BA,CA,QA,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,cA=0,fA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0;eA=A,e=EA=_A=n[g+4>>2],t=EA>>31,L=EA=(DA=n[I+20>>2])<<1,EA=xg(e,t,EA,H=EA>>31),nA=l,iA=EA,B=EA=n[g>>2],C=EA>>31,c=EA=n[I+24>>2],rA=xg(B,C,EA,Q=EA>>31),EA=l+nA|0,EA=(iA=iA+rA|0)>>>0<rA>>>0?EA+1|0:EA,nA=iA,Y=iA=oA=n[g+8>>2],u=iA>>31,f=iA=n[I+16>>2],iA=nA+(rA=xg(oA,u,iA,E=iA>>31))|0,nA=l+EA|0,nA=iA>>>0<rA>>>0?nA+1|0:nA,K=EA=pA=n[g+12>>2],p=EA>>31,q=EA=(sA=n[I+12>>2])<<1,EA=(rA=xg(pA,p,EA,b=EA>>31))+iA|0,iA=l+nA|0,iA=EA>>>0<rA>>>0?iA+1|0:iA,nA=EA,O=EA=uA=n[g+16>>2],k=EA>>31,y=EA=n[I+8>>2],rA=xg(uA,k,EA,i=EA>>31),EA=l+iA|0,EA=(nA=nA+rA|0)>>>0<rA>>>0?EA+1|0:EA,aA=nA,z=iA=fA=n[g+20>>2],m=iA>>31,X=iA=(tA=n[I+4>>2])<<1,nA=xg(fA,m,iA,U=iA>>31),EA=l+EA|0,EA=(iA=aA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=iA,$=iA=yA=n[g+24>>2],V=iA>>31,s=iA=n[I>>2],rA=xg(yA,V,iA,a=iA>>31),iA=l+EA|0,iA=(nA=nA+rA|0)>>>0<rA>>>0?iA+1|0:iA,lA=n[g+28>>2],F=EA=o(lA,19),G=EA>>31,T=EA=(wA=n[I+36>>2])<<1,EA=(rA=xg(F,G,EA,v=EA>>31))+nA|0,nA=l+iA|0,nA=EA>>>0<rA>>>0?nA+1|0:nA,iA=EA,hA=n[g+32>>2],FA=EA=o(hA,19),GA=EA>>31,w=EA=n[I+32>>2],rA=xg(FA,GA,EA,r=EA>>31),EA=l+nA|0,EA=(iA=iA+rA|0)>>>0<rA>>>0?EA+1|0:EA,nA=iA,AA=n[g+36>>2],h=g=o(AA,19),D=g>>31,W=g=(I=n[I+28>>2])<<1,iA=xg(h,D,g,S=g>>31),EA=l+EA|0,cA=g=nA+iA|0,g=g>>>0<iA>>>0?EA+1|0:EA,EA=xg(f,E,e,t),iA=l,DA=xg(B,C,rA=DA,N=rA>>31),nA=l+iA|0,nA=(EA=DA+EA|0)>>>0<DA>>>0?nA+1|0:nA,DA=sA,sA=xg(oA,u,sA,R=sA>>31),iA=l+nA|0,iA=(EA=sA+EA|0)>>>0<sA>>>0?iA+1|0:iA,nA=(sA=xg(y,i,pA,p))+EA|0,EA=l+iA|0,EA=nA>>>0<sA>>>0?EA+1|0:EA,iA=nA,sA=tA,nA=xg(uA,k,tA,M=tA>>31),EA=l+EA|0,EA=(iA=iA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(s,a,fA,m),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=iA,d=iA=o(yA,19),iA=nA+(wA=xg(iA,_=iA>>31,tA=wA,P=tA>>31))|0,nA=l+EA|0,nA=iA>>>0<wA>>>0?nA+1|0:nA,EA=(wA=xg(w,r,F,G))+iA|0,iA=l+nA|0,iA=EA>>>0<wA>>>0?iA+1|0:iA,wA=I,I=(nA=xg(FA,GA,I,J=I>>31))+EA|0,EA=l+iA|0,EA=I>>>0<nA>>>0?EA+1|0:EA,iA=xg(h,D,c,Q),EA=l+EA|0,HA=I=iA+I|0,I=I>>>0<iA>>>0?EA+1|0:EA,EA=xg(e,t,q,b),nA=l,iA=(yA=xg(B,C,f,E))+EA|0,EA=l+nA|0,EA=iA>>>0<yA>>>0?EA+1|0:EA,yA=xg(y,i,oA,u),nA=l+EA|0,nA=(iA=yA+iA|0)>>>0<yA>>>0?nA+1|0:nA,EA=(yA=xg(pA,p,X,U))+iA|0,iA=l+nA|0,iA=EA>>>0<yA>>>0?iA+1|0:iA,nA=(yA=xg(s,a,uA,k))+EA|0,EA=l+iA|0,EA=nA>>>0<yA>>>0?EA+1|0:EA,aA=nA,j=iA=o(fA,19),nA=xg(iA,x=iA>>31,T,v),EA=l+EA|0,EA=(iA=aA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(w,r,d,_),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,fA=xg(F,G,W,S),nA=l+EA|0,nA=(iA=fA+iA|0)>>>0<fA>>>0?nA+1|0:nA,EA=(fA=xg(FA,GA,c,Q))+iA|0,iA=l+nA|0,iA=EA>>>0<fA>>>0?iA+1|0:iA,nA=(fA=xg(h,D,L,H))+EA|0,EA=l+iA|0,EA=nA>>>0<fA>>>0?EA+1|0:EA,fA=nA,gA=EA,(iA=nA+33554432|0)>>>0<33554432&&(EA=EA+1|0),yA=iA,BA=EA,nA=HA,HA=(67108863&EA)<<6|iA>>>26,EA=(EA>>26)+I|0,EA=(nA=nA+HA|0)>>>0<HA>>>0?EA+1|0:EA,HA=nA,nA=EA,(I=HA+16777216|0)>>>0<16777216&&(nA=nA+1|0),CA=I,EA=g+(iA=nA>>25)|0,EA=(I=(nA=(33554431&nA)<<7|I>>>25)+cA|0)>>>0<nA>>>0?EA+1|0:EA,(I=(g=I)+33554432|0)>>>0<33554432&&(EA=EA+1|0),YA=I,I=EA,EA=-67108864&YA,n[eA+24>>2]=g-EA,cA=A,g=xg(e,t,X,U),EA=l,iA=xg(B,C,y,i),nA=l+EA|0,nA=(g=iA+g|0)>>>0<iA>>>0?nA+1|0:nA,iA=xg(s,a,Y,u),EA=l+nA|0,EA=(g=iA+g|0)>>>0<iA>>>0?EA+1|0:EA,nA=g,eA=g=o(pA,19),iA=xg(g,pA=g>>31,T,v),EA=l+EA|0,EA=(g=nA+iA|0)>>>0<iA>>>0?EA+1|0:EA,iA=g,IA=g=o(uA,19),g=iA+(nA=xg(w,r,g,Z=g>>31))|0,iA=l+EA|0,iA=g>>>0<nA>>>0?iA+1|0:iA,nA=xg(W,S,j,x),EA=l+iA|0,EA=(g=nA+g|0)>>>0<nA>>>0?EA+1|0:EA,iA=xg(c,Q,d,_),nA=l+EA|0,nA=(g=iA+g|0)>>>0<iA>>>0?nA+1|0:nA,iA=xg(F,G,L,H),EA=l+nA|0,EA=(g=iA+g|0)>>>0<iA>>>0?EA+1|0:EA,iA=xg(FA,GA,f,E),EA=l+EA|0,EA=(g=iA+g|0)>>>0<iA>>>0?EA+1|0:EA,nA=xg(h,D,q,b),iA=l+EA|0,aA=g=nA+g|0,g=g>>>0<nA>>>0?iA+1|0:iA,EA=xg(s,a,e,t),nA=l,iA=(uA=xg(B,C,sA,M))+EA|0,EA=l+nA|0,EA=iA>>>0<uA>>>0?EA+1|0:EA,nA=iA,uA=iA=o(oA,19),iA=nA+(oA=xg(iA,kA=iA>>31,tA,P))|0,nA=l+EA|0,nA=iA>>>0<oA>>>0?nA+1|0:nA,oA=xg(w,r,eA,pA),EA=l+nA|0,EA=(iA=oA+iA|0)>>>0<oA>>>0?EA+1|0:EA,nA=xg(IA,Z,wA,J),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=(oA=xg(c,Q,j,x))+iA|0,iA=l+EA|0,iA=nA>>>0<oA>>>0?iA+1|0:iA,oA=xg(d,_,rA,N),EA=l+iA|0,EA=(nA=oA+nA|0)>>>0<oA>>>0?EA+1|0:EA,iA=(oA=xg(f,E,F,G))+nA|0,nA=l+EA|0,nA=iA>>>0<oA>>>0?nA+1|0:nA,oA=xg(FA,GA,DA,R),EA=l+nA|0,EA=(iA=oA+iA|0)>>>0<oA>>>0?EA+1|0:EA,nA=xg(h,D,y,i),EA=l+EA|0,bA=iA=nA+iA|0,oA=iA>>>0<nA>>>0?EA+1|0:EA,EA=xg(EA=o(_A,19),EA>>31,T,v),iA=l,nA=xg(B,C,s,a),iA=l+iA|0,iA=(EA=nA+EA|0)>>>0<nA>>>0?iA+1|0:iA,nA=(_A=xg(w,r,uA,kA))+EA|0,EA=l+iA|0,iA=(eA=xg(eA,pA,W,S))+nA|0,nA=l+(nA>>>0<_A>>>0?EA+1|0:EA)|0,nA=iA>>>0<eA>>>0?nA+1|0:nA,eA=xg(c,Q,IA,Z),EA=l+nA|0,EA=(iA=eA+iA|0)>>>0<eA>>>0?EA+1|0:EA,nA=xg(L,H,j,x),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=(eA=xg(f,E,d,_))+iA|0,iA=l+EA|0,iA=nA>>>0<eA>>>0?iA+1|0:iA,eA=xg(F,G,q,b),EA=l+iA|0,EA=(nA=eA+nA|0)>>>0<eA>>>0?EA+1|0:EA,iA=(eA=xg(FA,GA,y,i))+nA|0,nA=l+EA|0,nA=iA>>>0<eA>>>0?nA+1|0:nA,eA=xg(h,D,X,U),EA=l+nA|0,EA=(iA=eA+iA|0)>>>0<eA>>>0?EA+1|0:EA,eA=iA,_A=EA,(iA=iA+33554432|0)>>>0<33554432&&(EA=EA+1|0),pA=iA,uA=EA,kA=(67108863&EA)<<6|iA>>>26,iA=(nA=EA>>26)+oA|0,oA=EA=kA+bA|0,nA=aA,EA=EA>>>0<kA>>>0?iA+1|0:iA,(iA=oA+16777216|0)>>>0<16777216&&(EA=EA+1|0),QA=iA,aA=(33554431&EA)<<7|iA>>>25,EA=(EA>>25)+g|0,EA=(iA=nA+aA|0)>>>0<aA>>>0?EA+1|0:EA,(g=iA+33554432|0)>>>0<33554432&&(EA=EA+1|0),kA=g,g=EA,EA=-67108864&kA,n[cA+8>>2]=iA-EA,aA=A,EA=xg(c,Q,e,t),nA=l,iA=(cA=xg(B,C,wA,J))+EA|0,EA=l+nA|0,EA=iA>>>0<cA>>>0?EA+1|0:EA,nA=xg(Y,u,rA,N),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(f,E,K,p),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,cA=xg(O,k,DA,R),nA=l+EA|0,nA=(iA=cA+iA|0)>>>0<cA>>>0?nA+1|0:nA,EA=(cA=xg(y,i,z,m))+iA|0,iA=l+nA|0,iA=EA>>>0<cA>>>0?iA+1|0:iA,nA=(cA=xg(sA,M,$,V))+EA|0,EA=l+iA|0,EA=nA>>>0<cA>>>0?EA+1|0:EA,iA=nA,nA=xg(s,a,cA=lA,bA=cA>>31),EA=l+EA|0,EA=(iA=iA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(FA,GA,tA,P),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,lA=xg(h,D,w,r),nA=l+EA|0,nA=(iA=lA+iA|0)>>>0<lA>>>0?nA+1|0:nA,EA=I>>26,I=(lA=(67108863&I)<<6|YA>>>26)+iA|0,iA=EA+nA|0,EA=iA=I>>>0<lA>>>0?iA+1|0:iA,(I=(nA=I)+16777216|0)>>>0<16777216&&(EA=EA+1|0),YA=I,I=EA,EA=-33554432&YA,n[aA+28>>2]=nA-EA,lA=A,EA=xg(y,i,e,t),iA=l,aA=xg(B,C,DA,R),nA=l+iA|0,nA=(EA=aA+EA|0)>>>0<aA>>>0?nA+1|0:nA,aA=xg(Y,u,sA,M),iA=l+nA|0,iA=(EA=aA+EA|0)>>>0<aA>>>0?iA+1|0:iA,nA=(aA=xg(s,a,K,p))+EA|0,EA=l+iA|0,EA=nA>>>0<aA>>>0?EA+1|0:EA,iA=nA,nA=xg(IA,Z,tA,P),EA=l+EA|0,EA=(iA=iA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(w,r,j,x),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,aA=xg(d,_,wA,J),nA=l+EA|0,nA=(iA=aA+iA|0)>>>0<aA>>>0?nA+1|0:nA,EA=(aA=xg(c,Q,F,G))+iA|0,iA=l+nA|0,iA=EA>>>0<aA>>>0?iA+1|0:iA,nA=(aA=xg(FA,GA,rA,N))+EA|0,EA=l+iA|0,EA=nA>>>0<aA>>>0?EA+1|0:EA,iA=nA,nA=xg(h,D,f,E),EA=l+EA|0,aA=iA=iA+nA|0,EA=(EA=iA>>>0<nA>>>0?EA+1|0:EA)+(iA=g>>26)|0,nA=EA=(g=aA+(nA=(67108863&g)<<6|kA>>>26)|0)>>>0<nA>>>0?EA+1|0:EA,(g=(iA=g)+16777216|0)>>>0<16777216&&(nA=nA+1|0),FA=g,g=nA,EA=-33554432&FA,n[lA+12>>2]=iA-EA,EA=xg(e,t,W,S),nA=l,iA=(aA=xg(B,C,w,r))+EA|0,EA=l+nA|0,EA=iA>>>0<aA>>>0?EA+1|0:EA,nA=xg(c,Q,Y,u),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,aA=xg(K,p,L,H),nA=l+EA|0,nA=(iA=aA+iA|0)>>>0<aA>>>0?nA+1|0:nA,EA=(aA=xg(f,E,O,k))+iA|0,iA=l+nA|0,iA=EA>>>0<aA>>>0?iA+1|0:iA,nA=(aA=xg(q,b,z,m))+EA|0,EA=l+iA|0,EA=nA>>>0<aA>>>0?EA+1|0:EA,iA=nA,nA=xg(y,i,$,V),EA=l+EA|0,EA=(iA=iA+nA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(cA,bA,X,U),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,hA=xg(s,a,aA=hA,GA=aA>>31),nA=l+EA|0,nA=(iA=hA+iA|0)>>>0<hA>>>0?nA+1|0:nA,EA=(hA=xg(h,D,T,v))+iA|0,iA=l+nA|0,iA=EA>>>0<hA>>>0?iA+1|0:iA,hA=EA,EA=(EA=I>>25)+iA|0,EA=(I=hA+(nA=(33554431&I)<<7|YA>>>25)|0)>>>0<nA>>>0?EA+1|0:EA,(I=(iA=I)+33554432|0)>>>0<33554432&&(EA=EA+1|0),hA=I,I=EA,EA=-67108864&hA,n[lA+32>>2]=iA-EA,nA=iA=fA-(EA=-67108864&yA)|0,EA=(EA=gA-((fA>>>0<EA>>>0)+BA|0)|0)+(iA=g>>25)|0,EA=(g=nA+(fA=(33554431&g)<<7|FA>>>25)|0)>>>0<fA>>>0?EA+1|0:EA,(iA=g+33554432|0)>>>0<33554432&&(EA=EA+1|0),nA=(HA-(-33554432&CA)|0)+((67108863&EA)<<6|iA>>>26)|0,n[A+20>>2]=nA,EA=-67108864&iA,n[A+16>>2]=g-EA,EA=xg(w,r,e,t),nA=l,iA=(tA=xg(B,C,tA,P))+EA|0,EA=l+nA|0,EA=iA>>>0<tA>>>0?EA+1|0:EA,nA=(tA=xg(Y,u,wA,J))+iA|0,iA=l+EA|0,iA=nA>>>0<tA>>>0?iA+1|0:iA,EA=(tA=xg(c,Q,K,p))+nA|0,nA=l+iA|0,iA=(rA=xg(O,k,rA,N))+EA|0,EA=l+(EA>>>0<tA>>>0?nA+1|0:nA)|0,EA=iA>>>0<rA>>>0?EA+1|0:EA,nA=xg(f,E,z,m),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=xg(DA,R,$,V),EA=l+EA|0,EA=(iA=nA+iA|0)>>>0<nA>>>0?EA+1|0:EA,nA=(rA=xg(y,i,cA,bA))+iA|0,iA=l+EA|0,iA=nA>>>0<rA>>>0?iA+1|0:iA,EA=(rA=xg(aA,GA,sA,M))+nA|0,nA=l+iA|0,nA=EA>>>0<rA>>>0?nA+1|0:nA,iA=(rA=xg(s,a,AA,AA>>31))+EA|0,EA=l+nA|0,g=iA,EA=(EA=iA>>>0<rA>>>0?EA+1|0:EA)+(iA=I>>26)|0,EA=(I=g+(nA=(67108863&I)<<6|hA>>>26)|0)>>>0<nA>>>0?EA+1|0:EA,nA=g=I,(I=g+16777216|0)>>>0<16777216&&(EA=EA+1|0),I=-33554432&(iA=I),n[A+36>>2]=g-I,g=A,nA=oA-(-33554432&QA)|0,rA=eA-(I=-67108864&pA)|0,DA=_A-((eA>>>0<I>>>0)+uA|0)|0,EA=xg((33554431&(I=EA))<<7|iA>>>25,EA>>=25,19,0),iA=l+DA|0,aA=g,EA=iA=(I=EA+rA|0)>>>0<EA>>>0?iA+1|0:iA,(g=I+33554432|0)>>>0<33554432&&(EA=EA+1|0),iA=((67108863&EA)<<6|(iA=g)>>>26)+nA|0,n[aA+4>>2]=iA,iA=A,A=-67108864&g,n[iA>>2]=I-A}function Y(A,I){var g,B,C,Q,E,i,a,r,e,t,c,f,y,s,w,h,D,u,p,F,G,k,_,H,Y,b,m,U,v,S,N,R,M,d,P,J,x,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,nA=0;iA=A,Q=L=(V=n[I+12>>2])<<1,E=L>>31,i=L=(Z=n[I+4>>2])<<1,L=xg(Q,E,L,g=L>>31),q=l,K=L,k=L=IA=n[I+8>>2],X=xg(L,$=L>>31,L,$),L=l+q|0,L=(K=K+X|0)>>>0<X>>>0?L+1|0:L,X=K,a=K=BA=n[I+16>>2],r=K>>31,e=K=(CA=n[I>>2])<<1,q=xg(a,r,K,B=K>>31),L=l+L|0,L=(K=X+q|0)>>>0<q>>>0?L+1|0:L,W=K,q=n[I+28>>2],p=K=o(q,38),v=q,X=xg(K,h=K>>31,q,_=q>>31),L=l+L|0,L=(K=W+X|0)>>>0<X>>>0?L+1|0:L,T=K,W=n[I+32>>2],j=xg(c=K=o(W,19),f=K>>31,K=(X=n[I+24>>2])<<1,K>>31),K=l+L|0,K=(O=T+j|0)>>>0<j>>>0?K+1|0:K,T=O,AA=n[I+36>>2],t=L=o(AA,38),C=L>>31,D=I=(O=n[I+20>>2])<<1,j=xg(L,C,I,s=I>>31),I=l+K|0,H=(L=T+j|0)<<1,d=L=(L>>>0<j>>>0?I+1|0:I)<<1|L>>>31,(I=H+33554432|0)>>>0<33554432&&(L=L+1|0),S=I,P=L,I=L>>26,L=(67108863&L)<<6|S>>>26,K=xg(i,g,a,r),j=l,T=L,u=L=IA<<1,QA=V,V=xg(L,w=L>>31,V,Y=V>>31),L=l+j|0,L=(K=V+K|0)>>>0<V>>>0?L+1|0:L,IA=O,V=(j=xg(O,F=O>>31,e,B))+K|0,K=l+L|0,K=V>>>0<j>>>0?K+1|0:K,gA=V,N=L=q<<1,V=xg(c,f,L,b=L>>31),L=l+K|0,L=(q=gA+V|0)>>>0<V>>>0?L+1|0:L,K=q,V=X,q=xg(t,C,X,y=X>>31),L=l+L|0,L=(K=K+q|0)>>>0<q>>>0?L+1|0:L,q=K,I=I+(K=L<<1|K>>>31)|0,EA=L=T+(q<<=1)|0,L=L>>>0<q>>>0?I+1|0:I,(I=EA+16777216|0)>>>0<16777216&&(L=L+1|0),J=I,I=(33554431&L)<<7|I>>>25,q=L>>25,L=xg(Q,E,QA,Y),K=l,T=I,I=(j=xg(a,r,u,w))+L|0,L=l+K|0,L=I>>>0<j>>>0?L+1|0:L,K=xg(i,g,D,s),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=(j=xg(e,B,V,y))+I|0,I=l+L|0,I=K>>>0<j>>>0?I+1|0:I,j=W,W=xg(c,f,W,G=W>>31),L=l+I|0,L=(K=W+K|0)>>>0<W>>>0?L+1|0:L,I=(W=xg(t,C,N,b))+K|0,K=l+L|0,I=((L=I)>>>0<W>>>0?K+1|0:K)<<1|L>>>31,W=L<<1,L=I+q|0,L=(K=T+W|0)>>>0<W>>>0?L+1|0:L,(K=(I=K)+33554432|0)>>>0<33554432&&(L=L+1|0),gA=K,q=L,L=-67108864&K,n[iA+24>>2]=I-L,W=A,I=xg(I=o(O,38),I>>31,IA,F),L=l,T=I,O=xg(I=CA,K=I>>31,I,K),K=l+L|0,K=(I=T+O|0)>>>0<O>>>0?K+1|0:K,L=I,z=I=o(X,19),m=I>>31,R=I=BA<<1,I=L+(X=xg(z,m,I,U=I>>31))|0,L=l+K|0,L=I>>>0<X>>>0?L+1|0:L,K=xg(Q,E,p,h),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=(X=xg(c,f,u,w))+I|0,I=l+L|0,I=K>>>0<X>>>0?I+1|0:I,X=xg(i,g,t,C),L=l+I|0,iA=L=((I=K=X+K|0)>>>0<X>>>0?L+1|0:L)<<1|I>>>31,K=L,(I=33554432+(O=I<<1)|0)>>>0<33554432&&(K=K+1|0),CA=I,BA=K,I=(67108863&K)<<6|I>>>26,X=K>>26,L=xg(z,m,D,s),K=l,nA=I,I=(Z=xg(e,B,T=Z,M=T>>31))+L|0,L=l+K|0,L=I>>>0<Z>>>0?L+1|0:L,K=(Z=xg(a,r,p,h))+I|0,I=l+L|0,I=K>>>0<Z>>>0?I+1|0:I,Z=xg(c,f,Q,E),L=l+I|0,L=(K=Z+K|0)>>>0<Z>>>0?L+1|0:L,I=(Z=xg(t,C,k,$))+K|0,K=l+L|0,I=((L=I)>>>0<Z>>>0?K+1|0:K)<<1|L>>>31,Z=L<<1,L=I+X|0,L=(K=nA+Z|0)>>>0<Z>>>0?L+1|0:L,Z=K,(I=K+16777216|0)>>>0<16777216&&(L=L+1|0),nA=I,K=I,I=L>>25,L=(33554431&L)<<7|K>>>25,X=I,I=xg(e,B,k,$),K=l,x=L,T=xg(i,g,T,M),L=l+K|0,L=(I=T+I|0)>>>0<T>>>0?L+1|0:L,T=xg(z,m,V,y),K=l+L|0,K=(I=T+I|0)>>>0<T>>>0?K+1|0:K,T=xg(D,s,p,h),L=l+K|0,L=(I=T+I|0)>>>0<T>>>0?L+1|0:L,K=xg(c,f,R,U),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=(T=xg(t,C,Q,E))+I|0,I=l+L|0,L=(L=(I=K>>>0<T>>>0?I+1|0:I)<<1|K>>>31)+X|0,K=L=(I=x+(K<<=1)|0)>>>0<K>>>0?L+1|0:L,(L=I+33554432|0)>>>0<33554432&&(K=K+1|0),T=L,X=K,L&=-67108864,n[W+8>>2]=I-L,I=xg(u,w,IA,F),K=l,L=(z=xg(a,r,Q,E))+I|0,I=l+K|0,I=L>>>0<z>>>0?I+1|0:I,K=(z=xg(i,g,V,y))+L|0,L=l+I|0,L=K>>>0<z>>>0?L+1|0:L,I=(z=xg(e,B,v,_))+K|0,K=l+L|0,K=I>>>0<z>>>0?K+1|0:K,z=xg(t,C,j,G),L=l+K|0,L=(L=(L=(I=z+I|0)>>>0<z>>>0?L+1|0:L)<<1|I>>>31)+(K=q>>26)|0,K=I=(q=(67108863&q)<<6|gA>>>26)+(I<<1)|0,I=L=I>>>0<q>>>0?L+1|0:L,(L=K+16777216|0)>>>0<16777216&&(I=I+1|0),gA=L,q=I,I=-33554432&L,n[W+28>>2]=K-I,I=xg(e,B,QA,Y),L=l,K=xg(i,g,k,$),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=xg(V,y,p,h),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=($=xg(c,f,D,s))+I|0,I=l+L|0,I=K>>>0<$>>>0?I+1|0:I,L=($=xg(t,C,a,r))+K|0,K=l+I|0,I=L,L=(L>>>0<$>>>0?K+1|0:K)<<1|L>>>31,K=I<<1,L=(I=X>>26)+L|0,L=(K=K+(X=(67108863&X)<<6|T>>>26)|0)>>>0<X>>>0?L+1|0:L,(K=(I=K)+16777216|0)>>>0<16777216&&(L=L+1|0),QA=K,X=L,L=-33554432&K,n[W+12>>2]=I-L,$=A,I=xg(V,y,u,w),L=l,K=xg(a,r,a,r),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=xg(Q,E,D,s),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=xg(i,g,N,b),L=l+L|0,L=(I=K+I|0)>>>0<K>>>0?L+1|0:L,K=(W=xg(e,B,j,G))+I|0,I=l+L|0,I=K>>>0<W>>>0?I+1|0:I,L=(AA=xg(t,C,W=AA,T=W>>31))+K|0,K=l+I|0,I=L,L=(L>>>0<AA>>>0?K+1|0:K)<<1|L>>>31,K=I<<1,L=(I=q>>25)+L|0,L=(K=K+(q=(33554431&q)<<7|gA>>>25)|0)>>>0<q>>>0?L+1|0:L,(K=(I=K)+33554432|0)>>>0<33554432&&(L=L+1|0),AA=K,q=L,L=-67108864&K,n[$+32>>2]=I-L,L=X>>25,K=(X=(33554431&X)<<7|QA>>>25)+(H-(I=-67108864&S)|0)|0,I=L+(d-((H>>>0<I>>>0)+P|0)|0)|0,L=I=K>>>0<X>>>0?I+1|0:I,(I=K+33554432|0)>>>0<33554432&&(L=L+1|0),X=((67108863&L)<<6|I>>>26)+(EA=EA-(-33554432&J)|0)|0,n[$+20>>2]=X,I&=-67108864,n[A+16>>2]=K-I,I=xg(Q,E,V,y),K=l,L=(V=xg(IA,F,R,U))+I|0,I=l+K|0,I=L>>>0<V>>>0?I+1|0:I,K=(V=xg(u,w,v,_))+L|0,L=l+I|0,L=K>>>0<V>>>0?L+1|0:L,I=(V=xg(i,g,j,G))+K|0,K=l+L|0,K=I>>>0<V>>>0?K+1|0:K,V=xg(e,B,W,T),L=l+K|0,L=(L=(L=(I=V+I|0)>>>0<V>>>0?L+1|0:L)<<1|I>>>31)+(K=q>>26)|0,L=(I=(q=(67108863&q)<<6|AA>>>26)+(I<<1)|0)>>>0<q>>>0?L+1|0:L,K=I,q=I,X=I,I=L,(L=K+16777216|0)>>>0<16777216&&(I=I+1|0),K=-33554432&L,n[A+36>>2]=q-K,q=A,X=Z-(-33554432&nA)|0,I=(L=xg((33554431&I)<<7|L>>>25,I>>25,19,0))+(O-(K=-67108864&CA)|0)|0,K=l+(iA-((O>>>0<K>>>0)+BA|0)|0)|0,K=I>>>0<L>>>0?K+1|0:K,L=I,V=q,I=K,(K=L+33554432|0)>>>0<33554432&&(I=I+1|0),q=((67108863&I)<<6|K>>>26)+X|0,n[V+4>>2]=q,I=A,A=-67108864&K,n[I>>2]=L-A}function b(A,I,g){var B,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,u=0,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0;for(D=B=D-2048|0,BB(B+1024|0,I),YI(B+1024|0,A),BB(B,B+1024|0),YI(B,g),I=0;e=n[(i=(B+1024|0)+(96|(A=M<<7))|0)>>2],Q=n[i+4>>2],a=k=jg((C=e)^(e=MI(e=n[(r=o=A+(B+1024|0)|0)>>2],a=n[r+4>>2],E=n[(r=(B+1024|0)+(32|A)|0)>>2],t=n[r+4>>2])),(a=Q)^(Q=l),32),y=e,w=Q,C=jg((k=MI(C=n[(Q=e=(B+1024|0)+(64|A)|0)>>2],s=n[Q+4>>2],k,Q=l))^E,(C=t)^(t=l),24),E=jg(a^(S=MI(y,w,C,s=l)),(U=l)^Q,16),a=Q=l,n[i>>2]=E,n[i+4>>2]=Q,t=MI(k,t,E,Q),h=Q=l,n[e>>2]=t,n[e+4>>2]=Q,k=jg(C^t,Q^s,63),s=Q=l,n[r>>2]=k,n[r+4>>2]=Q,C=n[(Q=m=(B+1024|0)+(104|A)|0)>>2],b=n[Q+4>>2],_=n[(Q=(B+1024|0)+(72|A)|0)>>2],f=n[Q+4>>2],c=C,u=MI(u=n[(C=w=(B+1024|0)+(8|A)|0)>>2],F=n[C+4>>2],y=n[(C=G=(B+1024|0)+(40|A)|0)>>2],v=n[C+4>>2]),C=MI(_,f,P=jg(c^u,(C=b)^(b=l),32),F=l),Z=MI(c=u,b,v=jg(_=C^y,(y=l)^v,24),u=l),C=MI(C,y,b=jg(Z^P,(O=l)^F,16),z=l),y=P=l,n[Q>>2]=C,n[Q+4>>2]=y,v=jg(C^v,y^u,63),u=l,J=n[(F=P=(B+1024|0)+(112|A)|0)>>2],N=n[F+4>>2],H=n[(F=(B+1024|0)+(80|A)|0)>>2],L=n[F+4>>2],d=jg((f=J)^(Y=MI(Y=n[(_=J=(B+1024|0)+(16|A)|0)>>2],p=n[_+4>>2],R=n[(c=_=(B+1024|0)+(48|A)|0)>>2],c=n[c+4>>2])),(p=N)^(N=l),32),c=jg(H=(f=MI(H,L,d,p=l))^R,c^(R=l),24),IA=jg(($=MI(Y,H=N,c,N=l))^d,(AA=l)^p,16),N=jg(c^(L=MI(f,R,IA,gA=l)),(V=l)^N,63),c=l,d=n[(Y=R=(B+1024|0)+(120|A)|0)>>2],p=n[Y+4>>2],q=n[(f=Y=(B+1024|0)+(88|A)|0)>>2],j=n[f+4>>2],x=jg((X=d)^(W=MI(T=n[(f=d=(B+1024|0)+(24|A)|0)>>2],x=n[f+4>>2],H=n[(A=(B+1024|0)+(56|A)|0)>>2],f=n[A+4>>2])),(T=p)^(p=l),32),f=jg(X=(q=MI(q,j,x,K=l))^H,f^(H=l),24),X=H,x=jg((H=MI(W,H=p,f,p=l))^x,(W=l)^K,16),p=jg(f^(q=MI(q,X,x,K=l)),(j=l)^p,63),f=l,X=L,T=V,L=jg(x^(S=MI(S,U,v,u)),K^(U=l),32),v=jg((x=MI(X,T,L,V=l))^v,(K=l)^u,24),u=MI(u=S,U,v,S=l),U=l,n[o>>2]=u,n[o+4>>2]=U,o=jg(u^L,V^U,16),u=l,n[R>>2]=o,n[R+4>>2]=u,o=MI(x,K,o,u),u=l,n[F>>2]=o,n[F+4>>2]=u,BA=G,CA=jg(o^v,u^S,63),n[BA>>2]=CA,n[G+4>>2]=l,G=jg((o=MI(Z,O,N,c))^E,(u=a)^(a=l),32),E=jg((u=MI(q,j,G,v=l))^N,(F=l)^c,24),o=MI(o,c=a,E,a=l),c=N=l,n[w>>2]=o,n[w+4>>2]=c,o=jg(o^G,c^v,16),w=l,n[i>>2]=o,n[i+4>>2]=w,i=MI(u,F,o,w),n[Y>>2]=i,o=l,n[Y+4>>2]=o,BA=_,CA=jg(E^i,o^a,63),n[BA>>2]=CA,n[_+4>>2]=l,w=t,E=MI($,AA,p,f),h=MI(w,h,o=jg(b^E,z^(t=l),32),a=l),E=MI(E,c=t,i=jg(h^p,(w=l)^f,24),t=l),G=l,n[J>>2]=E,n[J+4>>2]=G,E=jg(E^o,a^G,16),o=l,n[m>>2]=E,n[m+4>>2]=o,E=MI(h,w,E,o),n[e>>2]=E,a=e,e=l,n[a+4>>2]=e,BA=A,CA=jg(E^i,e^t,63),n[BA>>2]=CA,n[A+4>>2]=l,A=k,i=MI(H,W,k,s),k=MI(C,y,E=jg(IA^i,gA^(e=l),32),t=l),i=MI(i,a=e,A=jg(A^k,(C=l)^s,24),e=l),o=l,n[d>>2]=i,n[d+4>>2]=o,i=jg(E^i,t^o,16),E=l,n[P>>2]=i,n[P+4>>2]=E,i=MI(k,C,i,E),n[Q>>2]=i,C=Q,Q=l,n[C+4>>2]=Q,BA=r,CA=jg(A^i,Q^e,63),n[BA>>2]=CA,n[r+4>>2]=l,8!=(0|(M=M+1|0)););for(;r=n[(i=768+(A=(Q=I<<4)+(B+1024|0)|0)|0)>>2],i=n[i+4>>2],C=r,r=n[A+256>>2],e=n[A+260>>2],t=jg(C^(E=MI(n[A>>2],n[A+4>>2],r,e)),(t=i)^(i=l),32),a=i,i=l,k=jg((C=r)^(r=MI(n[A+512>>2],n[A+516>>2],t,i)),(s=e)^(e=l),24),i=jg(t^(b=MI(E,a,k,C=l)),(y=l)^i,16),E=t=l,n[A+768>>2]=i,n[A+772>>2]=E,r=MI(r,e,i,E),t=e=l,n[A+512>>2]=r,n[A+516>>2]=e,e=jg(r^k,C^e,63),k=C=l,n[A+256>>2]=e,n[A+260>>2]=C,M=n[A+780>>2],w=n[A+520>>2],c=n[A+524>>2],s=n[A+776>>2],Q=C=(B+1024|0)+(8|Q)|0,o=n[A+264>>2],a=n[A+268>>2],h=MI(n[Q>>2],n[Q+4>>2],o,a),Q=MI(w,c,s=jg(s^h,(Q=M)^(M=l),32),m=l),v=MI(w=h,M,a=jg(c=Q^o,a^(o=l),24),h=l),Q=MI(Q,o,M=jg(v^s,(u=l)^m,16),P=l),o=s=l,n[A+520>>2]=Q,n[A+524>>2]=o,a=jg(Q^a,o^h,63),h=l,s=n[A+900>>2],_=n[A+640>>2],f=n[A+644>>2],F=n[A+896>>2],m=n[A+384>>2],w=n[A+388>>2],F=jg(F^(G=MI(n[A+128>>2],n[A+132>>2],m,w)),(c=s)^(s=l),32),w=jg(c=(_=MI(_,f,F,J=l))^m,w^(m=l),24),c=_,_=jg((_=F)^(F=MI(G,f=s,w,s=l)),(f=J)^(J=l),16),s=jg(w^(c=MI(c,m,_,N=l)),(R=l)^s,63),m=l,w=n[A+908>>2],S=n[A+648>>2],U=n[A+652>>2],p=n[A+904>>2],G=n[A+392>>2],Y=n[A+396>>2],p=jg(p^(d=MI(n[A+136>>2],n[A+140>>2],G,Y)),(f=w)^(w=l),32),H=Y=jg(U=(S=MI(S,U,p,f=l))^G,Y^(G=l),24),p=jg((Y=MI(d,U=w,Y,w=l))^p,(d=l)^f,16),w=jg(H^(S=MI(S,G,p,f=l)),(U=l)^w,63),G=l,H=c,L=R,c=jg(p^(b=MI(b,y,a,h)),f^(y=l),32),a=jg((p=MI(H,L,c,R=l))^a,(f=l)^h,24),h=MI(h=b,y,a,b=l),y=l,n[A>>2]=h,n[A+4>>2]=y,h=jg(h^c,R^y,16),y=l,n[A+904>>2]=h,n[A+908>>2]=y,h=MI(p,f,h,y),y=l,n[A+640>>2]=h,n[A+644>>2]=y,BA=A,CA=jg(a^h,y^b,63),n[BA+264>>2]=CA,n[A+268>>2]=l,y=s,h=jg((a=MI(v,u,s,m))^i,(s=E)^(E=l),32),i=jg(y^(b=MI(S,U,h,s=l)),(c=m)^(m=l),24),E=MI(y=a,E,i,a=l),y=l,n[C>>2]=E,n[C+4>>2]=y,E=jg(E^h,s^y,16),C=l,n[A+768>>2]=E,n[A+772>>2]=C,E=MI(b,m,E,C),n[A+648>>2]=E,C=l,n[A+652>>2]=C,BA=A,CA=jg(E^i,C^a,63),n[BA+384>>2]=CA,n[A+388>>2]=l,a=r,s=t,r=MI(F,J,w,G),M=MI(a,s,t=jg(M^r,P^(E=l),32),C=l),r=MI(r,s=E,i=jg(M^w,(a=l)^G,24),E=l),h=l,n[A+128>>2]=r,n[A+132>>2]=h,r=jg(r^t,C^h,16),C=t=l,n[A+776>>2]=r,n[A+780>>2]=C,r=MI(M,a,r,C),n[A+512>>2]=r,t=l,n[A+516>>2]=t,BA=A,CA=jg(i^r,E^t,63),n[BA+392>>2]=CA,n[A+396>>2]=l,C=e,t=Q,Q=jg(_^(r=MI(Y,d,e,k)),N^(e=l),32),i=jg(C^(t=MI(t,o,Q,E=l)),(a=k)^(k=l),24),r=MI(r,C=e,i,e=l),C=l,n[A+136>>2]=r,n[A+140>>2]=C,r=jg(Q^r,E^C,16),Q=l,n[A+896>>2]=r,n[A+900>>2]=Q,r=MI(t,k,r,Q),n[A+520>>2]=r,Q=l,n[A+524>>2]=Q,BA=A,CA=jg(i^r,Q^e,63),n[BA+256>>2]=CA,n[A+260>>2]=l,8!=(0|(I=I+1|0)););BB(g,B),YI(g,B+1024|0),D=B+2048|0}function m(A,I,g){var B,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,u=0,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0;for(D=B=D-2048|0,BB(B+1024|0,I),YI(B+1024|0,A),BB(B,B+1024|0),I=0;e=n[(i=(B+1024|0)+(96|(A=M<<7))|0)>>2],Q=n[i+4>>2],a=k=jg((C=e)^(e=MI(e=n[(r=o=A+(B+1024|0)|0)>>2],a=n[r+4>>2],E=n[(r=(B+1024|0)+(32|A)|0)>>2],t=n[r+4>>2])),(a=Q)^(Q=l),32),y=e,w=Q,C=jg((k=MI(C=n[(Q=e=(B+1024|0)+(64|A)|0)>>2],s=n[Q+4>>2],k,Q=l))^E,(C=t)^(t=l),24),E=jg(a^(S=MI(y,w,C,s=l)),(U=l)^Q,16),a=Q=l,n[i>>2]=E,n[i+4>>2]=Q,t=MI(k,t,E,Q),h=Q=l,n[e>>2]=t,n[e+4>>2]=Q,k=jg(C^t,Q^s,63),s=Q=l,n[r>>2]=k,n[r+4>>2]=Q,C=n[(Q=m=(B+1024|0)+(104|A)|0)>>2],b=n[Q+4>>2],_=n[(Q=(B+1024|0)+(72|A)|0)>>2],f=n[Q+4>>2],c=C,u=MI(u=n[(C=w=(B+1024|0)+(8|A)|0)>>2],F=n[C+4>>2],y=n[(C=G=(B+1024|0)+(40|A)|0)>>2],v=n[C+4>>2]),C=MI(_,f,P=jg(c^u,(C=b)^(b=l),32),F=l),Z=MI(c=u,b,v=jg(_=C^y,(y=l)^v,24),u=l),C=MI(C,y,b=jg(Z^P,(O=l)^F,16),z=l),y=P=l,n[Q>>2]=C,n[Q+4>>2]=y,v=jg(C^v,y^u,63),u=l,J=n[(F=P=(B+1024|0)+(112|A)|0)>>2],N=n[F+4>>2],H=n[(F=(B+1024|0)+(80|A)|0)>>2],L=n[F+4>>2],d=jg((f=J)^(Y=MI(Y=n[(_=J=(B+1024|0)+(16|A)|0)>>2],p=n[_+4>>2],R=n[(c=_=(B+1024|0)+(48|A)|0)>>2],c=n[c+4>>2])),(p=N)^(N=l),32),c=jg(H=(f=MI(H,L,d,p=l))^R,c^(R=l),24),IA=jg(($=MI(Y,H=N,c,N=l))^d,(AA=l)^p,16),N=jg(c^(L=MI(f,R,IA,gA=l)),(V=l)^N,63),c=l,d=n[(Y=R=(B+1024|0)+(120|A)|0)>>2],p=n[Y+4>>2],q=n[(f=Y=(B+1024|0)+(88|A)|0)>>2],j=n[f+4>>2],x=jg((X=d)^(W=MI(T=n[(f=d=(B+1024|0)+(24|A)|0)>>2],x=n[f+4>>2],H=n[(A=(B+1024|0)+(56|A)|0)>>2],f=n[A+4>>2])),(T=p)^(p=l),32),f=jg(X=(q=MI(q,j,x,K=l))^H,f^(H=l),24),X=H,x=jg((H=MI(W,H=p,f,p=l))^x,(W=l)^K,16),p=jg(f^(q=MI(q,X,x,K=l)),(j=l)^p,63),f=l,X=L,T=V,L=jg(x^(S=MI(S,U,v,u)),K^(U=l),32),v=jg((x=MI(X,T,L,V=l))^v,(K=l)^u,24),u=MI(u=S,U,v,S=l),U=l,n[o>>2]=u,n[o+4>>2]=U,o=jg(u^L,V^U,16),u=l,n[R>>2]=o,n[R+4>>2]=u,o=MI(x,K,o,u),u=l,n[F>>2]=o,n[F+4>>2]=u,BA=G,CA=jg(o^v,u^S,63),n[BA>>2]=CA,n[G+4>>2]=l,G=jg((o=MI(Z,O,N,c))^E,(u=a)^(a=l),32),E=jg((u=MI(q,j,G,v=l))^N,(F=l)^c,24),o=MI(o,c=a,E,a=l),c=N=l,n[w>>2]=o,n[w+4>>2]=c,o=jg(o^G,c^v,16),w=l,n[i>>2]=o,n[i+4>>2]=w,i=MI(u,F,o,w),n[Y>>2]=i,o=l,n[Y+4>>2]=o,BA=_,CA=jg(E^i,o^a,63),n[BA>>2]=CA,n[_+4>>2]=l,w=t,E=MI($,AA,p,f),h=MI(w,h,o=jg(b^E,z^(t=l),32),a=l),E=MI(E,c=t,i=jg(h^p,(w=l)^f,24),t=l),G=l,n[J>>2]=E,n[J+4>>2]=G,E=jg(E^o,a^G,16),o=l,n[m>>2]=E,n[m+4>>2]=o,E=MI(h,w,E,o),n[e>>2]=E,a=e,e=l,n[a+4>>2]=e,BA=A,CA=jg(E^i,e^t,63),n[BA>>2]=CA,n[A+4>>2]=l,A=k,i=MI(H,W,k,s),k=MI(C,y,E=jg(IA^i,gA^(e=l),32),t=l),i=MI(i,a=e,A=jg(A^k,(C=l)^s,24),e=l),o=l,n[d>>2]=i,n[d+4>>2]=o,i=jg(E^i,t^o,16),E=l,n[P>>2]=i,n[P+4>>2]=E,i=MI(k,C,i,E),n[Q>>2]=i,C=Q,Q=l,n[C+4>>2]=Q,BA=r,CA=jg(A^i,Q^e,63),n[BA>>2]=CA,n[r+4>>2]=l,8!=(0|(M=M+1|0)););for(;r=n[(i=768+(A=(Q=I<<4)+(B+1024|0)|0)|0)>>2],i=n[i+4>>2],C=r,r=n[A+256>>2],e=n[A+260>>2],t=jg(C^(E=MI(n[A>>2],n[A+4>>2],r,e)),(t=i)^(i=l),32),a=i,i=l,k=jg((C=r)^(r=MI(n[A+512>>2],n[A+516>>2],t,i)),(s=e)^(e=l),24),i=jg(t^(b=MI(E,a,k,C=l)),(y=l)^i,16),E=t=l,n[A+768>>2]=i,n[A+772>>2]=E,r=MI(r,e,i,E),t=e=l,n[A+512>>2]=r,n[A+516>>2]=e,e=jg(r^k,C^e,63),k=C=l,n[A+256>>2]=e,n[A+260>>2]=C,M=n[A+780>>2],w=n[A+520>>2],c=n[A+524>>2],s=n[A+776>>2],Q=C=(B+1024|0)+(8|Q)|0,o=n[A+264>>2],a=n[A+268>>2],h=MI(n[Q>>2],n[Q+4>>2],o,a),Q=MI(w,c,s=jg(s^h,(Q=M)^(M=l),32),m=l),v=MI(w=h,M,a=jg(c=Q^o,a^(o=l),24),h=l),Q=MI(Q,o,M=jg(v^s,(u=l)^m,16),P=l),o=s=l,n[A+520>>2]=Q,n[A+524>>2]=o,a=jg(Q^a,o^h,63),h=l,s=n[A+900>>2],_=n[A+640>>2],f=n[A+644>>2],F=n[A+896>>2],m=n[A+384>>2],w=n[A+388>>2],F=jg(F^(G=MI(n[A+128>>2],n[A+132>>2],m,w)),(c=s)^(s=l),32),w=jg(c=(_=MI(_,f,F,J=l))^m,w^(m=l),24),c=_,_=jg((_=F)^(F=MI(G,f=s,w,s=l)),(f=J)^(J=l),16),s=jg(w^(c=MI(c,m,_,N=l)),(R=l)^s,63),m=l,w=n[A+908>>2],S=n[A+648>>2],U=n[A+652>>2],p=n[A+904>>2],G=n[A+392>>2],Y=n[A+396>>2],p=jg(p^(d=MI(n[A+136>>2],n[A+140>>2],G,Y)),(f=w)^(w=l),32),H=Y=jg(U=(S=MI(S,U,p,f=l))^G,Y^(G=l),24),p=jg((Y=MI(d,U=w,Y,w=l))^p,(d=l)^f,16),w=jg(H^(S=MI(S,G,p,f=l)),(U=l)^w,63),G=l,H=c,L=R,c=jg(p^(b=MI(b,y,a,h)),f^(y=l),32),a=jg((p=MI(H,L,c,R=l))^a,(f=l)^h,24),h=MI(h=b,y,a,b=l),y=l,n[A>>2]=h,n[A+4>>2]=y,h=jg(h^c,R^y,16),y=l,n[A+904>>2]=h,n[A+908>>2]=y,h=MI(p,f,h,y),y=l,n[A+640>>2]=h,n[A+644>>2]=y,BA=A,CA=jg(a^h,y^b,63),n[BA+264>>2]=CA,n[A+268>>2]=l,y=s,h=jg((a=MI(v,u,s,m))^i,(s=E)^(E=l),32),i=jg(y^(b=MI(S,U,h,s=l)),(c=m)^(m=l),24),E=MI(y=a,E,i,a=l),y=l,n[C>>2]=E,n[C+4>>2]=y,E=jg(E^h,s^y,16),C=l,n[A+768>>2]=E,n[A+772>>2]=C,E=MI(b,m,E,C),n[A+648>>2]=E,C=l,n[A+652>>2]=C,BA=A,CA=jg(E^i,C^a,63),n[BA+384>>2]=CA,n[A+388>>2]=l,a=r,s=t,r=MI(F,J,w,G),M=MI(a,s,t=jg(M^r,P^(E=l),32),C=l),r=MI(r,s=E,i=jg(M^w,(a=l)^G,24),E=l),h=l,n[A+128>>2]=r,n[A+132>>2]=h,r=jg(r^t,C^h,16),C=t=l,n[A+776>>2]=r,n[A+780>>2]=C,r=MI(M,a,r,C),n[A+512>>2]=r,t=l,n[A+516>>2]=t,BA=A,CA=jg(i^r,E^t,63),n[BA+392>>2]=CA,n[A+396>>2]=l,C=e,t=Q,Q=jg(_^(r=MI(Y,d,e,k)),N^(e=l),32),i=jg(C^(t=MI(t,o,Q,E=l)),(a=k)^(k=l),24),r=MI(r,C=e,i,e=l),C=l,n[A+136>>2]=r,n[A+140>>2]=C,r=jg(Q^r,E^C,16),Q=l,n[A+896>>2]=r,n[A+900>>2]=Q,r=MI(t,k,r,Q),n[A+520>>2]=r,Q=l,n[A+524>>2]=Q,BA=A,CA=jg(i^r,Q^e,63),n[BA+256>>2]=CA,n[A+260>>2]=l,8!=(0|(I=I+1|0)););BB(g,B),YI(g,B+1024|0),D=B+2048|0}function U(A,I){var g,B,C,Q,E,i,a,r,e,t,c,f,y,s,w,h,D,u,p,F,G,k,_,H,Y,b,m,U,v,S,N,R,M,d,P,J,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0;V=A,t=L=(x=n[I+12>>2])<<1,W=x,x=xg(L,Q=L>>31,x,H=x>>31),K=l,L=x,E=x=CA=n[I+16>>2],i=x>>31,D=x=(Z=n[I+8>>2])<<1,X=xg(E,i,x,y=x>>31),x=l+K|0,x=(L=L+X|0)>>>0<X>>>0?x+1|0:x,K=L,s=L=(X=n[I+20>>2])<<1,w=L>>31,a=L=(O=n[I+4>>2])<<1,q=xg(s,w,L,g=L>>31),L=l+x|0,L=(K=K+q|0)>>>0<q>>>0?L+1|0:L,u=x=T=n[I+24>>2],c=x>>31,r=x=(gA=n[I>>2])<<1,q=xg(T,c,x,B=x>>31),x=l+L|0,x=(K=q+K|0)>>>0<q>>>0?x+1|0:x,j=K,L=n[I+32>>2],h=K=o(L,19),Y=L,K=xg(K,f=K>>31,L,G=L>>31),x=l+x|0,x=(L=j+K|0)>>>0<K>>>0?x+1|0:x,j=L,$=n[I+36>>2],e=L=o($,38),C=L>>31,N=I=(K=n[I+28>>2])<<1,q=xg(L,C,I,b=I>>31),I=l+x|0,AA=L=j+q|0,z=L>>>0<q>>>0?I+1|0:I,I=xg(a,g,E,i),x=l,L=xg(D,y,W,H),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,m=X,q=xg(X,k=X>>31,r,B),L=l+x|0,L=(I=q+I|0)>>>0<q>>>0?L+1|0:L,q=xg(h,f,N,b),x=l+L|0,x=(I=q+I|0)>>>0<q>>>0?x+1|0:x,L=xg(e,C,T,c),x=l+x|0,j=I=L+I|0,BA=I>>>0<L>>>0?x+1|0:x,I=xg(a,g,t,Q),L=l,x=(Z=xg(q=Z,p=q>>31,q,p))+I|0,I=l+L|0,I=x>>>0<Z>>>0?I+1|0:I,L=(Z=xg(r,B,E,i))+x|0,x=l+I|0,x=L>>>0<Z>>>0?x+1|0:x,_=I=o(K,38),Z=K,I=(K=xg(I,F=I>>31,K,U=K>>31))+L|0,L=l+x|0,L=I>>>0<K>>>0?L+1|0:L,I=(x=I)+(K=xg(h,f,I=T<<1,I>>31))|0,x=l+L|0,x=I>>>0<K>>>0?x+1|0:x,L=xg(e,C,s,w),x=l+x|0,v=I=L+I|0,d=x=I>>>0<L>>>0?x+1|0:x,I=x,(x=v+33554432|0)>>>0<33554432&&(I=I+1|0),R=x,P=I,x=(x=I>>26)+BA|0,BA=I=(L=(67108863&I)<<6|R>>>26)+j|0,L=I>>>0<L>>>0?x+1|0:x,(I=I+16777216|0)>>>0<16777216&&(L=L+1|0),J=I,x=(x=L>>25)+z|0,x=(I=(L=(33554431&L)<<7|I>>>25)+AA|0)>>>0<L>>>0?x+1|0:x,L=I,I=x,(x=L+33554432|0)>>>0<33554432&&(I=I+1|0),j=x,K=I,I=-67108864&x,n[V+24>>2]=L-I,z=A,I=xg(r,B,q,p),x=l,O=xg(a,g,V=O,IA=V>>31),L=l+x|0,L=(I=O+I|0)>>>0<O>>>0?L+1|0:L,x=I,O=I=o(T,19),I=x+(T=xg(I,AA=I>>31,u,c))|0,x=l+L|0,x=I>>>0<T>>>0?x+1|0:x,L=(T=xg(s,w,_,F))+I|0,I=l+x|0,I=L>>>0<T>>>0?I+1|0:I,M=x=CA<<1,T=xg(h,f,x,S=x>>31),x=l+I|0,x=(L=T+L|0)>>>0<T>>>0?x+1|0:x,I=L,L=xg(e,C,t,Q),x=l+x|0,QA=I=I+L|0,T=I>>>0<L>>>0?x+1|0:x,I=xg(s,w,O,AA),x=l,V=xg(r,B,V,IA),L=l+x|0,L=(I=V+I|0)>>>0<V>>>0?L+1|0:L,V=xg(E,i,_,F),x=l+L|0,x=(I=V+I|0)>>>0<V>>>0?x+1|0:x,L=(V=xg(h,f,t,Q))+I|0,I=l+x|0,I=L>>>0<V>>>0?I+1|0:I,V=xg(e,C,q,p),x=l+I|0,IA=L=V+L|0,V=L>>>0<V>>>0?x+1|0:x,I=xg(I=o(X,38),I>>31,m,k),x=l,X=I,L=xg(I=gA,L=I>>31,I,L),x=l+x|0,x=(I=X+L|0)>>>0<L>>>0?x+1|0:x,X=xg(O,AA,M,S),L=l+x|0,L=(I=X+I|0)>>>0<X>>>0?L+1|0:L,X=xg(t,Q,_,F),x=l+L|0,x=(I=X+I|0)>>>0<X>>>0?x+1|0:x,L=(X=xg(h,f,D,y))+I|0,I=l+x|0,I=L>>>0<X>>>0?I+1|0:I,X=xg(a,g,e,C),x=l+I|0,O=L=X+L|0,AA=x=L>>>0<X>>>0?x+1|0:x,(I=L+33554432|0)>>>0<33554432&&(x=x+1|0),gA=I,CA=x,L=(I=x>>26)+V|0,V=x=(X=(67108863&x)<<6|gA>>>26)+IA|0,x=x>>>0<X>>>0?L+1|0:L,(I=V+16777216|0)>>>0<16777216&&(x=x+1|0),IA=I,X=(33554431&x)<<7|I>>>25,x=(x>>25)+T|0,x=(L=X+QA|0)>>>0<X>>>0?x+1|0:x,(L=(I=L)+33554432|0)>>>0<33554432&&(x=x+1|0),T=L,X=x,x=-67108864&L,n[z+8>>2]=I-x,I=xg(D,y,m,k),x=l,L=xg(E,i,t,Q),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,L=xg(a,g,u,c),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,L=xg(r,B,Z,U),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,L=(QA=xg(e,C,Y,G))+I|0,I=l+x|0,x=K>>26,K=(j=(67108863&K)<<6|j>>>26)+L|0,L=(I=L>>>0<QA>>>0?I+1|0:I)+x|0,x=L=K>>>0<j>>>0?L+1|0:L,(L=(I=K)+16777216|0)>>>0<16777216&&(x=x+1|0),j=L,K=x,x=-33554432&L,n[z+28>>2]=I-x,I=xg(r,B,W,H),L=l,x=(q=xg(a,g,q,p))+I|0,I=l+L|0,I=x>>>0<q>>>0?I+1|0:I,q=xg(u,c,_,F),L=l+I|0,L=(x=q+x|0)>>>0<q>>>0?L+1|0:L,I=(q=xg(h,f,s,w))+x|0,x=l+L|0,x=I>>>0<q>>>0?x+1|0:x,L=xg(e,C,E,i),x=l+x|0,x=(x=(I=L+I|0)>>>0<L>>>0?x+1|0:x)+(L=X>>26)|0,L=I=(X=(67108863&X)<<6|T>>>26)+I|0,I=x=I>>>0<X>>>0?x+1|0:x,(x=L+16777216|0)>>>0<16777216&&(I=I+1|0),T=x,X=I,I=-33554432&x,n[z+12>>2]=L-I,q=A,I=xg(u,c,D,y),x=l,L=xg(E,i,E,i),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,L=xg(t,Q,s,w),x=l+x|0,x=(I=L+I|0)>>>0<L>>>0?x+1|0:x,L=(W=xg(a,g,N,b))+I|0,I=l+x|0,I=L>>>0<W>>>0?I+1|0:I,x=(W=xg(r,B,Y,G))+L|0,L=l+I|0,L=x>>>0<W>>>0?L+1|0:L,I=($=xg(e,C,W=$,z=W>>31))+x|0,x=l+L|0,x=I>>>0<$>>>0?x+1|0:x,L=I,x=(I=K>>25)+x|0,x=(L=L+(K=(33554431&K)<<7|j>>>25)|0)>>>0<K>>>0?x+1|0:x,(L=(I=L)+33554432|0)>>>0<33554432&&(x=x+1|0),$=L,K=x,x=-67108864&L,n[q+32>>2]=I-x,x=X>>25,L=(X=(33554431&X)<<7|T>>>25)+(v-(I=-67108864&R)|0)|0,I=x+(d-((v>>>0<I>>>0)+P|0)|0)|0,x=I=L>>>0<X>>>0?I+1|0:I,(I=L+33554432|0)>>>0<33554432&&(x=x+1|0),X=((67108863&x)<<6|I>>>26)+(BA=BA-(-33554432&J)|0)|0,n[q+20>>2]=X,I&=-67108864,n[A+16>>2]=L-I,X=A,I=xg(t,Q,u,c),L=l,x=(q=xg(m,k,M,S))+I|0,I=l+L|0,I=x>>>0<q>>>0?I+1|0:I,L=(q=xg(D,y,Z,U))+x|0,x=l+I|0,x=L>>>0<q>>>0?x+1|0:x,I=(q=xg(a,g,Y,G))+L|0,L=l+x|0,L=I>>>0<q>>>0?L+1|0:L,q=xg(r,B,W,z),x=l+L|0,L=I=q+I|0,x=(I=I>>>0<q>>>0?x+1|0:x)+(x=K>>26)|0,x=(L=(K=(67108863&K)<<6|$>>>26)+L|0)>>>0<K>>>0?x+1|0:x,K=L,T=L,I=x,(x=L+16777216|0)>>>0<16777216&&(I=I+1|0),L=-33554432&x,n[X+36>>2]=K-L,q=xg((33554431&I)<<7|x>>>25,I>>25,19,0),x=l+(AA-((O>>>0<(L=-67108864&gA)>>>0)+CA|0)|0)|0,L=I=q+(O-L|0)|0,I=I>>>0<q>>>0?x+1|0:x,(x=L+33554432|0)>>>0<33554432&&(I=I+1|0),K=(V-(-33554432&IA)|0)+((67108863&I)<<6|x>>>26)|0,n[A+4>>2]=K,I=A,A=-67108864&x,n[I>>2]=L-A}function v(A){var I=0,g=0,B=0,C=0,Q=0,E=0,i=0,a=0,o=0;A:if(A|=0){Q=(B=A+-8|0)+(A=-8&(g=n[A+-4>>2]))|0;I:if(!(1&g)){if(!(3&g))break A;if((B=B-(g=n[B>>2])|0)>>>0<r[8965])break A;if(A=A+g|0,n[8966]==(0|B)){if(3==(3&(g=n[Q+4>>2])))return n[8963]=A,n[Q+4>>2]=-2&g,n[B+4>>2]=1|A,void(n[A+B>>2]=A)}else{if(g>>>0<=255){if(C=n[B+8>>2],g=g>>>3|0,(0|(I=n[B+12>>2]))==(0|C)){a=35844,o=n[8961]&ng(-2,g),n[a>>2]=o;break I}n[C+12>>2]=I,n[I+8>>2]=C;break I}if(i=n[B+24>>2],(0|B)==(0|(g=n[B+12>>2])))if((I=n[(C=B+20|0)>>2])||(I=n[(C=B+16|0)>>2])){for(;E=C,(I=n[(C=(g=I)+20|0)>>2])||(C=g+16|0,I=n[g+16>>2]););n[E>>2]=0}else g=0;else I=n[B+8>>2],n[I+12>>2]=g,n[g+8>>2]=I;if(!i)break I;C=n[B+28>>2];g:{if(n[(I=36148+(C<<2)|0)>>2]==(0|B)){if(n[I>>2]=g,g)break g;a=35848,o=n[8962]&ng(-2,C),n[a>>2]=o;break I}if(n[i+(n[i+16>>2]==(0|B)?16:20)>>2]=g,!g)break I}if(n[g+24>>2]=i,(I=n[B+16>>2])&&(n[g+16>>2]=I,n[I+24>>2]=g),!(I=n[B+20>>2]))break I;n[g+20>>2]=I,n[I+24>>2]=g}}if(!(Q>>>0<=B>>>0)&&1&(g=n[Q+4>>2])){I:{if(!(2&g)){if(n[8967]==(0|Q)){if(n[8967]=B,A=n[8964]+A|0,n[8964]=A,n[B+4>>2]=1|A,n[8966]!=(0|B))break A;return n[8963]=0,void(n[8966]=0)}if(n[8966]==(0|Q))return n[8966]=B,A=n[8963]+A|0,n[8963]=A,n[B+4>>2]=1|A,void(n[A+B>>2]=A);A=(-8&g)+A|0;g:if(g>>>0<=255){if(g=g>>>3|0,(0|(I=n[Q+8>>2]))==(0|(C=n[Q+12>>2]))){a=35844,o=n[8961]&ng(-2,g),n[a>>2]=o;break g}n[I+12>>2]=C,n[C+8>>2]=I}else{if(i=n[Q+24>>2],(0|Q)==(0|(g=n[Q+12>>2])))if((I=n[(C=Q+20|0)>>2])||(I=n[(C=Q+16|0)>>2])){for(;E=C,(I=n[(C=(g=I)+20|0)>>2])||(C=g+16|0,I=n[g+16>>2]););n[E>>2]=0}else g=0;else I=n[Q+8>>2],n[I+12>>2]=g,n[g+8>>2]=I;if(i){C=n[Q+28>>2];B:{if(n[(I=36148+(C<<2)|0)>>2]==(0|Q)){if(n[I>>2]=g,g)break B;a=35848,o=n[8962]&ng(-2,C),n[a>>2]=o;break g}if(n[i+(n[i+16>>2]==(0|Q)?16:20)>>2]=g,!g)break g}n[g+24>>2]=i,(I=n[Q+16>>2])&&(n[g+16>>2]=I,n[I+24>>2]=g),(I=n[Q+20>>2])&&(n[g+20>>2]=I,n[I+24>>2]=g)}}if(n[B+4>>2]=1|A,n[A+B>>2]=A,n[8966]!=(0|B))break I;return void(n[8963]=A)}n[Q+4>>2]=-2&g,n[B+4>>2]=1|A,n[A+B>>2]=A}if(A>>>0<=255)return g=35884+((A=A>>>3|0)<<3)|0,(I=n[8961])&(A=1<<A)?A=n[g+8>>2]:(n[8961]=A|I,A=g),n[g+8>>2]=B,n[A+12>>2]=B,n[B+12>>2]=g,void(n[B+8>>2]=A);n[B+16>>2]=0,n[B+20>>2]=0,I=0,(C=A>>>8|0)&&(I=31,A>>>0>16777215||(I=(g=C)<<(C=C+1048320>>>16&8),I=28+((I=((I<<=i=I+520192>>>16&4)<<(E=I+245760>>>16&2)>>>15|0)-(E|C|i)|0)<<1|A>>>I+21&1)|0)),n[(Q=B)+28>>2]=I,E=36148+(I<<2)|0;I:{g:{if((C=n[8962])&(g=1<<I)){for(C=A<<(31==(0|I)?0:25-(I>>>1|0)|0),g=n[E>>2];;){if(I=g,(-8&n[g+4>>2])==(0|A))break g;if(g=C>>>29|0,C<<=1,!(g=n[16+(E=I+(4&g)|0)>>2]))break}n[E+16>>2]=B,n[B+24>>2]=I}else n[8962]=g|C,n[E>>2]=B,n[B+24>>2]=E;n[B+12>>2]=B,n[B+8>>2]=B;break I}A=n[I+8>>2],n[A+12>>2]=B,n[I+8>>2]=B,n[B+24>>2]=0,n[B+12>>2]=I,n[B+8>>2]=A}if(A=n[8969]+-1|0,n[8969]=A,!A){for(B=36300;B=(A=n[B>>2])+8|0,A;);n[8969]=-1}}}}function S(A,I){var g=0,B=0,C=0,Q=0,E=0,i=0,a=0,r=0;Q=A+I|0;A:{I:if(!(1&(g=n[A+4>>2]))){if(!(3&g))break A;if(I=(g=n[A>>2])+I|0,(0|(A=A-g|0))==n[8966]){if(3==(3&(g=n[Q+4>>2])))return n[8963]=I,n[Q+4>>2]=-2&g,n[A+4>>2]=1|I,void(n[Q>>2]=I)}else{if(g>>>0<=255){if(C=g>>>3|0,g=n[A+8>>2],(0|(B=n[A+12>>2]))==(0|g)){a=35844,r=n[8961]&ng(-2,C),n[a>>2]=r;break I}n[g+12>>2]=B,n[B+8>>2]=g;break I}if(i=n[A+24>>2],(0|(g=n[A+12>>2]))==(0|A))if((C=n[(B=A+20|0)>>2])||(C=n[(B=A+16|0)>>2])){for(;E=B,(C=n[(B=(g=C)+20|0)>>2])||(B=g+16|0,C=n[g+16>>2]););n[E>>2]=0}else g=0;else B=n[A+8>>2],n[B+12>>2]=g,n[g+8>>2]=B;if(!i)break I;B=n[A+28>>2];g:{if(n[(C=36148+(B<<2)|0)>>2]==(0|A)){if(n[C>>2]=g,g)break g;a=35848,r=n[8962]&ng(-2,B),n[a>>2]=r;break I}if(n[i+(n[i+16>>2]==(0|A)?16:20)>>2]=g,!g)break I}if(n[g+24>>2]=i,(B=n[A+16>>2])&&(n[g+16>>2]=B,n[B+24>>2]=g),!(B=n[A+20>>2]))break I;n[g+20>>2]=B,n[B+24>>2]=g}}I:{if(!(2&(g=n[Q+4>>2]))){if(n[8967]==(0|Q)){if(n[8967]=A,I=n[8964]+I|0,n[8964]=I,n[A+4>>2]=1|I,n[8966]!=(0|A))break A;return n[8963]=0,void(n[8966]=0)}if(n[8966]==(0|Q))return n[8966]=A,I=n[8963]+I|0,n[8963]=I,n[A+4>>2]=1|I,void(n[A+I>>2]=I);I=(-8&g)+I|0;g:if(g>>>0<=255){if(C=g>>>3|0,g=n[Q+8>>2],(0|(B=n[Q+12>>2]))==(0|g)){a=35844,r=n[8961]&ng(-2,C),n[a>>2]=r;break g}n[g+12>>2]=B,n[B+8>>2]=g}else{if(i=n[Q+24>>2],(0|Q)==(0|(g=n[Q+12>>2])))if((C=n[(B=Q+20|0)>>2])||(C=n[(B=Q+16|0)>>2])){for(;E=B,(C=n[(B=(g=C)+20|0)>>2])||(B=g+16|0,C=n[g+16>>2]););n[E>>2]=0}else g=0;else B=n[Q+8>>2],n[B+12>>2]=g,n[g+8>>2]=B;if(i){B=n[Q+28>>2];B:{if(n[(C=36148+(B<<2)|0)>>2]==(0|Q)){if(n[C>>2]=g,g)break B;a=35848,r=n[8962]&ng(-2,B),n[a>>2]=r;break g}if(n[i+(n[i+16>>2]==(0|Q)?16:20)>>2]=g,!g)break g}n[g+24>>2]=i,(B=n[Q+16>>2])&&(n[g+16>>2]=B,n[B+24>>2]=g),(B=n[Q+20>>2])&&(n[g+20>>2]=B,n[B+24>>2]=g)}}if(n[A+4>>2]=1|I,n[A+I>>2]=I,n[8966]!=(0|A))break I;return void(n[8963]=I)}n[Q+4>>2]=-2&g,n[A+4>>2]=1|I,n[A+I>>2]=I}if(I>>>0<=255)return I=35884+((g=I>>>3|0)<<3)|0,(B=n[8961])&(g=1<<g)?g=n[I+8>>2]:(n[8961]=g|B,g=I),n[I+8>>2]=A,n[g+12>>2]=A,n[A+12>>2]=I,void(n[A+8>>2]=g);n[A+16>>2]=0,n[A+20>>2]=0,g=0,(C=I>>>8|0)&&(g=31,I>>>0>16777215||(g=28+((g=((Q=(C<<=E=C+1048320>>>16&8)<<(g=C+520192>>>16&4))<<(C=Q+245760>>>16&2)>>>15|0)-(C|g|E)|0)<<1|I>>>g+21&1)|0)),n[(B=A)+28>>2]=g,C=36148+(g<<2)|0;I:{if((B=n[8962])&(E=1<<g)){for(B=I<<(31==(0|g)?0:25-(g>>>1|0)|0),g=n[C>>2];;){if(C=g,(-8&n[g+4>>2])==(0|I))break I;if(g=B>>>29|0,B<<=1,!(g=n[16+(E=C+(4&g)|0)>>2]))break}n[E+16>>2]=A}else n[8962]=B|E,n[C>>2]=A;return n[A+24>>2]=C,n[A+12>>2]=A,void(n[A+8>>2]=A)}I=n[C+8>>2],n[I+12>>2]=A,n[C+8>>2]=A,n[A+24>>2]=0,n[A+12>>2]=C,n[A+8>>2]=I}}function N(A,I,g,B,C){var Q,i,r,o,e,t,c,f,y,s,w,h,u,p,l,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0,M=0,d=0,P=0,J=0,x=0,L=0,K=0,q=0,X=0,V=0,T=0,W=0,j=0,Z=0,O=0,z=0,$=0,AA=0,IA=0,gA=0,BA=0;for(D=Q=D+-64|0,i=n[A+60>>2],r=n[A+56>>2],L=n[A+52>>2],K=n[A+48>>2],o=n[A+44>>2],e=n[A+40>>2],t=n[A+36>>2],c=n[A+32>>2],f=n[A+28>>2],y=n[A+24>>2],s=n[A+20>>2],w=n[A+16>>2],h=n[A+12>>2],u=n[A+8>>2],p=n[A+4>>2],l=n[A>>2];;){if(!C&B>>>0>63|C>>>0>0)_=g;else{if(F=0,_=G=eA(Q,0,64),B|C)for(;E[F+G|0]=a[I+F|0],!C&B>>>0>(F=F+1|0)>>>0|C>>>0>0;);I=_,V=g}for(q=20,m=l,U=p,v=u,S=h,F=w,G=s,g=y,N=f,H=c,Y=t,R=e,M=i,d=r,k=L,P=K,x=o;b=F,m=gB((F=F+m|0)^P,16),P=gB(b^(H=m+H|0),12),b=H,H=gB((H=m)^(m=F+P|0),8),F=gB(P^(J=b+H|0),7),b=G,U=gB((G=G+U|0)^k,16),k=gB(b^(Y=U+Y|0),12),b=Y,Y=gB((Y=U)^(U=G+k|0),8),G=gB(k^(X=b+Y|0),7),k=g,v=gB((g=g+v|0)^d,16),b=d=gB(k^(R=v+R|0),12),d=gB((k=v)^(v=g+d|0),8),g=gB(b^(R=d+R|0),7),k=N,S=gB((N=N+S|0)^M,16),x=k=gB(k^(M=S+x|0),12),b=M,M=gB((M=S)^(S=N+k|0),8),N=gB(x^(k=b+M|0),7),b=R,R=gB((m=G+m|0)^M,16),G=gB((P=b+R|0)^G,12),M=gB(R^(m=G+m|0),8),G=gB(G^(R=P+M|0),7),H=gB((U=g+U|0)^H,16),g=gB((k=H+k|0)^g,12),P=gB(H^(U=g+U|0),8),g=gB(g^(x=k+P|0),7),H=gB((v=N+v|0)^Y,16),N=gB((Y=H+J|0)^N,12),k=gB(H^(v=N+v|0),8),N=gB(N^(H=Y+k|0),7),Y=gB((S=F+S|0)^d,16),F=gB((J=Y+X|0)^F,12),d=gB(Y^(S=F+S|0),8),F=gB(F^(Y=J+d|0),7),q=q+-2|0;);if(q=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,J=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,X=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,T=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,W=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,j=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,Z=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,O=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,z=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,$=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,AA=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,IA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,gA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,BA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,b=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,fg(_,m+l^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)),fg(_+4|0,U+p^q),fg(_+8|0,v+u^J),fg(_+12|0,S+h^X),fg(_+16|0,F+w^T),fg(_+20|0,G+s^W),fg(_+24|0,g+y^j),fg(_+28|0,N+f^Z),fg(_+32|0,H+c^O),fg(_+36|0,Y+t^z),fg(_+40|0,$^R+e),fg(_+44|0,AA^x+o),fg(_+48|0,IA^P+K),fg(_+52|0,gA^k+L),fg(_+56|0,BA^d+r),fg(_+60|0,b^M+i),L=((F=K+1|0)>>>0<K>>>0)+L|0,!C&B>>>0<=64|C>>>0<0){if(!(!B|!C&B>>>0>63|C>>>0>0))for(G=0;E[G+V|0]=a[_+G|0],(0|B)!=(0|(G=G+1|0)););n[A+52>>2]=L,n[A+48>>2]=F,D=Q- -64|0;break}I=I- -64|0,g=_- -64|0,C=C+-1|0,(B=B+-64|0)>>>0<4294967232&&(C=C+1|0),K=F}}function R(A,I,g,B){var C=0,Q=0,E=0,i=0,r=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0;if(Q=n[A+36>>2],i=n[A+32>>2],t=n[A+28>>2],E=n[A+24>>2],e=n[A+20>>2],!B&g>>>0>=16|B>>>0>0)for(_=!a[A+80|0]<<24,y=n[A+4>>2],H=o(y,5),u=n[A+8>>2],k=o(u,5),F=n[A+12>>2],G=o(F,5),C=n[A+16>>2],p=o(C,5),Y=C,s=n[A>>2];C=xg(r=((a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108863)+E|0,0,F,0),E=l,f=xg(e=(67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+e|0,0,Y,0),E=l+E|0,E=(C=f+C|0)>>>0<f>>>0?E+1|0:E,t=(f=xg(w=((a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67108863)+t|0,0,u,0))+C|0,C=l+E|0,i=xg(h=((a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6|0)+i|0,0,y,0),C=l+(t>>>0<f>>>0?C+1|0:C)|0,C=(E=i+t|0)>>>0<i>>>0?C+1|0:C,Q=xg(D=((a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)>>>8|_)+Q|0,0,s,0),C=l+C|0,b=E=Q+E|0,t=E>>>0<Q>>>0?C+1|0:C,C=xg(r,0,u,0),E=l,i=xg(e,0,F,0),Q=l+E|0,Q=(C=i+C|0)>>>0<i>>>0?Q+1|0:Q,i=xg(w,0,y,0),E=l+Q|0,E=(C=i+C|0)>>>0<i>>>0?E+1|0:E,Q=(i=xg(h,0,s,0))+C|0,C=l+E|0,C=Q>>>0<i>>>0?C+1|0:C,E=Q,Q=xg(D,0,p,0),C=l+C|0,m=E=E+Q|0,f=E>>>0<Q>>>0?C+1|0:C,C=xg(r,0,y,0),Q=l,E=(i=xg(e,0,u,0))+C|0,C=l+Q|0,C=E>>>0<i>>>0?C+1|0:C,i=xg(w,0,s,0),Q=l+C|0,Q=(E=i+E|0)>>>0<i>>>0?Q+1|0:Q,C=(i=xg(h,0,p,0))+E|0,E=l+Q|0,E=C>>>0<i>>>0?E+1|0:E,Q=(i=xg(D,0,G,0))+C|0,C=l+E|0,U=Q,i=Q>>>0<i>>>0?C+1|0:C,C=xg(r,0,s,0),Q=l,E=(c=xg(e,0,y,0))+C|0,C=l+Q|0,C=E>>>0<c>>>0?C+1|0:C,Q=xg(w,0,p,0),C=l+C|0,C=(E=Q+E|0)>>>0<Q>>>0?C+1|0:C,c=xg(h,0,G,0),Q=l+C|0,Q=(E=c+E|0)>>>0<c>>>0?Q+1|0:Q,C=(c=xg(D,0,k,0))+E|0,E=l+Q|0,E=C>>>0<c>>>0?E+1|0:E,c=C,C=xg(r,0,p,0),r=l,Q=(e=xg(e,0,s,0))+C|0,C=l+r|0,C=Q>>>0<e>>>0?C+1|0:C,r=xg(w,0,G,0),C=l+C|0,C=(Q=r+Q|0)>>>0<r>>>0?C+1|0:C,r=xg(h,0,k,0),C=l+C|0,C=(Q=r+Q|0)>>>0<r>>>0?C+1|0:C,r=(e=xg(D,0,H,0))+Q|0,Q=l+C|0,(Q=(C=(67108863&(Q=r>>>0<e>>>0?Q+1|0:Q))<<6|(C=r)>>>26)+c|0)>>>0<C>>>0&&(E=E+1|0),e=Q,C=i,(Q=(E=(67108863&E)<<6|Q>>>26)+U|0)>>>0<E>>>0&&(C=C+1|0),i=Q,Q=f,(E=(C=(67108863&C)<<6|i>>>26)+m|0)>>>0<C>>>0&&(Q=Q+1|0),C=E,E=t,(t=(Q=(67108863&Q)<<6|C>>>26)+b|0)>>>0<Q>>>0&&(E=E+1|0),E=(67108863&e)+((r=o((67108863&E)<<6|(Q=t)>>>26,5)+(67108863&r)|0)>>>26|0)|0,t=67108863&i,i=67108863&C,Q&=67108863,e=67108863&r,I=I+16|0,C=B+-1|0,(g=g+-16|0)>>>0<4294967280&&(C=C+1|0),B=C,!C&g>>>0>15|C>>>0>0;);n[A+20>>2]=e,n[A+36>>2]=Q,n[A+32>>2]=i,n[A+28>>2]=t,n[A+24>>2]=E}function M(A,I,g){var B,C,Q,i,n=0,r=0,o=0,e=0,t=0;return D=Q=D-160|0,ig(I,g,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,tA(Q,I),NI(A,Q),r=a[(C=g)+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,n=a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24,o=a[C+16|0]|a[C+17|0]<<8|a[C+18|0]<<16|a[C+19|0]<<24,e=a[C+20|0]|a[C+21|0]<<8|a[C+22|0]<<16|a[C+23|0]<<24,t=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,g=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,B=I,i=a[C+28|0]|a[C+29|0]<<8|a[C+30|0]<<16|a[C+31|0]<<24,I=a[C+24|0]|a[C+25|0]<<8|a[C+26|0]<<16|a[C+27|0]<<24,E[B+24|0]=I,E[B+25|0]=I>>>8,E[B+26|0]=I>>>16,E[B+27|0]=I>>>24,E[B+28|0]=i,E[B+29|0]=i>>>8,E[B+30|0]=i>>>16,E[B+31|0]=i>>>24,E[B+16|0]=o,E[B+17|0]=o>>>8,E[B+18|0]=o>>>16,E[B+19|0]=o>>>24,E[B+20|0]=e,E[B+21|0]=e>>>8,E[B+22|0]=e>>>16,E[B+23|0]=e>>>24,E[B+8|0]=r,E[B+9|0]=r>>>8,E[B+10|0]=r>>>16,E[B+11|0]=r>>>24,E[B+12|0]=n,E[B+13|0]=n>>>8,E[B+14|0]=n>>>16,E[B+15|0]=n>>>24,E[0|B]=t,E[B+1|0]=t>>>8,E[B+2|0]=t>>>16,E[B+3|0]=t>>>24,E[B+4|0]=g,E[B+5|0]=g>>>8,E[B+6|0]=g>>>16,E[B+7|0]=g>>>24,o=a[(n=A)+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,e=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,t=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,g=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,I=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,A=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,r=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,n=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,E[B+56|0]=n,E[B+57|0]=n>>>8,E[B+58|0]=n>>>16,E[B+59|0]=n>>>24,E[B+60|0]=r,E[B+61|0]=r>>>8,E[B+62|0]=r>>>16,E[B+63|0]=r>>>24,E[B+48|0]=t,E[B+49|0]=t>>>8,E[B+50|0]=t>>>16,E[B+51|0]=t>>>24,E[B+52|0]=g,E[B+53|0]=g>>>8,E[B+54|0]=g>>>16,E[B+55|0]=g>>>24,E[B+40|0]=o,E[B+41|0]=o>>>8,E[B+42|0]=o>>>16,E[B+43|0]=o>>>24,E[B+44|0]=e,E[B+45|0]=e>>>8,E[B+46|0]=e>>>16,E[B+47|0]=e>>>24,E[B+32|0]=I,E[B+33|0]=I>>>8,E[B+34|0]=I>>>16,E[B+35|0]=I>>>24,E[B+36|0]=A,E[B+37|0]=A>>>8,E[B+38|0]=A>>>16,E[B+39|0]=A>>>24,D=Q+160|0,0}function d(A,I){var g,B,C,Q,E,i,a,r,o,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,F=0,G=0,k=0,_=0;p=t=n[(e=I)+4>>2],D=t>>31,F=t=n[e+8>>2],B=t>>31,h=t=n[e+12>>2],u=t>>31,G=t=n[e+16>>2],C=t>>31,w=t=n[e+20>>2],s=t>>31,k=t=n[e+24>>2],Q=t>>31,E=t=n[e>>2],i=t>>31,f=A,y=t=xg(e=n[e+36>>2],e>>31,121666,0),e=l,(t=t+16777216|0)>>>0<16777216&&(e=e+1|0),g=t,t=e,a=y-(-33554432&g)|0,c=xg(e=n[I+32>>2],e>>31,121666,0),r=l,y=xg(I=n[I+28>>2],I>>31,121666,0),e=l,_=c,(I=y+16777216|0)>>>0<16777216&&(e=e+1|0),o=I,c=I,I=(I=e>>25)+r|0,I=(e=_+(c=(33554431&e)<<7|c>>>25)|0)>>>0<c>>>0?I+1|0:I,c=e,_=f,e=I,(I=c+33554432|0)>>>0<33554432&&(e=e+1|0),f=((67108863&e)<<6|I>>>26)+a|0,n[_+36>>2]=f,I&=-67108864,n[A+32>>2]=c-I,f=y-(-33554432&o)|0,e=xg(k,Q,121666,0),k=l,y=xg(w,s,121666,0),I=l,c=e,(e=y+16777216|0)>>>0<16777216&&(I=I+1|0),w=e,s=e,e=(e=I>>25)+k|0,e=(I=c+(s=(33554431&I)<<7|s>>>25)|0)>>>0<s>>>0?e+1|0:e,(c=I+33554432|0)>>>0<33554432&&(e=e+1|0),f=f+((67108863&e)<<6|c>>>26)|0,n[A+28>>2]=f,e=-67108864&c,n[A+24>>2]=I-e,f=A,w=y-(-33554432&w)|0,I=xg(G,C,121666,0),G=l,y=xg(h,u,121666,0),e=l,c=I,(I=y+16777216|0)>>>0<16777216&&(e=e+1|0),h=I,u=(33554431&e)<<7|I>>>25,e=(e>>25)+G|0,s=f,I=e=(c=c+u|0)>>>0<u>>>0?e+1|0:e,(e=c+33554432|0)>>>0<33554432&&(I=I+1|0),f=((67108863&I)<<6|e>>>26)+w|0,n[s+20>>2]=f,I=-67108864&e,n[A+16>>2]=c-I,f=A,h=y-(-33554432&h)|0,e=xg(F,B,121666,0),F=l,y=xg(p,D,121666,0),I=l,c=e,(e=y+16777216|0)>>>0<16777216&&(I=I+1|0),p=e,D=(33554431&I)<<7|e>>>25,I=(I>>25)+F|0,w=f,e=I=(c=c+D|0)>>>0<D>>>0?I+1|0:I,(I=c+33554432|0)>>>0<33554432&&(e=e+1|0),f=((67108863&e)<<6|I>>>26)+h|0,n[w+12>>2]=f,I&=-67108864,n[A+8>>2]=c-I,I=xg((33554431&t)<<7|g>>>25,t>>25,19,0),e=l,f=y-(-33554432&p)|0,t=xg(E,i,121666,0),e=l+e|0,e=(I=t+I|0)>>>0<t>>>0?e+1|0:e,(t=I+33554432|0)>>>0<33554432&&(e=e+1|0),y=f+((67108863&e)<<6|t>>>26)|0,n[A+4>>2]=y,e=A,A=-67108864&t,n[e>>2]=I-A}function P(A,I,g){var B,C=0,Q=0,i=0;D=B=D+-64|0;A:{if(!(!g|g>>>0>=65)){if(C=-1,!(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24|a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)){if(Q=A,(C=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)>>>0>=129){if(wA(A,128),F(A,i=A+96|0),C=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=C,E[A+353|0]=C>>>8,E[A+354|0]=C>>>16,E[A+355|0]=C>>>24,C>>>0>=129)break A;j(i,A+224|0,C),C=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24}wA(Q,C),a[A+356|0]&&(E[A+88|0]=-1,E[A+89|0]=16777215,E[A+90|0]=65535,E[A+91|0]=255,E[A+92|0]=-1,E[A+93|0]=16777215,E[A+94|0]=65535,E[A+95|0]=255),E[A+80|0]=-1,E[A+81|0]=16777215,E[A+82|0]=65535,E[A+83|0]=255,E[A+84|0]=-1,E[A+85|0]=16777215,E[A+86|0]=65535,E[A+87|0]=255,eA((C=A+96|0)+(Q=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,0,256-Q|0),F(A,C),LI(B,a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24),LI(8|B,a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24),LI(B+16|0,a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24),LI(B+24|0,a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24),LI(B+32|0,a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24,a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24),LI(B+40|0,a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24),LI(B+48|0,a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24,a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24),LI(B+56|0,a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24,a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24),j(I,B,g),KI(A,64),KI(C,256),C=0}return D=B- -64|0,C}Gg(),t()}c(1854,1886,306,1931),t()}function J(A,I){var g,B,C,Q,E,i,r,o,e,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,F=0,G=0;g=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,p=Cg(I+4|0),t=l,D=Cg(I+7|0),f=l,u=Cg(I+10|0),c=l,B=Cg(I+13|0),h=l,y=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,C=Cg(I+20|0),F=l,Q=Cg(I+23|0),E=l,i=Cg(I+26|0),r=l,o=Cg(I+29|0),I=c<<3|u>>>29,G=c=u<<3,(c=c+16777216|0)>>>0<16777216&&(I=I+1|0),u=c,c=I,f=I=f<<5|D>>>27,e=w=A,w=s=D<<5,t=I=t<<6|(D=p)>>>26,(I=16777216+(D<<=6)|0)>>>0<16777216&&(t=t+1|0),p=I,s=I,I=(I=t>>25)+f|0,I=(t=w+(s=(33554431&t)<<7|s>>>25)|0)>>>0<s>>>0?I+1|0:I,(f=t+33554432|0)>>>0<33554432&&(I=I+1|0),w=(G-(-33554432&u)|0)+((67108863&I)<<6|f>>>26)|0,n[e+12>>2]=w,I=-67108864&f,n[A+8>>2]=t-I,I=0,(y=(f=y)+16777216|0)>>>0<16777216&&(I=1),w=y,y=I,G=f-(-33554432&w)|0,I=h<<2|(f=B)>>>30,h=f<<2,f=I,I=c>>25,c=(s=h)+(h=(33554431&c)<<7|u>>>25)|0,I=I+f|0,s=t=A,t=I=c>>>0<h>>>0?I+1|0:I,(I=c+33554432|0)>>>0<33554432&&(t=t+1|0),f=((67108863&t)<<6|I>>>26)+G|0,n[s+20>>2]=f,I&=-67108864,n[A+16>>2]=c-I,s=(t=C)<<7,I=(I=F<<7|t>>>25)+(t=y>>25)|0,I=(y=s+(f=(33554431&y)<<7|w>>>25)|0)>>>0<f>>>0?I+1|0:I,y=t=y,(t=t+33554432|0)>>>0<33554432&&(I=I+1|0),f=t,t=I,I=-67108864&f,n[(c=A)+24>>2]=y-I,I=E<<5|(c=Q)>>>27,F=c<<=5,(c=c+16777216|0)>>>0<16777216&&(I=I+1|0),h=c,c=I,t=(F-(-33554432&h)|0)+((67108863&t)<<6|f>>>26)|0,n[(y=A)+28>>2]=t,f=(t=i)<<4,t=I=r<<4|t>>>28,I=(I=c>>25)+t|0,I=(c=(w=f)+(f=(33554431&c)<<7|h>>>25)|0)>>>0<f>>>0?I+1|0:I,c=t=c,(t=t+33554432|0)>>>0<33554432&&(I=I+1|0),f=t,t=I,I=-67108864&f,n[y+32>>2]=c-I,I=0,c=y=(y=o)<<2&33554428,(y=y+16777216|0)>>>0<16777216&&(I=I+1|0),c=(c-(33554432&y)|0)+((67108863&t)<<6|f>>>26)|0,n[A+36>>2]=c,y=xg((33554431&I)<<7|y>>>25,I>>>25|0,19,0),I=l,I=(t=y+g|0)>>>0<y>>>0?I+1|0:I,(c=t+33554432|0)>>>0<33554432&&(I=I+1|0),y=(D-(-33554432&p)|0)+((67108863&I)<<6|c>>>26)|0,n[A+4>>2]=y,I=A,A=-67108864&c,n[I>>2]=t-A}function x(A,I,g,B){var C,Q=0,i=0;D=C=D-16|0,Q=-31;A:{I:{g:{B:switch(B+-1|0){case 1:if(I>>>0<13)break I;B=a[35660]|a[35661]<<8|a[35662]<<16|a[35663]<<24,Q=a[35656]|a[35657]<<8|a[35658]<<16|a[35659]<<24,E[0|A]=Q,E[A+1|0]=Q>>>8,E[A+2|0]=Q>>>16,E[A+3|0]=Q>>>24,E[A+4|0]=B,E[A+5|0]=B>>>8,E[A+6|0]=B>>>16,E[A+7|0]=B>>>24,B=a[35665]|a[35666]<<8|a[35667]<<16|a[35668]<<24,Q=a[35661]|a[35662]<<8|a[35663]<<16|a[35664]<<24,E[A+5|0]=Q,E[A+6|0]=Q>>>8,E[A+7|0]=Q>>>16,E[A+8|0]=Q>>>24,E[A+9|0]=B,E[A+10|0]=B>>>8,E[A+11|0]=B>>>16,E[A+12|0]=B>>>24,i=-12,B=12;break g;case 0:break B;default:break A}if(I>>>0<12)break I;B=a[35673]|a[35674]<<8|a[35675]<<16|a[35676]<<24,Q=a[35669]|a[35670]<<8|a[35671]<<16|a[35672]<<24,E[0|A]=Q,E[A+1|0]=Q>>>8,E[A+2|0]=Q>>>16,E[A+3|0]=Q>>>24,E[A+4|0]=B,E[A+5|0]=B>>>8,E[A+6|0]=B>>>16,E[A+7|0]=B>>>24,B=a[35677]|a[35678]<<8|a[35679]<<16|a[35680]<<24,E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,i=-11,B=11}if(Q=DA(g))break A;if(oI(C+5|0,19),!((Q=I+i|0)>>>0<=(I=VA(C+5|0))>>>0)&&(A=j(A+B|0,C+5|0,I+1|0),!((B=Q-I|0)>>>0<4)&&(E[0|(A=A+I|0)]=4025636,E[A+1|0]=15725,E[A+2|0]=61,E[A+3|0]=0,oI(C+5|0,n[g+44>>2]),!((B=B+-3|0)>>>0<=(I=VA(C+5|0))>>>0)&&(A=j(A+3|0,C+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(E[0|(A=A+I|0)]=4027436,E[A+1|0]=15732,E[A+2|0]=61,E[A+3|0]=0,oI(C+5|0,n[g+40>>2]),!((B=B+-3|0)>>>0<=(I=VA(C+5|0))>>>0)&&(A=j(A+3|0,C+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(E[0|(A=A+I|0)]=4026412,E[A+1|0]=15728,E[A+2|0]=61,E[A+3|0]=0,oI(C+5|0,n[g+48>>2]),!((B=B+-3|0)>>>0<=(I=VA(C+5|0))>>>0)&&(A=j(A+3|0,C+5|0,I+1|0),!((B=B-I|0)>>>0<2)&&(E[0|(A=A+I|0)]=36,E[A+1|0]=0,AA(A=A+1|0,I=B+-1|0,n[g+16>>2],n[g+20>>2],3)))))))))){if(Q=-31,(B=(B=I)-(I=VA(A))|0)>>>0<2)break A;return E[0|(A=A+I|0)]=36,E[A+1|0]=0,A=AA(A+1|0,B+-1|0,n[g>>2],n[g+4>>2],3),D=C+16|0,A?0:-31}}Q=-31}return D=C+16|0,Q}function L(A,I,g,B){var C,Q=0;C=Q=D,D=Q=Q-576&-64,n[Q+188>>2]=0,fg(Q+188|0,I);A:if(I>>>0<=64){if((0|vI(Q+192|0,0,0,I))<0)break A;if((0|Tg(Q+192|0,Q+188|0,4,0))<0)break A;if((0|Tg(Q+192|0,g,B,0))<0)break A;og(Q+192|0,A,I)}else if(!((0|vI(Q+192|0,0,0,64))<0||(0|Tg(Q+192|0,Q+188|0,4,0))<0||(0|Tg(Q+192|0,g,B,0))<0||(0|og(Q+192|0,Q+112|0,64))<0)){if(g=n[Q+116>>2],B=n[Q+112>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,g=n[Q+124>>2],B=n[Q+120>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=n[Q+140>>2],B=n[Q+136>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=n[Q+132>>2],B=n[Q+128>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,A=A+32|0,(I=I+-32|0)>>>0>=65)for(;;){if(j(Q+48|0,Q+112|0,64),(0|Ag(Q+112|0,64,Q+48|0,64,0,0,0))<0)break A;if(g=n[Q+116>>2],B=n[Q+112>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,g=n[Q+124>>2],B=n[Q+120>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=n[Q+140>>2],B=n[Q+136>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=n[Q+132>>2],B=n[Q+128>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,A=A+32|0,!((I=I+-32|0)>>>0>64))break}j(Q+48|0,Q+112|0,64),(0|Ag(Q+112|0,I,Q+48|0,64,0,0,0))<0||j(A,Q+112|0,I)}KI(Q+192|0,384),D=C}function K(A,I,g){var B=0,C=0,Q=0,E=0,i=0,n=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0;for(Q=2036477234,e=857760878,t=1634760805,E=1797285236,o=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,B=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,C=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,n=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,f=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,w=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,h=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,g=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,c=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,i=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,I=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24;r=o,t=gB((s=g)^(g=o+t|0),16),r=f=gB(r^(o=t+f|0),12),f=gB((s=t)^(t=g+f|0),8),o=gB(r^(D=f+o|0),7),r=B,e=gB((g=B+e|0)^c,16),r=c=gB(r^(B=e+y|0),12),c=gB((s=e)^(e=g+c|0),8),g=gB(r^(y=c+B|0),7),r=C,B=gB((Q=Q+C|0)^i,16),r=i=gB(r^(C=B+w|0),12),s=gB(B^(i=Q+i|0),8),Q=gB(r^(B=s+C|0),7),E=gB((C=I)^(I=E+n|0),16),n=gB((C=E+h|0)^n,12),I=gB(E^(u=I+n|0),8),E=gB(n^(C=I+C|0),7),r=B,B=gB((B=I)^(I=g+t|0),16),g=gB((n=r+B|0)^g,12),I=gB(B^(t=I+g|0),8),B=gB(g^(w=n+I|0),7),r=C,C=gB((g=Q+e|0)^f,16),Q=gB((n=r+C|0)^Q,12),g=gB(C^(e=g+Q|0),8),C=gB(Q^(h=n+g|0),7),n=gB((Q=E+i|0)^c,16),E=gB((i=n+D|0)^E,12),c=gB(n^(Q=Q+E|0),8),n=gB(E^(f=i+c|0),7),i=gB((E=o+u|0)^s,16),o=gB((y=i+y|0)^o,12),i=gB(i^(E=E+o|0),8),o=gB(o^(y=y+i|0),7),10!=(0|(p=p+1|0)););fg(A,t),fg(A+4|0,e),fg(A+8|0,Q),fg(A+12|0,E),fg(A+16|0,g),fg(A+20|0,c),fg(A+24|0,i),fg(A+28|0,I)}function q(A){var I,g=0,B=0;D=I=D-48|0,g=a[28+(A|=0)|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,n[I+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,n[I+28>>2]=g,g=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,n[I+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,n[I+20>>2]=g,g=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,n[I>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,n[I+4>>2]=g,g=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,n[I+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,n[I+12>>2]=g,g=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,n[I+32>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,n[I+36>>2]=g,Q[n[8956]](I,I,40,0,A+32|0,0,A),g=n[I+28>>2],B=n[I+24>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=n[I+20>>2],B=n[I+16>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,g=n[I+12>>2],B=n[I+8>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=n[I+4>>2],B=n[I>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,g=n[I+36>>2],B=n[I+32>>2],E[A+36|0]=B,E[A+37|0]=B>>>8,E[A+38|0]=B>>>16,E[A+39|0]=B>>>24,E[A+40|0]=g,E[A+41|0]=g>>>8,E[A+42|0]=g>>>16,E[A+43|0]=g>>>24,hg(A),D=I+48|0}function X(A,I,g){var B=0,C=0,Q=0,E=0,i=0,n=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;for(C=2036477234,Q=857760878,E=1634760805,i=1797285236,w=20,o=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,s=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,h=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,f=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,e=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,n=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,t=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,c=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,g=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,r=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,B=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,I=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24;D=B,B=gB(E+n|0,7)^f,y=D^gB(B+E|0,9),u=gB(B+y|0,13)^n,f=gB(y+u|0,18),I=gB(Q+o|0,7)^I,t=gB(I+Q|0,9)^t,o=gB(I+t|0,13)^o,l=gB(t+o|0,18),c=gB(g+C|0,7)^c,n=gB(c+C|0,9)^s,p=gB(n+c|0,13)^g,F=gB(n+p|0,18),g=gB(i+e|0,7)^h,r=gB(g+i|0,9)^r,e=gB(g+r|0,13)^e,D=gB(r+e|0,18),o=gB((E^=f)+g|0,7)^o,s=gB(o+E|0,9)^n,h=gB(o+s|0,13)^g,E=gB(s+h|0,18)^E,g=gB((Q^=l)+B|0,7)^p,r=gB(g+Q|0,9)^r,f=gB(g+r|0,13)^B,Q=gB(r+f|0,18)^Q,e=gB((C^=F)+I|0,7)^e,B=gB(e+C|0,9)^y,I=gB(B+e|0,13)^I,C=gB(I+B|0,18)^C,n=gB((i^=D)+c|0,7)^u,t=gB(n+i|0,9)^t,c=gB(n+t|0,13)^c,i=gB(t+c|0,18)^i,y=w>>>0>2,w=w+-2|0,y;);return fg(A,E),fg(A+4|0,Q),fg(A+8|0,C),fg(A+12|0,i),fg(A+16|0,g),fg(A+20|0,r),fg(A+24|0,B),fg(A+28|0,I),0}function V(A,I,g,B,C,Q,i){var r,o,e,t,c,f,y,s=0;return D=r=D-560|0,Ng(r+352|0,i),ig(r+288|0,Q,32,0),W(r+352|0,r+320|0,32,0),W(r+352|0,g,B,C),ag(r+352|0,r+224|0),o=a[(s=Q)+32|0]|a[s+33|0]<<8|a[s+34|0]<<16|a[s+35|0]<<24,e=a[s+36|0]|a[s+37|0]<<8|a[s+38|0]<<16|a[s+39|0]<<24,t=a[s+40|0]|a[s+41|0]<<8|a[s+42|0]<<16|a[s+43|0]<<24,c=a[s+44|0]|a[s+45|0]<<8|a[s+46|0]<<16|a[s+47|0]<<24,f=a[s+48|0]|a[s+49|0]<<8|a[s+50|0]<<16|a[s+51|0]<<24,Q=a[s+52|0]|a[s+53|0]<<8|a[s+54|0]<<16|a[s+55|0]<<24,y=a[s+60|0]|a[s+61|0]<<8|a[s+62|0]<<16|a[s+63|0]<<24,s=a[s+56|0]|a[s+57|0]<<8|a[s+58|0]<<16|a[s+59|0]<<24,E[A+56|0]=s,E[A+57|0]=s>>>8,E[A+58|0]=s>>>16,E[A+59|0]=s>>>24,E[A+60|0]=y,E[A+61|0]=y>>>8,E[A+62|0]=y>>>16,E[A+63|0]=y>>>24,E[A+48|0]=f,E[A+49|0]=f>>>8,E[A+50|0]=f>>>16,E[A+51|0]=f>>>24,E[A+52|0]=Q,E[A+53|0]=Q>>>8,E[A+54|0]=Q>>>16,E[A+55|0]=Q>>>24,E[A+40|0]=t,E[A+41|0]=t>>>8,E[A+42|0]=t>>>16,E[A+43|0]=t>>>24,E[A+44|0]=c,E[A+45|0]=c>>>8,E[A+46|0]=c>>>16,E[A+47|0]=c>>>24,E[0|(Q=A+32|0)]=o,E[Q+1|0]=o>>>8,E[Q+2|0]=o>>>16,E[Q+3|0]=o>>>24,E[Q+4|0]=e,E[Q+5|0]=e>>>8,E[Q+6|0]=e>>>16,E[Q+7|0]=e>>>24,k(r+224|0),tA(r,r+224|0),NI(A,r),Ng(r+352|0,i),W(r+352|0,A,64,0),W(r+352|0,g,B,C),ag(r+352|0,r+160|0),k(r+160|0),E[r+288|0]=248&a[r+288|0],E[r+319|0]=63&a[r+319|0]|64,function(A,I,g,B){var C,Q,i,n,r,o,e,t,c,f,y,s,w,h,D,u,p,F,G,k,_,H,Y,b,m,U,v,S,N,R,M,d,P,J,x,L,K,q,X,V,T,W,j,Z,O,z,$,AA,IA,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,eA=0,tA=0,cA=0,fA=0,yA=0,sA=0,wA=0,hA=0,DA=0,uA=0,pA=0,lA=0,FA=0,GA=0,kA=0,_A=0,HA=0,YA=0,bA=0,mA=0,UA=0,vA=0,SA=0,NA=0,RA=0,MA=0,dA=0,PA=0,JA=0,xA=0,LA=0,KA=0,qA=0,XA=0,VA=0,TA=0,WA=0,jA=0,ZA=0,OA=0,zA=0;JA=Cg(I),FA=a[I+2|0]|a[I+3|0]<<8|a[I+4|0]<<16|a[I+5|0]<<24,WA=Cg(I+5|0),HA=l,sA=a[I+7|0]|a[I+8|0]<<8|a[I+9|0]<<16|a[I+10|0]<<24,wA=a[I+10|0]|a[I+11|0]<<8|a[I+12|0]<<16|a[I+13|0]<<24,mA=Cg(I+13|0),yA=l,eA=a[I+15|0]|a[I+16|0]<<8|a[I+17|0]<<16|a[I+18|0]<<24,qA=Cg(I+18|0),cA=l,YA=Cg(I+21|0),nA=a[I+23|0]|a[I+24|0]<<8|a[I+25|0]<<16|a[I+26|0]<<24,rA=Cg(I+26|0),QA=l,gA=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,RA=Cg(g),GA=a[(I=g)+2|0]|a[I+3|0]<<8|a[I+4|0]<<16|a[I+5|0]<<24,XA=Cg(I+5|0),oA=l,hA=a[I+7|0]|a[I+8|0]<<8|a[I+9|0]<<16|a[I+10|0]<<24,fA=a[I+10|0]|a[I+11|0]<<8|a[I+12|0]<<16|a[I+13|0]<<24,VA=Cg(I+13|0),tA=l,EA=a[I+15|0]|a[I+16|0]<<8|a[I+17|0]<<16|a[I+18|0]<<24,TA=Cg(I+18|0),CA=l,xA=Cg(I+21|0),BA=a[I+23|0]|a[I+24|0]<<8|a[I+25|0]<<16|a[I+26|0]<<24,iA=Cg(I+26|0),g=l,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,Z=Cg(B),O=a[B+2|0]|a[B+3|0]<<8|a[B+4|0]<<16|a[B+5|0]<<24,z=Cg(B+5|0),$=l,MA=a[B+7|0]|a[B+8|0]<<8|a[B+9|0]<<16|a[B+10|0]<<24,LA=a[B+10|0]|a[B+11|0]<<8|a[B+12|0]<<16|a[B+13|0]<<24,KA=Cg(B+13|0),SA=l,UA=a[B+15|0]|a[B+16|0]<<8|a[B+17|0]<<16|a[B+18|0]<<24,jA=Cg(B+18|0),vA=l,kA=Cg(B+21|0),AA=A,I=xg(C=I>>>7|0,0,Q=2097151&((3&QA)<<30|rA>>>2),0),aA=l,QA=I,I=xg(i=2097151&((3&g)<<30|iA>>>2),0,n=gA>>>7|0,0),gA=l+aA|0,gA=(g=QA+I|0)>>>0<I>>>0?gA+1|0:gA,iA=g,I=xg(Q,0,i,0),QA=l,BA=(g=xg(r=BA>>>5&2097151,0,n,0))+I|0,I=l+QA|0,I=BA>>>0<g>>>0?I+1|0:I,g=BA,BA=xg(C,0,o=nA>>>5&2097151,0),I=l+I|0,aA=QA=g+BA|0,lA=I=QA>>>0<BA>>>0?I+1|0:I,DA=(I=QA)- -1048576|0,uA=BA=lA-((I>>>0<4293918720)+-1|0)|0,I=(g=BA>>21)+gA|0,rA=I=(QA=(BA=(2097151&BA)<<11|DA>>>21)+iA|0)>>>0<BA>>>0?I+1|0:I,_A=(I=BA=QA)- -1048576|0,iA=nA=rA-((I>>>0<4293918720)+-1|0)|0,QA=(I=QA=xg(C,0,n,0))-(nA=-2097152&(dA=I- -1048576|0))|0,I=((NA=l)-((I>>>0<nA>>>0)+(gA=bA=NA-((I>>>0<4293918720)+-1|0)|0)|0)|0)+(g=iA>>21)|0,d=I=(U=QA+((2097151&iA)<<11|_A>>>21)|0)>>>0<QA>>>0?I+1|0:I,nA=xg(U,I,-683901,-1),QA=l,P=g=gA>>21,I=xg(S=(2097151&gA)<<11|dA>>>21,g,136657,0),g=l+QA|0,bA=gA=I+nA|0,nA=gA>>>0<I>>>0?g+1|0:g,I=xg(e=2097151&((1&tA)<<31|VA>>>1),0,Q,0),gA=l,QA=(g=xg(t=fA>>>4&2097151,0,n,0))+I|0,I=l+gA|0,g=(gA=QA)>>>0<g>>>0?I+1|0:I,QA=(I=xg(c=EA>>>6&2097151,0,o,0))+gA|0,gA=l+g|0,gA=QA>>>0<I>>>0?gA+1|0:gA,g=QA,m=I=0,QA=(I=xg(f=2097151&xA,I,y=2097151&((7&cA)<<29|qA>>>3),0))+g|0,g=l+gA|0,g=QA>>>0<I>>>0?g+1|0:g,gA=xg(s=2097151&((7&CA)<<29|TA>>>3),0,w=2097151&YA,0),I=l+g|0,I=(QA=gA+QA|0)>>>0<gA>>>0?I+1|0:I,gA=QA,g=I,I=xg(r,0,h=eA>>>6&2097151,0),g=l+g|0,g=(gA=I+gA|0)>>>0<I>>>0?g+1|0:g,QA=(I=gA)+(gA=xg(i,0,D=2097151&((1&yA)<<31|mA>>>1),0))|0,I=l+g|0,I=QA>>>0<gA>>>0?I+1|0:I,gA=xg(C,0,u=wA>>>4&2097151,0),I=l+I|0,cA=QA=QA+gA|0,QA=QA>>>0<gA>>>0?I+1|0:I,I=xg(Q,0,t,0),g=l,gA=I,I=xg(p=hA>>>7&2097151,0,n,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,CA=(I=gA)+(gA=xg(o,0,e,0))|0,I=l+g|0,I=CA>>>0<gA>>>0?I+1|0:I,g=xg(c,0,w,0),I=l+I|0,I=(gA=g+CA|0)>>>0<g>>>0?I+1|0:I,CA=(g=xg(f,m,h,0))+gA|0,gA=l+I|0,gA=CA>>>0<g>>>0?gA+1|0:gA,I=xg(y,0,s,0),g=l+gA|0,g=(CA=I+CA|0)>>>0<I>>>0?g+1|0:g,I=xg(r,0,D,0),g=l+g|0,g=(gA=I+CA|0)>>>0<I>>>0?g+1|0:g,CA=(I=gA)+(gA=xg(i,0,u,0))|0,I=l+g|0,I=CA>>>0<gA>>>0?I+1|0:I,gA=xg(C,0,F=sA>>>7&2097151,0),I=l+I|0,fA=CA=CA+gA|0,EA=I=CA>>>0<gA>>>0?I+1|0:I,tA=(I=CA)- -1048576|0,CA=gA=EA-((I>>>0<4293918720)+-1|0)|0,I=(g=gA>>21)+QA|0,QA=I=(hA=(gA=(2097151&gA)<<11|tA>>>21)+cA|0)>>>0<gA>>>0?I+1|0:I,g=I+nA|0,(nA=(I=gA=hA)+bA|0)>>>0<I>>>0&&(g=g+1|0),I=nA,nA=QA-((gA>>>0<4293918720)+-1|0)|0,eA=I-(gA=-2097152&(yA=gA- -1048576|0))|0,cA=g-((I>>>0<gA>>>0)+(QA=nA)|0)|0,N=BA-(g=-2097152&_A)|0,J=I=rA-((BA>>>0<g>>>0)+iA|0)|0,gA=xg(S,P,-997805,-1),g=l+EA|0,g=(BA=gA+fA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(U,d,136657,0),g=l+g|0,g=(BA=gA+BA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(N,I,-683901,-1),I=l+g|0,I=(BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,nA=(gA=BA)-(g=-2097152&tA)|0,EA=I-((gA>>>0<g>>>0)+CA|0)|0,I=xg(Q,0,p,0),g=l,gA=I,I=xg(G=2097151&((3&oA)<<30|XA>>>2),0,n,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,BA=(I=gA)+(gA=xg(o,0,t,0))|0,I=l+g|0,I=BA>>>0<gA>>>0?I+1|0:I,gA=xg(e,0,w,0),g=l+I|0,g=(BA=gA+BA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(c,0,y,0),I=l+g|0,I=(BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,g=xg(f,m,D,0),gA=l+I|0,gA=(BA=g+BA|0)>>>0<g>>>0?gA+1|0:gA,I=xg(s,0,h,0),g=l+gA|0,g=(BA=I+BA|0)>>>0<I>>>0?g+1|0:g,gA=xg(r,0,u,0),I=l+g|0,I=(BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(i,0,F,0),g=l+I|0,g=(BA=gA+BA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(C,0,k=2097151&((3&HA)<<30|WA>>>2),0),I=l+g|0,CA=BA=gA+BA|0,BA=BA>>>0<gA>>>0?I+1|0:I,I=xg(Q,0,G,0),g=l,iA=(gA=I)+(I=xg(_=GA>>>5&2097151,0,n,0))|0,gA=l+g|0,gA=iA>>>0<I>>>0?gA+1|0:gA,I=xg(o,0,p,0),g=l+gA|0,g=(iA=I+iA|0)>>>0<I>>>0?g+1|0:g,gA=xg(t,0,w,0),I=l+g|0,I=(iA=gA+iA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(e,0,y,0),g=l+I|0,g=(iA=gA+iA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(c,0,h,0),I=l+g|0,I=(iA=gA+iA|0)>>>0<gA>>>0?I+1|0:I,g=xg(f,m,u,0),gA=l+I|0,gA=(iA=g+iA|0)>>>0<g>>>0?gA+1|0:gA,I=xg(s,0,D,0),g=l+gA|0,g=(iA=I+iA|0)>>>0<I>>>0?g+1|0:g,gA=xg(r,0,F,0),I=l+g|0,I=(iA=gA+iA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(i,0,k,0),g=l+I|0,g=(iA=gA+iA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(C,0,H=FA>>>5&2097151,0),I=l+g|0,hA=iA=gA+iA|0,XA=I=iA>>>0<gA>>>0?I+1|0:I,IA=(I=iA)- -1048576|0,VA=gA=XA-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+BA|0,fA=CA=(gA=(2097151&gA)<<11|IA>>>21)+CA|0,TA=g=CA>>>0<gA>>>0?g+1|0:g,WA=(I=CA)- -1048576|0,xA=gA=g-((I>>>0<4293918720)+-1|0)|0,I=(I=gA>>21)+EA|0,tA=gA=(g=(2097151&gA)<<11|WA>>>21)+nA|0,NA=I=gA>>>0<g>>>0?I+1|0:I,mA=(I=gA)- -1048576|0,bA=gA=NA-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+cA|0,nA=BA=(gA=(2097151&gA)<<11|mA>>>21)+eA|0,_A=g=BA>>>0<gA>>>0?g+1|0:g,FA=gA=g-(((I=BA)>>>0<4293918720)+-1|0)|0,rA=(2097151&gA)<<11|(YA=I- -1048576|0)>>>21,CA=gA>>21,g=xg(Q,0,c,0),I=l,gA=g,g=xg(n,0,e,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,BA=(g=xg(f,m,w,0))+gA|0,gA=l+I|0,gA=BA>>>0<g>>>0?gA+1|0:gA,I=xg(o,0,s,0),g=l+gA|0,g=(BA=I+BA|0)>>>0<I>>>0?g+1|0:g,I=xg(r,0,y,0),g=l+g|0,g=(gA=I+BA|0)>>>0<I>>>0?g+1|0:g,BA=(I=gA)+(gA=xg(i,0,h,0))|0,I=l+g|0,I=BA>>>0<gA>>>0?I+1|0:I,g=xg(C,0,D,0),I=l+I|0,I=(gA=g+BA|0)>>>0<g>>>0?I+1|0:I,BA=gA,EA=gA+(g=xg(S,P,-683901,-1))|0,gA=l+I|0,gA=EA>>>0<g>>>0?gA+1|0:gA,g=EA,EA=I,GA=(I=BA)- -1048576|0,EA=gA-((BA=EA=EA-((I>>>0<4293918720)+-1|0)|0)+((I=g)>>>0<(iA=-2097152&GA)>>>0)|0)|0,I=g=I-iA|0,g=QA>>21,QA=I+(gA=(2097151&QA)<<11|yA>>>21)|0,I=g+EA|0,I=QA>>>0<gA>>>0?I+1|0:I,gA=(g=QA)-(EA=-2097152&(oA=g- -1048576|0))|0,g=(I-((g>>>0<EA>>>0)+(QA=iA=I-((g>>>0<4293918720)+-1|0)|0)|0)|0)+CA|0,x=rA=gA+rA|0,L=g=rA>>>0<gA>>>0?g+1|0:g,iA=xg(rA,g,-683901,-1),EA=l,g=xg(o,0,f,m),I=l,gA=g,g=xg(n,0,c,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,CA=(g=xg(Q,0,s,0))+gA|0,gA=l+I|0,gA=CA>>>0<g>>>0?gA+1|0:gA,I=xg(r,0,w,0),g=l+gA|0,g=(CA=I+CA|0)>>>0<I>>>0?g+1|0:g,gA=xg(i,0,y,0),I=l+g|0,I=(CA=gA+CA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(C,0,h,0),g=l+I|0,I=(I=g=(CA=gA+CA|0)>>>0<gA>>>0?g+1|0:g)+(g=BA>>21)|0,sA=CA=(I=(BA=CA+(gA=(2097151&BA)<<11|GA>>>21)|0)>>>0<gA>>>0?I+1|0:I)-(((g=BA)>>>0<4293918720)+-1|0)|0,gA=g-(BA=-2097152&(PA=g- -1048576|0))|0,g=(QA>>21)+(g=I-((g>>>0<BA>>>0)+CA|0)|0)|0,K=BA=(I=(2097151&QA)<<11|oA>>>21)+gA|0,q=g=BA>>>0<I>>>0?g+1|0:g,g=xg(BA,g,136657,0),I=l+EA|0,qA=gA=g+iA|0,wA=gA>>>0<g>>>0?I+1|0:I,I=xg(w,0,_,0),g=l,gA=I,I=xg(Y=2097151&RA,0,o,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,BA=(I=gA)+(gA=xg(y,0,G,0))|0,I=l+g|0,I=BA>>>0<gA>>>0?I+1|0:I,gA=xg(h,0,p,0),g=l+I|0,g=(BA=gA+BA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(t,0,D,0),I=l+g|0,I=(BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,g=xg(e,0,u,0),gA=l+I|0,gA=(BA=g+BA|0)>>>0<g>>>0?gA+1|0:gA,I=xg(c,0,F,0),g=l+gA|0,g=(BA=I+BA|0)>>>0<I>>>0?g+1|0:g,gA=xg(f,m,H,0),I=l+g|0,I=(BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(s,0,k,0),g=l+I|0,g=(BA=gA+BA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(r,0,b=2097151&JA,0),I=l+g|0,gA=(g=BA=gA+BA|0)>>>0<gA>>>0?I+1|0:I,(I=BA+(g=(a[B+23|0]|a[B+24|0]<<8|a[B+25|0]<<16|a[B+26|0]<<24)>>>5&2097151)|0)>>>0<g>>>0&&(gA=gA+1|0),QA=I,BA=gA,g=xg(y,0,_,0),I=l,gA=g,g=xg(w,0,Y,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,CA=(g=gA)+(gA=xg(h,0,G,0))|0,g=l+I|0,g=CA>>>0<gA>>>0?g+1|0:g,gA=xg(D,0,p,0),I=l+g|0,I=(CA=gA+CA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(t,0,u,0),g=l+I|0,g=(CA=gA+CA|0)>>>0<gA>>>0?g+1|0:g,I=xg(e,0,F,0),gA=l+g|0,gA=(CA=I+CA|0)>>>0<I>>>0?gA+1|0:gA,g=xg(c,0,k,0),I=l+gA|0,I=(CA=g+CA|0)>>>0<g>>>0?I+1|0:I,gA=xg(f,m,b,0),g=l+I|0,g=(CA=gA+CA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(s,0,H,0),I=l+g|0,I=(CA=gA+CA|0)>>>0<gA>>>0?I+1|0:I,EA=CA=(gA=2097151&kA)+CA|0,yA=g=CA>>>0<gA>>>0?I+1|0:I,HA=(I=CA)- -1048576|0,eA=gA=g-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+BA|0,oA=g=(CA=QA=(gA=(2097151&gA)<<11|HA>>>21)+QA|0)>>>0<gA>>>0?g+1|0:g,RA=aA-(I=-2097152&DA)|0,kA=lA-((aA>>>0<I>>>0)+uA|0)|0,I=xg(Q,0,r,0),g=l,gA=I,I=xg(n,0,f,m),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,BA=(I=gA)+(gA=xg(i,0,o,0))|0,I=l+g|0,I=BA>>>0<gA>>>0?I+1|0:I,gA=xg(C,0,w,0),g=l+I|0,aA=BA=gA+BA|0,BA=BA>>>0<gA>>>0?g+1|0:g,I=xg(n,0,s,0),g=l,QA=(gA=I)+(I=xg(Q,0,f,m))|0,gA=l+g|0,gA=QA>>>0<I>>>0?gA+1|0:gA,g=xg(o,0,r,0),I=l+gA|0,I=(QA=g+QA|0)>>>0<g>>>0?I+1|0:I,gA=xg(i,0,w,0),g=l+I|0,g=(QA=gA+QA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(C,0,y,0),I=l+g|0,iA=gA=(rA=I=(QA=gA+QA|0)>>>0<gA>>>0?I+1|0:I)-(((I=QA)>>>0<4293918720)+-1|0)|0,I=(2097151&gA)<<11|(lA=I- -1048576|0)>>>21,gA=(gA>>21)+BA|0,aA=gA=(BA=aA=I+aA|0)>>>0<I>>>0?gA+1|0:gA,uA=(I=BA)- -1048576|0,I=(g=(gA=DA=gA-((I>>>0<4293918720)+-1|0)|0)>>21)+kA|0,X=I=(v=RA=(DA=(2097151&gA)<<11|uA>>>21)+RA|0)>>>0<DA>>>0?I+1|0:I,kA=xg(v,I,470296,0),DA=l,R=BA-(g=-2097152&uA)|0,dA=I=aA-((BA>>>0<g>>>0)+gA|0)|0,gA=xg(N,J,666643,0),g=l+DA|0,g=(BA=gA+kA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(R,I,654183,0),I=l+g|0,aA=BA=gA+BA|0,gA=BA>>>0<gA>>>0?I+1|0:I,I=QA-(g=-2097152&lA)|0,g=(sA>>21)+(QA=rA-((QA>>>0<g>>>0)+iA|0)|0)|0,V=iA=(BA=(2097151&sA)<<11|PA>>>21)+I|0,JA=g=iA>>>0<BA>>>0?g+1|0:g,ZA=CA- -1048576|0,BA=I=oA-((CA>>>0<4293918720)+-1|0)|0,g=xg(iA,g,-997805,-1),gA=l+gA|0,g=(gA=(QA=g+aA|0)>>>0<g>>>0?gA+1|0:gA)+oA|0,kA=(CA=QA+CA|0)-(gA=-2097152&ZA)|0,DA=(g=CA>>>0<QA>>>0?g+1|0:g)-((CA>>>0<gA>>>0)+I|0)|0,I=xg(R,dA,470296,0),g=l,gA=I,I=xg(v,X,666643,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,I=xg(iA,JA,654183,0),g=l+g|0,I=(g=(gA=I+gA|0)>>>0<I>>>0?g+1|0:g)+yA|0,oA=(gA=gA+EA|0)-(g=-2097152&HA)|0,EA=(I=gA>>>0<EA>>>0?I+1|0:I)-((gA>>>0<g>>>0)+eA|0)|0,g=xg(h,0,_,0),I=l,gA=g,g=xg(y,0,Y,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,QA=(g=gA)+(gA=xg(D,0,G,0))|0,g=l+I|0,g=QA>>>0<gA>>>0?g+1|0:g,gA=xg(u,0,p,0),I=l+g|0,I=(QA=gA+QA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(t,0,F,0),g=l+I|0,g=(QA=gA+QA|0)>>>0<gA>>>0?g+1|0:g,I=xg(e,0,k,0),gA=l+g|0,gA=(QA=I+QA|0)>>>0<I>>>0?gA+1|0:gA,g=xg(c,0,H,0),I=l+gA|0,I=(QA=g+QA|0)>>>0<g>>>0?I+1|0:I,gA=xg(s,0,b,0),g=l+I|0,I=g=(QA=gA+QA|0)>>>0<gA>>>0?g+1|0:g,(g=QA+(gA=2097151&((7&vA)<<29|jA>>>3))|0)>>>0<gA>>>0&&(I=I+1|0),CA=g,QA=I,I=xg(D,0,_,0),g=l,gA=I,I=xg(h,0,Y,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,I=xg(u,0,G,0),g=l+g|0,g=(gA=I+gA|0)>>>0<I>>>0?g+1|0:g,aA=(I=xg(F,0,p,0))+gA|0,gA=l+g|0,gA=aA>>>0<I>>>0?gA+1|0:gA,g=xg(t,0,k,0),I=l+gA|0,I=(aA=g+aA|0)>>>0<g>>>0?I+1|0:I,g=xg(e,0,H,0),I=l+I|0,I=(gA=g+aA|0)>>>0<g>>>0?I+1|0:I,aA=(g=gA)+(gA=xg(c,0,b,0))|0,g=l+I|0,g=aA>>>0<gA>>>0?g+1|0:g,(I=(gA=UA>>>6&2097151)+aA|0)>>>0<gA>>>0&&(g=g+1|0),lA=I,rA=g,uA=I- -1048576|0,cA=gA=g-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+QA|0,iA=g=(CA=(gA=(2097151&gA)<<11|uA>>>21)+CA|0)>>>0<gA>>>0?g+1|0:g,sA=(I=CA)- -1048576|0,aA=gA=g-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+EA|0,yA=QA=(gA=(2097151&gA)<<11|sA>>>21)+oA|0,EA=g=QA>>>0<gA>>>0?g+1|0:g,eA=(I=QA)- -1048576|0,GA=gA=g-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+DA|0,g=(QA=(gA=(2097151&gA)<<11|eA>>>21)+kA|0)>>>0<gA>>>0?g+1|0:g,gA=QA,QA=g,I=g+wA|0,(oA=(g=gA)+qA|0)>>>0<g>>>0&&(I=I+1|0),g=oA,oA=QA-((gA>>>0<4293918720)+-1|0)|0,zA=g-(gA=-2097152&(OA=gA- -1048576|0))|0,pA=I-((g>>>0<gA>>>0)+(QA=oA)|0)|0,g=xg(K,q,-997805,-1),I=l+EA|0,PA=gA=g+yA|0,oA=gA>>>0<g>>>0?I+1|0:I,g=xg(V,JA,470296,0),I=l,gA=g,g=xg(R,dA,666643,0),I=l+I|0,g=(I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I)+iA|0,sA=(gA=gA+CA|0)-(I=-2097152&sA)|0,wA=(g=gA>>>0<CA>>>0?g+1|0:g)-((gA>>>0<I>>>0)+aA|0)|0,I=xg(V,JA,666643,0),gA=l+rA|0,yA=g=I+lA|0,EA=g>>>0<I>>>0?gA+1|0:gA,g=xg(u,0,_,0),I=l,gA=g,g=xg(D,0,Y,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,CA=(g=gA)+(gA=xg(F,0,G,0))|0,g=l+I|0,g=CA>>>0<gA>>>0?g+1|0:g,gA=xg(k,0,p,0),I=l+g|0,I=(CA=gA+CA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(t,0,H,0),g=l+I|0,g=(CA=gA+CA|0)>>>0<gA>>>0?g+1|0:g,I=xg(e,0,b,0),gA=l+g|0,I=(g=CA=I+CA|0)>>>0<I>>>0?gA+1|0:gA,(g=(gA=2097151&((1&SA)<<31|KA>>>1))+g|0)>>>0<gA>>>0&&(I=I+1|0),aA=g,CA=I,I=xg(F,0,_,0),g=l,gA=I,I=xg(u,0,Y,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,iA=(I=xg(k,0,G,0))+gA|0,gA=l+g|0,gA=iA>>>0<I>>>0?gA+1|0:gA,g=xg(H,0,p,0),I=l+gA|0,I=(iA=g+iA|0)>>>0<g>>>0?I+1|0:I,gA=xg(t,0,b,0),g=l+I|0,I=g=(iA=gA+iA|0)>>>0<gA>>>0?g+1|0:g,(g=iA+(gA=LA>>>4&2097151)|0)>>>0<gA>>>0&&(I=I+1|0),rA=g,HA=I,jA=(I=g)- -1048576|0,LA=gA=HA-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+CA|0,SA=g=(iA=aA=(gA=(2097151&gA)<<11|jA>>>21)+aA|0)>>>0<gA>>>0?g+1|0:g,qA=(I=iA)- -1048576|0,UA=gA=g-((I>>>0<4293918720)+-1|0)|0,I=(I=gA>>21)+EA|0,I=(gA=(g=(2097151&gA)<<11|qA>>>21)+yA|0)>>>0<g>>>0?I+1|0:I,g=gA,vA=(gA=I)-((g>>>0<(I=-2097152&uA)>>>0)+cA|0)|0,RA=(I=aA=g-I|0)- -1048576|0,lA=g=vA-((I>>>0<4293918720)+-1|0)|0,I=(gA=g>>21)+wA|0,kA=CA=(g=(2097151&g)<<11|RA>>>21)+sA|0,uA=I=CA>>>0<g>>>0?I+1|0:I,DA=(I=CA)- -1048576|0,sA=g=uA-((I>>>0<4293918720)+-1|0)|0,M=nA-(I=-2097152&YA)|0,KA=CA=_A-((nA>>>0<I>>>0)+FA|0)|0,I=(2097151&g)<<11|DA>>>21,g=(g>>21)+oA|0,g=(EA=I+PA|0)>>>0<I>>>0?g+1|0:g,nA=(gA=xg(x,L,136657,0))+(EA-(I=-2097152&eA)|0)|0,I=l+(g-((EA>>>0<I>>>0)+GA|0)|0)|0,I=nA>>>0<gA>>>0?I+1|0:I,gA=xg(M,CA,-683901,-1),g=l+I|0,nA=CA=gA+nA|0,wA=g=CA>>>0<gA>>>0?g+1|0:g,YA=(I=CA)- -1048576|0,yA=g=g-((I>>>0<4293918720)+-1|0)|0,I=(gA=g>>21)+pA|0,EA=CA=(g=(2097151&g)<<11|YA>>>21)+zA|0,cA=g=(eA=I=CA>>>0<g>>>0?I+1|0:I)-(((I=CA)>>>0<4293918720)+-1|0)|0,PA=(2097151&g)<<11|(_A=I- -1048576|0)>>>21,GA=g>>21,I=xg(o,0,_,0),g=l,gA=I,I=xg(Q,0,Y,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,I=xg(w,0,G,0),g=l+g|0,g=(gA=I+gA|0)>>>0<I>>>0?g+1|0:g,CA=(I=gA)+(gA=xg(y,0,p,0))|0,I=l+g|0,I=CA>>>0<gA>>>0?I+1|0:I,g=xg(t,0,h,0),I=l+I|0,I=(gA=g+CA|0)>>>0<g>>>0?I+1|0:I,CA=(g=xg(e,0,D,0))+gA|0,gA=l+I|0,gA=CA>>>0<g>>>0?gA+1|0:gA,I=xg(c,0,u,0),g=l+gA|0,g=(CA=I+CA|0)>>>0<I>>>0?g+1|0:g,I=xg(f,m,k,0),g=l+g|0,g=(gA=I+CA|0)>>>0<I>>>0?g+1|0:g,CA=(I=gA)+(gA=xg(s,0,F,0))|0,I=l+g|0,I=CA>>>0<gA>>>0?I+1|0:I,g=xg(r,0,H,0),I=l+I|0,I=(gA=g+CA|0)>>>0<g>>>0?I+1|0:I,CA=(g=xg(i,0,b,0))+gA|0,gA=l+I|0,g=(I=CA)>>>0<g>>>0?gA+1|0:gA,I=Cg(B+26|0),(I=CA+(gA=2097151&((3&(gA=l))<<30|I>>>2))|0)>>>0<gA>>>0&&(g=g+1|0),FA=I,CA=g,I=xg(N,J,470296,0),g=l,gA=I,I=xg(U,d,666643,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,pA=(I=gA)+(gA=xg(v,X,654183,0))|0,I=l+g|0,I=pA>>>0<gA>>>0?I+1|0:I,g=xg(R,dA,-997805,-1),gA=l+I|0,gA=(pA=g+pA|0)>>>0<g>>>0?gA+1|0:gA,g=xg(V,JA,136657,0),I=l+gA|0,g=(I=(pA=g+pA|0)>>>0<g>>>0?I+1|0:I)+CA|0,T=(I=FA)- -1048576|0,CA=oA=CA-((I>>>0<4293918720)+-1|0)|0,g=(g=(pA=(gA=pA)+FA|0)>>>0<gA>>>0?g+1|0:g)+(gA=BA>>21)|0,g=(BA=pA+(I=(2097151&BA)<<11|ZA>>>21)|0)>>>0<I>>>0?g+1|0:g,I=(FA=BA)-(BA=-2097152&T)|0,gA=xg(K,q,-683901,-1),g=(BA=g-((FA>>>0<BA>>>0)+CA|0)|0)+l|0,W=I- -1048576|0,oA=BA-((I>>>0<4293918720)+-1|0)|0,g=(g=(pA=I+gA|0)>>>0<gA>>>0?g+1|0:g)+(gA=QA>>21)|0,g=(oA=(g=(QA=pA+(I=(2097151&QA)<<11|OA>>>21)|0)>>>0<I>>>0?g+1|0:g)-((QA>>>0<(gA=-2097152&W)>>>0)+(BA=oA)|0)|0)+GA|0,(QA=(I=QA-gA|0)+PA|0)>>>0<I>>>0&&(g=g+1|0),j=I- -1048576|0,oA=oA-((I>>>0<4293918720)+-1|0)|0,ZA=(I=gA=QA)-(gA=-2097152&j)|0,OA=g-((I>>>0<gA>>>0)+(QA=oA)|0)|0,zA=EA-(I=-2097152&_A)|0,pA=eA-((EA>>>0<I>>>0)+cA|0)|0,PA=nA-(I=-2097152&YA)|0,YA=wA-((nA>>>0<I>>>0)+yA|0)|0,g=xg(K,q,654183,0),I=l+uA|0,I=(gA=g+kA|0)>>>0<g>>>0?I+1|0:I,nA=(g=xg(x,L,-997805,-1))+((EA=gA)-(gA=-2097152&DA)|0)|0,gA=l+(I-((EA>>>0<gA>>>0)+sA|0)|0)|0,I=xg(M,KA,136657,0),g=l+(nA>>>0<g>>>0?gA+1|0:gA)|0,_A=EA=I+nA|0,nA=EA>>>0<I>>>0?g+1|0:g,FA=tA-(I=-2097152&mA)|0,wA=NA-((tA>>>0<I>>>0)+bA|0)|0,g=xg(U,d,-997805,-1),I=l,gA=g,g=xg(S,P,654183,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,EA=(g=xg(N,J,136657,0))+gA|0,gA=l+I|0,gA=EA>>>0<g>>>0?gA+1|0:gA,I=xg(v,X,-683901,-1),g=l+gA|0,g=(g=(EA=I+EA|0)>>>0<I>>>0?g+1|0:g)+TA|0,g=(I=EA+fA|0)>>>0<fA>>>0?g+1|0:g,yA=(gA=I)-(I=-2097152&WA)|0,eA=g-((gA>>>0<I>>>0)+xA|0)|0,g=xg(U,d,654183,0),I=l,gA=g,g=xg(S,P,470296,0),I=l+I|0,I=(gA=gA+g|0)>>>0<g>>>0?I+1|0:I,EA=(g=gA)+(gA=xg(N,J,-997805,-1))|0,g=l+I|0,g=XA+(EA>>>0<gA>>>0?g+1|0:g)|0,g=(I=EA+hA|0)>>>0<hA>>>0?g+1|0:g,EA=(gA=I)+(I=xg(v,X,136657,0))|0,gA=l+g|0,gA=EA>>>0<I>>>0?gA+1|0:gA,g=xg(R,dA,-683901,-1),I=l+gA|0,I=(EA=g+EA|0)>>>0<g>>>0?I+1|0:I,fA=(gA=EA)-(g=-2097152&IA)|0,tA=I-((gA>>>0<g>>>0)+VA|0)|0,I=xg(Q,0,_,0),g=l,gA=I,I=xg(n,0,Y,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,EA=(I=xg(o,0,G,0))+gA|0,gA=l+g|0,gA=EA>>>0<I>>>0?gA+1|0:gA,g=xg(w,0,p,0),I=l+gA|0,I=(EA=g+EA|0)>>>0<g>>>0?I+1|0:I,gA=xg(t,0,y,0),g=l+I|0,g=(EA=gA+EA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(e,0,h,0),I=l+g|0,I=(EA=gA+EA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(c,0,D,0),g=l+I|0,g=(EA=gA+EA|0)>>>0<gA>>>0?g+1|0:g,I=xg(f,m,F,0),gA=l+g|0,gA=(EA=I+EA|0)>>>0<I>>>0?gA+1|0:gA,g=xg(s,0,u,0),I=l+gA|0,I=(EA=g+EA|0)>>>0<g>>>0?I+1|0:I,gA=xg(r,0,k,0),g=l+I|0,g=(EA=gA+EA|0)>>>0<gA>>>0?g+1|0:g,gA=xg(C,0,b,0),I=l+g|0,I=(EA=gA+EA|0)>>>0<gA>>>0?I+1|0:I,gA=xg(i,0,H,0),g=l+I|0,gA=(I=EA=gA+EA|0)>>>0<gA>>>0?g+1|0:g,(I=(g=(a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24)>>>7|0)+I|0)>>>0<g>>>0&&(gA=gA+1|0),g=CA>>21,CA=(B=(2097151&CA)<<11|T>>>21)+I|0,I=g+gA|0,EA=CA,GA=B=(cA=I=CA>>>0<B>>>0?I+1|0:I)-(((I=CA)>>>0<4293918720)+-1|0)|0,g=(g=B>>21)+tA|0,CA=B=(I=(2097151&B)<<11|(uA=I- -1048576|0)>>>21)+fA|0,oA=g=B>>>0<I>>>0?g+1|0:g,sA=(I=B)- -1048576|0,hA=B=g-((I>>>0<4293918720)+-1|0)|0,I=(g=B>>21)+eA|0,I=(gA=(B=(2097151&B)<<11|sA>>>21)+yA|0)>>>0<B>>>0?I+1|0:I,B=gA,tA=gA=(fA=I)-(((I=gA)>>>0<4293918720)+-1|0)|0,g=(g=gA>>21)+wA|0,mA=gA=(I=(2097151&gA)<<11|(eA=I- -1048576|0)>>>21)+FA|0,bA=g=gA>>>0<I>>>0?g+1|0:g,I=xg(gA,g,-683901,-1),gA=l+nA|0,yA=g=I+_A|0,nA=g>>>0<I>>>0?gA+1|0:gA,kA=B-(I=-2097152&eA)|0,_A=tA=fA-((B>>>0<I>>>0)+tA|0)|0,g=xg(K,q,470296,0)+aA|0,I=vA+l|0,I=g>>>0<aA>>>0?I+1|0:I,aA=(B=xg(x,L,654183,0))+((gA=g)-(g=-2097152&RA)|0)|0,g=l+(I-((gA>>>0<g>>>0)+lA|0)|0)|0,g=aA>>>0<B>>>0?g+1|0:g,I=xg(M,KA,-997805,-1),gA=l+g|0,gA=(B=I+aA|0)>>>0<I>>>0?gA+1|0:gA,g=xg(mA,bA,136657,0),I=l+gA|0,I=(B=g+B|0)>>>0<g>>>0?I+1|0:I,g=xg(kA,tA,-683901,-1),I=l+I|0,fA=I=(gA=B=g+B|0)>>>0<g>>>0?I+1|0:I,wA=(I=gA)- -1048576|0,tA=B=fA-((I>>>0<4293918720)+-1|0)|0,I=(g=B>>21)+nA|0,I=(aA=(B=(2097151&B)<<11|wA>>>21)+yA|0)>>>0<B>>>0?I+1|0:I,B=aA,aA=I,eA=(I=B)- -1048576|0,I=(g=(nA=yA=aA-((I>>>0<4293918720)+-1|0)|0)>>21)+YA|0,YA=lA=(yA=(2097151&nA)<<11|eA>>>21)+PA|0,yA=lA>>>0<yA>>>0?I+1|0:I,XA=B-(I=-2097152&eA)|0,VA=aA-((B>>>0<I>>>0)+nA|0)|0,xA=gA-(I=-2097152&wA)|0,NA=fA-((gA>>>0<I>>>0)+tA|0)|0,B=(I=xg(K,q,666643,0))+(iA-(g=-2097152&qA)|0)|0,g=l+(SA-((iA>>>0<g>>>0)+UA|0)|0)|0,g=B>>>0<I>>>0?g+1|0:g,gA=(I=B)+(B=xg(x,L,470296,0))|0,I=l+g|0,I=gA>>>0<B>>>0?I+1|0:I,g=xg(M,KA,654183,0),I=l+I|0,tA=B=g+gA|0,B=B>>>0<g>>>0?I+1|0:I,iA=CA-(I=-2097152&sA)|0,nA=oA-((CA>>>0<I>>>0)+hA|0)|0,I=xg(U,d,470296,0),g=l,gA=I,I=xg(S,P,666643,0),g=l+g|0,g=(gA=gA+I|0)>>>0<I>>>0?g+1|0:g,CA=(I=gA)+(gA=xg(N,J,654183,0))|0,I=l+g|0,I=CA>>>0<gA>>>0?I+1|0:I,g=xg(v,X,-997805,-1),I=l+I|0,I=(gA=g+CA|0)>>>0<g>>>0?I+1|0:I,CA=(g=gA)+(gA=xg(R,dA,136657,0))|0,g=l+I|0,g=CA>>>0<gA>>>0?g+1|0:g,I=xg(V,JA,-683901,-1),gA=l+g|0,g=(gA=(CA=I+CA|0)>>>0<I>>>0?gA+1|0:gA)+cA|0,g=(I=CA+EA|0)>>>0<EA>>>0?g+1|0:g,CA=I,I=I-(gA=-2097152&uA)|0,CA=g-((CA>>>0<gA>>>0)+GA|0)|0,g=BA>>21,BA=(gA=(2097151&BA)<<11|W>>>21)+I|0,I=g+CA|0,aA=BA,hA=gA=(oA=I=BA>>>0<gA>>>0?I+1|0:I)-(((I=BA)>>>0<4293918720)+-1|0)|0,g=(g=gA>>21)+nA|0,DA=gA=(I=(2097151&gA)<<11|(vA=I- -1048576|0)>>>21)+iA|0,FA=g=gA>>>0<I>>>0?g+1|0:g,g=xg(gA,g,-683901,-1),I=l+B|0,I=(gA=g+tA|0)>>>0<g>>>0?I+1|0:I,g=xg(mA,bA,-997805,-1),I=l+I|0,I=(B=g+gA|0)>>>0<g>>>0?I+1|0:I,g=xg(kA,_A,136657,0),gA=l+I|0,iA=B=g+B|0,CA=B>>>0<g>>>0?gA+1|0:gA,I=xg(k,0,_,0),g=l,B=I,I=xg(F,0,Y,0),g=l+g|0,g=(B=B+I|0)>>>0<I>>>0?g+1|0:g,I=xg(H,0,G,0),g=l+g|0,g=(B=I+B|0)>>>0<I>>>0?g+1|0:g,gA=(I=B)+(B=xg(b,0,p,0))|0,I=l+g|0,I=gA>>>0<B>>>0?I+1|0:I,(g=(B=MA>>>7&2097151)+gA|0)>>>0<B>>>0&&(I=I+1|0),EA=g,B=I,I=xg(H,0,_,0),g=l,BA=(gA=I)+(I=xg(k,0,Y,0))|0,gA=l+g|0,gA=BA>>>0<I>>>0?gA+1|0:gA,g=xg(b,0,G,0),I=l+gA|0,g=(gA=BA=g+BA|0)>>>0<g>>>0?I+1|0:I,(I=BA+(gA=2097151&((3&$)<<30|z>>>2))|0)>>>0<gA>>>0&&(g=g+1|0),nA=I,BA=g,UA=I- -1048576|0,eA=g=g-((I>>>0<4293918720)+-1|0)|0,I=B+(gA=g>>>21|0)|0,fA=g=(cA=I=(EA=(g=(2097151&g)<<11|UA>>>21)+EA|0)>>>0<g>>>0?I+1|0:I)-(((I=EA)>>>0<4293918720)+-1|0)|0,I=rA+((2097151&g)<<11|(lA=I- -1048576|0)>>>21)|0,g=HA+(g>>21)|0,g=I>>>0<rA>>>0?g+1|0:g,rA=(B=xg(x,L,666643,0))+((gA=I)-(I=-2097152&jA)|0)|0,I=l+(g-((gA>>>0<I>>>0)+LA|0)|0)|0,I=rA>>>0<B>>>0?I+1|0:I,g=xg(M,KA,470296,0),gA=l+I|0,gA=(B=g+rA|0)>>>0<g>>>0?gA+1|0:gA,I=xg(DA,FA,136657,0),g=l+gA|0,g=(B=I+B|0)>>>0<I>>>0?g+1|0:g,gA=(I=B)+(B=xg(mA,bA,654183,0))|0,I=l+g|0,I=gA>>>0<B>>>0?I+1|0:I,B=xg(kA,_A,-997805,-1),g=l+I|0,uA=gA=B+gA|0,tA=g=gA>>>0<B>>>0?g+1|0:g,sA=(I=gA)- -1048576|0,rA=B=g-((I>>>0<4293918720)+-1|0)|0,gA=(I=B>>21)+CA|0,CA=B=(g=(2097151&B)<<11|sA>>>21)+iA|0,B=gA=B>>>0<g>>>0?gA+1|0:gA,wA=(I=CA)- -1048576|0,iA=gA=gA-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+NA|0,TA=GA=(gA=(2097151&gA)<<11|wA>>>21)+xA|0,GA=GA>>>0<gA>>>0?g+1|0:g,I=aA-(g=-2097152&vA)|0,gA=oA-((aA>>>0<g>>>0)+hA|0)|0,gA=(g=QA>>21)+gA|0,oA=gA=(QA=(aA=I)+(I=(2097151&QA)<<11|j>>>21)|0)>>>0<I>>>0?gA+1|0:gA,hA=gA=gA-(((I=QA)>>>0<4293918720)+-1|0)|0,SA=g=gA>>21,I=xg(MA=(2097151&gA)<<11|(vA=I- -1048576|0)>>>21,g,-683901,-1),g=l+B|0,g=(gA=I+CA|0)>>>0<I>>>0?g+1|0:g,xA=gA-(I=-2097152&wA)|0,NA=g-((gA>>>0<I>>>0)+iA|0)|0,I=xg(MA,SA,136657,0),gA=l+tA|0,gA=(g=I+uA|0)>>>0<I>>>0?gA+1|0:gA,HA=g-(I=-2097152&sA)|0,LA=gA-((g>>>0<I>>>0)+rA|0)|0,B=(g=xg(M,KA,666643,0))+(EA-(I=-2097152&lA)|0)|0,I=l+(cA-((EA>>>0<I>>>0)+fA|0)|0)|0,I=B>>>0<g>>>0?I+1|0:I,g=xg(DA,FA,-997805,-1),I=l+I|0,I=(B=g+B|0)>>>0<g>>>0?I+1|0:I,gA=(g=B)+(B=xg(mA,bA,470296,0))|0,g=l+I|0,g=gA>>>0<B>>>0?g+1|0:g,B=(I=xg(kA,_A,654183,0))+gA|0,gA=l+g|0,cA=B,iA=B>>>0<I>>>0?gA+1|0:gA,CA=BA,I=xg(b,0,_,0),g=l,B=I,I=xg(H,0,Y,0),g=l+g|0,I=g=(B=B+I|0)>>>0<I>>>0?g+1|0:g,(g=(g=B)+(B=O>>>5&2097151)|0)>>>0<B>>>0&&(I=I+1|0),EA=g,B=I,g=2097151&Z,gA=xg(b,0,Y,0)+g|0,I=l,BA=gA,tA=gA=(fA=I=gA>>>0<g>>>0?I+1|0:I)-(((I=gA)>>>0<4293918720)+-1|0)|0,I=(2097151&gA)<<11|(lA=I- -1048576|0)>>>21,gA=(gA>>>21|0)+B|0,rA=gA=(B=EA=I+EA|0)>>>0<I>>>0?gA+1|0:gA,uA=(I=B)- -1048576|0,aA=gA=gA-((I>>>0<4293918720)+-1|0)|0,I=(g=gA>>>21|0)+CA|0,I=(EA=(gA=(2097151&gA)<<11|uA>>>21)+nA|0)>>>0<gA>>>0?I+1|0:I,EA=(g=xg(DA,FA,654183,0))+((CA=EA)-(gA=-2097152&UA)|0)|0,gA=l+(I-((16383&eA)+(CA>>>0<gA>>>0)|0)|0)|0,I=xg(mA,bA,666643,0),g=l+(EA>>>0<g>>>0?gA+1|0:gA)|0,g=(CA=I+EA|0)>>>0<I>>>0?g+1|0:g,gA=xg(kA,_A,470296,0),I=l+g|0,sA=CA=gA+CA|0,EA=gA=(nA=I=CA>>>0<gA>>>0?I+1|0:I)-(((I=CA)>>>0<4293918720)+-1|0)|0,g=(g=gA>>21)+iA|0,eA=gA=(I=(2097151&gA)<<11|(wA=I- -1048576|0)>>>21)+cA|0,CA=g=gA>>>0<I>>>0?g+1|0:g;cA=(I=gA)- -1048576|0,I=(g=(gA=iA=g-((I>>>0<4293918720)+-1|0)|0)>>21)+LA|0,iA=(HA=UA=(iA=(2097151&gA)<<11|cA>>>21)+HA|0)>>>0<iA>>>0?I+1|0:I,g=xg(MA,SA,-997805,-1),I=l+CA|0,I=(eA=g+eA|0)>>>0<g>>>0?I+1|0:I,LA=(CA=eA)-(g=-2097152&cA)|0,UA=I-((CA>>>0<g>>>0)+gA|0)|0,I=xg(MA,SA,654183,0),gA=l+nA|0,gA=(g=I+sA|0)>>>0<I>>>0?gA+1|0:gA,eA=g-(I=-2097152&wA)|0,cA=gA-((g>>>0<I>>>0)+EA|0)|0,gA=(I=xg(DA,FA,470296,0))+(B-(g=-2097152&uA)|0)|0,g=l+(rA-((16383&aA)+(B>>>0<g>>>0)|0)|0)|0,g=gA>>>0<I>>>0?g+1|0:g,I=xg(kA,_A,666643,0),g=l+g|0,EA=B=I+gA|0,CA=B>>>0<I>>>0?g+1|0:g,I=xg(DA,FA,666643,0),gA=l+(fA-((4095&tA)+(BA>>>0<(g=-2097152&lA)>>>0)|0)|0)|0,aA=gA=(B=I+(BA-g|0)|0)>>>0<I>>>0?gA+1|0:gA,fA=(I=B)- -1048576|0,nA=gA=gA-((I>>>0<4293918720)+-1|0)|0,g=(I=gA>>21)+CA|0,tA=BA=(gA=(2097151&gA)<<11|fA>>>21)+EA|0,EA=g=BA>>>0<gA>>>0?g+1|0:g,CA=gA=g-(((I=BA)>>>0<4293918720)+-1|0)|0,g=(2097151&gA)<<11|(rA=I- -1048576|0)>>>21,gA=(gA>>21)+cA|0,cA=BA=g+eA|0,BA=BA>>>0<g>>>0?gA+1|0:gA,I=xg(MA,SA,470296,0),g=l+EA|0,CA=(g=(gA=I+tA|0)>>>0<I>>>0?g+1|0:g)-(((EA=gA)>>>0<(gA=-2097152&rA)>>>0)+CA|0)|0,tA=I=EA-gA|0,I=xg(MA,SA,666643,0),gA=l+(aA-((B>>>0<(g=-2097152&fA)>>>0)+nA|0)|0)|0,nA=EA=I+(B-g|0)|0,B=(2097151&(gA=EA>>>0<I>>>0?gA+1|0:gA))<<11|(I=EA)>>>21,I=(g=gA>>21)+CA|0,CA=gA=tA+B|0,gA=(I=(g=gA)>>>0<B>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|g>>>21,g=gA+BA|0,EA=B=I+cA|0,I=(I=(g=B>>>0<I>>>0?g+1|0:g)>>21)+UA|0,rA=B=(g=(2097151&g)<<11|B>>>21)+LA|0,g=(g=(I=B>>>0<g>>>0?I+1|0:I)>>21)+iA|0,uA=B=(I=(2097151&I)<<11|B>>>21)+HA|0,gA=(I=(g=B>>>0<I>>>0?g+1|0:g)>>21)+NA|0,sA=B=(g=(2097151&g)<<11|B>>>21)+xA|0,B=(2097151&(gA=(I=B)>>>0<g>>>0?gA+1|0:gA))<<11|I>>>21,I=(g=gA>>21)+GA|0,wA=gA=B+TA|0,gA=(I=(g=gA)>>>0<B>>>0?I+1|0:I)>>21,I=(2097151&I)<<11|g>>>21,g=gA+VA|0,eA=B=I+XA|0,I=(I=(g=B>>>0<I>>>0?g+1|0:g)>>21)+yA|0,cA=B=(g=(2097151&g)<<11|B>>>21)+YA|0,g=(g=(I=B>>>0<g>>>0?I+1|0:I)>>21)+pA|0,GA=B=(I=(2097151&I)<<11|B>>>21)+zA|0,gA=(I=(g=B>>>0<I>>>0?g+1|0:g)>>21)+OA|0,fA=B=(g=(2097151&g)<<11|B>>>21)+ZA|0,I=B,g=(oA-((QA>>>0<(B=-2097152&vA)>>>0)+hA|0)|0)+(g=(gA=I>>>0<g>>>0?gA+1|0:gA)>>21)|0,tA=gA=(gA=(2097151&gA)<<11|I>>>21)+(I=QA-B|0)|0,aA=I=(g=gA>>>0<I>>>0?g+1|0:g)>>21,g=xg(hA=(2097151&g)<<11|gA>>>21,I,666643,0),gA=l,nA=g=g+(I=2097151&nA)|0,B=gA=g>>>0<I>>>0?gA+1|0:gA,E[0|AA]=g,E[A+1|0]=(255&gA)<<24|g>>>8,I=2097151&CA,BA=xg(hA,aA,470296,0)+I|0,g=l,g=BA>>>0<I>>>0?g+1|0:g,g=(I=B>>21)+g|0,g=(CA=QA=(gA=BA)+(BA=(2097151&B)<<11|nA>>>21)|0)>>>0<BA>>>0?g+1|0:g,gA=CA,E[A+4|0]=(2047&g)<<21|gA>>>11,I=g,E[A+3|0]=(7&I)<<29|gA>>>3,g=A,BA=2097151&EA,QA=xg(hA,aA,654183,0)+BA|0,gA=l,gA=QA>>>0<BA>>>0?gA+1|0:gA,BA=I,I=(I>>=21)+gA|0,EA=QA=(BA=(2097151&BA)<<11|CA>>>21)+QA|0,gA=I=QA>>>0<BA>>>0?I+1|0:I,E[g+6|0]=(63&I)<<26|QA>>>6,QA=0,I=iA=2097151&CA,E[g+2|0]=31&((65535&B)<<16|nA>>>16)|I<<5,BA=g,I=2097151&rA,B=xg(hA,aA,-997805,-1)+I|0,g=l,g=B>>>0<I>>>0?g+1|0:g,g=(I=gA>>21)+g|0,nA=gA=(CA=B)+(B=(2097151&gA)<<11|EA>>>21)|0,g=gA>>>0<B>>>0?g+1|0:g,E[BA+9|0]=(511&g)<<23|gA>>>9,B=g,I=g,g=gA,E[BA+8|0]=(1&I)<<31|g>>>1,CA=0,g=rA=2097151&EA,E[BA+5|0]=(524287&QA)<<13|iA>>>19|g<<2,g=2097151&uA,gA=xg(hA,aA,136657,0)+g|0,I=l,I=gA>>>0<g>>>0?I+1|0:I,g=B>>21,QA=(B=(2097151&B)<<11|nA>>>21)+gA|0,gA=I+g|0,EA=QA,gA=QA>>>0<B>>>0?gA+1|0:gA,E[BA+12|0]=(4095&gA)<<20|QA>>>12,g=gA,E[BA+11|0]=(15&g)<<28|QA>>>4,QA=0,B=iA=2097151&nA,E[BA+7|0]=(16383&CA)<<18|rA>>>14|B<<7,B=BA,gA=2097151&sA,BA=xg(hA,aA,-683901,-1)+gA|0,I=l,I=BA>>>0<gA>>>0?I+1|0:I,gA=BA,BA=(2097151&g)<<11|EA>>>21,g=(g>>21)+I|0,I=g=(CA=gA+BA|0)>>>0<BA>>>0?g+1|0:g,E[B+14|0]=(127&I)<<25|CA>>>7,BA=0,B=nA=2097151&EA,E[A+10|0]=(131071&QA)<<15|iA>>>17|B<<4,I>>=21,g=(EA=(gA=(2097151&g)<<11|CA>>>21)+(2097151&wA)|0)>>>0<gA>>>0?I+1|0:I,B=EA,E[A+17|0]=(1023&g)<<22|B>>>10,I=g,E[A+16|0]=(3&I)<<30|B>>>2,gA=0,B=aA=2097151&CA,E[A+13|0]=(1048575&BA)<<12|nA>>>20|B<<1,I>>=21,CA=BA=(g=(2097151&g)<<11|EA>>>21)+(2097151&eA)|0,I=BA>>>0<g>>>0?I+1|0:I,B=BA,E[A+20|0]=(8191&I)<<19|B>>>13,g=I,E[A+19|0]=(31&I)<<27|B>>>5,B=nA=2097151&EA,E[A+15|0]=(32767&gA)<<17|aA>>>15|B<<6,gA=I>>=21,EA=aA=(B=(2097151&g)<<11|BA>>>21)+(2097151&cA)|0,E[(BA=A)+21|0]=EA,I=CA,E[BA+18|0]=(262143&QA)<<14|nA>>>18|I<<3,B=EA>>>0<B>>>0?gA+1|0:gA,E[BA+22|0]=(255&B)<<24|EA>>>8,g=gA=(I=B)>>21,QA=CA=(I=(2097151&I)<<11|EA>>>21)+(2097151&GA)|0,g=CA>>>0<I>>>0?g+1|0:g,gA=CA,E[BA+25|0]=(2047&g)<<21|gA>>>11,I=g,E[BA+24|0]=(7&I)<<29|gA>>>3,gA=BA,I>>=21,(BA=(g=(2097151&g)<<11|CA>>>21)+(2097151&fA)|0)>>>0<g>>>0&&(I=I+1|0),g=I,E[gA+27|0]=(63&I)<<26|BA>>>6,gA=0,B=31&((65535&B)<<16|EA>>>16),I=EA=2097151&QA,E[A+23|0]=B|I<<5,QA=(2097151&g)<<11|BA>>>21,g>>=21,g=(nA=QA+(2097151&tA)|0)>>>0<QA>>>0?g+1|0:g,B=QA=nA,E[A+31|0]=(131071&g)<<15|B>>>17,I=g,E[A+30|0]=(511&I)<<23|B>>>9,E[A+29|0]=(1&I)<<31|B>>>1,g=0,BA&=2097151,E[A+26|0]=(524287&gA)<<13|EA>>>19|BA<<2,E[A+28|0]=(16383&g)<<18|BA>>>14|B<<7}(Q,r+160|0,r+288|0,r+224|0),KI(r+288|0,64),KI(r+224|0,64),I&&(n[I>>2]=64,n[I+4>>2]=0),D=r+560|0,0}function T(A,I,g,B){var C;D=C=D-2272|0,uA(C+2016|0,I),uA(C+1760|0,B),zI(C+480|0,g),cg(C+320|0,g),jI(C,C+320|0),tI(C+320|0,C,C+480|0),jI(C+160|0,C+320|0),zI(I=C+640|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(I=C+800|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(I=C+960|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(I=C+1120|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(I=C+1280|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(I=C+1440|0,C+160|0),tI(C+320|0,C,I),jI(C+160|0,C+320|0),zI(C+1600|0,C+160|0),iB(A),Vg(A+40|0),Vg(A+80|0),B=255;A:{for(;;){if(!(a[(g=B)+(C+2016|0)|0]|a[(C+1760|0)+g|0])){if(B=g+-1|0,g)continue;break A}break}if(!((0|g)<0))for(;pI(C+320|0,A),(0|(g=E[(I=g)+(C+2016|0)|0]))>=1?(jI(C+160|0,C+320|0),tI(C+320|0,C+160|0,(C+480|0)+o((254&g)>>>1|0,160)|0)):(0|g)>-1||(jI(C+160|0,C+320|0),cI(C+320|0,C+160|0,(C+480|0)+o((0-g&254)>>>1|0,160)|0)),(0|(g=E[I+(C+1760|0)|0]))>=1?(jI(C+160|0,C+320|0),wI(C+320|0,C+160|0,o((254&g)>>>1|0,120)+2272|0)):(0|g)>-1||(jI(C+160|0,C+320|0),sI(C+320|0,C+160|0,o((0-g&254)>>>1|0,120)+2272|0)),Ig(A,C+320|0),g=I+-1|0,(0|I)>0;);}D=C+2272|0}function W(A,I,g,B){var C,Q=0,i=0,r=0,o=0,e=0,t=0,c=0;if(D=C=D-704|0,g|B)if(e=(t=n[(Q=A)+72>>2])+(r=(i=g)<<3)|0,i=(o=n[Q+76>>2])+(B<<3|i>>>29)|0,i=e>>>0<r>>>0?i+1|0:i,n[Q+72>>2]=e,n[Q+76>>2]=i,Q=n[Q+64>>2],r=n[A+68>>2],(0|i)==(0|o)&e>>>0<t>>>0|i>>>0<o>>>0&&((Q=Q+1|0)>>>0<1&&(r=r+1|0),n[(i=A)+64>>2]=Q,n[i+68>>2]=r),(Q=(c=B>>>29|0)+Q|0)>>>0<c>>>0&&(r=r+1|0),n[(i=A)+64>>2]=Q,n[i+68>>2]=r,(0|B)==(0|(r=e=0-(128<(i=127&((7&o)<<29|t>>>3))>>>0)|0))&(Q=o=128-i|0)>>>0<=g>>>0|r>>>0<B>>>0){for(Q=0,r=0;E[80+(A+(c=Q+i|0)|0)|0]=a[I+Q|0],(Q=Q+1|0)>>>0<1&&(r=r+1|0),(0|o)!=(0|Q)|(0|r)!=(0|e););if(G(A,A+80|0,C,r=C+640|0),I=I+o|0,!(B=B-((g>>>0<o>>>0)+e|0)|0)&(g=g-o|0)>>>0>127|B>>>0>0)for(;G(A,I,C,r),I=I+128|0,i=B+-1|0,(g=g+-128|0)>>>0<4294967168&&(i=i+1|0),B=i,!i&g>>>0>127|i>>>0>0;);if(g|B)for(Q=0,r=0;E[80+(A+Q|0)|0]=a[I+Q|0],(i=Q+1|0)>>>0<1&&(r=r+1|0),(0|g)!=(0|(Q=i))|(0|B)!=(0|r););KI(C,704)}else for(Q=g,o=(g=!B&g>>>0>1|B>>>0>0)?Q:1,B=g?B:0,Q=0,r=0;E[80+(A+(t=Q+i|0)|0)|0]=a[I+Q|0],(g=Q+1|0)>>>0<1&&(r=r+1|0),(0|o)!=(0|(Q=g))|(0|B)!=(0|r););return D=C+704|0,0}function j(A,I,g){var B,C=0,Q=0;if(g>>>0>=512)return w(0|A,0|I,0|g),A;B=A+g|0;A:if(3&(A^I))if(B>>>0<4)g=A;else if((C=B+-4|0)>>>0<A>>>0)g=A;else for(g=A;E[0|g]=a[0|I],E[g+1|0]=a[I+1|0],E[g+2|0]=a[I+2|0],E[g+3|0]=a[I+3|0],I=I+4|0,(g=g+4|0)>>>0<=C>>>0;);else{I:if((0|g)<1)g=A;else if(3&A)for(g=A;;){if(E[0|g]=a[0|I],I=I+1|0,(g=g+1|0)>>>0>=B>>>0)break I;if(!(3&g))break}else g=A;if(!((C=-4&B)>>>0<64||g>>>0>(Q=C+-64|0)>>>0))for(;n[g>>2]=n[I>>2],n[g+4>>2]=n[I+4>>2],n[g+8>>2]=n[I+8>>2],n[g+12>>2]=n[I+12>>2],n[g+16>>2]=n[I+16>>2],n[g+20>>2]=n[I+20>>2],n[g+24>>2]=n[I+24>>2],n[g+28>>2]=n[I+28>>2],n[g+32>>2]=n[I+32>>2],n[g+36>>2]=n[I+36>>2],n[g+40>>2]=n[I+40>>2],n[g+44>>2]=n[I+44>>2],n[g+48>>2]=n[I+48>>2],n[g+52>>2]=n[I+52>>2],n[g+56>>2]=n[I+56>>2],n[g+60>>2]=n[I+60>>2],I=I- -64|0,(g=g- -64|0)>>>0<=Q>>>0;);if(g>>>0>=C>>>0)break A;for(;n[g>>2]=n[I>>2],I=I+4|0,(g=g+4|0)>>>0<C>>>0;);}if(g>>>0<B>>>0)for(;E[0|g]=a[0|I],I=I+1|0,(0|B)!=(0|(g=g+1|0)););return A}function Z(A,I,g,B,C,Q,i,a){A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,i|=0,a|=0;var r,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0;D=r=D-16|0,n[r+12>>2]=0,Zg(a);A:{if(B){w=4&a;I:{g:{B:{for(;;){o=c;C:{Q:{for(;;){if(y=E[g+o|0],255!=(0|(t=w?aI(y):rI(y))))break Q;if(!C)break C;if(!bg(C,y))break B;if(!((o=o+1|0)>>>0<B>>>0))break}A=c+1|0,n[r+12>>2]=A>>>0<B>>>0?B:A;break g}if(s=(s<<6)+t|0,(t=e+6|0)>>>0<8)e=t;else{if(e=e+-2|0,f>>>0>=I>>>0){n[r+12>>2]=o,n[8960]=68,o=1;break I}E[A+f|0]=s>>>e,f=f+1|0}if((c=o+1|0)>>>0<B>>>0)continue}break}n[r+12>>2]=c;break g}n[r+12>>2]=o}o=0}if(!(e>>>0<=4)){A=-1;break A}}if(A=-1,!((-1<<e^-1)&s|o)&&(2&a||!(A=function(A,I,g,B,C){var Q=0,i=0,a=0;I:if(C)for(Q=n[g>>2];;){g:{if(Q>>>0>=I>>>0)n[8960]=68;else{if(61==(0|(i=E[A+Q|0]))){C=C+-1|0;break g}if(B&&bg(B,i))break g;n[8960]=28}a=-1;break I}if(Q=Q+1|0,n[g>>2]=Q,!C)break}return a}(g,B,r+12|0,C,e>>>1|0)))){A=0;I:if(C&&!((o=n[r+12>>2])>>>0>=B>>>0)){g:{for(;;){if(!bg(C,E[g+o|0]))break g;if((0|(o=o+1|0))==(0|B))break}n[r+12>>2]=B;break I}n[r+12>>2]=o}h=f}}return I=n[r+12>>2],i?n[i>>2]=I+g:(0|I)!=(0|B)&&(n[8960]=28,A=-1),Q&&(n[Q>>2]=h),D=r+16|0,0|A}function O(A,I){var g;for(D=g=D-192|0,U(g+144|0,I),U(g+96|0,g+144|0),U(g+96|0,g+96|0),H(g+96|0,I,g+96|0),H(g+144|0,g+144|0,g+96|0),U(g+48|0,g+144|0),H(g+96|0,g+96|0,g+48|0),U(g+48|0,g+96|0),I=1;U(g+48|0,g+48|0),5!=(0|(I=I+1|0)););for(H(g+96|0,g+48|0,g+96|0),U(g+48|0,g+96|0),I=1;U(g+48|0,g+48|0),10!=(0|(I=I+1|0)););for(H(g+48|0,g+48|0,g+96|0),U(g,g+48|0),I=1;U(g,g),20!=(0|(I=I+1|0)););for(H(g+48|0,g,g+48|0),U(g+48|0,g+48|0),I=1;U(g+48|0,g+48|0),10!=(0|(I=I+1|0)););for(H(g+96|0,g+48|0,g+96|0),U(g+48|0,g+96|0),I=1;U(g+48|0,g+48|0),50!=(0|(I=I+1|0)););for(H(g+48|0,g+48|0,g+96|0),U(g,g+48|0),I=1;U(g,g),100!=(0|(I=I+1|0)););for(H(g+48|0,g,g+48|0),U(g+48|0,g+48|0),I=1;U(g+48|0,g+48|0),50!=(0|(I=I+1|0)););for(H(g+96|0,g+48|0,g+96|0),U(g+96|0,g+96|0),I=1;U(g+96|0,g+96|0),5!=(0|(I=I+1|0)););H(A,g+96|0,g+144|0),D=g+192|0}function z(A,I,g){var B,C,Q,E=0;D=B=D-16|0,C=n[A+20>>2],n[A+20>>2]=0,Q=n[A+4>>2],n[A+4>>2]=0,E=-26;A:{I:{g:switch(g+-1|0){case 1:if(E=-32,eI(I,35621,9))break A;I=I+9|0;break I;case 0:break g;default:break A}if(E=-32,eI(I,35631,8))break A;I=I+8|0}if(!eI(I,35640,3)&&(I=XA(I+3|0,B+12|0))){if(E=-26,19!=n[B+12>>2])break A;if(!eI(I,35644,3)&&(I=XA(I+3|0,B+12|0))&&(n[A+44>>2]=n[B+12>>2],!eI(I,35648,3)&&(I=XA(I+3|0,B+12|0))&&(n[A+40>>2]=n[B+12>>2],!eI(I,35652,3)&&(I=XA(I+3|0,B+12|0))&&(g=n[B+12>>2],n[A+48>>2]=g,n[A+52>>2]=g,36==(0|(g=a[0|I]))&&(n[B+12>>2]=C,I=36==(0|g)?I+1|0:I,!Z(n[A+16>>2],C,I,VA(I),0,B+12|0,B+8|0,3)&&(n[A+20>>2]=n[B+12>>2],I=n[B+8>>2],36==(0|(g=a[0|I]))&&(n[B+12>>2]=Q,I=36==(0|g)?I+1|0:I,!Z(n[A>>2],Q,I,VA(I),0,B+12|0,B+8|0,3)))))))){if(n[A+4>>2]=n[B+12>>2],I=n[B+8>>2],E=DA(A))break A;return D=B+16|0,a[0|I]?-32:0}}E=-32}return D=B+16|0,E}function $(A,I){var g,B,C,Q,i,a,r=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0;(r=c=n[A+60>>2])|(e=n[A+56>>2])&&(c=e,E[(y=e+A|0)- -64|0]=1,(e=e+1|0)>>>0<1&&(r=r+1|0),!r&e>>>0<=15|r>>>0<0&&eA(y+65|0,0,15-c|0),E[A+80|0]=1,R(A,A- -64|0,16,0)),a=n[A+52>>2],u=n[A+48>>2],s=n[A+44>>2],r=n[A+24>>2],c=n[A+28>>2]+(r>>>26|0)|0,t=n[A+32>>2]+(c>>>26|0)|0,h=(c=(D=(-67108864|(g=n[A+36>>2]+(t>>>26|0)|0))+((Q=(B=67108863&t)+((C=(f=67108863&c)+((t=(r=(67108863&r)+((D=n[A+20>>2]+o(g>>>26|0,5)|0)>>>26|0)|0)+((y=5+(e=67108863&D)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)&r|(w=t)&(t=67108863&(i=(D>>>31|0)-1|0)),w=I,r=0,(e=(y=e&c|t&y|h<<26)+n[A+40>>2]|0)>>>0<y>>>0&&(r=1),fg(w,e),e=0,(f=(w=s)+(h=(s=c&f|t&C)<<20|h>>>6)|0)>>>0<h>>>0&&(e=1),w=f,f=r,h=w+r|0,r=e,r=h>>>0<f>>>0?r+1|0:r,fg(y=I+4|0,h),e=0,(s=(f=u)+(t=(u=c&B|t&Q)<<14|s>>>12)|0)>>>0<t>>>0&&(e=1),f=s,s=r,t=f+r|0,r=e,r=t>>>0<s>>>0?r+1|0:r,fg(w=I+8|0,t),fg(e=I+12|0,r=r+(c=(I=(D&i|c&g)<<8|u>>>18)+a|0)|0),KI(A,88)}function AA(A,I,g,B,C){A|=0,I|=0,g|=0,B|=0;var Q=0,i=0,n=0,r=0,e=0,f=0,y=0,s=0,w=0,h=0;Zg(C|=0),i=(Q=(B>>>0)/3|0)<<2,(Q=o(Q,-3)+B|0)&&(i=2&C?(2|i)+(Q>>>1|0)|0:i+4|0);A:{I:{s=i;g:{B:{if(i>>>0<I>>>0){if(!(4&C)){if(n=0,!B)break g;C=0,Q=0;break B}if(n=0,!B)break g;for(C=0,Q=0;;){for(e=a[g+r|0]|e<<8,C=C+8|0;f=Q,y=C,w=A+Q|0,h=bI(e>>>(C=C+-6|0)&63),E[0|w]=h,Q=Q+1|0,C>>>0>5;);if((0|(r=r+1|0))==(0|B))break}if(n=Q,!C)break g;w=A+Q|0,h=bI(e<<12-y&63),E[0|w]=h,n=f+2|0;break g}Gg(),t()}for(;;){for(e=a[g+r|0]|e<<8,C=C+8|0;f=Q,y=C,w=A+Q|0,h=mI(e>>>(C=C+-6|0)&63),E[0|w]=h,Q=Q+1|0,C>>>0>5;);if((0|(r=r+1|0))==(0|B))break}n=Q,C&&(w=A+Q|0,h=mI(e<<12-y&63),E[0|w]=h,n=f+2|0)}if(s>>>0>=(Q=n)>>>0){if(i>>>0>Q>>>0)break I;i=Q;break A}c(35568,35587,230,35603),t()}eA(A+Q|0,61,i-Q|0)}return eA(A+i|0,0,((g=i+1|0)>>>0<I>>>0?I:g)-i|0),0|A}function IA(A,I,g,B){var C=0,Q=0,i=0,r=0,o=0,e=0;A:{if((Q=n[A+56>>2])|(C=n[A+60>>2])){if(e=A,o=r=16-Q|0,o=(r=(0|B)==(0|(i=0-((16<Q>>>0)+C|0)|0))&r>>>0>g>>>0|i>>>0>B>>>0)?g:o,r=i=r?B:i,i|o){if(E[(A+Q|0)- -64|0]=a[0|I],C=1,Q=0,1!=(0|o)|r)for(;i=C+n[A+56>>2]|0,E[(A+i|0)- -64|0]=a[I+C|0],(C=C+1|0)>>>0<1&&(Q=Q+1|0),(0|o)!=(0|C)|(0|Q)!=(0|r););C=n[A+60>>2],i=n[A+56>>2]}else i=Q;if(Q=C+r|0,(i=(C=o)+i|0)>>>0<C>>>0&&(Q=Q+1|0),C=i,n[e+56>>2]=C,n[e+60>>2]=Q,!Q&C>>>0<16|Q>>>0<0)break A;R(A,A- -64|0,16,0),n[A+56>>2]=0,n[A+60>>2]=0,g=(Q=g)-(C=o)|0,B=B-((Q>>>0<C>>>0)+r|0)|0,I=I+C|0}if(!B&g>>>0>=16|B>>>0>0&&(R(A,I,Q=-16&g,B),g&=15,B=0,I=I+Q|0),g|B){for(C=0,Q=0;e=C+n[A+56>>2]|0,E[(A+e|0)- -64|0]=a[I+C|0],(C=C+1|0)>>>0<1&&(Q=Q+1|0),(0|g)!=(0|C)|(0|B)!=(0|Q););I=A,i=A,B=B+n[A+60>>2]|0,(A=g+n[A+56>>2]|0)>>>0<g>>>0&&(B=B+1|0),n[i+56>>2]=A,n[I+60>>2]=B}}}function gA(A,I,g){var B,C=0;B=C=D,D=C=C-448&-64,!A|!I||(vI(C- -64|0,0,0,64),fg(C+60|0,n[I+48>>2]),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,n[I+4>>2]),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,n[I+44>>2]),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,n[I+40>>2]),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,19),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,g),Tg(C- -64|0,C+60|0,4,0),fg(C+60|0,n[I+12>>2]),Tg(C- -64|0,C+60|0,4,0),(g=n[I+8>>2])&&(Tg(C- -64|0,g,n[I+12>>2],0),1&E[I+56|0]&&(KI(n[I+8>>2],n[I+12>>2]),n[I+12>>2]=0)),fg(C+60|0,n[I+20>>2]),Tg(C- -64|0,C+60|0,4,0),(g=n[I+16>>2])&&Tg(C- -64|0,g,n[I+20>>2],0),fg(C+60|0,n[I+28>>2]),Tg(C- -64|0,C+60|0,4,0),(g=n[I+24>>2])&&(Tg(C- -64|0,g,n[I+28>>2],0),2&a[I+56|0]&&(KI(n[I+24>>2],n[I+28>>2]),n[I+28>>2]=0)),fg(C+60|0,n[I+36>>2]),Tg(C- -64|0,C+60|0,4,0),(g=n[I+32>>2])&&Tg(C- -64|0,g,n[I+36>>2],0),og(C- -64|0,A,64)),D=B}function BA(A,I,g,B,C,Q,i,r,o,e){var c,f=0,y=0,s=0,w=0,h=0;D=c=D-352|0,g&&(n[g>>2]=0,n[g+4>>2]=0),B&&(E[0|B]=255),h=-1;A:{if(!(!i&Q>>>0<17|i>>>0<0)){if(f=i+-1|0,(y=Q+-17|0)>>>0<4294967279&&(f=f+1|0),s=y,y=f,!f&s>>>0>=4294967279|f>>>0>0)break A;IB(c+32|0,64,w=A+32|0,A),Og(c+96|0,c+32|0),KI(c+32|0,64),Lg(c+96|0,r,o,e),Lg(c+96|0,35712,0-o&15,0),eA(c+32|0,0,64),E[c+32|0]=a[0|C],uI(c+32|0,c+32|0,64,0,w,1,A),r=a[c+32|0],E[c+32|0]=a[0|C],Lg(c+96|0,c+32|0,64,0),Lg(c+96|0,C=C+1|0,s,y),Lg(c+96|0,35712,15&(f=Q+-1|0),0),LI(c+24|0,o,e),Lg(c+96|0,c+24|0,8,0),f=i,(Q=Q+47|0)>>>0<47&&(f=f+1|0),LI(o=c+24|0,Q,f),Lg(c+96|0,c+24|0,8,0),zg(c+96|0,c),KI(c+96|0,256),hI(c,C+s|0,16)?KI(c,16):(uI(I,C,s,y,w,2,A),ZI(A+36|0,c),VI(w),(2&r||RI(w,4))&&q(A),g&&(n[g>>2]=s,n[g+4>>2]=y),h=0,B&&(E[0|B]=r))}return D=c+352|0,h}Gg(),t()}function CA(A,I){var g,B=0;for(D=g=D-1760|0,zI(g+480|0,I),cg(g+320|0,I),jI(g,g+320|0),tI(g+320|0,g,g+480|0),jI(g+160|0,g+320|0),zI(I=g+640|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(I=g+800|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(I=g+960|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(I=g+1120|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(I=g+1280|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(I=g+1440|0,g+160|0),tI(g+320|0,g,I),jI(g+160|0,g+320|0),zI(g+1600|0,g+160|0),kg(A),I=252;cg(g+320|0,A),B=I,(0|(I=E[I+34208|0]))>=1?(jI(g+160|0,g+320|0),tI(g+320|0,g+160|0,(g+480|0)+o((254&I)>>>1|0,160)|0)):(0|I)>-1||(jI(g+160|0,g+320|0),cI(g+320|0,g+160|0,(g+480|0)+o((0-I&254)>>>1|0,160)|0)),jI(A,g+320|0),I=B+-1|0,B;);D=g+1760|0}function QA(A,I,g){var B,C,Q,E,i,a,r,o,e,t,c,f,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0;B=n[I+4>>2],C=n[A+4>>2],Q=n[I+8>>2],s=n[A+8>>2],E=n[I+12>>2],w=n[A+12>>2],i=n[I+16>>2],h=n[A+16>>2],a=n[I+20>>2],D=n[A+20>>2],r=n[I+24>>2],u=n[A+24>>2],o=n[I+28>>2],p=n[A+28>>2],e=n[I+32>>2],l=n[A+32>>2],t=n[I+36>>2],F=n[A+36>>2],f=(g=0-g|0)&((c=n[I>>2])^(y=n[A>>2])),n[A>>2]=f^y,y=F,F=g&(F^t),n[A+36>>2]=y^F,y=l,l=g&(l^e),n[A+32>>2]=y^l,y=p,p=g&(p^o),n[A+28>>2]=y^p,y=u,u=g&(u^r),n[A+24>>2]=y^u,y=D,D=g&(D^a),n[A+20>>2]=y^D,y=h,h=g&(h^i),n[A+16>>2]=y^h,y=w,w=g&(w^E),n[A+12>>2]=y^w,y=s,s=g&(s^Q),n[A+8>>2]=y^s,y=A,A=g&(B^C),n[y+4>>2]=A^C,n[I+36>>2]=F^t,n[I+32>>2]=l^e,n[I+28>>2]=p^o,n[I+24>>2]=u^r,n[I+20>>2]=D^a,n[I+16>>2]=h^i,n[I+12>>2]=w^E,n[I+8>>2]=s^Q,n[I+4>>2]=A^B,n[I>>2]=c^f}function EA(A,I){var g=0,B=0,C=0,Q=0,E=0,i=0,e=0,t=0,c=0,f=0;A:if(A&&(2!=n[A+36>>2]||(B=n[I>>2],a[I+8|0]<2&&!B)?(function(A,I,g){var B,C=0,Q=0,E=0;if(D=B=D-4096|0,EB(B+3072|0),EB(B+2048|0),!(!A|!I)&&(n[B+2048>>2]=n[I>>2],n[B+2052>>2]=0,n[B+2056>>2]=n[I+4>>2],n[B+2060>>2]=0,n[B+2064>>2]=a[I+8|0],n[B+2068>>2]=0,n[B+2072>>2]=n[A+16>>2],n[B+2076>>2]=0,n[B+2080>>2]=n[A+8>>2],n[B+2084>>2]=0,n[B+2088>>2]=n[A+36>>2],n[B+2092>>2]=0,n[A+20>>2]))for(I=0;(E=127&I)||(C=n[B+2100>>2],(Q=n[B+2096>>2]+1|0)>>>0<1&&(C=C+1|0),n[B+2096>>2]=Q,n[B+2100>>2]=C,EB(B),EB(B+1024|0),b(B+3072|0,B+2048|0,B),b(B+3072|0,B,B+1024|0)),E=n[4+(Q=(B+1024|0)+(E<<3)|0)>>2],n[(C=(I<<3)+g|0)>>2]=n[Q>>2],n[C+4>>2]=E,(I=I+1|0)>>>0<r[A+20>>2];);D=B+4096|0}(A,I,c=n[A+4>>2]),B=n[I>>2],f=0):(c=n[A+4>>2],f=1),!((Q=!((i=B)|(B=a[I+8|0]))<<1)>>>0>=(g=n[A+20>>2])>>>0)))for(C=n[A+24>>2],g=(B=(o(C,n[I+4>>2])+Q|0)+o(g,B)|0)+((B>>>0)%(C>>>0)|0?-1:C+-1|0)|0;;){if(C=1==((B>>>0)%(C>>>0)|0)?B+-1|0:g,g=f?n[n[A>>2]+4>>2]+(C<<10)|0:(Q<<3)+c|0,E=n[g+4>>2],e=n[g>>2],g=n[A+28>>2],n[I+12>>2]=Q,g=(E>>>0)%(g>>>0)|0,E=n[I+4>>2],i=t=a[I+8|0]?g:E,i=(t=n[I>>2])?g:i,g=n[n[A>>2]+4>>2],E=((o(i,n[A+24>>2])<<10)+g|0)+(YA(A,I,e,!0&(0|E)==(0|i))<<10)|0,e=g+(C<<10)|0,g=g+(B<<10)|0,t?b(e,E,g):m(e,E,g),(Q=Q+1|0)>>>0>=r[A+20>>2])break A;B=B+1|0,g=C+1|0,C=n[A+24>>2]}}function iA(A,I,g,B,C){var Q,i=0;return D=Q=D-96|0,i=-1,Yg(Q+32|0,Q)||(OI(Q- -64|0,Q+32|0,C),i=$I(A+32|0,I,g,B,Q- -64|0,C,Q),I=n[Q+60>>2],g=n[Q+56>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=n[Q+52>>2],g=n[Q+48>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=n[Q+44>>2],g=n[Q+40>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=n[Q+36>>2],g=n[Q+32>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,KI(Q,32),KI(Q+32|0,32),KI(Q- -64|0,24)),D=Q+96|0,i}function nA(A,I){var g;n[A>>2]=67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),n[A+4>>2]=(a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108611,n[A+8>>2]=(a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67092735,n[A+12>>2]=(a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6&66076671,g=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,n[A+20>>2]=0,n[A+24>>2]=0,n[A+28>>2]=0,n[A+32>>2]=0,n[A+36>>2]=0,n[A+16>>2]=g>>>8&1048575,n[A+40>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,n[A+44>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,n[A+48>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[A+80|0]=0,n[A+56>>2]=0,n[A+60>>2]=0,n[A+52>>2]=I}function aA(A,I,g){var B=0;A:if((0|A)!=(0|I)){if((I-A|0)-g>>>0<=0-(g<<1)>>>0)return j(A,I,g);if(B=3&(A^I),A>>>0<I>>>0){if(B)B=A;else{if(3&A)for(B=A;;){if(!g)break A;if(E[0|B]=a[0|I],I=I+1|0,g=g+-1|0,!(3&(B=B+1|0)))break}else B=A;if(!(g>>>0<=3))for(;n[B>>2]=n[I>>2],I=I+4|0,B=B+4|0,(g=g+-4|0)>>>0>3;);}if(g)for(;E[0|B]=a[0|I],B=B+1|0,I=I+1|0,g=g+-1|0;);}else{if(!B){if(A+g&3)for(;;){if(!g)break A;if(E[0|(B=(g=g+-1|0)+A|0)]=a[I+g|0],!(3&B))break}if(!(g>>>0<=3))for(;n[(g=g+-4|0)+A>>2]=n[I+g>>2],g>>>0>3;);}if(!g)break A;for(;E[(g=g+-1|0)+A|0]=a[I+g|0],g;);}}return A}function rA(A,I,g,B){var C=0,Q=0,i=0,n=0,r=0,o=0;A:if(g|B)for(o=A+224|0,i=A+96|0,C=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24;;){if(n=96+(A+C|0)|0,r=Q=256-C|0,!B&g>>>0<=Q>>>0|B>>>0<0){j(n,I,g),I=g+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24;break A}if(j(n,I,Q),C=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+Q|0,E[A+352|0]=C,E[A+353|0]=C>>>8,E[A+354|0]=C>>>16,E[A+355|0]=C>>>24,wA(A,128),F(A,i),j(i,o,128),C=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=C,E[A+353|0]=C>>>8,E[A+354|0]=C>>>16,E[A+355|0]=C>>>24,I=I+Q|0,!((g=(Q=g)-r|0)|(B=B-(Q>>>0<r>>>0)|0)))break}return 0}function oA(A,I){var g,B=0;D=g=D-48|0,function(A,I){var g,B,C,Q,E,i,a,r,e=0;B=n[I+28>>2],C=n[I+24>>2],Q=n[I+20>>2],E=n[I+16>>2],i=n[I+12>>2],a=n[I+8>>2],r=n[I+4>>2],e=n[I>>2],g=n[I+36>>2],I=n[I+32>>2],e=o(((B+(C+(Q+(E+(i+(a+(r+(e+(o(g,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+I>>26)+g>>25,19)+e|0,n[A>>2]=67108863&e,e=r+(e>>26)|0,n[A+4>>2]=33554431&e,e=a+(e>>25)|0,n[A+8>>2]=67108863&e,e=i+(e>>26)|0,n[A+12>>2]=33554431&e,e=E+(e>>25)|0,n[A+16>>2]=67108863&e,e=Q+(e>>26)|0,n[A+20>>2]=33554431&e,e=C+(e>>25)|0,n[A+24>>2]=67108863&e,e=B+(e>>26)|0,n[A+28>>2]=33554431&e,I=I+(e>>25)|0,n[A+32>>2]=67108863&I,n[A+36>>2]=g+(I>>26)&33554431}(g,I),I=n[g>>2],E[0|A]=I,E[A+2|0]=I>>>16,E[A+1|0]=I>>>8,B=n[g+4>>2],E[A+5|0]=B>>>14,E[A+4|0]=B>>>6,E[A+3|0]=B<<2|I>>>24,I=n[g+8>>2],E[A+8|0]=I>>>13,E[A+7|0]=I>>>5,E[A+6|0]=I<<3|B>>>22,B=n[g+12>>2],E[A+11|0]=B>>>11,E[A+10|0]=B>>>3,E[A+9|0]=B<<5|I>>>21,I=n[g+16>>2],E[A+15|0]=I>>>18,E[A+14|0]=I>>>10,E[A+13|0]=I>>>2,E[A+12|0]=I<<6|B>>>19,I=n[g+20>>2],E[A+16|0]=I,E[A+18|0]=I>>>16,E[A+17|0]=I>>>8,B=n[g+24>>2],E[A+21|0]=B>>>15,E[A+20|0]=B>>>7,E[A+19|0]=B<<1|I>>>24,I=n[g+28>>2],E[A+24|0]=I>>>13,E[A+23|0]=I>>>5,E[A+22|0]=I<<3|B>>>23,B=n[g+32>>2],E[A+27|0]=B>>>12,E[A+26|0]=B>>>4,E[A+25|0]=B<<4|I>>>21,I=n[g+36>>2],E[A+31|0]=I>>>18,E[A+30|0]=I>>>10,E[A+29|0]=I>>>2,E[A+28|0]=I<<6|B>>>20,D=g+48|0}function eA(A,I,g){var B=0,C=0,Q=0,i=0;if(g&&(E[(B=A+g|0)-1|0]=I,E[0|A]=I,!(g>>>0<3||(E[B+-2|0]=I,E[A+1|0]=I,E[B+-3|0]=I,E[A+2|0]=I,g>>>0<7||(E[B+-4|0]=I,E[A+3|0]=I,g>>>0<9||(C=(B=0-A&3)+A|0,I=o(255&I,16843009),n[C>>2]=I,n[(B=(g=g-B&-4)+C|0)-4>>2]=I,g>>>0<9||(n[C+8>>2]=I,n[C+4>>2]=I,n[B+-8>>2]=I,n[B+-12>>2]=I,g>>>0<25||(n[C+24>>2]=I,n[C+20>>2]=I,n[C+16>>2]=I,n[C+12>>2]=I,n[B+-16>>2]=I,n[B+-20>>2]=I,n[B+-24>>2]=I,n[B+-28>>2]=I,(g=g-(i=4&C|24)|0)>>>0<32))))))))for(B=I,Q=I,I=C+i|0;n[I+24>>2]=Q,n[I+28>>2]=B,n[I+16>>2]=Q,n[I+20>>2]=B,n[I+8>>2]=Q,n[I+12>>2]=B,n[I>>2]=Q,n[I+4>>2]=B,I=I+32|0,(g=g+-32|0)>>>0>31;);return A}function tA(A,I){var g,B=0,C=0,Q=0,i=0;for(D=g=D-464|0;C=B<<1,i=a[I+B|0],E[C+(g+400|0)|0]=15&i,E[(g+400|0)+(1|C)|0]=i>>>4,32!=(0|(B=B+1|0)););for(B=0;I=8+(C=(I=B)+a[0|(B=(g+400|0)+Q|0)]|0)|0,E[0|B]=C-(240&I),B=I<<24>>28,63!=(0|(Q=Q+1|0)););for(E[g+463|0]=a[g+463|0]+B,kg(A),B=1;Kg(g,B>>>1|0,E[(g+400|0)+B|0]),wI(g+240|0,A,g),jI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);for(cg(g+240|0,A),Ig(g+120|0,g+240|0),pI(g+240|0,g+120|0),Ig(g+120|0,g+240|0),pI(g+240|0,g+120|0),Ig(g+120|0,g+240|0),pI(g+240|0,g+120|0),jI(A,g+240|0),B=0;Kg(g,B>>>1|0,E[(g+400|0)+B|0]),wI(g+240|0,A,g),jI(A,g+240|0),I=B>>>0<62,B=B+2|0,I;);D=g+464|0}function cA(A,I,g,B,C,Q,i,r,o,e){var c,f=0;if(D=c=D-336|0,g&&(n[g>>2]=0,n[g+4>>2]=0),!Q&C>>>0<4294967279|Q>>>0<0)return IB(c+16|0,64,f=A+32|0,A),Og(c+80|0,c+16|0),KI(c+16|0,64),Lg(c+80|0,i,r,o),Lg(c+80|0,35712,0-r&15,0),eA(c+16|0,0,64),E[c+16|0]=e,uI(c+16|0,c+16|0,64,0,f,1,A),Lg(c+80|0,c+16|0,64,0),E[0|I]=a[c+16|0],uI(i=I+1|0,B,C,Q,f,2,A),Lg(c+80|0,i,C,Q),Lg(c+80|0,35712,15&C,0),LI(c+8|0,r,o),Lg(c+80|0,c+8|0,8,0),LI(c+8|0,C- -64|0,Q-((C>>>0<4294967232)+-1|0)|0),Lg(c+80|0,c+8|0,8,0),zg(c+80|0,I=C+i|0),KI(c+80|0,256),ZI(A+36|0,I),VI(f),(2&e||RI(f,4))&&q(A),g&&((A=C+17|0)>>>0<17&&(Q=Q+1|0),n[g>>2]=A,n[g+4>>2]=Q),D=c+336|0,0;Gg(),t()}function fA(A,I,g,B,C,Q,E){var i,a,r,o,e=0;return D=i=D-352|0,X(i,Q,E),!C&g-A>>>0>=B>>>0|0>C>>>0|g>>>0<=A>>>0&&!(!C&A-g>>>0<B>>>0|0<C>>>0&&A>>>0>g>>>0)||(g=aA(A,g,B)),n[i+56>>2]=0,n[i+60>>2]=0,n[i+48>>2]=0,n[i+52>>2]=0,n[i+40>>2]=0,n[i+44>>2]=0,n[i+32>>2]=0,n[i+36>>2]=0,(a=!((E=(e=!C&B>>>0>32|C>>>0>0)?32:B)|(e=e?0:C)))||j(i- -64|0,g,E),o=Q+16|0,Q=e,(r=E+32|0)>>>0<32&&(Q=Q+1|0),_g(i+32|0,i+32|0,r,Q,o,i),Og(i+96|0,i+32|0),a||j(A,i- -64|0,E),KI(i+32|0,64),!C&B>>>0>=33|C>>>0>0&&Hg(A+E|0,Q=g+E|0,(g=B)-E|0,C-(e+(g>>>0<E>>>0)|0)|0,o,i),KI(i,32),Lg(i+96|0,A,B,C),zg(i+96|0,I),KI(i+96|0,256),D=i+352|0,0}function yA(A,I,g,B,C,E,i){var a,r,o=0,e=0,t=0;D=a=D-96|0,X(a,E,i),r=E+16|0,Q[n[8951]](a+32|0,32,0,r,a),E=-1;A:{if(!(0|Q[n[8945]](g,I,B,C,a+32|0))){if(E=0,!A)break A;!C&A-I>>>0>=B>>>0|0>C>>>0|A>>>0<=I>>>0&&!(!C&I-A>>>0<B>>>0|0<C>>>0&&I>>>0>A>>>0)||(I=aA(A,I,B)),g=(E=!C&B>>>0>32|C>>>0>0)?32:B,i=E=E?0:C,g|E?(o=g,t=j(a- -64|0,I,g),E=i,(e=g+32|0)>>>0<32&&(E=E+1|0),_g(a+32|0,a+32|0,e,E,r,a),j(A,t,o)):(E=i,(o=g+32|0)>>>0<32&&(E=E+1|0),_g(e=a+32|0,t=a+32|0,o,E,r,a)),E=0,!C&B>>>0<33|C>>>0<0||Hg((o=A)+(A=g)|0,A+I|0,B-A|0,C-(i+(B>>>0<A>>>0)|0)|0,r,a)}KI(a,32)}return D=a+96|0,E}function sA(A,I){var g,B=0;D=g=D+-64|0,function(A,I){var g;D=g=D+-64|0,ag(A,g),W(A=A+208|0,g,64,0),ag(A,I),KI(g,64),D=g- -64|0}(A,g),B=n[g+28>>2],A=n[g+24>>2],E[I+24|0]=A,E[I+25|0]=A>>>8,E[I+26|0]=A>>>16,E[I+27|0]=A>>>24,E[I+28|0]=B,E[I+29|0]=B>>>8,E[I+30|0]=B>>>16,E[I+31|0]=B>>>24,B=n[g+20>>2],A=n[g+16>>2],E[I+16|0]=A,E[I+17|0]=A>>>8,E[I+18|0]=A>>>16,E[I+19|0]=A>>>24,E[I+20|0]=B,E[I+21|0]=B>>>8,E[I+22|0]=B>>>16,E[I+23|0]=B>>>24,B=n[g+12>>2],A=n[g+8>>2],E[I+8|0]=A,E[I+9|0]=A>>>8,E[I+10|0]=A>>>16,E[I+11|0]=A>>>24,E[I+12|0]=B,E[I+13|0]=B>>>8,E[I+14|0]=B>>>16,E[I+15|0]=B>>>24,B=n[g+4>>2],A=n[g>>2],E[0|I]=A,E[I+1|0]=A>>>8,E[I+2|0]=A>>>16,E[I+3|0]=A>>>24,E[I+4|0]=B,E[I+5|0]=B>>>8,E[I+6|0]=B>>>16,E[I+7|0]=B>>>24,D=g- -64|0}function wA(A,I){var g,B,C=0,Q=0;Q=g=a[A+68|0]|a[A+69|0]<<8|a[A+70|0]<<16|a[A+71|0]<<24,(C=I+(B=a[A+64|0]|a[A+65|0]<<8|a[A+66|0]<<16|a[A+67|0]<<24)|0)>>>0<B>>>0&&(Q=Q+1|0),E[A+64|0]=C,E[A+65|0]=C>>>8,E[A+66|0]=C>>>16,E[A+67|0]=C>>>24,E[A+68|0]=Q,E[A+69|0]=Q>>>8,E[A+70|0]=Q>>>16,E[A+71|0]=Q>>>24,I=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,(C=(Q=(0|Q)==(0|g)&C>>>0<B>>>0|Q>>>0<g>>>0)+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0<Q>>>0&&(I=I+1|0),E[A+72|0]=C,E[A+73|0]=C>>>8,E[A+74|0]=C>>>16,E[A+75|0]=C>>>24,E[A+76|0]=I,E[A+77|0]=I>>>8,E[A+78|0]=I>>>16,E[A+79|0]=I>>>24}function hA(A,I){n[A>>2]=1634760805,n[A+4>>2]=857760878,n[A+8>>2]=2036477234,n[A+12>>2]=1797285236,n[A+16>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,n[A+20>>2]=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,n[A+24>>2]=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,n[A+28>>2]=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,n[A+32>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,n[A+36>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,n[A+40>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,n[A+44>>2]=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24}function DA(A){var I=0,g=0;if(!A)return-25;if(!n[A>>2])return-1;A:{I:{if(I=-2,!(r[A+4>>2]<16)&&(n[A+8>>2]||(I=-18,!n[A+12>>2]))){if(g=n[A+20>>2],!n[A+16>>2])break I;if(I=-6,!(g>>>0<8)&&(n[A+24>>2]||(I=-20,!n[A+28>>2]))&&(n[A+32>>2]||(I=-21,!n[A+36>>2]))&&(I=-14,!((g=n[A+44>>2])>>>0<8||(I=-15,g>>>0>2097152||(I=-14,g>>>0<(g=n[A+48>>2])<<3>>>0))))){if(!n[A+40>>2])return-12;if(!g)return-16;if(I=-17,!(g>>>0>16777215)){if(A=n[A+52>>2])break A;I=-28}}}return I}return g?-19:-6}return A>>>0>16777215?-29:0}function uA(A,I){for(var g=0,B=0,C=0,Q=0,i=0,n=0,r=0,o=0,e=0,t=0;E[A+g|0]=a[(g>>>3|0)+I|0]>>>(7&g)&1,256!=(0|(g=g+1|0)););for(C=254;;){n=(Q=n)+1|0;A:if(!(!a[0|(i=A+Q|0)]|Q>>>0>254))for(I=1,t=(C>>>0<5?C:5)+1|0,g=n;;){r=I;I:if(B=E[0|(I=A+g|0)])if((0|(e=(o=E[0|i])+(B<<=r)|0))<=15)E[0|i]=e,E[0|I]=0;else{if((0|(I=o-B|0))<-15)break A;for(E[0|i]=I;;){if(!a[0|(I=A+g|0)]){E[0|I]=1;break I}if(E[0|I]=0,I=g>>>0<255,g=g+1|0,!I)break}}if(g=Q+(I=r+1|0)|0,(0|r)==(0|t))break}if(C=C+-1|0,256==(0|n))break}}function pA(A,I,g){var B,C,Q,E,i,a,r,o,e,t,c,f,y,s,w,h,D,u,p,l;c=n[I+4>>2],B=n[A+4>>2],f=n[I+8>>2],C=n[A+8>>2],y=n[I+12>>2],Q=n[A+12>>2],s=n[I+16>>2],E=n[A+16>>2],w=n[I+20>>2],i=n[A+20>>2],h=n[I+24>>2],a=n[A+24>>2],D=n[I+28>>2],r=n[A+28>>2],u=n[I+32>>2],o=n[A+32>>2],p=n[I+36>>2],e=n[A+36>>2],t=n[A>>2],l=n[I>>2]^t,I=0-g|0,n[A>>2]=t^l&I,n[A+36>>2]=I&(e^p)^e,n[A+32>>2]=I&(o^u)^o,n[A+28>>2]=I&(r^D)^r,n[A+24>>2]=I&(a^h)^a,n[A+20>>2]=I&(i^w)^i,n[A+16>>2]=I&(E^s)^E,n[A+12>>2]=I&(Q^y)^Q,n[A+8>>2]=I&(C^f)^C,n[A+4>>2]=I&(B^c)^B}function lA(A,I,g,B){var C,Q,E,i,a=0;D=C=D+-64|0,eA(C+8|0,0,52),a=VA(A),n[C+20>>2]=a,n[C+36>>2]=a,n[C+4>>2]=a,Q=_(a),n[C+32>>2]=Q,E=_(a),n[C+16>>2]=E,i=_(a),n[C>>2]=i;A:if(!i|!Q|!E||!(a=_(a)))v(Q),v(E),v(i),A=-22;else{if(A=z(C,A,B)){v(n[C+32>>2]),v(n[C+16>>2]),v(n[C>>2]),v(a);break A}A=0,I=NA(n[C+40>>2],n[C+44>>2],n[C+52>>2],I,g,n[C+16>>2],n[C+20>>2],a,n[C+4>>2],0,0,B),v(n[C+32>>2]),v(n[C+16>>2]),(I||hI(a,n[C>>2],n[C+4>>2]))&&(A=-35),v(a),v(n[C>>2])}return D=C- -64|0,A}function FA(A,I){var g,B,C=0;D=g=D-288|0,J(B=A+40|0,I),Vg(C=A+80|0),U(g+240|0,B),H(g+192|0,g+240|0,2128),_A(g+240|0,g+240|0,C),HA(g+192|0,g+192|0,C),U(g+144|0,g+192|0),H(g+144|0,g+144|0,g+192|0),U(A,g+144|0),H(A,A,g+192|0),H(A,A,g+240|0),function(A,I){var g,B=0;for(D=g=D-144|0,U(g+96|0,I),U(g+48|0,g+96|0),U(g+48|0,g+48|0),H(g+48|0,I,g+48|0),H(g+96|0,g+96|0,g+48|0),U(g+96|0,g+96|0),H(g+96|0,g+48|0,g+96|0),U(g+48|0,g+96|0),B=1;U(g+48|0,g+48|0),5!=(0|(B=B+1|0)););for(H(g+96|0,g+48|0,g+96|0),U(g+48|0,g+96|0),B=1;U(g+48|0,g+48|0),10!=(0|(B=B+1|0)););for(H(g+48|0,g+48|0,g+96|0),U(g,g+48|0),B=1;U(g,g),20!=(0|(B=B+1|0)););for(H(g+48|0,g,g+48|0),U(g+48|0,g+48|0),B=1;U(g+48|0,g+48|0),10!=(0|(B=B+1|0)););for(H(g+96|0,g+48|0,g+96|0),U(g+48|0,g+96|0),B=1;U(g+48|0,g+48|0),50!=(0|(B=B+1|0)););for(H(g+48|0,g+48|0,g+96|0),U(g,g+48|0),B=1;U(g,g),100!=(0|(B=B+1|0)););for(H(g+48|0,g,g+48|0),U(g+48|0,g+48|0),B=1;U(g+48|0,g+48|0),50!=(0|(B=B+1|0)););H(g+96|0,g+48|0,g+96|0),U(g+96|0,g+96|0),U(g+96|0,g+96|0),H(A,g+96|0,I),D=g+144|0}(A,A),H(A,A,g+144|0),H(A,A,g+240|0),U(g+96|0,A),H(g+96|0,g+96|0,g+192|0),_A(g+48|0,g+96|0,g+240|0);A:{if(!tg(g+48|0)){if(HA(g,g+96|0,g+240|0),C=-1,!tg(g))break A;H(A,A,2176)}(0|yg(A))==(a[I+31|0]>>>7|0)&&TA(A,A),H(A+120|0,A,B),C=0}return D=g+288|0,C}function GA(A,I){var g,B=0;B=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,g=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[A+32|0]=g,E[A+33|0]=g>>>8,E[A+34|0]=g>>>16,E[A+35|0]=g>>>24,E[A+36|0]=B,E[A+37|0]=B>>>8,E[A+38|0]=B>>>16,E[A+39|0]=B>>>24,B=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,E[A+44|0]=B,E[A+45|0]=B>>>8,E[A+46|0]=B>>>16,E[A+47|0]=B>>>24}function kA(A,I){var g,B=0;B=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,g=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,E[A+48|0]=g,E[A+49|0]=g>>>8,E[A+50|0]=g>>>16,E[A+51|0]=g>>>24,E[A+52|0]=B,E[A+53|0]=B>>>8,E[A+54|0]=B>>>16,E[A+55|0]=B>>>24,B=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,E[A+56|0]=I,E[A+57|0]=I>>>8,E[A+58|0]=I>>>16,E[A+59|0]=I>>>24,E[A+60|0]=B,E[A+61|0]=B>>>8,E[A+62|0]=B>>>16,E[A+63|0]=B>>>24}function _A(A,I,g){var B,C,Q,E,i,a,r,o,e,t,c,f,y,s,w,h,D,u;B=n[g+4>>2],C=n[I+4>>2],Q=n[g+8>>2],E=n[I+8>>2],i=n[g+12>>2],a=n[I+12>>2],r=n[g+16>>2],o=n[I+16>>2],e=n[g+20>>2],t=n[I+20>>2],c=n[g+24>>2],f=n[I+24>>2],y=n[g+28>>2],s=n[I+28>>2],w=n[g+32>>2],h=n[I+32>>2],D=n[g+36>>2],u=n[I+36>>2],n[A>>2]=n[I>>2]-n[g>>2],n[A+36>>2]=u-D,n[A+32>>2]=h-w,n[A+28>>2]=s-y,n[A+24>>2]=f-c,n[A+20>>2]=t-e,n[A+16>>2]=o-r,n[A+12>>2]=a-i,n[A+8>>2]=E-Q,n[A+4>>2]=C-B}function HA(A,I,g){var B,C,Q,E,i,a,r,o,e,t,c,f,y,s,w,h,D,u;B=n[g+4>>2],C=n[I+4>>2],Q=n[g+8>>2],E=n[I+8>>2],i=n[g+12>>2],a=n[I+12>>2],r=n[g+16>>2],o=n[I+16>>2],e=n[g+20>>2],t=n[I+20>>2],c=n[g+24>>2],f=n[I+24>>2],y=n[g+28>>2],s=n[I+28>>2],w=n[g+32>>2],h=n[I+32>>2],D=n[g+36>>2],u=n[I+36>>2],n[A>>2]=n[g>>2]+n[I>>2],n[A+36>>2]=D+u,n[A+32>>2]=w+h,n[A+28>>2]=y+s,n[A+24>>2]=c+f,n[A+20>>2]=e+t,n[A+16>>2]=r+o,n[A+12>>2]=i+a,n[A+8>>2]=Q+E,n[A+4>>2]=B+C}function YA(A,I,g,B){var C=0,Q=0;A:{I:{g:{B:{C:{if(!n[I>>2]){if(C=a[I+8|0],Q=n[I+12>>2]+-1|0,!C)break B;if(C=o(C,n[A+20>>2]),I=n[I+12>>2],!B)break C;Q=(I+C|0)-1|0;break B}if(C=n[A+20>>2],A=n[A+24>>2],!B)break g;B=n[I+12>>2]+((-1^C)+A|0)|0;break I}Q=C-!I|0}B=Q,A=n[A+24>>2],Q=0;break A}B=(A-C|0)-!n[I+12>>2]|0}Q=0,3!=(0|(I=a[I+8|0]))&&(Q=o(C,I+1|0))}return C=Q,I=0,(C=(Q=B+-1|0)+C|0)>>>0<Q>>>0&&(I=1),xg(g,0,g,0),xg(B,0,l,0),function(A,I,g){var B=0,C=0,Q=0,E=0,i=0,n=0,a=0,r=0,t=0;A:{I:{g:{B:{C:{Q:{E:{i:{n:{if(C=I){if(!(B=g))break n;break i}return u=A-o((A>>>0)/(g>>>0)|0,g)|0,p=0,void(l=0)}if(!A)break E;break Q}if(!((E=B+-1|0)&B))break C;i=0-(E=(e(B)+33|0)-e(C)|0)|0;break g}return u=0,p=C,void(l=0)}if((B=32-e(C)|0)>>>0<31)break B;break I}if(u=A&E,p=0,1==(0|B))break A;return g=31&(A=B?31-e(B+-1^B)|0:32),void(l=32<=(63&A)>>>0?0:I>>>g|0)}E=B+1|0,i=63-B|0}if(B=I,Q=31&(C=63&E),32<=C>>>0?(C=0,Q=B>>>Q|0):(C=B>>>Q|0,Q=((1<<Q)-1&B)<<32-Q|A>>>Q),B=31&(i&=63),32<=i>>>0?(I=A<<B,A=0):(I=(1<<B)-1&A>>>32-B|I<<B,A<<=B),E)for(B=-1,-1!=(0|(i=g+-1|0))&&(B=0);Q=(a=n=Q<<1|I>>>31)-(r=g&(n=B-((C=C<<1|Q>>>31)+(i>>>0<n>>>0)|0)>>31))|0,C=C-(a>>>0<r>>>0)|0,I=I<<1|A>>>31,A=t|A<<1,t=1&n,E=E+-1|0;);return u=Q,p=C,void(l=I<<1|A>>>31)}u=A,p=I,I=0}l=I}(C-(g=l)|0,I-(C>>>0<g>>>0)|0,A),l=p,u}function bA(A,I,g,B,C){var Q;if(D=Q=D-192|0,!(!g|(I+-1&255)>>>0>=64))return i[Q+130>>1]=257,E[Q+129|0]=32,E[Q+128|0]=I,ug(Q+128|4),LI(Q+128|8,0,0),n[Q+152>>2]=0,n[Q+156>>2]=0,n[Q+144>>2]=0,n[Q+148>>2]=0,B?GA(Q+128|0,B):(n[Q+168>>2]=0,n[Q+172>>2]=0,n[Q+160>>2]=0,n[Q+164>>2]=0),C?kA(Q+128|0,C):(n[Q+184>>2]=0,n[Q+188>>2]=0,n[Q+176>>2]=0,n[Q+180>>2]=0),vA(A,Q+128|0),eA(Q+32|0,0,96),rA(I=A,A=j(Q,g,32),128,0),KI(A,128),void(D=A+192|0);Gg(),t()}function mA(A){var I,g=0,B=0,C=0,Q=0;for(E[11+(I=D-16|0)|0]=0,E[I+12|0]=0,E[I+13|0]=0,E[I+14|0]=0,n[I+8>>2]=0;;){for(C=a[A+B|0],g=0;E[0|(Q=(I+8|0)+g|0)]=a[0|Q]|C^a[(34464+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&a[A+31|0],A=0,g=0;E[0|(C=(I+8|0)+g|0)]=a[0|C]|B^a[34495+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=a[(I+8|0)+A|0]+-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function UA(A){var I,g=0,B=0,C=0,Q=0;for(E[11+(I=D-16|0)|0]=0,E[I+12|0]=0,E[I+13|0]=0,E[I+14|0]=0,n[I+8>>2]=0;;){for(C=a[A+B|0],g=0;E[0|(Q=(I+8|0)+g|0)]=a[0|Q]|C^a[(3232+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&a[A+31|0],A=0,g=0;E[0|(C=(I+8|0)+g|0)]=a[0|C]|B^a[3263+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=a[(I+8|0)+A|0]+-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function vA(A,I){var g=0,B=0,C=0,Q=0,i=0;for(eA(j(A,1952,64)- -64|0,0,293);C=B=(g=Q<<3)+A|0,g=I+g|0,i=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=(a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24)^(a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24),g=(a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24)^i,E[0|C]=g,E[C+1|0]=g>>>8,E[C+2|0]=g>>>16,E[C+3|0]=g>>>24,E[C+4|0]=B,E[C+5|0]=B>>>8,E[C+6|0]=B>>>16,E[C+7|0]=B>>>24,8!=(0|(Q=Q+1|0)););}function SA(A,I){var g,B=0,C=0,Q=0,E=0;if(D=g=D-48|0,!((B=DA(A))||(B=-26,I+-1>>>0>1||(Q=n[A+44>>2],B=n[A+48>>2],n[g>>2]=0,C=n[A+40>>2],n[g+28>>2]=B,n[g+12>>2]=-1,n[g+8>>2]=C,B=((C=Q>>>0<(C=B<<3)>>>0?C:Q)>>>0)/((Q=B<<2)>>>0)|0,n[g+20>>2]=B,n[g+24>>2]=B<<2,n[g+16>>2]=o(B,Q),B=n[A+52>>2],n[g+36>>2]=I,n[g+32>>2]=B,B=function(A,I){var g,B=0;return D=g=D-80|0,B=-25,!A|!I||(B=_(n[A+20>>2]<<3),n[A+4>>2]=B,B?(B=function(A,I){var g,B=0,C=0;D=g=D-16|0,C=-22;A:if(!(!A|!I)&&1024==(((B=I<<10)>>>0)/(I>>>0)|0)&&(I=_(12),n[A>>2]=I,I)){n[I>>2]=0,n[I+4>>2]=0,I=function(A,I){if(4294967168<I>>>0)A=48;else{if(!(I=function(A){var I=0,g=0,B=0,C=0,Q=0,E=0;return 4294967168<=A>>>0?(n[8960]=48,0):(A=_(76+(B=A>>>0<11?16:A+11&-8)|0))?(I=A+-8|0,63&A?(C=(-8&(E=n[(Q=A+-4|0)>>2]))-(g=(A=(A=(A+63&-64)-8|0)-I>>>0>15?A:A- -64|0)-I|0)|0,3&E?(n[A+4>>2]=C|1&n[A+4>>2]|2,n[4+(C=A+C|0)>>2]=1|n[C+4>>2],n[Q>>2]=g|1&n[Q>>2]|2,n[A+4>>2]=1|n[A+4>>2],S(I,g)):(I=n[I>>2],n[A+4>>2]=C,n[A>>2]=I+g)):A=I,3&(I=n[A+4>>2])&&((g=-8&I)>>>0<=B+16>>>0||(n[A+4>>2]=B|1&I|2,I=A+B|0,B=g-B|0,n[I+4>>2]=3|B,n[4+(g=A+g|0)>>2]=1|n[g+4>>2],S(I,B))),A+8|0):0}(I)))return 48;n[A>>2]=I,A=0}return A}(g+12|0,B),n[8960]=I;I:{if(I)n[g+12>>2]=0;else if(I=n[g+12>>2])break I;v(n[A>>2]),n[A>>2]=0;break A}n[n[A>>2]>>2]=I,n[n[A>>2]+4>>2]=I,n[n[A>>2]+8>>2]=B,C=0}return D=g+16|0,C}(A,n[A+16>>2]))?xI(A,n[I+56>>2]):(gA(g,I,n[A+36>>2]),KI(g- -64|0,8),function(A,I){var g,B=0,C=0,Q=0;if(D=g=D-1024|0,n[I+28>>2])for(Q=A+68|0,C=A- -64|0;fg(C,0),fg(Q,B),L(g,1024,A,72),fI(n[n[I>>2]+4>>2]+(o(n[I+24>>2],B)<<10)|0,g),fg(C,1),L(g,1024,A,72),fI(1024+(n[n[I>>2]+4>>2]+(o(n[I+24>>2],B)<<10)|0)|0,g),(B=B+1|0)>>>0<r[I+28>>2];);KI(g,1024),D=g+1024|0}(g,A),KI(g,72),B=0):B=-22),D=g+80|0,B}(g,A))))){if(n[g+8>>2])for(;JA(g,E),(E=E+1|0)>>>0<r[g+8>>2];);!function(A,I){var g,B=0,C=0;if(D=g=D-2048|0,!(!A|!I)){if(BB(g+1024|0,(n[n[I>>2]+4>>2]+(n[I+24>>2]<<10)|0)-1024|0),r[I+28>>2]>=2)for(B=1;C=n[I+24>>2],YI(g+1024|0,(n[n[I>>2]+4>>2]+(C+o(B,C)<<10)|0)-1024|0),(B=B+1|0)>>>0<r[I+28>>2];);!function(A,I){for(var g=0,B=0;LI((g=B<<3)+A|0,n[(g=I+g|0)>>2],n[g+4>>2]),128!=(0|(B=B+1|0)););}(g,g+1024|0),L(n[A>>2],n[A+4>>2],g,1024),KI(g+1024|0,1024),KI(g,1024),xI(I,n[A+56>>2])}D=g+2048|0}(A,g),B=0}return D=g+48|0,B}function NA(A,I,g,B,C,Q,E,i,a,r,o,e){var t,c;return D=t=D+-64|0,(c=_(a))?(n[t+32>>2]=0,n[t+36>>2]=0,n[t+24>>2]=0,n[t+28>>2]=0,n[t+20>>2]=E,n[t+16>>2]=Q,n[t+12>>2]=C,n[t+8>>2]=B,n[t+4>>2]=a,n[t>>2]=c,n[t+56>>2]=0,n[t+52>>2]=g,n[t+48>>2]=g,n[t+44>>2]=I,n[t+40>>2]=A,(g=SA(t,e))?KI(c,a):(i&&j(i,c,a),!r|!o||!x(r,o,t,e)?(KI(c,a),g=0):(KI(c,a),KI(r,o),g=-31)),v(c)):g=-22,D=t- -64|0,g}function RA(A,I,g,B,C){var Q,E=0,i=0;D=Q=D+-64|0;A:{I:{if((E=VA(A))>>>0<128&&!g|g>>>0<0){if(g=eA(Q,0,60),i=JI(E))break I}else n[8960]=28;A=-1;break A}n[g+32>>2]=0,n[g+36>>2]=0,n[g+8>>2]=i,n[g+16>>2]=i,n[g+20>>2]=E,n[g>>2]=i,n[g+12>>2]=E,n[g+24>>2]=0,n[g+28>>2]=0,n[g+4>>2]=E,z(g,A,C)?(n[8960]=28,A=-1):(A=1,(0|I)==n[g+40>>2]&&(A=n[g+44>>2]!=(B>>>10|0))),v(i)}return D=Q- -64|0,A}function MA(A,I,g,B,C,Q){var E,i,n=0,a=0,r=0;return D=E=D-592|0,n=-1,SI(i=A+32|0)&&(UA(A)||PI(C)&&(UA(C)||FA(E+128|0,C)||(Ng(E+384|0,Q),W(E+384|0,A,32,0),W(E+384|0,C,32,0),W(E+384|0,I,g,B),ag(E+384|0,E+320|0),k(E+320|0),T(E+8|0,E+320|0,E+128|0,i),NI(E+288|0,E+8|0),a=-1,r=$g(E+288|0,A),n=((E+288|0)==(0|A)?a:r)|hI(A,E+288|0,32)))),D=E+592|0,n}function dA(A,I){var g,B=0,C=0;for(D=g=D-192|0,rg(A),eA(g- -64|0,54,128),E[g+64|0]=54^a[0|I],B=1;E[0|(C=(g- -64|0)+B|0)]=a[0|C]^a[I+B|0],32!=(0|(B=B+1|0)););for(W(A,g- -64|0,128,0),rg(A=A+208|0),eA(g- -64|0,92,128),E[g+64|0]=92^a[0|I],B=1;E[0|(C=(g- -64|0)+B|0)]=a[0|C]^a[I+B|0],32!=(0|(B=B+1|0)););W(A,g- -64|0,128,0),KI(g- -64|0,128),KI(g,64),D=g+192|0}function PA(A,I,g,B,C,Q,E,i,n,a){var r;return D=r=D-352|0,IB(r+32|0,64,n,a),Og(r+96|0,r+32|0),KI(r+32|0,64),Lg(r+96|0,Q,E,i),Lg(r+96|0,34688,0-E&15,0),Lg(r+96|0,I,g,B),Lg(r+96|0,34688,0-g&15,0),LI(r+24|0,E,i),Lg(r+96|0,r+24|0,8,0),LI(r+24|0,g,B),Lg(r+96|0,r+24|0,8,0),zg(r+96|0,r),KI(r+96|0,256),C=AB(r,C),KI(r,16),A&&(C?(eA(A,0,g),C=-1):(uI(A,I,g,B,n,1,a),C=0)),D=r+352|0,C}function JA(A,I){var g,B=0,C=0,Q=0;if(D=g=D-32|0,!(!A|!n[A+28>>2]))for(n[g+16>>2]=I,B=1;;){if(E[g+24|0]=C,I=0,Q=0,B)for(;n[g+28>>2]=0,B=n[g+28>>2],n[g+8>>2]=n[g+24>>2],n[g+12>>2]=B,n[g+20>>2]=I,B=n[g+20>>2],n[g>>2]=n[g+16>>2],n[g+4>>2]=B,EA(A,g),(I=I+1|0)>>>0<(Q=n[A+28>>2])>>>0;);if(B=Q,4==(0|(C=C+1|0)))break}D=g+32|0}function xA(A,I,g,B,C,Q){var E,i;return D=E=D-32|0,i=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,n[E+24>>2]=0,n[E+28>>2]=0,n[E+16>>2]=i,n[E+20>>2]=C,LI(E,g,B),n[E+8>>2]=0,n[E+12>>2]=0,I+-16>>>0>=49?(n[8960]=28,A=-1):(g=E+16|0,A=I+-1>>>0>63?-1:function(A,I,g,B,C){var Q,E=0;if(Q=E=D,D=E=E-384&-64,!(!I|!A|(g+-1&255)>>>0>=64))return bA(E,g,I,B,C),rA(E,0,0,0),P(E,A,g),D=Q,0;Gg(),t()}(A,Q,255&I,E,g)),D=E+32|0,A}function LA(A,I,g,B,C,Q,E,i,a,r,o){var e;return D=e=D-336|0,IB(e+16|0,64,r,o),Og(e+80|0,e+16|0),KI(e+16|0,64),Lg(e+80|0,E,i,a),Lg(e+80|0,34688,0-i&15,0),uI(A,B,C,Q,r,1,o),Lg(e+80|0,A,C,Q),Lg(e+80|0,34688,0-C&15,0),LI(e+8|0,i,a),Lg(e+80|0,e+8|0,8,0),LI(e+8|0,C,Q),Lg(e+80|0,e+8|0,8,0),zg(e+80|0,I),KI(e+80|0,256),g&&(n[g>>2]=16,n[g+4>>2]=0),D=e+336|0,0}function KA(A,I,g,B,C,Q){var E=0;A:{I:{if(!(!C&B>>>0<64|C>>>0<0||(C=C+-1|0,(B=B+-64|0)>>>0<4294967232&&(C=C+1|0),!C&B>>>0>4294967231|C>>>0>0))){if(!Rg(g,E=g- -64|0,B,C,Q))break I;A&&eA(A,0,B)}if(g=-1,!I)break A;return n[I>>2]=0,n[I+4>>2]=0,-1}I&&(n[I>>2]=B,n[I+4>>2]=C),g=0,A&&aA(A,E,B)}return g}function qA(A,I,g,B,C,Q,E,i,n,a){var r;return D=r=D-352|0,Jg(r+32|0,n,a),Og(r+96|0,r+32|0),KI(r+32|0,64),Lg(r+96|0,Q,E,i),LI(r+24|0,E,i),Lg(r+96|0,r+24|0,8,0),Lg(r+96|0,I,g,B),LI(r+24|0,g,B),Lg(r+96|0,r+24|0,8,0),zg(r+96|0,r),KI(r+96|0,256),C=AB(r,C),KI(r,16),A&&(C?(eA(A,0,g),C=-1):(Bg(A,I,g,B,n,a),C=0)),D=r+352|0,C}function XA(A,I){var g,B=0,C=0,Q=0,E=0,i=0;A:if(!(((g=a[0|A])+-48&255)>>>0>9)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((B=(255&C)-48|0)>>>0>(-1^(C=o(Q,10)))>>>0)break A;if(Q=B+C|0,!(((C=a[0|(B=E+1|0)])+-48&255)>>>0<10))break}(0|A)==(0|B)|(48==(0|g)?(0|A)!=(0|E):0)||(n[I>>2]=Q,i=B)}return i}function VA(A){var I=0,g=0,B=0;A:{I:if(3&(I=A)){if(!a[0|A])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!a[0|I])break}break A}for(;g=I,I=I+4|0,!((-1^(B=n[g>>2]))&B+-16843009&-2139062144););if(!(255&B))return g-A|0;for(;B=a[g+1|0],g=I=g+1|0,B;);}return I-A|0}function TA(A,I){var g,B,C,Q,E,i,a,r,o;g=n[I+4>>2],B=n[I+8>>2],C=n[I+12>>2],Q=n[I+16>>2],E=n[I+20>>2],i=n[I+24>>2],a=n[I+28>>2],r=n[I+32>>2],o=n[I+36>>2],n[A>>2]=0-n[I>>2],n[A+36>>2]=0-o,n[A+32>>2]=0-r,n[A+28>>2]=0-a,n[A+24>>2]=0-i,n[A+20>>2]=0-E,n[A+16>>2]=0-Q,n[A+12>>2]=0-C,n[A+8>>2]=0-B,n[A+4>>2]=0-g}function WA(A,I,g){var B=0;B=I<<8&16711680|I<<24,B|=255&(g<<8|I>>>24)|65280&(g<<24|I>>>8),I=-16777216&((255&g)<<24|I>>>8)|16711680&((16777215&g)<<8|I>>>24)|g>>>8&65280|g>>>24|0,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24,I=B,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24}function jA(A,I,g){var B;B=A,g?(n[A+48>>2]=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,g=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24):(n[A+48>>2]=0,g=0),n[B+52>>2]=g,n[A+56>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,n[A+60>>2]=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24}function ZA(A,I){var g,B,C,Q,E,i,a,r,o;g=n[I+8>>2],B=n[I+12>>2],C=n[I+16>>2],Q=n[I+20>>2],E=n[I+24>>2],i=n[I+28>>2],a=n[I>>2],r=n[I+4>>2],o=n[I+36>>2],n[A+32>>2]=n[I+32>>2],n[A+36>>2]=o,n[A+24>>2]=E,n[A+28>>2]=i,n[A+16>>2]=C,n[A+20>>2]=Q,n[A+8>>2]=g,n[A+12>>2]=B,n[A>>2]=a,n[A+4>>2]=r}function OA(A,I,g,B,C,Q,E,i,a,r,o){var e;return D=e=D-336|0,Jg(e+16|0,r,o),Og(e+80|0,e+16|0),KI(e+16|0,64),Lg(e+80|0,E,i,a),LI(e+8|0,i,a),Lg(e+80|0,e+8|0,8,0),Bg(A,B,C,Q,r,o),Lg(e+80|0,A,C,Q),LI(e+8|0,C,Q),Lg(e+80|0,e+8|0,8,0),zg(e+80|0,I),KI(e+80|0,256),g&&(n[g>>2]=16,n[g+4>>2]=0),D=e+336|0,0}function zA(A){var I;return I=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,A=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,l=65280&(A<<24|I>>>8)|255&(A<<8|I>>>24)|I<<8&16711680|I<<24,-16777216&((255&A)<<24|I>>>8)|16711680&((16777215&A)<<8|I>>>24)|A>>>8&65280|A>>>24|0}function $A(A,I,g,B,C,Q,E,i,r,o,e){var t;return D=t=D-48|0,n[t+4>>2]=0,K(t+16|0,o,e),e=a[o+16|0]|a[o+17|0]<<8|a[o+18|0]<<16|a[o+19|0]<<24,o=a[o+20|0]|a[o+21|0]<<8|a[o+22|0]<<16|a[o+23|0]<<24,n[t+8>>2]=e,n[t+12>>2]=o,function(A,I,g,B,C,Q,E,i,a,r,o){var e;D=e=D-336|0,Pg(e+16|0,64,r,o),Og(e+80|0,e+16|0),KI(e+16|0,64),Lg(e+80|0,E,i,a),Lg(e+80|0,34704,0-i&15,0),gg(A,B,C,Q,r,1,o),Lg(e+80|0,A,C,Q),Lg(e+80|0,34704,0-C&15,0),LI(e+8|0,i,a),Lg(e+80|0,e+8|0,8,0),LI(e+8|0,C,Q),Lg(e+80|0,e+8|0,8,0),zg(e+80|0,I),KI(e+80|0,256),g&&(n[g>>2]=16,n[g+4>>2]=0),D=e+336|0}(A,I,g,B,C,Q,E,i,r,t+4|0,t+16|0),KI(t+16|0,32),D=t+48|0,0}function AI(A,I,g,B,C,Q,E,i,r,o){var e;return D=e=D-48|0,n[e+4>>2]=0,K(e+16|0,r,o),o=a[r+16|0]|a[r+17|0]<<8|a[r+18|0]<<16|a[r+19|0]<<24,r=a[r+20|0]|a[r+21|0]<<8|a[r+22|0]<<16|a[r+23|0]<<24,n[e+8>>2]=o,n[e+12>>2]=r,A=function(A,I,g,B,C,Q,E,i,n,a){var r;return D=r=D-352|0,Pg(r+32|0,64,n,a),Og(r+96|0,r+32|0),KI(r+32|0,64),Lg(r+96|0,Q,E,i),Lg(r+96|0,34704,0-E&15,0),Lg(r+96|0,I,g,B),Lg(r+96|0,34704,0-g&15,0),LI(r+24|0,E,i),Lg(r+96|0,r+24|0,8,0),LI(r+24|0,g,B),Lg(r+96|0,r+24|0,8,0),zg(r+96|0,r),KI(r+96|0,256),C=AB(r,C),KI(r,16),A&&(C?(eA(A,0,g),C=-1):(gg(A,I,g,B,n,1,a),C=0)),D=r+352|0,C}(A,I,g,B,C,Q,E,i,e+4|0,e+16|0),KI(e+16|0,32),D=e+48|0,A}function II(A,I,g,B){var C;if(D=C=D-192|0,!(!g|(I+-1&255)>>>0>=64|(B+-1&255)>>>0>=64))return i[C+130>>1]=257,E[C+129|0]=B,E[C+128|0]=I,ug(C+128|4),LI(C+128|8,0,0),eA(C+144|0,0,48),vA(A,C+128|0),eA(B+C|0,0,128-B|0),rA(I=A,A=j(C,g,B),128,0),KI(A,128),D=A+192|0,0;Gg(),t()}function gI(A,I,g,B,C,Q,E,i,a,r){var o=0,e=0;return o=-1,!C&B>>>0>=16|C>>>0>0&&(e=A,A=C+-1|0,(o=B+-16|0)>>>0<4294967280&&(A=A+1|0),o=PA(e,g,o,A,(g+B|0)-16|0,Q,E,i,a,r)),I&&(A=C+-1|0,(g=B+-16|0)>>>0<4294967280&&(A=A+1|0),n[(Q=I)>>2]=o?0:g,n[I+4>>2]=o?0:A),o}function BI(A,I,g,B,C,Q,E,i,a,r){var o=0,e=0;return o=-1,!C&B>>>0>=16|C>>>0>0&&(e=A,A=C+-1|0,(o=B+-16|0)>>>0<4294967280&&(A=A+1|0),o=AI(e,g,o,A,(g+B|0)-16|0,Q,E,i,a,r)),I&&(A=C+-1|0,(g=B+-16|0)>>>0<4294967280&&(A=A+1|0),n[(Q=I)>>2]=o?0:g,n[I+4>>2]=o?0:A),o}function CI(A,I,g,B,C,Q,E,i,a,r){var o=0,e=0;return o=-1,!C&B>>>0>=16|C>>>0>0&&(e=A,A=C+-1|0,(o=B+-16|0)>>>0<4294967280&&(A=A+1|0),o=qA(e,g,o,A,(g+B|0)-16|0,Q,E,i,a,r)),I&&(A=C+-1|0,(g=B+-16|0)>>>0<4294967280&&(A=A+1|0),n[(Q=I)>>2]=o?0:g,n[I+4>>2]=o?0:A),o}function QI(A,I,g,B,C,Q){var E,i;return D=E=D-16|0,i=g,g=B,mg(A,E+8|0,aA(A- -64|0,i,B),B,C,Q),64!=n[E+8>>2]|n[E+12>>2]?(I&&(n[I>>2]=0,n[I+4>>2]=0),eA(A,0,g- -64|0),A=-1):(A=0,I&&(n[I>>2]=B- -64,n[I+4>>2]=C-((B>>>0<4294967232)+-1|0))),D=E+16|0,A}function EI(A,I,g,B,C,Q,E){var i;return D=i=D-16|0,A=eA(A,0,128),B|=Q,E>>>0<2147483649&&!B|B>>>0<0?E>>>0>8191&&!Q&C>>>0>=3|Q>>>0>0?(qI(i,16),A=NA(C,E>>>10|0,1,I,g,i,16,0,32,A,128,1)?-1:0):(n[8960]=28,A=-1):(n[8960]=22,A=-1),D=i+16|0,A}function iI(A,I,g){n[A+48>>2]=g?a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24:0,n[A+52>>2]=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,n[A+56>>2]=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,n[A+60>>2]=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24}function nI(A,I,g,B,C,Q,E){var i;return D=i=D-16|0,A=eA(A,0,128),B|=Q,E>>>0<2147483649&&!B|B>>>0<0?E>>>0>8191&&C|Q?(qI(i,16),A=NA(C,E>>>10|0,1,I,g,i,16,0,32,A,128,2)?-1:0):(n[8960]=28,A=-1):(n[8960]=22,A=-1),D=i+16|0,A}function aI(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A+-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16288^A)>>>8^-1)|62&(1+(16338^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function rI(A){var I=0;return(0-(I=A+4&(A+65488>>>8^-1)&(57-A>>>8^-1)&255|((I=A+-65|0)>>>8^-1)&I&(90-A>>>8^-1)&255|A+185&(A+65439>>>8^-1)&(122-A>>>8^-1)&255|63&(1+(16336^A)>>>8^-1)|62&(1+(16340^A)>>>8^-1))>>>8^-1)&1+(65470^A)>>>8&255|I}function oI(A,I){var g,B,C=0,Q=0,i=0,n=0;for(D=g=D-16|0,C=10;n=C,i=(I>>>0)/10|0,E[0|(Q=(C=C+-1|0)+(g+6|0)|0)]=I-o(i,10)|48,!(I>>>0<10)&&(I=i,C););B=j(I=A,Q,A=11-n|0)+A|0,E[0|B]=0,D=g+16|0}function eI(A,I,g){var B=0,C=0,Q=0;if(!g)return 0;A:if(B=a[0|A]){for(;;){if((0|(C=a[0|I]))==(0|B)&&!(!(g=g+-1|0)|!C)){if(I=I+1|0,B=a[A+1|0],A=A+1|0,B)continue;break A}break}Q=B}return(255&Q)-a[0|I]|0}function tI(A,I,g){var B,C,Q,E=0;D=C=D-48|0,HA(A,E=I+40|0,I),_A(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),HA(C,A,A),_A(A,E,B),HA(B,E,B),HA(E,C,Q),_A(Q,C,Q),D=C+48|0}function cI(A,I,g){var B,C,Q,E=0;D=C=D-48|0,HA(A,E=I+40|0,I),_A(B=A+40|0,E,I),H(E=A+80|0,A,g+40|0),H(B,B,g),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),HA(C,A,A),_A(A,E,B),HA(B,E,B),_A(E,C,Q),HA(Q,C,Q),D=C+48|0}function fI(A,I){for(var g=0,B=0,C=0,Q=0;C=(g=B<<3)+A|0,Q=a[0|(g=I+g|0)]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,g=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,n[C>>2]=Q,n[C+4>>2]=g,128!=(0|(B=B+1|0)););}function yI(A,I,g){var B;if(n[12+(B=D-16|0)>>2]=A,n[B+8>>2]=I,I=0,n[B+4>>2]=0,(0|g)>=1)for(;n[B+4>>2]=n[B+4>>2]|a[n[B+8>>2]+I|0]^a[n[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(n[B+4>>2]+-1>>>8&1)-1|0}function sI(A,I,g){var B,C,Q,E=0;D=C=D-48|0,HA(A,E=I+40|0,I),_A(B=A+40|0,E,I),H(E=A+80|0,A,g+40|0),H(B,B,g),H(Q=A+120|0,g+80|0,I+120|0),HA(C,I=I+80|0,I),_A(A,E,B),HA(B,E,B),_A(E,C,Q),HA(Q,C,Q),D=C+48|0}function wI(A,I,g){var B,C,Q,E=0;D=C=D-48|0,HA(A,E=I+40|0,I),_A(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+80|0,I+120|0),HA(C,I=I+80|0,I),_A(A,E,B),HA(B,E,B),HA(E,C,Q),_A(Q,C,Q),D=C+48|0}function hI(A,I,g){var B;if(n[12+(B=D-16|0)>>2]=A,n[B+8>>2]=I,I=0,E[B+7|0]=0,g)for(;E[B+7|0]=a[B+7|0]|a[n[B+8>>2]+I|0]^a[n[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(a[B+7|0]+-1>>>8&1)-1|0}function DI(A,I,g){var B,C=0,i=0;if(D=B=D-16|0,E[B+15|0]=0,i=-1,!(0|Q[n[8949]](A,I,g))){for(;E[B+15|0]=a[A+C|0]|a[B+15|0],32!=(0|(C=C+1|0)););i=0-(a[B+15|0]+-1>>>8&1)|0}return D=B+16|0,i}function uI(A,I,g,B,C,Q,E){var i,n=0,a=0;n=B,(a=g+63|0)>>>0<63&&(n=n+1|0),i=n>>>6|0,a=0-(n=(63&n)<<26|a>>>6)|0,!(n=1-(i+(0<n>>>0)|0)|0)&a>>>0<Q>>>0|n>>>0<0&&(Gg(),t()),gg(A,I,g,B,C,Q,E)}function pI(A,I){var g,B,C,Q,E;D=B=D-48|0,U(A,I),U(g=A+80|0,E=I+40|0),Y(Q=A+120|0,I+80|0),HA(C=A+40|0,I,E),U(B,C),HA(C,g,A),_A(g,g,A),_A(A,B,C),_A(Q,Q,g),D=B+48|0}function lI(A,I){var g;return D=g=D+-64|0,(I+-1&255)>>>0>=64&&(Gg(),t()),E[g+3|0]=1,E[g+1|0]=256,E[g+2|0]=1,E[0|g]=I,ug(4|g),LI(8|g,0,0),eA(g+16|0,0,48),vA(A,g),D=g- -64|0,0}function FI(A){var I,g;return(A=(I=n[9108])+(g=A+3&-4)|0)>>>0<=I>>>0&&(0|g)>=1||A>>>0>hB()<<16>>>0&&!(0|h(0|A))?(n[8960]=48,-1):(n[9108]=A,I)}function GI(A,I,g,B,C,Q,E){var i=0,n=0,a=0;return!B&g>>>0>=16|B>>>0>0?(i=A,n=I+16|0,a=I,A=B+-1|0,(I=g+-16|0)>>>0<4294967280&&(A=A+1|0),A=WI(i,n,a,I,A,C,Q,E)):A=-1,A}function kI(A,I,g,B,C,Q,E,i,a,r){if(!C&B>>>0<4294967280|C>>>0<0)return OA(A,A+B|0,0,g,B,C,Q,E,i,a,r),I&&((A=B+16|0)>>>0<16&&(C=C+1|0),n[I>>2]=A,n[I+4>>2]=C),0;Gg(),t()}function _I(A,I,g,B,C,Q,E,i,a,r){if(!C&B>>>0<4294967280|C>>>0<0)return LA(A,A+B|0,0,g,B,C,Q,E,i,a,r),I&&((A=B+16|0)>>>0<16&&(C=C+1|0),n[I>>2]=A,n[I+4>>2]=C),0;Gg(),t()}function HI(A,I,g,B,C,Q,E,i,a,r){if(!C&B>>>0<4294967280|C>>>0<0)return $A(A,A+B|0,0,g,B,C,Q,E,i,a,r),I&&((A=B+16|0)>>>0<16&&(C=C+1|0),n[I>>2]=A,n[I+4>>2]=C),0;Gg(),t()}function YI(A,I){for(var g=0,B=0,C=0,Q=0;B=(g=C<<3)+A|0,Q=n[(g=I+g|0)>>2],g=n[B+4>>2]^n[g+4>>2],n[B>>2]=n[B>>2]^Q,n[B+4>>2]=g,128!=(0|(C=C+1|0)););}function bI(A){var I,g;return 95&(1+(32704^A)>>>8^-1)|45&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function mI(A){var I,g;return 47&(1+(16320^A)>>>8^-1)|43&(1+(16321^A)>>>8^-1)|(I=A+65510>>>8&255)&A+65|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function UI(A,I,g,B,C,Q,E,i,a,r,o){switch(o+-1|0){case 0:return function(A,I,g,B,C,Q,E,i,a,r){var o,e;o=I,e=eA(A,0,I),A=22;A:if(!(g>>>0>0)){if(!(!g&I>>>0<16|g>>>0<0)){if(r>>>0>2147483648|(Q|a)>>>0>0)break A;if(!(!a&i>>>0<3|a>>>0<0|r>>>0<8192))return NA(i,r>>>10|0,1,B,C,E,16,e,o,0,0,1)?-1:0}A=28}return n[8960]=A,-1}(A,I,g,B,C,Q,E,i,a,r);case 1:return function(A,I,g,B,C,Q,E,i,a,r){var o,e;o=I,e=eA(A,0,I),A=22;A:if(!(g>>>0>0)){if(!(!g&I>>>0<16|g>>>0<0)){if(r>>>0>2147483648|(Q|a)>>>0>0)break A;if(!(!(i|a)|r>>>0<8192))return NA(i,r>>>10|0,1,B,C,E,16,e,o,0,0,2)?-1:0}A=28}return n[8960]=A,-1}(A,I,g,B,C,Q,E,i,a,r)}return n[8960]=28,-1}function vI(A,I,g,B){var C=0;C=-1;A:if(!(g>>>0>64|B+-1>>>0>63)){I:{if(!g||!I){if(!lI(A,255&B))break I;break A}if(II(A,255&B,I,255&g))break A}C=0}return C}function SI(A){var I=0,g=0,B=0,C=0,Q=0;for(I=32,g=1;Q=(B=a[(I=I+-1|0)+A|0])-(C=a[I+3456|0])>>8&g|255&Q,g&=65535+(B^C)>>>8,I;);return 0!=(0|Q)}function NI(A,I){var g,B,C;D=g=D-144|0,O(g+96|0,I+80|0),H(g+48|0,I,g+96|0),H(g,I+40|0,g+96|0),oA(A,g),B=A,C=yg(g+48|0)<<7^a[A+31|0],E[B+31|0]=C,D=g+144|0}function RI(A,I){var g,B=0;if(E[15+(g=D-16|0)|0]=0,I)for(;E[g+15|0]=a[A+B|0]|a[g+15|0],(0|(B=B+1|0))!=(0|I););return a[g+15|0]+-1>>>8&1}function MI(A,I,g,B){var C;return B=I+B|0,(C=A+g|0)>>>0<g>>>0&&(B=B+1|0),g=xg(A<<1&-2,1&(I=I<<1|A>>>31),g,0),A=l+B|0,l=A=(I=g+C|0)>>>0<g>>>0?A+1|0:A,I}function dI(A,I,g){var B,C=0;if(B=g>>>3|0)for(g=0;WA((C=g<<3)+A|0,n[(C=I+C|0)>>2],n[C+4>>2]),(0|B)!=(0|(g=g+1|0)););}function PI(A){var I=0,g=0;for(g=127&(-1^a[A+31|0]),I=30;g=-1^a[A+I|0]|g,I=I+-1|0;);return 1&(((255&g)-1&236-a[0|A])>>>8^-1)}function JI(A){var I=0,g=0;return I=0,A&&(g=A,I=A,(1|A)>>>0<65536||(I=g)),g=I,!(A=_(I))|!(3&a[A+-4|0])||eA(A,0,g),A}function xI(A,I){var g=0;!function(A,I){I&&((I=n[A>>2])&&KI(n[I+4>>2],n[A+16>>2]<<10),(I=n[A+4>>2])&&KI(I,n[A+20>>2]<<3))}(A,4&I),v(n[A+4>>2]),n[A+4>>2]=0,(I=n[A>>2])&&(g=n[I>>2])&&v(g),v(I),n[A>>2]=0}function LI(A,I,g){E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24}function KI(A,I){var g;if(n[12+(g=D-16|0)>>2]=A,I)for(A=0;E[n[g+12>>2]+A|0]=0,(0|I)!=(0|(A=A+1|0)););}function qI(A,I){A|=0;var g=0,B=0,C=0;if(I|=0)for(;B=A+g|0,C=Qg(),E[0|B]=C,(0|(g=g+1|0))!=(0|I););}function XI(A,I,g,B,C){var Q,E;return A|=0,I|=0,g|=0,B|=0,D=Q=(E=D)-128&-64,nA(Q,C|=0),IA(Q,I,g,B),$(Q,A),D=E,0}function VI(A){var I=0,g=0,B=0;for(I=1;I=a[0|(B=A+g|0)]+I|0,E[0|B]=I,I=I>>>8|0,4!=(0|(g=g+1|0)););}function TI(A,I,g,B,C,Q,E,i){var n,a=0;return D=n=D-32|0,a=-1,lg(n,E,i)||(a=Ug(A,I,g,B,C,Q,n),KI(n,32)),D=n+32|0,a}function WI(A,I,g,B,C,Q,E,i){var n,a=0;return D=n=D-32|0,a=-1,lg(n,E,i)||(a=vg(A,I,g,B,C,Q,n),KI(n,32)),D=n+32|0,a}function jI(A,I){var g,B,C;H(A,I,g=I+120|0),H(A+40|0,B=I+40|0,C=I+80|0),H(A+80|0,C,g),H(A+120|0,I,B)}function ZI(A,I){for(var g=0,B=0;E[0|(B=A+g|0)]=a[0|B]^a[I+g|0],8!=(0|(g=g+1|0)););}function OI(A,I,g){var B,C;D=B=(C=D)-384&-64,wg(B,0,0,24),Xg(B,I,32,0),Xg(B,g,32,0),pg(B,A,24),D=C}function zI(A,I){var g;HA(A,g=I+40|0,I),_A(A+40|0,g,I),ZA(A+80|0,I+80|0),H(A+120|0,I+120|0,2224)}function $I(A,I,g,B,C,Q,E){return!B&g>>>0>=4294967280|B>>>0>0&&(Gg(),t()),TI(A+16|0,A,I,g,B,C,Q,E)}function Ag(A,I,g,B,C,Q,E){return I+-1>>>0>63|E>>>0>64?-1:function(A,I,g,B,C,Q,E){var i,n=0;if(i=n=D,D=n=n-384&-64,!(!A|(B+-1&255)>>>0>=64|(C|Q?!I:0)|E>>>0>=65|(E?!g:0)))return E?II(n,B,g,E):lI(n,B),rA(n,I,C,Q),P(n,A,B),D=i,0;Gg(),t()}(A,g,Q,255&I,B,C,255&E)}function Ig(A,I){var g;H(A,I,g=I+120|0),H(A+40|0,I+40|0,I=I+80|0),H(A+80|0,I,g)}function gg(A,I,g,B,C,E,i){1==(0|B)&g>>>0>=0|B>>>0>1&&(Gg(),t()),Q[n[8956]](A,I,g,B,C,E,i)}function Bg(A,I,g,B,C,E){1==(0|B)&g>>>0>=0|B>>>0>1&&(Gg(),t()),Q[n[8955]](A,I,g,B,C,1,0,E)}function Cg(A){var I;return I=a[0|A]|a[A+1|0]<<8,A=a[A+2|0],l=A>>>16|0,I|A<<16}function Qg(){var A,I;return D=A=D-16|0,E[A+15|0]=0,I=0|f(1024,A+15|0,0),D=A+16|0,0|I}function Eg(A,I,g,B,C){var Q;return D=Q=D-416|0,dA(Q,C),W(Q,I,g,B),sA(Q,A),D=Q+416|0,0}function ig(A,I,g,B){var C;return D=C=D-208|0,rg(C),W(C,I,g,B),ag(C,A),D=C+208|0,0}function ng(A,I){var g=0;return(-1>>>(g=31&I)&A)<<g|((g=A)&-1<<(A=0-I&31))>>>A}function ag(A,I){var g;D=g=D-704|0,function(A,I){var g,B=0;A:if((g=n[A+72>>2]>>>3&127)>>>0<=111){if(!(B=112-g|0))break A;j(80+(A+g|0)|0,35424,B)}else j((B=A+80|0)+g|0,35424,128-g|0),G(A,B,I,I+640|0),eA(B,0,112);dI(A+192|0,A- -64|0,16),G(A,A+80|0,I,I+640|0)}(A,g),dI(I,A,64),KI(g,704),KI(A,208),D=g+704|0}function rg(A){n[A+64>>2]=0,n[A+68>>2]=0,n[A+72>>2]=0,n[A+76>>2]=0,j(A,34720,64)}function og(A,I,g){return g>>>0>=256&&(c(2016,2036,107,2089),t()),P(A,I,255&g)}function eg(){var A;D=A=D-16|0,E[A+15|0]=0,f(1062,A+15|0,0),D=A+16|0}function tg(A){var I;return D=I=D-32|0,oA(I,A),A=RI(I,32),D=I+32|0,A}function cg(A,I){var g;D=g=D-128|0,function(A,I){ZA(A,I),ZA(A+40|0,I+40|0),ZA(A+80|0,I+80|0)}(g+8|0,I),pI(A,g+8|0),D=g+128|0}function fg(A,I){E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24}function yg(A){var I;return D=I=D-32|0,oA(I,A),D=I+32|0,1&E[0|I]}function sg(A,I,g){pA(A,I,g),pA(A+40|0,I+40|0,g),pA(A+80|0,I+80|0,g)}function wg(A,I,g,B){return 0|vI(A|=0,I|=0,g|=0,B|=0)}function hg(A){E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0}function Dg(A){n[A>>2]=0,n[A+4>>2]=0,n[A+8>>2]=0,n[A+12>>2]=0}function ug(A){E[0|A]=0,E[A+1|0]=0,E[A+2|0]=0,E[A+3|0]=0}function pg(A,I,g){return 0|og(A|=0,I|=0,g|=0)}function lg(A,I,g){return 0|function(A,I,g){var B,C=0;return D=B=D-32|0,C=-1,DI(B,g,I)||(C=X(A,35552,B)),D=B+32|0,C}(A|=0,I|=0,g|=0)}function Fg(A,I,g){return 0|DI(A|=0,I|=0,g|=0)}function Gg(){var A;(A=n[9105])&&Q[0|A](),y(),t()}function kg(A){iB(A),Vg(A+40|0),Vg(A+80|0),iB(A+120|0)}function _g(A,I,g,B,C,E){Q[n[8952]](A,I,g,B,C,0,0,E)}function Hg(A,I,g,B,C,E){Q[n[8952]](A,I,g,B,C,1,0,E)}function Yg(A,I){return A|=0,qI(I|=0,32),0|qg(A,I)}function bg(A,I){return A=function(A,I){var g=0,B=0;A:{if(B=255&I){if(3&A)for(;;){if(!(g=a[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=n[A>>2]))&g+-16843009&-2139062144))for(B=o(B,16843009);;){if((-1^(g^=B))&g+-16843009&-2139062144)break I;if(g=n[A+4>>2],A=A+4|0,g+-16843009&(-1^g)&-2139062144)break}for(;(B=a[0|(g=A)])&&(A=g+1|0,(0|B)!=(255&I)););return g}return VA(A)+A|0}return A}(A,I),a[0|A]==(255&I)?A:0}function mg(A,I,g,B,C,Q){return V(A,I,g,B,C,Q,0),0}function Ug(A,I,g,B,C,Q,E){return fA(A,I,g,B,C,Q,E)}function vg(A,I,g,B,C,Q,E){return yA(A,I,g,B,C,Q,E)}function Sg(A,I,g,B,C,Q,E){return Ag(A,I,g,B,C,Q,E)}function Ng(A,I){rg(A),I&&W(A,35728,34,0)}function Rg(A,I,g,B,C){return MA(A,I,g,B,C,0)}function Mg(A,I){return 0|qg(A|=0,I|=0)}function dg(A,I){return(255&(A^I))-1>>>31|0}function Pg(A,I,g,B){Q[n[8954]](A,I,0,g,B)}function Jg(A,I,g){Q[n[8953]](A,64,0,I,g)}function xg(A,I,g,B){return function(A,I,g,B){var C,Q,E,i,n=0,a=0;return i=o(n=g>>>16|0,a=A>>>16|0),n=(65535&(a=((E=o(C=65535&g,Q=65535&A))>>>16|0)+o(a,C)|0))+o(n,Q)|0,A=(o(I,g)+i|0)+o(A,B)+(a>>>16)+(n>>>16)|0,l=A,65535&E|n<<16}(A,I,g,B)}function Lg(A,I,g,B){Q[n[8947]](A,I,g,B)}function Kg(A,I,g){!function(A,I,g){var B,C;D=B=D-128|0,Vg(A),Vg(A+40|0),iB(A+80|0),sg(A,I,dg(g=g-((0-(C=(128&g)>>>7|0)&g)<<1)<<24>>24,1)),sg(A,I+120|0,dg(g,2)),sg(A,I+240|0,dg(g,3)),sg(A,I+360|0,dg(g,4)),sg(A,I+480|0,dg(g,5)),sg(A,I+600|0,dg(g,6)),sg(A,I+720|0,dg(g,7)),sg(A,I+840|0,dg(g,8)),ZA(B+8|0,A+40|0),ZA(B+48|0,A),TA(B+88|0,A+80|0),sg(A,B+8|0,C),D=B+128|0}(A,o(I,960)+3488|0,g)}function qg(A,I){return 0|Q[n[8950]](A,I)}function Xg(A,I,g,B){return Tg(A,I,g,B)}function Vg(A){n[A>>2]=1,eA(A+4|0,0,36)}function Tg(A,I,g,B){return rA(A,I,g,B)}function Wg(A,I,g){return function(A,I,g){var B=0,C=0,Q=0,E=0;return B=31&(Q=E=63&g),32<=Q>>>0?B=-1>>>B|0:(C=-1>>>B|0,B=(1<<B)-1<<32-B|-1>>>B),Q=B&A,B=I&C,C=31&E,32<=E>>>0?(B=Q<<C,E=0):(B=(1<<C)-1&Q>>>32-C|B<<C,E=Q<<C),Q=B,g=31&(B=C=0-g&63),32<=B>>>0?(B=-1<<g,g=0):(B=(1<<g)-1&-1>>>32-g|-1<<g,g=-1<<g),A&=g,B&=I,I=31&C,32<=C>>>0?(g=0,A=B>>>I|0):(g=B>>>I|0,A=((1<<I)-1&B)<<32-I|A>>>I),l=g|Q,A|E}(A,I,g)}function jg(A,I,g){return function(A,I,g){var B=0,C=0,Q=0,E=0,i=0;return B=31&(E=63&g),32<=E>>>0?(C=-1<<B,i=0):(C=(1<<B)-1&-1>>>32-B|-1<<B,i=-1<<B),i&=A,B=I&C,Q=31&E,32<=E>>>0?(C=0,E=B>>>Q|0):(C=B>>>Q|0,E=((1<<Q)-1&B)<<32-Q|i>>>Q),i=C,Q=31&(B=0-g&63),32<=B>>>0?(C=0,g=-1>>>Q|0):(C=-1>>>Q|0,g=(1<<Q)-1<<32-Q|-1>>>Q),A&=g,I&=C,C=31&B,32<=B>>>0?(g=A<<C,A=0):(g=(1<<C)-1&A>>>32-C|I<<C,A<<=C),l=g|i,A|E}(A,I,g)}function Zg(A){1!=(-7&A)&&(Gg(),t())}function Og(A,I){Q[n[8946]](A,I)}function zg(A,I){Q[n[8948]](A,I)}function $g(A,I){return yI(A,I,32)}function AB(A,I){return yI(A,I,16)}function IB(A,I,g,B){Pg(A,I,g,B)}function gB(A,I){return ng(A,I)}function BB(A,I){j(A,I,1024)}function CB(A){qI(A|=0,32)}function QB(A,I,g){!function(A,I,g){var B,C,Q,E,i,n,r,o,e,t,c,f,y=0,s=0,w=0,h=0,D=0,u=0,p=0,l=0,F=0,G=0,k=0,_=0,H=0,Y=0,b=0,m=0,U=0,v=0,S=0,N=0,R=0;for(B=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,C=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,Q=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,E=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,i=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,n=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,r=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,o=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,g=1634760805,h=B,D=C,b=Q,u=E,H=857760878,p=e=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,l=t=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,F=c=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,_=f=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=2036477234,s=i,G=1797285236,k=o,w=r,y=n;u=gB(g+y|0,7)^u,F=gB(u+g|0,9)^F,m=gB(F+u|0,13)^y,S=gB(F+m|0,18),y=gB(h+H|0,7)^_,Y=gB(y+H|0,9)^w,h=gB(y+Y|0,13)^h,_=gB(Y+h|0,18),k=gB(I+p|0,7)^k,D=gB(k+I|0,9)^D,p=gB(D+k|0,13)^p,N=gB(D+p|0,18),w=gB(s+G|0,7)^b,l=gB(w+G|0,9)^l,U=gB(l+w|0,13)^s,R=gB(l+U|0,18),h=gB((g^=S)+w|0,7)^h,D=gB(h+g|0,9)^D,b=gB(h+D|0,13)^w,g=gB(D+b|0,18)^g,p=gB((s=H^_)+u|0,7)^p,l=gB(p+s|0,9)^l,u=gB(l+p|0,13)^u,H=gB(l+u|0,18)^s,s=gB((I^=N)+y|0,7)^U,F=gB(s+I|0,9)^F,_=gB(F+s|0,13)^y,I=gB(F+_|0,18)^I,y=gB((G^=R)+k|0,7)^m,w=gB(y+G|0,9)^Y,k=gB(y+w|0,13)^k,G=gB(w+k|0,18)^G,Y=v>>>0<18,v=v+2|0,Y;);fg(A,g+1634760805|0),fg(A+4|0,h+B|0),fg(A+8|0,D+C|0),fg(A+12|0,b+Q|0),fg(A+16|0,u+E|0),fg(A+20|0,H+857760878|0),fg(A+24|0,p+e|0),fg(A+28|0,l+t|0),fg(A+32|0,F+c|0),fg(A+36|0,_+f|0),fg(A+40|0,I+2036477234|0),fg(A+44|0,s+i|0),fg(A+48|0,y+n|0),fg(A+52|0,w+r|0),fg(A+56|0,k+o|0),fg(A+60|0,G+1797285236|0)}(A,I,g)}function EB(A){eA(A,0,1024)}function iB(A){eA(A,0,40)}function nB(){return 16}function aB(){return 32}function rB(){return 24}function oB(){return-17}function eB(){return 64}function tB(){return 1}function cB(){return 2}function fB(){return 8}function yB(){return 0}function sB(){return-1}function wB(){return 3}function hB(){return B.byteLength/65536|0}return Q[1]=XI,Q[2]=function(A,I,g,B,C){var Q;return A|=0,D=Q=D-16|0,XI(Q,I|=0,g|=0,B|=0,C|=0),A=AB(A,Q),D=Q+16|0,0|A},Q[3]=function(A,I){return nA(A|=0,I|=0),0},Q[4]=function(A,I,g,B){return IA(A|=0,I|=0,g|=0,B|=0),0},Q[5]=function(A,I){return $(A|=0,I|=0),0},Q[6]=function(A,I,g){A|=0,I|=0;var B,C=0,Q=0;if(D=B=D-336|0,C=-1,!mA(g|=0)){for(C=0;E[A+C|0]=a[I+C|0],32!=(0|(C=C+1|0)););for(E[0|A]=248&a[0|A],E[A+31|0]=63&a[A+31|0]|64,J(B+288|0,g),Vg(B+240|0),iB(B+192|0),ZA(B+144|0,B+288|0),Vg(B+96|0),g=254,I=0;C=I,Q=g,QA(B+240|0,B+144|0,C^=I=a[(g>>>3|0)+A|0]>>>(7&g)&1),QA(B+192|0,B+96|0,C),g=g+-1|0,_A(B+48|0,B+144|0,B+96|0),_A(B,B+240|0,B+192|0),HA(B+240|0,B+240|0,B+192|0),HA(B+192|0,B+144|0,B+96|0),H(B+96|0,B+48|0,B+240|0),H(B+192|0,B+192|0,B),U(B+48|0,B),U(B,B+240|0),HA(B+144|0,B+96|0,B+192|0),_A(B+192|0,B+96|0,B+192|0),H(B+240|0,B,B+48|0),_A(B,B,B+48|0),U(B+192|0,B+192|0),d(B+96|0,B),U(B+144|0,B+144|0),HA(B+48|0,B+48|0,B+96|0),H(B+96|0,B+288|0,B+192|0),H(B+192|0,B,B+48|0),Q;);QA(B+240|0,B+144|0,I),QA(B+192|0,B+96|0,I),O(B+192|0,B+192|0),H(B+240|0,B+240|0,B+192|0),oA(A,B+240|0),C=0}return D=B+336|0,0|C},Q[7]=function(A,I){A|=0,I|=0;var g,B=0;for(D=g=D-208|0;E[A+B|0]=a[I+B|0],32!=(0|(B=B+1|0)););return E[0|A]=248&a[0|A],E[A+31|0]=63&a[A+31|0]|64,tA(g+48|0,A),function(A,I,g){var B;D=B=D-96|0,HA(B+48|0,g,I),_A(B,g,I),O(B,B),H(A,B+48|0,B),D=B+96|0}(g,g+88|0,g+128|0),oA(A,g),D=g+208|0,0},Q[8]=function(A,I,g,B,C){A|=0,B|=0,C|=0;var Q,i=0;if(D=Q=D-112|0,(I|=0)|(g|=0)){i=a[C+28|0]|a[C+29|0]<<8|a[C+30|0]<<16|a[C+31|0]<<24,n[Q+24>>2]=a[C+24|0]|a[C+25|0]<<8|a[C+26|0]<<16|a[C+27|0]<<24,n[Q+28>>2]=i,i=a[C+20|0]|a[C+21|0]<<8|a[C+22|0]<<16|a[C+23|0]<<24,n[Q+16>>2]=a[C+16|0]|a[C+17|0]<<8|a[C+18|0]<<16|a[C+19|0]<<24,n[Q+20>>2]=i,i=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,n[Q>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,n[Q+4>>2]=i,i=a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24,n[Q+8>>2]=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,n[Q+12>>2]=i,C=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n[Q+104>>2]=0,n[Q+108>>2]=0,n[Q+96>>2]=C,n[Q+100>>2]=B;A:{if(!g&I>>>0>=64|g>>>0>0){for(;;){for(QB(A,Q+96|0,Q),C=8,B=1;B=a[0|(i=(Q+96|0)+C|0)]+B|0,E[0|i]=B,B=B>>>8|0,16!=(0|(C=C+1|0)););if(A=A- -64|0,g=g+-1|0,(I=I+-64|0)>>>0<4294967232&&(g=g+1|0),!(!g&I>>>0>63|g>>>0>0))break}if(!(I|g))break A}if(C=0,QB(Q+32|0,Q+96|0,Q),I)for(;E[A+C|0]=a[(Q+32|0)+C|0],(0|I)!=(0|(C=C+1|0)););}KI(Q+32|0,64),KI(Q,32)}return D=Q+112|0,0},Q[9]=function(A,I,g,B,C,Q,i,r){A|=0,I|=0,C|=0,Q|=0,i|=0,r|=0;var o,e=0,t=0;if(D=o=D-112|0,(g|=0)|(B|=0)){for(e=a[r+28|0]|a[r+29|0]<<8|a[r+30|0]<<16|a[r+31|0]<<24,n[o+24>>2]=a[r+24|0]|a[r+25|0]<<8|a[r+26|0]<<16|a[r+27|0]<<24,n[o+28>>2]=e,e=a[r+20|0]|a[r+21|0]<<8|a[r+22|0]<<16|a[r+23|0]<<24,n[o+16>>2]=a[r+16|0]|a[r+17|0]<<8|a[r+18|0]<<16|a[r+19|0]<<24,n[o+20>>2]=e,e=a[r+4|0]|a[r+5|0]<<8|a[r+6|0]<<16|a[r+7|0]<<24,n[o>>2]=a[0|r]|a[r+1|0]<<8|a[r+2|0]<<16|a[r+3|0]<<24,n[o+4>>2]=e,e=8,t=a[r+12|0]|a[r+13|0]<<8|a[r+14|0]<<16|a[r+15|0]<<24,n[o+8>>2]=a[r+8|0]|a[r+9|0]<<8|a[r+10|0]<<16|a[r+11|0]<<24,n[o+12>>2]=t,r=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,n[o+96>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,n[o+100>>2]=r;E[(o+96|0)+e|0]=Q,Q=(255&i)<<24|Q>>>8,i=i>>>8|0,16!=(0|(e=e+1|0)););if(!B&g>>>0>63|B>>>0>0)for(;;){for(e=0,QB(o+32|0,o+96|0,o);E[A+e|0]=a[(o+32|0)+e|0]^a[I+e|0],r=1,64!=(0|(e=e+1|0)););for(e=8;C=a[0|(Q=(o+96|0)+e|0)]+r|0,E[0|Q]=C,r=C>>>8|0,16!=(0|(e=e+1|0)););if(I=I- -64|0,A=A- -64|0,B=B+-1|0,(g=g+-64|0)>>>0<4294967232&&(B=B+1|0),!(!B&g>>>0>63|B>>>0>0))break}if(g|B&&(e=0,QB(o+32|0,o+96|0,o),g))for(;E[A+e|0]=a[(o+32|0)+e|0]^a[I+e|0],(0|g)!=(0|(e=e+1|0)););KI(o+32|0,64),KI(o,32)}return D=o+112|0,0},Q[10]=function(A,I,g,B,C){var Q;return A|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(hA(Q,C|=0),jA(Q,B,0),N(Q,A=eA(A,0,I),A,I,g),KI(Q,64)),D=Q- -64|0,0},Q[11]=function(A,I,g,B,C){var Q;return A|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(hA(Q,C|=0),iI(Q,B,0),N(Q,A=eA(A,0,I),A,I,g),KI(Q,64)),D=Q- -64|0,0},Q[12]=function(A,I,g,B,C,Q,E,i){var n;return A|=0,I|=0,C|=0,E|=0,i|=0,D=n=D-80|0,(g|=0)|(B|=0)&&(fg(n+8|0,Q|=0),fg(n+12|0,E),hA(n+16|0,i),jA(n+16|0,C,n+8|0),N(n+16|0,I,A,g,B),KI(n+16|0,64)),D=n+80|0,0},Q[13]=function(A,I,g,B,C,Q,E){var i;return A|=0,I|=0,C|=0,E|=0,D=i=D-80|0,(g|=0)|(B|=0)&&(fg(i+12|0,Q|=0),hA(i+16|0,E),iI(i+16|0,C,i+12|0),N(i+16|0,I,A,g,B),KI(i+16|0,64)),D=i+80|0,0},{g:function(){},h:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|OA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},i:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|kI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,a|=0,r|=0)},j:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|LA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},k:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|_I(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,a|=0,r|=0)},l:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|qA(A|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},m:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|CI(A|=0,I|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},n:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|PA(A|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},o:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|gI(A|=0,I|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},p:aB,q:function(){return 12},r:yB,s:nB,t:oB,u:CB,v:aB,w:fB,x:yB,y:nB,z:oB,A:CB,B:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|$A(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,r|=0,o|=0)},C:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|HI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,a|=0,r|=0)},D:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|AI(A|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},E:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|BI(A|=0,I|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},F:aB,G:rB,H:yB,I:nB,J:oB,K:CB,L:aB,M:aB,N:function(A,I,g,B,C){return 0|Eg(A|=0,I|=0,g|=0,B|=0,C|=0)},O:function(A,I,g,B,C){return 0|function(A,I,g,B,C){var Q;return D=Q=D-32|0,Eg(Q,I,g,B,C),I=$g(A,Q),g=hI(Q,A,32),D=Q+32|0,g|((0|A)==(0|Q)?-1:I)}(A|=0,I|=0,g|=0,B|=0,C|=0)},P:CB,Q:aB,R:aB,S:aB,T:aB,U:rB,V:nB,W:oB,X:function(A,I,g){return 0|function(A,I,g){var B,C=0;return D=B=D+-64|0,ig(B,g,32,0),g=n[B+28>>2],C=n[B+24>>2],E[I+24|0]=C,E[I+25|0]=C>>>8,E[I+26|0]=C>>>16,E[I+27|0]=C>>>24,E[I+28|0]=g,E[I+29|0]=g>>>8,E[I+30|0]=g>>>16,E[I+31|0]=g>>>24,g=n[B+20>>2],C=n[B+16>>2],E[I+16|0]=C,E[I+17|0]=C>>>8,E[I+18|0]=C>>>16,E[I+19|0]=C>>>24,E[I+20|0]=g,E[I+21|0]=g>>>8,E[I+22|0]=g>>>16,E[I+23|0]=g>>>24,g=n[B+12>>2],C=n[B+8>>2],E[I+8|0]=C,E[I+9|0]=C>>>8,E[I+10|0]=C>>>16,E[I+11|0]=C>>>24,E[I+12|0]=g,E[I+13|0]=g>>>8,E[I+14|0]=g>>>16,E[I+15|0]=g>>>24,g=n[B+4>>2],C=n[B>>2],E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,E[I+4|0]=g,E[I+5|0]=g>>>8,E[I+6|0]=g>>>16,E[I+7|0]=g>>>24,KI(B,64),A=qg(A,I),D=B- -64|0,A}(A|=0,I|=0,g|=0)},Y:Yg,Z:lg,_:function(A,I,g,B,C,Q,E){return 0|Ug(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},$:function(A,I,g,B,C,Q,E,i){return 0|TI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},aa:function(A,I,g,B,C,Q){return 0|function(A,I,g,B,C,Q){return!B&g>>>0>=4294967280|B>>>0>0&&(Gg(),t()),Ug(A+16|0,A,I,g,B,C,Q)}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},ba:function(A,I,g,B,C,Q,E){return 0|$I(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ca:function(A,I,g,B,C,Q,E){return 0|vg(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},da:function(A,I,g,B,C,Q,E,i){return 0|WI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},ea:function(A,I,g,B,C,Q){return 0|function(A,I,g,B,C,Q){var E=0,i=0,n=0;return!B&g>>>0>=16|B>>>0>0?(E=A,i=I+16|0,n=I,A=B+-1|0,(I=g+-16|0)>>>0<4294967280&&(A=A+1|0),A=vg(E,i,n,I,A,C,Q)):A=-1,A}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},fa:function(A,I,g,B,C,Q,E){return 0|GI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ga:function(A,I,g,B,C){return 0|iA(A|=0,I|=0,g|=0,B|=0,C|=0)},ha:function(A,I,g,B,C,Q){return 0|function(A,I,g,B,C,Q){var E,i=0;return D=E=D-32|0,i=-1,!B&g>>>0>=48|B>>>0>0&&(OI(E,I,C),C=A,A=B+-1|0,(g=g+-32|0)>>>0<4294967264&&(A=A+1|0),i=GI(C,i=I+32|0,g,A,E,I,Q)),D=E+32|0,i}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},ia:function(){return 48},ja:nB,ka:eB,la:aB,ma:nB,na:eB,oa:aB,pa:function(){return 384},qa:function(A,I,g,B,C,Q,E){return 0|Sg(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ra:wg,sa:function(A,I,g,B){return 0|Xg(A|=0,I|=0,g|=0,B|=0)},ta:pg,ua:CB,va:eB,wa:function(A,I,g,B){return 0|ig(A|=0,I|=0,g|=0,B|=0)},xa:nB,ya:eB,za:fB,Aa:aB,Ba:function(A,I,g,B,C,Q){return 0|xA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Ca:CB,Da:function(A,I,g){return A|=0,Sg(I|=0,32,g|=0,32,0,0,0),0|Mg(A,I)},Ea:function(A,I){return A|=0,qI(I|=0,32),0|Mg(A,I)},Fa:function(A,I,g,B,C){I|=0,g|=0,C|=0;var Q,i,n=0;if(i=n=D,D=n=n-512&-64,Q=(A|=0)||I){if(A=-1,!Fg(n+96|0,B|=0,C)){for(I=I||Q,A=0,wg(n+128|0,0,0,64),Xg(n+128|0,n+96|0,32,0),KI(n+96|0,32),Xg(n+128|0,g,32,0),Xg(n+128|0,C,32,0),pg(n+128|0,n+32|0,64),KI(n+128|0,384);g=(n+32|0)+A|0,E[A+Q|0]=a[0|g],E[A+I|0]=a[g+32|0],32!=(0|(A=A+1|0)););KI(n+32|0,64),A=0}return D=i,0|A}Gg(),t()},Ga:function(A,I,g,B,C){I|=0,g|=0,C|=0;var Q,i,n=0;if(i=n=D,D=n=n-512&-64,Q=(A|=0)||I){if(A=-1,!Fg(n+96|0,B|=0,C)){for(I=I||Q,A=0,wg(n+128|0,0,0,64),Xg(n+128|0,n+96|0,32,0),KI(n+96|0,32),Xg(n+128|0,C,32,0),Xg(n+128|0,g,32,0),pg(n+128|0,n+32|0,64),KI(n+128|0,384);g=(n+32|0)+A|0,E[A+I|0]=a[0|g],E[A+Q|0]=a[g+32|0],32!=(0|(A=A+1|0)););KI(n+32|0,64),A=0}return D=i,0|A}Gg(),t()},Ha:aB,Ia:aB,Ja:aB,Ka:aB,La:tB,Ma:cB,Na:cB,Oa:nB,Pa:sB,Qa:yB,Ra:sB,Sa:nB,Ta:function(){return 128},Ua:function(){return 35681},Va:tB,Wa:sB,Xa:function(){return 8192},Ya:function(){return-2147483648},Za:cB,_a:function(){return 67108864},$a:wB,ab:function(){return 268435456},bb:function(){return 4},cb:function(){return 1073741824},db:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|UI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0,r|=0)},eb:function(A,I,g,B,C,Q,E){return 0|nI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},fb:function(A,I,g,B,C,Q,E,i){return 0|function(A,I,g,B,C,Q,E,i){switch(i+-1|0){case 1:return nI(A,I,g,B,C,Q,E);default:Gg(),t();case 0:}return EI(A,I,g,B,C,Q,E)}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},gb:function(A,I,g,B){return 0|function(A,I,g,B){return eI(A,35681,10)?eI(A,35692,9)?(n[8960]=28,-1):function(A,I,g,B){A:{if(1==(0|B)&g>>>0>=0|B>>>0>1)n[8960]=22;else{if(!(A=lA(A,I,g,1)))break A;-35==(0|A)&&(n[8960]=28)}A=-1}return A}(A,I,g,B):function(A,I,g,B){A:{if(1==(0|B)&g>>>0>=0|B>>>0>1)n[8960]=22;else{if(!(A=lA(A,I,g,2)))break A;-35==(0|A)&&(n[8960]=28)}A=-1}return A}(A,I,g,B)}(A|=0,I|=0,g|=0,B|=0)},hb:function(A,I,g,B){return 0|function(A,I,g,B){return eI(A,35681,10)?eI(A,35692,9)?(n[8960]=28,-1):RA(A,I,g,B,1):RA(A,I,g,B,2)}(A|=0,I|=0,g|=0,B|=0)},ib:Mg,jb:Fg,kb:aB,lb:aB,mb:aB,nb:rB,ob:nB,pb:oB,qb:CB,rb:Ug,sb:function(A,I,g,B,C,Q){return 0|function(A,I,g,B,C,Q){return!B&g>>>0>=4294967280|B>>>0>0&&(Gg(),t()),fA(A+16|0,A,I,g,B,C,Q),0}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},tb:vg,ub:function(A,I,g,B,C,Q){return 0|function(A,I,g,B,C,Q){var E=0,i=0,n=0;return!B&g>>>0>=16|B>>>0>0?(E=A,i=I+16|0,n=I,A=B+-1|0,(I=g+-16|0)>>>0<4294967280&&(A=A+1|0),A=yA(E,i,n,I,A,C,Q)):A=-1,A}(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},vb:CB,wb:function(A,I,g){return A|=0,g|=0,qI(I|=0,24),K(A,I,g),hg(A),g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},xb:function(A,I,g){return K(A|=0,I|=0,g|=0),hg(A),g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},yb:q,zb:function(A,I,g,B,C,Q,E,i,n,a){return 0|cA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0)},Ab:function(A,I,g,B,C,Q,E,i,n,a){return 0|BA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0,n|=0,a|=0)},Bb:function(){return 52},Cb:function(){return 17},Db:rB,Eb:aB,Fb:function(){return-18},Gb:yB,Hb:tB,Ib:cB,Jb:wB,Kb:fB,Lb:nB,Mb:function(A,I,g,B,C){return 0|function(A,I,g,B){var C=0,Q=0,E=0,i=0,n=0,r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0,u=0;if(E=1886610805^(Q=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),i=1936682341^(C=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24),r=1852142177^Q,o=1819895653^C,C=1852075885^(Q=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24),n=1685025377^(B=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24),t=2037671283^Q,e=1952801890^B,(0|(Q=(I+g|0)-(w=7&g)|0))!=(0|I)){for(;c=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,y=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,f=Wg(C,n,13),B=i+n|0,s=l,(C=C+E|0)>>>0<E>>>0&&(B=B+1|0),E=B,h=Wg(C,B,32),D=l,t=Wg(i=t^c,B=e^y,16),B=B+o|0,(n=i+r|0)>>>0<i>>>0&&(B=B+1|0),i=n^t,t=r=B^(e=l),r=Wg(i,r,21),e=l,o=E^=s,E=Wg(C^=f,E,17),f=l,B=B+o|0,(C=C+n|0)>>>0<n>>>0&&(B=B+1|0),o=Wg(C,B,32),s=l,u=Wg(n=C^E,f^=B,13),B=t+D|0,(C=i+h|0)>>>0<i>>>0&&(B=B+1|0),B=f+(E=B)|0,h=l,(f=C+n|0)>>>0<C>>>0&&(B=B+1|0),n=B,i=Wg(f,B,32),t=l,e=Wg(C^=r,B=E^e,16),B=B+s|0,(r=C+o|0)>>>0<o>>>0&&(B=B+1|0),B=(o=(C=B)^l)+t|0,(E=i+(e=t=r^e)|0)>>>0<e>>>0&&(B=B+1|0),t=Wg(t,o,21)^E,i=B,e=B^l,f=Wg(o=f^u,B=n^h,17),B=C+B|0,(o=o+r|0)>>>0<r>>>0&&(B=B+1|0),C=o^f,n=B^(s=l),E^=c,i^=y,r=Wg(o,B,32),o=l,(0|Q)!=(0|(I=I+8|0)););I=Q}switch(Q=g<<24,g=0,w+-1|0){case 6:Q|=a[I+6|0]<<16;case 5:Q|=a[I+5|0]<<8;case 4:Q|=a[I+4|0];case 3:B=(g=a[I+3|0])>>>8|0,g<<=24,Q|=B;case 2:g|=(B=a[I+2|0])<<16,Q|=c=B>>>16|0;case 1:g|=(B=a[I+1|0])<<8,Q|=c=B>>>24|0;case 0:g=a[0|I]|g}return c=Wg(C,n,13),B=i+n|0,i=l,(I=C+E|0)>>>0<E>>>0&&(B=B+1|0),C=B,y=Wg(I,B,32),f=l,t=Wg(n=g^t,B=Q^e,16),B=B+o|0,(E=n+r|0)>>>0<n>>>0&&(B=B+1|0),o=r=B^(e=l),t=Wg(n=E^t,r,21),e=l,i=C^=i,C=Wg(I^=c,C,17),r=l,B=B+i|0,(I=I+E|0)>>>0<E>>>0&&(B=B+1|0),i=Wg(I,B,32),c=l,w=Wg(E=I^C,r^=B,13),B=o+f|0,(I=n+y|0)>>>0<n>>>0&&(B=B+1|0),B=r+(C=B)|0,o=l,(E=I+E|0)>>>0<I>>>0&&(B=B+1|0),n=B,r=Wg(E,B,32),y=l,t=Wg(I^=t,B=C^e,16),B=B+c|0,(I=I+i|0)>>>0<i>>>0&&(B=B+1|0),C=I^t,t=i=B^(e=l),i=Wg(C,i,21),e=l,o=n^=o,n=Wg(E^=w,n,17),c=l,B=B+o|0,(E=I+E|0)>>>0<I>>>0&&(B=B+1|0),o=Wg(E,B,32),f=l,n=Wg(E^=n,I=B^c,13),B=t+y|0,B=(t=I)+(Q^(I=(C=C+r|0)>>>0<r>>>0?B+1|0:B))|0,r=l,(g=E+(Q=g^C)|0)>>>0<Q>>>0&&(B=B+1|0),Q=B,E=Wg(g,B,32),t=l,i=Wg(C^=i,B=I^=e,16),B=B+f|0,(I=C+(255^o)|0)>>>0<C>>>0&&(B=B+1|0),C=I^i,o=i=B^(e=l),i=Wg(C,i,21),e=l,r=Q^=r,Q=Wg(g^=n,Q,17),n=l,B=B+r|0,(g=I+g|0)>>>0<I>>>0&&(B=B+1|0),r=Wg(g,B,32),c=l,n=Wg(g^=Q,I=B^n,13),B=o+t|0,B=(Q=I)+(I=(C=C+E|0)>>>0<E>>>0?B+1|0:B)|0,o=l,(g=g+C|0)>>>0<C>>>0&&(B=B+1|0),Q=B,E=Wg(g,B,32),t=l,i=Wg(C^=i,B=I^=e,16),B=B+c|0,(I=C+r|0)>>>0<C>>>0&&(B=B+1|0),C=I^i,r=i=B^(e=l),i=Wg(C,i,21),e=l,o=Q^=o,Q=Wg(g^=n,Q,17),n=l,B=B+o|0,(g=I+g|0)>>>0<I>>>0&&(B=B+1|0),o=Wg(g,B,32),c=l,n=Wg(g^=Q,Q=B^n,13),B=r+t|0,B=Q+(I=(C=C+E|0)>>>0<E>>>0?B+1|0:B)|0,r=l,(g=g+C|0)>>>0<C>>>0&&(B=B+1|0),Q=B,E=Wg(g,B,32),t=l,i=Wg(C^=i,B=I^=e,16),B=B+c|0,(I=C+o|0)>>>0<C>>>0&&(B=B+1|0),C=I^i,o=i=B^(e=l),i=Wg(C,i,21),e=l,r=Q^=r,Q=Wg(g^=n,Q,17),n=l,B=B+r|0,(g=I+g|0)>>>0<I>>>0&&(B=B+1|0),r=Wg(g,B,32),c=l,n=I=B^n,f=Wg(y=g^Q,I,13),B=o+t|0,(I=C+E|0)>>>0<E>>>0&&(B=B+1|0),E=l,Q=B,i=Wg(C=I^i,B=g=e^B,16),B=B+c|0,(g=C+r|0)>>>0<C>>>0&&(B=B+1|0),C=B,i=Wg(g^i,B^(o=l),21),B=Q+n|0,(Q=I+y|0)>>>0<I>>>0&&(B=B+1|0),B=C+(E^=B)|0,(I=(Q^=f)+g|0)>>>0<g>>>0&&(B=B+1|0),g=l,Q=Wg(Q,E,17)^I^i,g=l^g^B,LI(A,Wg(I,B,32)^Q,l^g),0}(A|=0,I|=0,g|=0,C|=0)},Nb:function(A){qI(A|=0,16)},Ob:function(){return 208},Pb:eB,Qb:aB,Rb:aB,Sb:eB,Tb:function(){return-65},Ub:function(A,I,g){return 0|M(A|=0,I|=0,g|=0)},Vb:function(A,I){return 0|function(A,I){var g;return D=g=D-32|0,qI(g,32),M(A,I,g),KI(g,32),D=g+32|0,0}(A|=0,I|=0)},Wb:function(A,I,g,B,C,Q){return 0|QI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Xb:function(A,I,g,B,C,Q){return 0|KA(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Yb:function(A,I,g,B,C,Q){return 0|mg(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Zb:function(A,I,g,B,C){return 0|Rg(A|=0,I|=0,g|=0,B|=0,C|=0)},_b:function(A){return rg(A|=0),0},$b:function(A,I,g,B){return 0|W(A|=0,I|=0,g|=0,B|=0)},ac:function(A,I,g,B){return 0|function(A,I,g,B){var C;return D=C=D+-64|0,ag(A,C),A=V(I,g,C,64,0,B,1),D=C- -64|0,A}(A|=0,I|=0,g|=0,B|=0)},bc:function(A,I,g){return 0|function(A,I,g){var B;return D=B=D+-64|0,ag(A,B),A=MA(I,B,64,0,g,1),D=B- -64|0,A}(A|=0,I|=0,g|=0)},cc:function(A,I){A|=0;var g,B=0;return D=g=D-256|0,B=-1,UA(I|=0)||FA(g+96|0,I)||function(A){var I;return D=I=D-160|0,CA(I,A),A=tg(I),D=I+160|0,A}(g+96|0)&&(Vg(g),_A(g,g,I=g+136|0),Vg(g+48|0),HA(g+48|0,g+48|0,I),O(g,g),H(g+48|0,g+48|0,g),oA(A,g+48|0),B=0),D=g+256|0,0|B},dc:function(A,I){A|=0;var g,B=0;return D=g=D+-64|0,ig(g,I|=0,32,0),E[0|g]=248&a[0|g],E[g+31|0]=63&a[g+31|0]|64,I=n[g+20>>2],B=n[g+16>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=n[g+12>>2],B=n[g+8>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=n[g+4>>2],B=n[g>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=n[g+28>>2],B=n[g+24>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,KI(g,64),D=g- -64|0,0},ec:Qg,fc:eg,gc:function(A){var I=0,g=0;if((A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;(I=Qg())>>>0<g>>>0;);A=(I>>>0)%(A>>>0)|0}else A=0;return 0|A},hc:qI,ic:function(A,I,g){IB(A|=0,I|=0,1784,g|=0)},jc:aB,kc:function(){var A=0,I=0;return(A=n[9097])&&(A=n[A+20>>2])&&(I=0|Q[0|A]()),0|I},lc:function(A,I,g){!function(A,I,g){1==(0|g)&I>>>0>=0|g>>>0>1&&(c(1796,1816,197,1842),t()),qI(A,I)}(A|=0,I|=0,g|=0)},mc:function(A,I,g,B){A|=0,g|=0;var C=0,Q=0,i=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;C=I<<1,Q=(i=a[I+g|0])>>>4|0,E[C+A|0]=87+(Q+(Q+65526>>>8&217)|0),Q=(1|C)+A|0,C=15&i,E[0|Q]=22272+((C<<8)+(C+65526&55552)|0)>>>8,(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return E[I+A|0]=0,0|A}Gg(),t()},nc:function(A,I,g,B,C,Q,i){A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0;var r=0,o=0,e=0,t=0,c=0,f=0,y=0,s=0,w=0,h=0,D=0;A:if(B|=0){I:{g:{B:for(;;){for(o=r;;){C:{if(!(255&((w=(65526+(y=(223&(f=a[g+o|0]))-55&255)^y+65520)>>>8|0)|(e=65526+(h=48^f)>>>8|0)))){if(e=1,!C|255&c)break g;if(bg(C,f))break C;r=o;break A}if(t>>>0>=I>>>0){n[8960]=68,e=0;break g}if(r=y&w|e&h,255&c?(E[A+t|0]=r|D,t=t+1|0):D=r<<4,c^=-1,e=1,(r=o+1|0)>>>0<B>>>0)continue B;break I}if(c=0,!((o=o+1|0)>>>0<B>>>0))break}break}r=(A=r+1|0)>>>0<B>>>0?B:A;break A}r=o}255&c?(n[8960]=28,s=-1,r=r+-1|0,t=0):e||(t=0,s=-1)}return i?n[i>>2]=g+r:(0|B)!=(0|r)&&(n[8960]=28,s=-1),Q&&(n[Q>>2]=t),0|s},oc:function(A,I){var g;return A|=0,Zg(I|=0),A=o(g=(A>>>0)/3|0,-3)+A|0,o(4-(3-A&0-(I>>>1&1))|0,1&(A|A>>>1))+(g<<2|1)|0},pc:AA,qc:Z,rc:function(){var A=0;return n[9104]?A=1:(n[9086]=0,function(){var A;D=A=D-16|0,Dg(A),n[A>>2]&&(Dg(A),eA(36348,0,40)),D=A+16|0}(),n[9085]=1,eg(),function(){var A=0;(0|(A=0|s(30)))>=1?n[8943]=A:A=n[8943],A>>>0<=15&&(Gg(),t()),qI(36400,16)}(),n[9104]=1,A=0),0|A},sc:function(A,I,g,B,C){A|=0,I|=0,g|=0,C|=0;var Q,i=0,r=0,o=0;D=Q=D-16|0;A:{if(B|=0){if(o=-1,(i=(i=B+-1|0)-(r=i&B?(g>>>0)%(B>>>0)|0:g&i)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+i|0)>>>0>=C>>>0))for(A&&(n[A>>2]=g+1),A=I+g|0,o=0,E[Q+15|0]=0,I=B>>>0>1?B:1,B=0;C=g=A-B|0,r=a[0|g]&a[Q+15|0],g=(B^i)-1>>>24|0,E[0|C]=r|128&g,E[Q+15|0]=g|a[Q+15|0],(0|I)!=(0|(B=B+1|0)););}else o=-1;return D=Q+16|0,0|o}Gg(),t()},tc:function(A,I,g,B){A|=0,I|=0,g|=0,B|=0;var C,Q=0,E=0,i=0,r=0,o=0;if(n[12+(C=D-16|0)>>2]=0,B+-1>>>0<g>>>0){for(o=(Q=g+-1|0)+I|0,g=0,I=0;r=((128^(E=a[o-g|0]))-1&n[C+12>>2]+-1&i+-1)>>>8&1,n[C+12>>2]=n[C+12>>2]|0-r&g,I|=r,i|=E,(0|B)!=(0|(g=g+1|0)););n[A>>2]=Q-n[C+12>>2],A=I+-1|0}else A=-1;return 0|A},uc:function(){return 35762},vc:function(){return 10},wc:wB,xc:tB,yc:function(){return 35840},zc:_,Ac:v,Bc:function(I){return 0|function(I){I|=0;var g=0|hB(),Q=g+I|0;if(g<Q&&Q<65536){var e=new ArrayBuffer(o(Q,65536)),t=new A.Int8Array(e);t.set(E),E=t,E=new A.Int8Array(e),i=new A.Int16Array(e),n=new A.Int32Array(e),a=new A.Uint8Array(e),new A.Uint16Array(e),r=new A.Uint32Array(e),new A.Float32Array(e),new A.Float64Array(e),B=e,C.buffer=e}return g}(0|(I|=0))}}}({Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0,Math:Math},A,I.buffer)}(RA,s,u)},instantiate:function(A,I){return{then:function(I){var g=new w.Module(A);I({instance:new w.Instance(g)})}}},RuntimeError:Error};function h(A,I,g,B){switch("*"===(g=g||"i8").charAt(g.length-1)&&(g="i32"),g){case"i1":case"i8":H[A>>0]=I;break;case"i16":b[A>>1]=I;break;case"i32":m[A>>2]=I;break;case"i64":tA=[I>>>0,(eA=I,+O(eA)>=1?eA>0?(0|AA(+$(eA/4294967296),4294967295))>>>0:~~+z((eA-+(~~eA>>>0))/4294967296)>>>0:0)],m[A>>2]=tA[0],m[A+4>>2]=tA[1];break;case"float":U[A>>2]=I;break;case"double":v[A>>3]=I;break;default:EA("invalid type for setValue: "+g)}}function D(A,I,g){switch("*"===(I=I||"i8").charAt(I.length-1)&&(I="i32"),I){case"i1":case"i8":return H[A>>0];case"i16":return b[A>>1];case"i32":case"i64":return m[A>>2];case"float":return U[A>>2];case"double":return v[A>>3];default:EA("invalid type for getValue: "+I)}return null}f=[],"object"!=typeof w&&EA("no native wasm support detected");var u=new w.Table({initial:14,maximum:22,element:"anyfunc"}),p=!1;function l(A,I){A||EA("Assertion failed: "+I)}var F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function G(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&F)return F.decode(A.subarray(I,C));for(var Q="";I<C;){var E=A[I++];if(128&E){var i=63&A[I++];if(192!=(224&E)){var n=63&A[I++];if((E=224==(240&E)?(15&E)<<12|i<<6|n:(7&E)<<18|i<<12|n<<6|63&A[I++])<65536)Q+=String.fromCharCode(E);else{var a=E-65536;Q+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}function k(A,I){return A?G(Y,A,I):""}var _,H,Y,b,m,U,v,S=65536;function N(A,I){return A%I>0&&(A+=I-A%I),A}function R(A){_=A,I.HEAP8=H=new Int8Array(A),I.HEAP16=b=new Int16Array(A),I.HEAP32=m=new Int32Array(A),I.HEAPU8=Y=new Uint8Array(A),I.HEAPU16=new Uint16Array(A),I.HEAPU32=new Uint32Array(A),I.HEAPF32=U=new Float32Array(A),I.HEAPF64=v=new Float64Array(A)}var M=5279472,d=36432,P=I.INITIAL_MEMORY||16777216;function J(A){for(;A.length>0;){var g=A.shift();if("function"!=typeof g){var B=g.func;"number"==typeof B?void 0===g.arg?I.dynCall_v(B):I.dynCall_vi(B,g.arg):B(void 0===g.arg?null:g.arg)}else g(I)}}(s=I.wasmMemory?I.wasmMemory:new w.Memory({initial:P/S,maximum:2147483648/S}))&&(_=s.buffer),P=_.byteLength,R(_),m[d>>2]=M;var x=[],L=[],K=[],q=[];function X(){if(I.preRun)for("function"==typeof I.preRun&&(I.preRun=[I.preRun]);I.preRun.length;)j(I.preRun.shift());J(x)}function V(){J(L)}function T(){J(K)}function W(){if(I.postRun)for("function"==typeof I.postRun&&(I.postRun=[I.postRun]);I.postRun.length;)Z(I.postRun.shift());J(q)}function j(A){x.unshift(A)}function Z(A){q.unshift(A)}var O=Math.abs,z=Math.ceil,$=Math.floor,AA=Math.min,IA=0,gA=null,BA=null;function CA(A){IA++,I.monitorRunDependencies&&I.monitorRunDependencies(IA)}function QA(A){if(IA--,I.monitorRunDependencies&&I.monitorRunDependencies(IA),0==IA&&(null!==gA&&(clearInterval(gA),gA=null),BA)){var g=BA;BA=null,g()}}function EA(A){throw I.onAbort&&I.onAbort(A),y(A+=""),p=!0,A="abort("+A+"). Build with -s ASSERTIONS=1 for more info.",new w.RuntimeError(A)}function iA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}I.preloadedImages={},I.preloadedAudios={};var nA="data:application/octet-stream;base64,";function aA(A){return iA(A,nA)}var rA="file://";function oA(A){return iA(A,rA)}var eA,tA,cA="";function fA(){try{if(f)return new Uint8Array(f);var A=SA(cA);if(A)return A;if(r)return r(cA);throw"both async and sync fetching of the wasm failed"}catch(A){EA(A)}}function yA(){return f||!Q&&!E||"function"!=typeof fetch||oA(cA)?new Promise(function(A,I){A(fA())}):fetch(cA,{credentials:"same-origin"}).then(function(A){if(!A.ok)throw"failed to load wasm binary file at '"+cA+"'";return A.arrayBuffer()}).catch(function(){return fA()})}function sA(){var A={a:RA};function g(A,g){var B=A.exports;I.asm=B,QA()}function B(A){g(A.instance)}function C(I){return yA().then(function(I){return w.instantiate(I,A)}).then(I,function(A){y("failed to asynchronously prepare wasm: "+A),EA(A)})}if(CA(),I.instantiateWasm)try{return I.instantiateWasm(A,g)}catch(A){return y("Module.instantiateWasm callback failed with error: "+A),!1}return function(){if(f||"function"!=typeof w.instantiateStreaming||aA(cA)||oA(cA)||"function"!=typeof fetch)return C(B);fetch(cA,{credentials:"same-origin"}).then(function(I){return w.instantiateStreaming(I,A).then(B,function(A){return y("wasm streaming compile failed: "+A),y("falling back to ArrayBuffer instantiation"),C(B)})})}(),{}}aA(cA)||(cA=c(cA));var wA={1024:function(){return I.getRandomValue()},1062:function(){if(void 0===I.getRandomValue)try{var A="object"==typeof window?window:self,g=void 0!==A.crypto?A.crypto:A.msCrypto,B=function(){var A=new Uint32Array(1);return g.getRandomValues(A),A[0]>>>0};B(),I.getRandomValue=B}catch(A){try{var C=require("crypto"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),I.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}};function hA(A,I,g){var B=YA(I,g);return wA[A].apply(null,B)}function DA(A,I,g,B){EA("Assertion failed: "+k(A)+", at: "+[I?k(I):"unknown filename",g,B?k(B):"unknown function"])}function uA(){EA()}function pA(A,I,g){Y.copyWithin(A,I,I+g)}function lA(){return Y.length}function FA(A){try{return s.grow(A-_.byteLength+65535>>>16),R(s.buffer),1}catch(A){}}function GA(A){A>>>=0;var I=lA();if(A>2147483648)return!1;for(var g=1;g<=4;g*=2){var B=I*(1+.2/g);if(B=Math.min(B,A+100663296),FA(Math.min(2147483648,N(Math.max(16777216,A,B),65536))))return!0}return!1}function kA(A){return m[dA()>>2]=A,A}function _A(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return kA(28),-1}L.push({func:function(){MA()}});var HA=[];function YA(A,I){var g;for(HA.length=0,I>>=2;g=Y[A++];){var B=g<105;B&&1&I&&I++,HA.push(B?v[I++>>1]:m[I]),++I}return HA}var bA=!1;function mA(A){for(var I=[],g=0;g<A.length;g++){var B=A[g];B>255&&(bA&&l(!1,"Character code "+B+" ("+String.fromCharCode(B)+")  at offset "+g+" not in 0x00-0xFF."),B&=255),I.push(String.fromCharCode(B))}return I.join("")}var UA="function"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a<A.length);return n};function vA(A){if("boolean"==typeof i&&i){var I;try{I=Buffer.from(A,"base64")}catch(g){I=new Buffer(A,"base64")}return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}try{for(var g=UA(A),B=new Uint8Array(g.length),C=0;C<g.length;++C)B[C]=g.charCodeAt(C);return B}catch(A){throw new Error("Converting base64 string to bytes failed.")}}function SA(A){if(aA(A))return vA(A.slice(nA.length))}var NA,RA={a:DA,c:uA,b:hA,e:pA,f:GA,memory:s,d:_A,table:u},MA=(sA(),I.___wasm_call_ctors=function(){return(MA=I.___wasm_call_ctors=I.asm.g).apply(null,arguments)}),dA=(I._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(I._crypto_aead_chacha20poly1305_encrypt_detached=I.asm.h).apply(null,arguments)},I._crypto_aead_chacha20poly1305_encrypt=function(){return(I._crypto_aead_chacha20poly1305_encrypt=I.asm.i).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(I._crypto_aead_chacha20poly1305_ietf_encrypt_detached=I.asm.j).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(I._crypto_aead_chacha20poly1305_ietf_encrypt=I.asm.k).apply(null,arguments)},I._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(I._crypto_aead_chacha20poly1305_decrypt_detached=I.asm.l).apply(null,arguments)},I._crypto_aead_chacha20poly1305_decrypt=function(){return(I._crypto_aead_chacha20poly1305_decrypt=I.asm.m).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(I._crypto_aead_chacha20poly1305_ietf_decrypt_detached=I.asm.n).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(I._crypto_aead_chacha20poly1305_ietf_decrypt=I.asm.o).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(I._crypto_aead_chacha20poly1305_ietf_keybytes=I.asm.p).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(I._crypto_aead_chacha20poly1305_ietf_npubbytes=I.asm.q).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(I._crypto_aead_chacha20poly1305_ietf_nsecbytes=I.asm.r).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(I._crypto_aead_chacha20poly1305_ietf_abytes=I.asm.s).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(I._crypto_aead_chacha20poly1305_ietf_messagebytes_max=I.asm.t).apply(null,arguments)},I._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(I._crypto_aead_chacha20poly1305_ietf_keygen=I.asm.u).apply(null,arguments)},I._crypto_aead_chacha20poly1305_keybytes=function(){return(I._crypto_aead_chacha20poly1305_keybytes=I.asm.v).apply(null,arguments)},I._crypto_aead_chacha20poly1305_npubbytes=function(){return(I._crypto_aead_chacha20poly1305_npubbytes=I.asm.w).apply(null,arguments)},I._crypto_aead_chacha20poly1305_nsecbytes=function(){return(I._crypto_aead_chacha20poly1305_nsecbytes=I.asm.x).apply(null,arguments)},I._crypto_aead_chacha20poly1305_abytes=function(){return(I._crypto_aead_chacha20poly1305_abytes=I.asm.y).apply(null,arguments)},I._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(I._crypto_aead_chacha20poly1305_messagebytes_max=I.asm.z).apply(null,arguments)},I._crypto_aead_chacha20poly1305_keygen=function(){return(I._crypto_aead_chacha20poly1305_keygen=I.asm.A).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(I._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=I.asm.B).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(I._crypto_aead_xchacha20poly1305_ietf_encrypt=I.asm.C).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(I._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=I.asm.D).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(I._crypto_aead_xchacha20poly1305_ietf_decrypt=I.asm.E).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(I._crypto_aead_xchacha20poly1305_ietf_keybytes=I.asm.F).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(I._crypto_aead_xchacha20poly1305_ietf_npubbytes=I.asm.G).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(I._crypto_aead_xchacha20poly1305_ietf_nsecbytes=I.asm.H).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(I._crypto_aead_xchacha20poly1305_ietf_abytes=I.asm.I).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(I._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=I.asm.J).apply(null,arguments)},I._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(I._crypto_aead_xchacha20poly1305_ietf_keygen=I.asm.K).apply(null,arguments)},I._crypto_auth_bytes=function(){return(I._crypto_auth_bytes=I.asm.L).apply(null,arguments)},I._crypto_auth_keybytes=function(){return(I._crypto_auth_keybytes=I.asm.M).apply(null,arguments)},I._crypto_auth=function(){return(I._crypto_auth=I.asm.N).apply(null,arguments)},I._crypto_auth_verify=function(){return(I._crypto_auth_verify=I.asm.O).apply(null,arguments)},I._crypto_auth_keygen=function(){return(I._crypto_auth_keygen=I.asm.P).apply(null,arguments)},I._crypto_box_seedbytes=function(){return(I._crypto_box_seedbytes=I.asm.Q).apply(null,arguments)},I._crypto_box_publickeybytes=function(){return(I._crypto_box_publickeybytes=I.asm.R).apply(null,arguments)},I._crypto_box_secretkeybytes=function(){return(I._crypto_box_secretkeybytes=I.asm.S).apply(null,arguments)},I._crypto_box_beforenmbytes=function(){return(I._crypto_box_beforenmbytes=I.asm.T).apply(null,arguments)},I._crypto_box_noncebytes=function(){return(I._crypto_box_noncebytes=I.asm.U).apply(null,arguments)},I._crypto_box_macbytes=function(){return(I._crypto_box_macbytes=I.asm.V).apply(null,arguments)},I._crypto_box_messagebytes_max=function(){return(I._crypto_box_messagebytes_max=I.asm.W).apply(null,arguments)},I._crypto_box_seed_keypair=function(){return(I._crypto_box_seed_keypair=I.asm.X).apply(null,arguments)},I._crypto_box_keypair=function(){return(I._crypto_box_keypair=I.asm.Y).apply(null,arguments)},I._crypto_box_beforenm=function(){return(I._crypto_box_beforenm=I.asm.Z).apply(null,arguments)},I._crypto_box_detached_afternm=function(){return(I._crypto_box_detached_afternm=I.asm._).apply(null,arguments)},I._crypto_box_detached=function(){return(I._crypto_box_detached=I.asm.$).apply(null,arguments)},I._crypto_box_easy_afternm=function(){return(I._crypto_box_easy_afternm=I.asm.aa).apply(null,arguments)},I._crypto_box_easy=function(){return(I._crypto_box_easy=I.asm.ba).apply(null,arguments)},I._crypto_box_open_detached_afternm=function(){return(I._crypto_box_open_detached_afternm=I.asm.ca).apply(null,arguments)},I._crypto_box_open_detached=function(){return(I._crypto_box_open_detached=I.asm.da).apply(null,arguments)},I._crypto_box_open_easy_afternm=function(){return(I._crypto_box_open_easy_afternm=I.asm.ea).apply(null,arguments)},I._crypto_box_open_easy=function(){return(I._crypto_box_open_easy=I.asm.fa).apply(null,arguments)},I._crypto_box_seal=function(){return(I._crypto_box_seal=I.asm.ga).apply(null,arguments)},I._crypto_box_seal_open=function(){return(I._crypto_box_seal_open=I.asm.ha).apply(null,arguments)},I._crypto_box_sealbytes=function(){return(I._crypto_box_sealbytes=I.asm.ia).apply(null,arguments)},I._crypto_generichash_bytes_min=function(){return(I._crypto_generichash_bytes_min=I.asm.ja).apply(null,arguments)},I._crypto_generichash_bytes_max=function(){return(I._crypto_generichash_bytes_max=I.asm.ka).apply(null,arguments)},I._crypto_generichash_bytes=function(){return(I._crypto_generichash_bytes=I.asm.la).apply(null,arguments)},I._crypto_generichash_keybytes_min=function(){return(I._crypto_generichash_keybytes_min=I.asm.ma).apply(null,arguments)},I._crypto_generichash_keybytes_max=function(){return(I._crypto_generichash_keybytes_max=I.asm.na).apply(null,arguments)},I._crypto_generichash_keybytes=function(){return(I._crypto_generichash_keybytes=I.asm.oa).apply(null,arguments)},I._crypto_generichash_statebytes=function(){return(I._crypto_generichash_statebytes=I.asm.pa).apply(null,arguments)},I._crypto_generichash=function(){return(I._crypto_generichash=I.asm.qa).apply(null,arguments)},I._crypto_generichash_init=function(){return(I._crypto_generichash_init=I.asm.ra).apply(null,arguments)},I._crypto_generichash_update=function(){return(I._crypto_generichash_update=I.asm.sa).apply(null,arguments)},I._crypto_generichash_final=function(){return(I._crypto_generichash_final=I.asm.ta).apply(null,arguments)},I._crypto_generichash_keygen=function(){return(I._crypto_generichash_keygen=I.asm.ua).apply(null,arguments)},I._crypto_hash_bytes=function(){return(I._crypto_hash_bytes=I.asm.va).apply(null,arguments)},I._crypto_hash=function(){return(I._crypto_hash=I.asm.wa).apply(null,arguments)},I._crypto_kdf_bytes_min=function(){return(I._crypto_kdf_bytes_min=I.asm.xa).apply(null,arguments)},I._crypto_kdf_bytes_max=function(){return(I._crypto_kdf_bytes_max=I.asm.ya).apply(null,arguments)},I._crypto_kdf_contextbytes=function(){return(I._crypto_kdf_contextbytes=I.asm.za).apply(null,arguments)},I._crypto_kdf_keybytes=function(){return(I._crypto_kdf_keybytes=I.asm.Aa).apply(null,arguments)},I._crypto_kdf_derive_from_key=function(){return(I._crypto_kdf_derive_from_key=I.asm.Ba).apply(null,arguments)},I._crypto_kdf_keygen=function(){return(I._crypto_kdf_keygen=I.asm.Ca).apply(null,arguments)},I._crypto_kx_seed_keypair=function(){return(I._crypto_kx_seed_keypair=I.asm.Da).apply(null,arguments)},I._crypto_kx_keypair=function(){return(I._crypto_kx_keypair=I.asm.Ea).apply(null,arguments)},I._crypto_kx_client_session_keys=function(){return(I._crypto_kx_client_session_keys=I.asm.Fa).apply(null,arguments)},I._crypto_kx_server_session_keys=function(){return(I._crypto_kx_server_session_keys=I.asm.Ga).apply(null,arguments)},I._crypto_kx_publickeybytes=function(){return(I._crypto_kx_publickeybytes=I.asm.Ha).apply(null,arguments)},I._crypto_kx_secretkeybytes=function(){return(I._crypto_kx_secretkeybytes=I.asm.Ia).apply(null,arguments)},I._crypto_kx_seedbytes=function(){return(I._crypto_kx_seedbytes=I.asm.Ja).apply(null,arguments)},I._crypto_kx_sessionkeybytes=function(){return(I._crypto_kx_sessionkeybytes=I.asm.Ka).apply(null,arguments)},I._crypto_pwhash_alg_argon2i13=function(){return(I._crypto_pwhash_alg_argon2i13=I.asm.La).apply(null,arguments)},I._crypto_pwhash_alg_argon2id13=function(){return(I._crypto_pwhash_alg_argon2id13=I.asm.Ma).apply(null,arguments)},I._crypto_pwhash_alg_default=function(){return(I._crypto_pwhash_alg_default=I.asm.Na).apply(null,arguments)},I._crypto_pwhash_bytes_min=function(){return(I._crypto_pwhash_bytes_min=I.asm.Oa).apply(null,arguments)},I._crypto_pwhash_bytes_max=function(){return(I._crypto_pwhash_bytes_max=I.asm.Pa).apply(null,arguments)},I._crypto_pwhash_passwd_min=function(){return(I._crypto_pwhash_passwd_min=I.asm.Qa).apply(null,arguments)},I._crypto_pwhash_passwd_max=function(){return(I._crypto_pwhash_passwd_max=I.asm.Ra).apply(null,arguments)},I._crypto_pwhash_saltbytes=function(){return(I._crypto_pwhash_saltbytes=I.asm.Sa).apply(null,arguments)},I._crypto_pwhash_strbytes=function(){return(I._crypto_pwhash_strbytes=I.asm.Ta).apply(null,arguments)},I._crypto_pwhash_strprefix=function(){return(I._crypto_pwhash_strprefix=I.asm.Ua).apply(null,arguments)},I._crypto_pwhash_opslimit_min=function(){return(I._crypto_pwhash_opslimit_min=I.asm.Va).apply(null,arguments)},I._crypto_pwhash_opslimit_max=function(){return(I._crypto_pwhash_opslimit_max=I.asm.Wa).apply(null,arguments)},I._crypto_pwhash_memlimit_min=function(){return(I._crypto_pwhash_memlimit_min=I.asm.Xa).apply(null,arguments)},I._crypto_pwhash_memlimit_max=function(){return(I._crypto_pwhash_memlimit_max=I.asm.Ya).apply(null,arguments)},I._crypto_pwhash_opslimit_interactive=function(){return(I._crypto_pwhash_opslimit_interactive=I.asm.Za).apply(null,arguments)},I._crypto_pwhash_memlimit_interactive=function(){return(I._crypto_pwhash_memlimit_interactive=I.asm._a).apply(null,arguments)},I._crypto_pwhash_opslimit_moderate=function(){return(I._crypto_pwhash_opslimit_moderate=I.asm.$a).apply(null,arguments)},I._crypto_pwhash_memlimit_moderate=function(){return(I._crypto_pwhash_memlimit_moderate=I.asm.ab).apply(null,arguments)},I._crypto_pwhash_opslimit_sensitive=function(){return(I._crypto_pwhash_opslimit_sensitive=I.asm.bb).apply(null,arguments)},I._crypto_pwhash_memlimit_sensitive=function(){return(I._crypto_pwhash_memlimit_sensitive=I.asm.cb).apply(null,arguments)},I._crypto_pwhash=function(){return(I._crypto_pwhash=I.asm.db).apply(null,arguments)},I._crypto_pwhash_str=function(){return(I._crypto_pwhash_str=I.asm.eb).apply(null,arguments)},I._crypto_pwhash_str_alg=function(){return(I._crypto_pwhash_str_alg=I.asm.fb).apply(null,arguments)},I._crypto_pwhash_str_verify=function(){return(I._crypto_pwhash_str_verify=I.asm.gb).apply(null,arguments)},I._crypto_pwhash_str_needs_rehash=function(){return(I._crypto_pwhash_str_needs_rehash=I.asm.hb).apply(null,arguments)},I._crypto_scalarmult_base=function(){return(I._crypto_scalarmult_base=I.asm.ib).apply(null,arguments)},I._crypto_scalarmult=function(){return(I._crypto_scalarmult=I.asm.jb).apply(null,arguments)},I._crypto_scalarmult_bytes=function(){return(I._crypto_scalarmult_bytes=I.asm.kb).apply(null,arguments)},I._crypto_scalarmult_scalarbytes=function(){return(I._crypto_scalarmult_scalarbytes=I.asm.lb).apply(null,arguments)},I._crypto_secretbox_keybytes=function(){return(I._crypto_secretbox_keybytes=I.asm.mb).apply(null,arguments)},I._crypto_secretbox_noncebytes=function(){return(I._crypto_secretbox_noncebytes=I.asm.nb).apply(null,arguments)},I._crypto_secretbox_macbytes=function(){return(I._crypto_secretbox_macbytes=I.asm.ob).apply(null,arguments)},I._crypto_secretbox_messagebytes_max=function(){return(I._crypto_secretbox_messagebytes_max=I.asm.pb).apply(null,arguments)},I._crypto_secretbox_keygen=function(){return(I._crypto_secretbox_keygen=I.asm.qb).apply(null,arguments)},I._crypto_secretbox_detached=function(){return(I._crypto_secretbox_detached=I.asm.rb).apply(null,arguments)},I._crypto_secretbox_easy=function(){return(I._crypto_secretbox_easy=I.asm.sb).apply(null,arguments)},I._crypto_secretbox_open_detached=function(){return(I._crypto_secretbox_open_detached=I.asm.tb).apply(null,arguments)},I._crypto_secretbox_open_easy=function(){return(I._crypto_secretbox_open_easy=I.asm.ub).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_keygen=function(){return(I._crypto_secretstream_xchacha20poly1305_keygen=I.asm.vb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_init_push=function(){return(I._crypto_secretstream_xchacha20poly1305_init_push=I.asm.wb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(I._crypto_secretstream_xchacha20poly1305_init_pull=I.asm.xb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_rekey=function(){return(I._crypto_secretstream_xchacha20poly1305_rekey=I.asm.yb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_push=function(){return(I._crypto_secretstream_xchacha20poly1305_push=I.asm.zb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_pull=function(){return(I._crypto_secretstream_xchacha20poly1305_pull=I.asm.Ab).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(I._crypto_secretstream_xchacha20poly1305_statebytes=I.asm.Bb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_abytes=function(){return(I._crypto_secretstream_xchacha20poly1305_abytes=I.asm.Cb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(I._crypto_secretstream_xchacha20poly1305_headerbytes=I.asm.Db).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(I._crypto_secretstream_xchacha20poly1305_keybytes=I.asm.Eb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(I._crypto_secretstream_xchacha20poly1305_messagebytes_max=I.asm.Fb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(I._crypto_secretstream_xchacha20poly1305_tag_message=I.asm.Gb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(I._crypto_secretstream_xchacha20poly1305_tag_push=I.asm.Hb).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(I._crypto_secretstream_xchacha20poly1305_tag_rekey=I.asm.Ib).apply(null,arguments)},I._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(I._crypto_secretstream_xchacha20poly1305_tag_final=I.asm.Jb).apply(null,arguments)},I._crypto_shorthash_bytes=function(){return(I._crypto_shorthash_bytes=I.asm.Kb).apply(null,arguments)},I._crypto_shorthash_keybytes=function(){return(I._crypto_shorthash_keybytes=I.asm.Lb).apply(null,arguments)},I._crypto_shorthash=function(){return(I._crypto_shorthash=I.asm.Mb).apply(null,arguments)},I._crypto_shorthash_keygen=function(){return(I._crypto_shorthash_keygen=I.asm.Nb).apply(null,arguments)},I._crypto_sign_statebytes=function(){return(I._crypto_sign_statebytes=I.asm.Ob).apply(null,arguments)},I._crypto_sign_bytes=function(){return(I._crypto_sign_bytes=I.asm.Pb).apply(null,arguments)},I._crypto_sign_seedbytes=function(){return(I._crypto_sign_seedbytes=I.asm.Qb).apply(null,arguments)},I._crypto_sign_publickeybytes=function(){return(I._crypto_sign_publickeybytes=I.asm.Rb).apply(null,arguments)},I._crypto_sign_secretkeybytes=function(){return(I._crypto_sign_secretkeybytes=I.asm.Sb).apply(null,arguments)},I._crypto_sign_messagebytes_max=function(){return(I._crypto_sign_messagebytes_max=I.asm.Tb).apply(null,arguments)},I._crypto_sign_seed_keypair=function(){return(I._crypto_sign_seed_keypair=I.asm.Ub).apply(null,arguments)},I._crypto_sign_keypair=function(){return(I._crypto_sign_keypair=I.asm.Vb).apply(null,arguments)},I._crypto_sign=function(){return(I._crypto_sign=I.asm.Wb).apply(null,arguments)},I._crypto_sign_open=function(){return(I._crypto_sign_open=I.asm.Xb).apply(null,arguments)},I._crypto_sign_detached=function(){return(I._crypto_sign_detached=I.asm.Yb).apply(null,arguments)},I._crypto_sign_verify_detached=function(){return(I._crypto_sign_verify_detached=I.asm.Zb).apply(null,arguments)},I._crypto_sign_init=function(){return(I._crypto_sign_init=I.asm._b).apply(null,arguments)},I._crypto_sign_update=function(){return(I._crypto_sign_update=I.asm.$b).apply(null,arguments)},I._crypto_sign_final_create=function(){return(I._crypto_sign_final_create=I.asm.ac).apply(null,arguments)},I._crypto_sign_final_verify=function(){return(I._crypto_sign_final_verify=I.asm.bc).apply(null,arguments)},I._crypto_sign_ed25519_pk_to_curve25519=function(){return(I._crypto_sign_ed25519_pk_to_curve25519=I.asm.cc).apply(null,arguments)},I._crypto_sign_ed25519_sk_to_curve25519=function(){return(I._crypto_sign_ed25519_sk_to_curve25519=I.asm.dc).apply(null,arguments)},I._randombytes_random=function(){return(I._randombytes_random=I.asm.ec).apply(null,arguments)},I._randombytes_stir=function(){return(I._randombytes_stir=I.asm.fc).apply(null,arguments)},I._randombytes_uniform=function(){return(I._randombytes_uniform=I.asm.gc).apply(null,arguments)},I._randombytes_buf=function(){return(I._randombytes_buf=I.asm.hc).apply(null,arguments)},I._randombytes_buf_deterministic=function(){return(I._randombytes_buf_deterministic=I.asm.ic).apply(null,arguments)},I._randombytes_seedbytes=function(){return(I._randombytes_seedbytes=I.asm.jc).apply(null,arguments)},I._randombytes_close=function(){return(I._randombytes_close=I.asm.kc).apply(null,arguments)},I._randombytes=function(){return(I._randombytes=I.asm.lc).apply(null,arguments)},I._sodium_bin2hex=function(){return(I._sodium_bin2hex=I.asm.mc).apply(null,arguments)},I._sodium_hex2bin=function(){return(I._sodium_hex2bin=I.asm.nc).apply(null,arguments)},I._sodium_base64_encoded_len=function(){return(I._sodium_base64_encoded_len=I.asm.oc).apply(null,arguments)},I._sodium_bin2base64=function(){return(I._sodium_bin2base64=I.asm.pc).apply(null,arguments)},I._sodium_base642bin=function(){return(I._sodium_base642bin=I.asm.qc).apply(null,arguments)},I._sodium_init=function(){return(I._sodium_init=I.asm.rc).apply(null,arguments)},I._sodium_pad=function(){return(I._sodium_pad=I.asm.sc).apply(null,arguments)},I._sodium_unpad=function(){return(I._sodium_unpad=I.asm.tc).apply(null,arguments)},I._sodium_version_string=function(){return(I._sodium_version_string=I.asm.uc).apply(null,arguments)},I._sodium_library_version_major=function(){return(I._sodium_library_version_major=I.asm.vc).apply(null,arguments)},I._sodium_library_version_minor=function(){return(I._sodium_library_version_minor=I.asm.wc).apply(null,arguments)},I._sodium_library_minimal=function(){return(I._sodium_library_minimal=I.asm.xc).apply(null,arguments)},I.___errno_location=function(){return(dA=I.___errno_location=I.asm.yc).apply(null,arguments)}),PA=(I._malloc=function(){return(I._malloc=I.asm.zc).apply(null,arguments)},I._free=function(){return(I._free=I.asm.Ac).apply(null,arguments)},I.__growWasmMemory=function(){return(PA=I.__growWasmMemory=I.asm.Bc).apply(null,arguments)});function JA(A){function g(){NA||(NA=!0,I.calledRun=!0,p||(V(),T(),I.onRuntimeInitialized&&I.onRuntimeInitialized(),W()))}A=A||C,IA>0||(X(),IA>0||(I.setStatus?(I.setStatus("Running..."),setTimeout(function(){setTimeout(function(){I.setStatus("")},1),g()},1)):g()))}if(I.setValue=h,I.getValue=D,I.UTF8ToString=k,BA=function A(){NA||JA(),NA||(BA=A)},I.run=JA,I.preInit)for("function"==typeof I.preInit&&(I.preInit=[I.preInit]);I.preInit.length>0;)I.preInit.pop()();JA(),Object.keys(B).forEach(function(A){"getRandomValue"!==A&&delete B[A]}),Object.keys(I).forEach(function(A){B[A]=I[A]})};var g,C=void 0!==C?C:{},Q={};for(g in C)C.hasOwnProperty(g)&&(Q[g]=C[g]);var E=[],i=!1,n=!1,a=!1,r=!1;i="object"==typeof window,n="function"==typeof importScripts,a="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r=!i&&!a&&!n;var o,e,t,c,f="";function y(A){return C.locateFile?C.locateFile(A,f):f+A}a?(f=n?require("path").dirname(f)+"/":__dirname+"/",o=function(A,I){var g=NA(A);return g?I?g:g.toString():(t||(t=require("fs")),c||(c=require("path")),A=c.normalize(A),t.readFileSync(A,I?null:"utf8"))},e=function(A){var I=o(A,!0);return I.buffer||(I=new Uint8Array(I)),F(I.buffer),I},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),E=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=C),process.on("unhandledRejection",iA),C.inspect=function(){return"[Emscripten Module object]"}):r?("undefined"!=typeof read&&(o=function(A){var I=NA(A);return I?UA(I):read(A)}),e=function(A){var I;return(I=NA(A))?I:"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(F("object"==typeof(I=read(A,"binary"))),I)},"undefined"!=typeof scriptArgs?E=scriptArgs:void 0!==arguments&&(E=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(i||n)&&(n?f=self.location.href:document.currentScript&&(f=document.currentScript.src),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",o=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=NA(A);if(g)return UA(g);throw I}},n&&(e=function(A){try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=NA(A);if(g)return g;throw I}})),C.print;var s,w,h=C.printErr||void 0;for(g in Q)Q.hasOwnProperty(g)&&(C[g]=Q[g]);function D(A,I,g,B){switch("*"===(g=g||"i8").charAt(g.length-1)&&(g="i32"),g){case"i1":case"i8":Y[A>>0]=I;break;case"i16":m[A>>1]=I;break;case"i32":U[A>>2]=I;break;case"i64":cA=[I>>>0,(tA=I,+z(tA)>=1?tA>0?(0|IA(+AA(tA/4294967296),4294967295))>>>0:~~+$((tA-+(~~tA>>>0))/4294967296)>>>0:0)],U[A>>2]=cA[0],U[A+4>>2]=cA[1];break;case"float":v[A>>2]=I;break;case"double":S[A>>3]=I;break;default:iA("invalid type for setValue: "+g)}}function u(A,I,g){switch("*"===(I=I||"i8").charAt(I.length-1)&&(I="i32"),I){case"i1":case"i8":return Y[A>>0];case"i16":return m[A>>1];case"i32":case"i64":return U[A>>2];case"float":return v[A>>2];case"double":return S[A>>3];default:iA("invalid type for getValue: "+I)}return null}Q=null,C.arguments&&(E=C.arguments),C.thisProgram&&C.thisProgram,C.quit&&C.quit,C.wasmBinary&&(s=C.wasmBinary),C.noExitRuntime&&C.noExitRuntime,"object"!=typeof WebAssembly&&iA("no native wasm support detected");var p=new WebAssembly.Table({initial:14,maximum:22,element:"anyfunc"}),l=!1;function F(A,I){A||iA("Assertion failed: "+I)}var G="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function k(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&G)return G.decode(A.subarray(I,C));for(var Q="";I<C;){var E=A[I++];if(128&E){var i=63&A[I++];if(192!=(224&E)){var n=63&A[I++];if((E=224==(240&E)?(15&E)<<12|i<<6|n:(7&E)<<18|i<<12|n<<6|63&A[I++])<65536)Q+=String.fromCharCode(E);else{var a=E-65536;Q+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}function _(A,I){return A?k(b,A,I):""}var H,Y,b,m,U,v,S,N=65536;function R(A,I){return A%I>0&&(A+=I-A%I),A}function M(A){H=A,C.HEAP8=Y=new Int8Array(A),C.HEAP16=m=new Int16Array(A),C.HEAP32=U=new Int32Array(A),C.HEAPU8=b=new Uint8Array(A),C.HEAPU16=new Uint16Array(A),C.HEAPU32=new Uint32Array(A),C.HEAPF32=v=new Float32Array(A),C.HEAPF64=S=new Float64Array(A)}var d=5279472,P=36432,J=C.INITIAL_MEMORY||16777216;function x(A){for(;A.length>0;){var I=A.shift();if("function"!=typeof I){var g=I.func;"number"==typeof g?void 0===I.arg?C.dynCall_v(g):C.dynCall_vi(g,I.arg):g(void 0===I.arg?null:I.arg)}else I(C)}}(w=C.wasmMemory?C.wasmMemory:new WebAssembly.Memory({initial:J/N,maximum:2147483648/N}))&&(H=w.buffer),J=H.byteLength,M(H),U[P>>2]=d;var L=[],K=[],q=[],X=[];function V(){if(C.preRun)for("function"==typeof C.preRun&&(C.preRun=[C.preRun]);C.preRun.length;)Z(C.preRun.shift());x(L)}function T(){x(K)}function W(){x(q)}function j(){if(C.postRun)for("function"==typeof C.postRun&&(C.postRun=[C.postRun]);C.postRun.length;)O(C.postRun.shift());x(X)}function Z(A){L.unshift(A)}function O(A){X.unshift(A)}var z=Math.abs,$=Math.ceil,AA=Math.floor,IA=Math.min,gA=0,BA=null,CA=null;function QA(A){gA++,C.monitorRunDependencies&&C.monitorRunDependencies(gA)}function EA(A){if(gA--,C.monitorRunDependencies&&C.monitorRunDependencies(gA),0==gA&&(null!==BA&&(clearInterval(BA),BA=null),CA)){var I=CA;CA=null,I()}}function iA(A){throw C.onAbort&&C.onAbort(A),h(A+=""),l=!0,A="abort("+A+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(A)}function nA(A,I){return String.prototype.startsWith?A.startsWith(I):0===A.indexOf(I)}C.preloadedImages={},C.preloadedAudios={};var aA="data:application/octet-stream;base64,";function rA(A){return nA(A,aA)}var oA="file://";function eA(A){return nA(A,oA)}var tA,cA,fA="data:application/octet-stream;base64,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AUgEQCAAIQIMAQsgAEEDcUUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA08NASACQQNxDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIANBfGoiBCAASQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAAL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREgASgCICESIAIoAiQhEyABKAIkIRQgACACKAIAIAEoAgBqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDSAOajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIECxgBAX9BxJwCKAIAIgAEQCAAEQ4ACxACAAtAAQN/IAAgASABQfgAaiICEAsgAEEoaiABQShqIgMgAUHQAGoiBBALIABB0ABqIAQgAhALIABB+ABqIAEgAxALC+wBARJ/IAIoAgQhAyABKAIEIQQgAigCCCEFIAEoAgghBiACKAIMIQcgASgCDCEIIAIoAhAhCSABKAIQIQogAigCFCELIAEoAhQhDCACKAIYIQ0gASgCGCEOIAIoAhwhDyABKAIcIRAgAigC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IQUgBSALIAggBSAOaiIOc0EIEAgiCGoiC3NBBxAIIQUgFUF+aiIVDQALIAEoAAQhLCABKAAIIS0gASgADCEuIAEoABAhLyABKAAUITAgASgAGCExIAEoABwhMiABKAAgITMgASgAJCE0IAEoACghFSABKAAsIRYgASgAMCEXIAEoADQhGSABKAA4IRogASgAPCEbIAQgASgAACANICpqcxAKIARBBGogLCAUIClqcxAKIARBCGogLSAQIChqcxAKIARBDGogLiAOICdqcxAKIARBEGogLyAFICZqcxAKIARBFGogMCAKICVqcxAKIARBGGogMSACICRqcxAKIARBHGogMiAPICNqcxAKIARBIGogMyAMICJqcxAKIARBJGogNCALICFqcxAKIARBKGogFSAYICBqcxAKIARBLGogFiAHIB9qcxAKIARBMGogFyAGIBNqcxAKIARBNGogGSAJIBJqcxAKIARBOGogGiAIIB5qcxAKIARBPGogGyARIB1qcxAKIBIgE0EBaiIHIBNJaiESIANCwABYBEACQCADQj9WDQAgA6ciAUUNAEEAIQoDQCAKICtqIAQgCmotAAA6AAAgCkEBaiIKIAFHDQALCyAAIBI2AjQgACAHNgIwIBxBQGskAAUgAUFAayEBIARBQGshAiADQkB8IQMgByETDAELCwtxACAAQuXwwYvmjZmQMzcCACAAQrLaiMvHrpmQ6wA3AgggACABKAAANgIQIAAgASgABDYCFCAAIAEoAAg2AhggACABKAAMNgIcIAAgASgAEDYCICAAIAEoABQ2AiQgACABKAAYNgIoIAAgASgAHDYCLAsLACAAIAEgAhDaAgupAwEVfyABKAIEIQsgACgCBCEMIAEoAgghDSAAKAIIIQ4gASgCDCEPIAAoAgwhAyABKAIQIRAgACgCECEEIAEoAhQhESAAKAIUIQUgASgCGCESIAAoAhghBiABKAIcIRMgACgCHCEHIAEoAiAhFCAAKAIgIQggASgCJCEVIAAoAiQhCSAAQQAgAmsiAiABKAIAIhYgACgCACIKc3EiFyAKczYCACAAIAkgCSAVcyACcSIKczYCJCAAIAggCCAUcyACcSIJczYCICAAIAcgByATcyACcSIIczYCHCAAIAYgBiAScyACcSIHczYCGCAAIAUgBSARcyACcSIGczYCFCAAIAQgBCAQcyACcSIFczYCECAAIAMgAyAPcyACcSIEczYCDCAAIA4gDSAOcyACcSIDczYCCCAAIAwgCyAMcyACcSIAczYCBCABIAogFXM2AiQgASAJIBRzNgIgIAEgCCATczYCHCABIAcgEnM2AhggASAGIBFzNgIUIAEgBSAQczYCECABIAQgD3M2AgwgASADIA1zNgIIIAEgACALczYCBCABIBYgF3M2AgALKQEBfyMAQYABayICJAAgAkEIaiABEOcCIAAgAkEIahA5IAJBgAFqJAALMgEBfyAAIAEgAUH4AGoiAhALIABBKGogAUEoaiABQdAAaiIBEAsgAEHQAGogASACEAsLrwIBE38gASgCBCEMIAAoAgQhAyABKAIIIQ0gACgCCCEEIAEoAgwhDiAAKAIMIQUgASgCECEPIAAoAhAhBiABKAIUIRAgACgCFCEHIAEoAhghESAAKAIYIQggASgCHCESIAAoAhwhCSABKAIgIRMgACgCICEKIAEoAiQhFCAAKAIkIQsgAEEAIAJrIgIgACgCACIVIAEoAgBzcSAVczYCACAAIAsgCyAUcyACcXM2AiQgACAKIAogE3MgAnFzNgIgIAAgCSAJIBJzIAJxczYCHCAAIAggCCARcyACcXM2AhggACAHIAcgEHMgAnFzNgIUIAAgBiAGIA9zIAJxczYCECAAIAUgBSAOcyACcXM2AgwgACAEIAQgDXMgAnFzNgIIIAAgAyADIAxzIAJxczYCBAskAQF/IwBBIGsiASQAIAEgABAtIAFBIBBlIQAgAUEgaiQAIAALpgQCCn8OfiAAKAIkIQQgACgCICEFIAAoAhwhBiAAKAIYIQcgACgCFCEDIAJCEFoEQCAALQBQRUEYdCEIIAAoAgQiCUEFbK0hGSAAKAIIIgpBBWytIRcgACgCDCILQQVsrSEVIAAoAhAiDEEFbK0hEyAMrSEaIAutIRggCq0hFiAJrSEUIAA1AgAhEgNAIAEoAANBAnZB////H3EgB2qtIg0gGH4gASgAAEH///8fcSADaq0iDiAafnwgASgABkEEdkH///8fcSAGaq0iDyAWfnwgASgACUEGdiAFaq0iECAUfnwgASgADEEIdiAIciAEaq0iESASfnwgDSAWfiAOIBh+fCAPIBR+fCAQIBJ+fCARIBN+fCANIBR+IA4gFn58IA8gEn58IBAg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IAFBf2pBP0sgBUHAAEtyBH8gBgUgACACIAQgAUH/AXEgAyAFQf8BcRDGAQsL0QIBA38jAEFAaiIEJAACQCACRSACQcEAT3JFBEBBfyEDIAApAFBQBEAgACAAKADgAiIDQYEBTwR/IABCgAEQWSAAIABB4ABqIgUQXiAAIAAoAOACQYB/aiIDNgDgAiADQYEBTw0DIAUgAEHgAWogAxASGiAAKADgAgUgAwutEFkgACIDLQDkAgRAIANCfzcAWAsgA0J/NwBQIABB4ABqIgMgACgA4AIiBWpBAEGAAiAFaxAQGiAAIAMQXiAEIAApAAAQESAEQQhyIAApAAgQESAEQRBqIAApABAQESAEQRhqIAApABgQESAEQSBqIAApACAQESAEQShqIAApACgQESAEQTBqIAApADAQESAEQThqIAApADgQESABIAQgAhASGiAAQcAAEAkgA0GAAhAJQQAhAwsgBEFAayQAIAMPCxAUAAtBvg5B3g5BsgJBiw8QAAALJgEBfiAAIAEgACkAQCIBfCICNwBAIAAgACkASCACIAFUrXw3AEgLCQAgAEEANgAAC0UBA38gAEGgD0HAABASQUBrQQBBpQIQEBoDQCAAIAJBA3QiA2oiBCABIANqKQAAIAQpAACFNwAAIAJBAWoiAkEIRw0ACwsWACAAEDUgAQRAIABBkJcCQiIQHBoLC5YBAQF/IwBBMGsiASQAIAEgACkAGDcDGCABIAApABA3AxAgASAAKQAANwMAIAEgACkACDcDCCABIAApACQ3AyAgASABQiggAEEgakEAIABB8JcCKAIAERQAGiAAIAEpAxg3ABggACABKQMQNwAQIAAgASkDCDcACCAAIAEpAwA3AAAgACABKQMgNwAkIAAQXyABQTBqJAALnzgCA38efiMAQYACayICJAADQCADQQN0IgQgAkGAAWpqIAEgBGopAAA3AwAgA0EBaiIDQRBHDQALIAIgAEHAABASIgFC8e30+KWn/aelfzcDWCAAKQBYISAgACkASCEcIAApAFAhCyABKQMAIAEpAyAiISABKQOAAXx8IhYgACkAQIVC0YWa7/rPlIfRAIVBIBAGIRsgASAbIBtCiJLznf/M+YTqAHwiHSAhhUEYEAYiHyAWfCABKQOIASIhfCIIhUEQEAYiFjcDYCABIBYgHXwiHTcDQCABIB0gH4VB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IAIgBSATcyIFakEHEAggCnMiCiAFakEJEAggB3MiECAKakENEAggAnMiEiAQakESEAggBXMhBSAEIBRzIgQgC2pBBxAIIBVzIgIgBGpBCRAIIAhzIgggAmpBDRAIIAtzIgsgCGpBEhAIIARzIQQgAyAWcyIDIAFqQQcQCCAMcyIMIANqQQkQCCAJcyIJIAxqQQ0QCCABcyIBIAlqQRIQCCADcyEDIAYgF3MiBiAOakEHEAggEXMiByAGakEJEAggDXMiDSAHakENEAggDnMiDiANakESEAggBnMhBiAPQQJLIREgD0F+aiEPIBENAAsgACAFEAogAEEEaiAEEAogAEEIaiADEAogAEEMaiAGEAogAEEQaiACEAogAEEUaiAIEAogAEEYaiAJEAogAEEcaiABEApBAAsEAEEICygAIAJCgICAgBBaBEAQFAALIAAgASACIAMgBCAFQfCXAigCABEUABoLJAAgAUKAgICAEFoEQBAUAAsgACABIAIgA0HolwIoAgAREQAaCxkAIAAgASACIANCACAEQeCXAigCABEVABoLEAAgACABQdiXAigCABECAAsrAQJ/IwBBEGsiACQAIABBADoAD0GACCAAQQ9qQQAQASEBIABBEGokACABC5USAR5+IAAQDyEQIAA1AAIhESAAQQVqEA8hEiAANQAHIRkgADUACiEaIABBDWoQDyEbIAA1AA8hCyAAQRJqEA8hCiAAQRVqEA8hCCAANQAXIQUgAEEaahAPIQEgADUAHCEcIAA1AB8hEyAAQSJqEA8hFCAANQAkIQwgAEEnahAPIQ8gAEEqahAPIQkgADUALCEGIAAgAEEvahAPQgKIQv///wCDIgJC0asIfiABQgKIQv///wCDfCAANQAxQgeIQv///wCDIgFC04xDfnwgADUANEIEiEL///8AgyIDQuf2J358IABBN2oQD0IBiEL///8AgyIEQpjaHH58IAA1ADlCBohC////AIMiB0KT2Ch+fCIVIAZCBYhC////AIMgADUAPEIDiCIGQoOhVn4gCUL///8Ag3wiDUKAgEB9Ig5CFYd8IglCg6FWfnwgAkLTjEN+IAVCBYhC////AIN8IAFC5/YnfnwgA0KY2hx+fCAEQpPYKH58IAJC5/YnfiAIQv///wCDfCABQpjaHH58IANCk9gofnwiBUKAgEB9IhZCFYh8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QhCIQh+DIAFC////AIMiAUIFhoQ8ABcgACAIQv///wCDIANCFYd8IgJCEYg8AB8gACACQgmIPAAeIAAgAkIBiDwAHSAAIANC////AIMiA0IChiABQhOIhDwAGiAAIAJCB4YgA0IOiIQ8ABwL2gEBBX8jAEEQayIDQQA2AAsgA0EANgIIA0AgACACai0AACEEQQAhAQNAIANBCGogAWoiBSAFLQAAIAFBBXRBoBlqIAJqLQAAIARzcjoAACABQQFqIgFBB0cNAAsgAkEBaiICQR9HDQALIAAtAB9B/wBxIQJBACEAQQAhAQNAIANBCGogAWoiBCAELQAAIAIgAUEFdEG/GWotAABzcjoAACABQQFqIgFBB0cNAAtBACEBA0AgA0EIaiAAai0AAEF/aiABciEBIABBAWoiAEEHRw0ACyABQQh2QQFxC54DAQV/IwBB0ANrIgIkAANAIANBAXQiBSACQZADamogASADai0AACIGQQ9xOgAAIAJBkANqIAVBAXJqIAZBBHY6AAAgA0EBaiIDQSBHDQALQQAhAwNAIAJBkANqIARqIgEgAS0AACADaiIBIAFBCGoiAUHwAXFrOgAAIAFBGHRBHHUhAyAEQQFqIgRBP0cNAAsgAiACLQDPAyADajoAzwMgABCqAUEBIQMDQCACIANBAXYgAkGQA2ogA2osAAAQqAEgAkHwAWogACACEHcgACACQfABahAVIANBPkkhASADQQJqIQMgAQ0ACyACQfABaiAAEE8gAkH4AGogAkHwAWoQUCACQfABaiACQfgAahA5IAJB+ABqIAJB8AFqEFAgAkHwAWogAkH4AGoQOSACQfgAaiACQfABahBQIAJB8AFqIAJB+ABqEDkgACACQfABahAVQQAhAwNAIAIgA0EBdiACQZADaiADaiwAABCoASACQfABaiAAIAIQdyAAIAJB8AFqEBUgA0E+SSEBIANBAmohAyABDQALIAJB0ANqJAALiwEBBH8jAEEwayIFJAAgACABQShqIgMgARATIABBKGoiBCADIAEQFiAAQdAAaiIDIAAgAhALIAQgBCACQShqEAsgAEH4AGoiBiACQdAAaiABQfgAahALIAUgAUHQAGoiASABEBMgACADIAQQFiAEIAMgBBATIAMgBSAGEBMgBiAFIAYQFiAFQTBqJAALXgEBfyMAQZABayICJAAg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ASEEA0AgAyIFQQFqIQMCQCAAIAVqIgYtAABFIAVB/gFLcg0AQQEhASAEQQUgBEEFSRtBAWohCSADIQIDQCABIQcCQCAAIAJqIgEsAAAiCEUNACAIIAd0IgggBiwAACIKaiILQQ9MBEAgBiALOgAAIAFBADoAAAwBCyAKIAhrIgFBcUgNAiAGIAE6AAADQCAAIAJqIgEtAABFBEAgAUEBOgAADAILIAFBADoAACACQf8BSSEBIAJBAWohAiABDQALCyAHQQFqIgEgBWohAiAHIAlHDQALCyAEQX9qIQQgA0GAAkcNAAsLlQEBBH8jAEEwayIFJAAgACABQShqIgMgARATIABBKGoiBCADIAEQFiAAQdAAaiIDIAAgAkEoahALIAQgBCACEAsgAEH4AGoiBiACQfgAaiABQfgAahALIAAgAUHQAGogAkHQAGoQCyAFIAAgABATIAAgAyAEEBYgBCADIAQQEyADIAUgBhAWIAYgBSAGEBMgBUEwaiQAC9QCAQN/IwBBoAJrIgIkACAAQShqIgMgARB6IABB0ABqIgQQHSACQfABaiADEAwgAkHAAWogAkHwAWpB0BAQCyACQfABaiACQfABaiAEEBYgAkHAAWogAkHAAWogBBATIAJBkAFqIAJBwAFqEAwgAkGQAWogAkGQAWogAkHAAWoQCyAAIAJBkAFqEAwgACAAIAJBwAFqEAsgACAAIAJB8AFqEAsgACAAELABIAAgACACQZABahALIAAgACACQfABahALIAJB4ABqIAAQDCACQeAAaiACQeAAaiACQcABahALIAJBMGogAkHgAGogAkHwAWoQFgJ/IAJBMGoQUkUEQCACIAJB4ABqIAJB8AFqEBNBfyACEFJFDQEaIAAgAEGAERALCyAAEK4BIAEtAB9BB3ZGBEAgACAAEHkLIABB+ABqIAAgAxALQQALIQAgAkGgAmokACAACyYBAX8jAEEgayIBJAAgASAAEC0gAS0AACEAIAFBIGokACAAQQFxC6oMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgMgAWohASAAIANrIgBBmJgCKAIARwRAQZSYAigCACEEIANB/wFNBEAgACgCCCIEIANBA3YiA0EDdEGsmAJqRxogBCAAKAIMIgJGBEBBhJgCQYSYAigCAEF+IAN3cTYC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AkHgAGoQDEEBIQMDQCACQTBqIAJBMGoQDCADQQFqIgNBMkcNAAsgAkEwaiACQTBqIAJB4ABqEAsgAiACQTBqEAxBASEDA0AgAiACEAwgA0EBaiIDQeQARw0ACyACQTBqIAIgAkEwahALIAJBMGogAkEwahAMQQEhAwNAIAJBMGogAkEwahAMIANBAWoiA0EyRw0ACyACQeAAaiACQTBqIAJB4ABqEAsgAkHgAGogAkHgAGoQDCACQeAAaiACQeAAahAMIAAgAkHgAGogARALIAJBkAFqJAALKgACfwJ/QTBBgH8gAUkNARogARC0ASIBRQsEQEEwDwsgACABNgIAQQALC84CAQl/IAAgASgCICICIAEoAhwiAyABKAIYIgQgASgCFCIFIAEoAhAiBiABKAIMIgcgASgCCCIIIAEoAgQiCSABKAIAIgogASgCJCIBQRNsQYCAgAhqQRl2akEadWpBGXVqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1IAFqQRl1QRNsIApqIgpB////H3E2AgAgACAJIApBGnVqIglB////D3E2AgQgACAIIAlBGXVqIghB////H3E2AgggACAHIAhBGnVqIgdB////D3E2AgwgACAGIAdBGXVqIgZB////H3E2AhAgACAFIAZBGnVqIgVB////D3E2AhQgACAEIAVBGXVqIgRB////H3E2AhggACADIARBGnVqIgNB////D3E2AhwgACACIANBGXVqIgJB////H3E2AiAgACABIAJBGnVqQf///w9xNgIkCwoAIAAgARB7QQAL1wIBBn9BgH8gAE0EQEGAmAJBMDYCAEEADwtBECAAQQtqQXhxIABBC0kbIgNBzABqECAiAEUEQEEADwsgAEF4aiEBAkAgAEE/cUUEQCABIQAMAQsgAEF8aiIFKAIAIgZBeHEgAEE/akFAcUF4aiIAIABBQGsgACABa0EPSxsiACABayICayEEIAZBA3FFBEAgASgCACEBIAAgBDYCBCAAIAEgAmo2AgAMAQsgACAEIAAoAgRBAXFyQQJyNgIEIAAgBGoiBCAEKAIEQQFyNgIEIAUgAiAFKAIAQQFxckECcjYCACAAIAAoAgRBAXI2AgQgASACEK8BCwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQrwELIABBCGoLDAAgACABIAIQfEEACwoAIAAgARB9QQALKQEBfyMAQRBrIgQkACAEIAEgAiADEH4aIAAgBBA7IQAgBEEQaiQAIAALVgIBfwF+AkACf0EAIABFDQAaIACtIgKnIgEgAEEBckGAgARJDQAaQX8gASACQiCIpxsLIgEQICIARQ0AIABBfGotAABBA3FFDQAgAEEAIAEQEBoLIAALpgEBBH8jAEGACGsiAiQAIAEoAhwEQCAAQcQAaiEFIABBQGshBANAIARBABAKIAUgAxAKIAJBgAggAEHIABBWIAEoAgAoAgQgASgCGCADbEEKdGogAhCBASAEQQEQCiACQYAIIABByAAQViABKAIAKAIEIAEoAhggA2xBCnRqQYAIaiACEIEBIANBAWoiAyABKAIcSQ0ACwsgAkGACBAJIAJBgAhqJAAL8AMBAn8jACIDIQQgA0HAA2tBQHEiAyQAIABFIAFFckUEQCADQUBrQQBBAEHAABA+GiADQTxqIAEoAjAQCiADQUBrIANBPGpCBBAYGiADQTxqIAEoAgQQCiADQUBrIANBPGpCBBAYGiADQTxqIAEoAiwQCiADQUBrIANBPGpCBBAYGiADQTxqIAEoAigQCiADQUBrIANBPGpCBBAYGiADQTxqQRMQCiADQUBrIANBPGpCBBAYGiADQTxqIAIQCiADQUBrIANBPGpCBBAYGiADQTxqIAEoAgwQCiADQUBrIANBPGpCBBAYGgJAIAEoAggiAkUNACADQUBrIAIgATUCDBAYGiABLQA4QQFxRQ0AIAEoAgggASgCDBAJIAFBADYCDAsgA0E8aiABKAIUEAogA0FAayADQTxqQgQQGBogASgCECICBEAgA0FAayACIAE1AhQQGBoLIANBPGogASgCHBAKIANBQGsgA0E8akIEEBgaAkAgASgCGCICRQ0AIANBQGsgAiABNQIcEBgaIAEtADhBAnFFDQAgASgCGCABKAIcEAkgAUEANgIcCyADQTxqIAEoAiQQCiADQUBrIANBPGpCBBAYGiABKAIgIgIEQCADQUBrIAIgATUCJBAYGgsgA0FAayAAQcAAED0aCyAEJAALrwEBA38jAEEQayICJABBaiEDAkAgAEUgAUVyDQAg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chBaIAVBgAFqQQhyQgAQESAFQgA3A5gBIAVCADcDkAECQCADBEAgBUGAAWogAxDiAQwBCyAFQgA3A6gBIAVCADcDoAELAkAgBARAIAVBgAFqIAQQ1wEMAQsgBUIANwO4ASAFQgA3A7ABCyAAIAVBgAFqEFsgBUEgakEAQeAAEBAaIAAgBSACQSAQEiIAQoABEDIaIABBgAEQCSAAQcABaiQADwsQFAALEQAgACABrSACrUIghoQQvAILEgAgACABIAKtIAOtQiCGhBAcCxUAIAAgASACrSADrUIghoQgBBCFAQsXACAAIAEgAiADrSAErUIghoQgBRCHAQsXACAAIAEgAiADrSAErUIghoQgBRCDAgsXACAAIAEgAiADrSAErUIghoQgBRCEAgsVACAAIAEgAq0gA61CIIaEIAQQiQILJQAgACABIAIgAyAEIAWtIAatQiCGhCAHIAitIAmtQiCGhBCNAgslACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJEI4CCxcAIAAgASACrSADrUIghoQgBCAFELkCCxgAIAAgASACIAOtIAStQiCGhCAFIAYQagsXACAAIAEgAq0gA61CIIaEIAQgBRC6AgsYACAAIAEgAiADrSAErUIghoQgBSAGEGsLEwAgACABrSACrUIghoQgAxCRAgsTACAAIAEgAq0gA61CIIaEEJICCxYAIAAgASkAADcAMCAAIAEpAAg3ADgLIQAgACABIAKtIAOtQiCGhCAErSAFrUIghoQgBiAHEJMCCx8AIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYQiwELLQAgACABrSACrUIghoQgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEJQCCxcAIAAgASACrSADrUIghoQgBCAFELICCxIAIAAgASACrSADrUIghoQQNAsSACAAIAEgAq0gA61CIIaEECULGQAgACABIAIgA60gBK1CIIaEIAUgBhCTAQsXACAAIAEgAq0gA61CIIaEIAQgBRC0AgsVACAAIAEgAq0gA61CIIaEIAQQtQILGQAgACABIAKtIAOtQiCGhCAEIAUgBhCUAQsWACAAIAEpAAA3ACAgACABKQAINwAoCxcAIAAgASACrSADrUIghoQgBCAFELcCCxsAIAAgASACIAOtIAStQiCGhCAFIAYgBxCVAQsYACAAIAEgAiADrSAErUIghoQgBSAGEGgLGQAgACABIAKtIAOtQiCGhCAEIAUgBhCWAQsXACAAIAEgAq0gA61CIIaEIAQgBRC4AgsbACAAIAEgAiADrSAErUIghoQgBSAGIAcQlwELGAAgACABIAIgA60gBK1CIIaEIAUgBhBpCxUAIAAgASACrSADrUIghoQgBBC/AgsVACAAIAEgAq0gA61CIIaEIAQQmQELJQAgACABIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAkgChDIAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEJsBCyUAIAAgASACIAOtIAStQiCGhCAFIAatIAetQiCGhCAJIAoQygILJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEJwBCyUAIAAgASADIAStIAWtQiCGhCAGIAetIAitQiCGhCAJIAoQzgILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCdAQslACAAIAEgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCSAKEM8CCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQngELJQAgACABIAIgA60gBK1CIIaEIAUgBq0gB61CIIaEIAkgChDQAgsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQnwELJQAgACABIAIgA60gBK1CIIaEIAUgBq0gB61CIIaEIAkgChDRAgsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQoAELBABBCgsGAEGylwILCwAgACABIAIQgQILDQAgACABIAIgAxCCAgsIACAAEDVBAAsJACAAIAEQhwILCwAgACABIAIQiQELBQBBv38LBQBB0AELLAEBfyMAQUBqIgMkACAAIAMQJyABIANCwAAgAkEBEIYBIQAgA0FAayQAIAALLgEBfyMAQUBqIgQkACAAIAQQJyABIAIgBELAACADQQEQiAEhACAEQUBrJAAgAAt7AQF/AkACQAJAIANCwABUDQAgA0JAfCIDQr////8PVg0AIAIgAkFAayIFIAMgBBCFAUUNASAARQ0AIABBACADpxAQGgtBfyECIAFFDQEgAUIANwMAQX8P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ahATIANB4ABqIANBMGogA0HwAWoQCyADQcABaiADQcABaiADEAsgA0EwaiADEAwgAyADQfABahAMIANBkAFqIANB4ABqIANBwAFqEBMgA0HAAWogA0HgAGogA0HAAWoQFiADQfABaiADIANBMGoQCyADIAMgA0EwahAWIANBwAFqIANBwAFqEAwgA0HgAGogAxDdAiADQZABaiADQZABahAMIANBMGogA0EwaiADQeAAahATIANB4ABqIANBoAJqIANBwAFqEAsgA0HAAWogAyADQTBqEAsgASEEIAUNAAsgA0HwAWogA0GQAWogARBOIANBwAFqIANB4ABqIAEQTiADQcABaiADQcABahA6IANB8AFqIANB8AFqIANBwAFqEAsgACADQfABahAtQQAhBAsgA0HQAmokACAEC1QBBX9BICEBQQEhAgNAIAAgAUF/aiIBai0AACIEIAFBgBtqLQAAIgVrQQh1IAJxIANB/wFxciEDIAQgBXNB//8DakEIdiACcSECIAENAAsgA0EARwvoHgE6fiABEA8hEiABNQACIRMgAUEFahAPIRQgATUAByEVIAE1AAohFiABQQ1qEA8hFyABNQAPIREgAUESahAPIQ4gAUEVahAPIRAgATUAFyEIIAFBGmoQDyEEIAE1ABwhByACEA8hGCACNQACIRkgAkEFahAPIRogAjUAByEbIAI1AAohCiACQQ1qEA8hCSACNQAPIQsgAkESahAPIQ8gAkEVahAPIQwgAjUAFyENIAJBGmoQDyEFIAI1ABwhBiADEA8hMiADNQACITMgA0EFahAPITQgAzUAByE1IAM1AAohISADQQ1qEA8hLiADNQAPISggA0ESahAPISkgA0EVahAPISIgACAGQgeIIgYgBEICiEL///8AgyIEfiAFQgKIQv///wCDIgUgB0IHiCIHfnwgBCAFfiANQgWIQv///wCDIg0gB358IAYgCEIFiEL///8AgyIIfnwiH0KAgEB9IiBCFYd8IiNCgIBAfSIcQhWHIAYgB34iJCAkQoCAQH0iJUKAgIB/g318IiRCg6FWfiAlQhWHIiVC0asIfnwgCUIBiEL///8AgyIJIAR+IApCBIhC////AIMiCiAHfnwgC0IGiEL///8AgyILIAh+fCAMQv///wCDIgwgDkIDiEL///8AgyIOfnwgD0IDiEL///8AgyIPIBBC////AIMiEH58IA0gEUIGiEL///8AgyIRfnwgBSAXQgGIQv///wCDIhd+fCAGIBZCBIhC////AIMiFn58IAQgCn4gG0IHiEL///8AgyIbIAd+fCAIIAl+fCALIBB+fCAMIBF+fCAOIA9+fCANIBd+fCAFIBZ+fCAGIBVCB4hC////AIMiFX58Ih1CgIBAfSIvQhWHfCIefCAeQoCAQH0iHkKAgIB/g30gHSAlQtOMQ358ICRC0asIfnwgIyAcQoCAgH+DfSIjQoOhVn58IC9CgICAf4N9IAQgG34gGkICiEL///8AgyIaIAd+fCAIIAp+fCAJIBB+fCALIA5+fCAMIBd+fCAPIBF+fCANIBZ+fCAFIBV+fCAGIBRCAohC////AIMiFH58IAQgGn4gGUIFiEL///8AgyIZIAd+fCAIIBt+fCAKIBB+fCAJIA5+fCALIBF+fCAMIBZ+fCAPIBd+fCANIBV+fCAFIBR+fCAGIBNCBYhC////AIMiE358Ii9CgIBAfSI2QhWHfCI3QoCAQH0iOEIVh3wiOUKAgEB9IjpCFYd8IjBCgIBAfSIxQhWHIAQgC34gByAJfnwgDCAQfnwgCCAPfnwgDSAOfnwgBSARfnwgBiAXfnwiHCAlQoOhVn58IBxCgIBAfSIdQoCAgH+DfSAeQhWHfCIcIBxCgIBAfSIeQoCAgH+DfXwiHEKDoVZ+IAggDH4gByALfnwgBCAPfnwgDSAQfnwgBSAOfnwgBiARfnwgHUIVh3wiHSAdQoCAQH0iKkKAgIB/g30gHkIVh3wiHULRqwh+fCAQIBl+IBhC////AIMiGCAIfnwgDiAafnwgESAbfnwgCiAXfnwgCSAWfnwgCyAVfnwgDCATfnwgDyAUfnwgDSASQv///wCDIhJ+fCADNQAXQgWIQv///wCDfCAOIBl+IBAgGH58IBEgGn58IBcgG358IAogFn58IAkgFX58IAsgFH58IAwgEn58IA8gE358ICJC////AIN8Ih5CgIBAfSIrQhWHfCIsIB8gIEKAgIB/g30gBCANfiAHIAx+fCAFIAh+fCAGIBB+fCAHIA9+IAQgDH58IAggDX58IAUgEH58IAYgDn58IiBCgIBAfSItQhWHfCIfQoCAQH0iJkIVh3wiIkKY2hx+ICNCk9gofnwgHyAmQoCAgH+DfSIfQuf2J358ICAgLUKAgIB/g30gKkIVh3wiIELTjEN+fHwgLEKAgEB9IipCgICAf4N9IB9CmNocfiAiQpPYKH58ICBC5/YnfnwgHnwgK0KAgIB/g30gESAZfiAOIBh+fCAXIBp+fCAWIBt+fCAKIBV+fCAJIBR+fCALIBN+fCAPIBJ+fCApQgOIQv///wCDfCAXIBl+IBEgGH58IBYgGn58IBUgG358IAogFH58IAkgE358IAsgEn58IChCBohC////AIN8IihCgIBAfSIpQhWHfCIeQoCAQH0iK0IVh3wiLEKAgEB9Ii1CFYd8IiZ8ICZCgIBAfSImQoCAgH+DfSAsIB1C04xDfnwgIEKY2hx+IB9Ck9gofnwgHnwgK0KAgIB/g30gKCAgQpPYKH58IBYgGX4gFyAYfnwgFSAafnwgFCAbfnwgCiATfnwgCSASfnwgLkIBiEL///8Ag3wgFSAZfiAWIBh+fCAUIBp+fCATIBt+fCAKIBJ+fCAhQgSIQv///wCDfCIuQoCAQH0iKEIVh3wiHkKAgEB9IitCFYd8IClCgICAf4N9IilCgIBAfSIsQhWHfCI7QoCAQH0iPEIVh3wgLUKAgIB/g30gHELRqwh+fCAwIDFCgICAf4N9IiFCg6FWfnwiMEKAgEB9IjFCFYd8Ii1CgIBAfSI9QhWHIAggGX4gBCAYfnwgECAafnwgDiAbfnwgCiARfnwgCSAXfnwgCyAWfnwgDCAUfnwgDyAVfnwgDSATfnwgBSASfnwgA0EaahAPQgKIQv///wCDfCInICNCmNocfiAkQpPYKH58ICJC5/YnfnwgH0LTjEN+fCAgQtGrCH58fCAqQhWHfCAnQoCAQH0iKkKAgIB/g30iJyAdQoOhVn58ICZCFYd8ICdCgIBAfSImQoCAgH+DfSInfCAnQoCAQH0iJ0KAgIB/g30gLSA9QoCAgH+DfSAwIDFCgICAf4N9IDsgHULn9id+fCA8QoCAgH+DfSAcQtOMQ358ICFC0asIfnwgOSA6QoCAgH+DfSAkQtOMQ34gJULn9id+fCAjQtGrCH58ICJCg6FWfnwgN3wgOEKAgIB/g30gJELn9id+ICVCmNocfnwgI0LTjEN+fCAvfCAiQtGrCH58IB9Cg6FWfnwgNkKAgIB/g30gBCAZfiAHIBh+fCAIIBp+fCAQIBt+fCAKIA5+fCAJIBF+fCALIBd+fCAMIBV+fCAPIBZ+fCANIBR+fCAGIBJ+fCAFIBN+fCADNQAcQgeIfCAqQhWHfCIFQoCAQH0iB0IVh3wiDUKAgEB9IghCFYd8IgRCgIBAfSIJQhWHfCIGQoOhVn58IB1CmNocfiApfCAsQoCAgH+DfSAcQuf2J358ICFC04xDfnwgBkLRqwh+fCAEIAlCgICAf4N9IgRCg6FWfnwiCUKAgEB9IgpCFYd8IgtCgIBAfSIMQhWHfCALIAxCgICAf4N9IAkgCkKAgIB/g30gHiArQoCAgH+DfSAdQpPYKH58IBxCmNocfnwgIULn9id+fCANIAhCgICAf4N9ICRCmNocfiAlQpPYKH58ICNC5/YnfnwgIkLTjEN+fCAfQtGrCH58ICBCg6FWfnwgBXwgB0KAgIB/g30gJkIVh3wiB0KAgEB9Ig1CFYd8IgVCg6FWfnwgBkLTjEN+fCAEQtGrCH58IBQgGX4gFSAYfnwgEyAafnwgEiAbfnwgNUIHiEL///8Ag3wgEyAZfiAUIBh+fCASIBp+fCA0QgKIQv///wCDfCIIQoCAQH0iCUIViHwiCkKAgEB9IgtCFYcgLnwgKEKAgIB/g30gHEKT2Ch+fCAhQpjaHH58IAVC0asIfnwgBkLn9id+fCAEQtOMQ358IgxCgIBAfSIOQhWHfCIPQoCAQH0iEEIVh3wgDyAHIA1CgICAf4N9ICdCFYd8Ig1CgIBAfSIRQhWHIgdCg6FWfnwgEEKAgIB/g30gDCAHQtGrCH58IA5CgICAf4N9IAogC0KAgIB/g30gIUKT2Ch+fCAFQtOMQ358IAZCmNocfnwgBELn9id+fCAIIBIgGX4gEyAYfnwgM0IFiEL///8Ag3wgEiAYfiAyQv///wCDfCIKQoCAQH0iC0IViHwiDEKAgEB9Ig5CFYh8IAlCgICA////D4N9IAVC5/YnfnwgBkKT2Ch+fCAEQpjaHH58IgZCgIBAfSIIQhWHfCIJQoCAQH0iD0IVh3wgCSAHQtOMQ358IA9CgICAf4N9IAYgB0Ln9id+fCAIQoCAgH+DfSAMIA5CgICA////D4N9IAVCmNocfnwgBEKT2Ch+fCAKIAtCgICA////A4N9IAVCk9gofnwiBkKAgEB9IgRCFYd8IgVCgIBAfSIIQhWHfCAFIAdCmNocfnwgCEKAgIB/g30gBiAEQoCAgH+DfSAHQpPYKH58IgRCFYd8IgVCFYd8IgdCFYd8IghCFYd8IglCFYd8IgpCFYd8IgtCFYd8IgxCFYd8Ig5CFYd8Ig9CFYd8IhBCFYcgDSARQoCAgH+DfXwiDUIVhyIGQpPYKH4gBEL///8Ag3wiBDwAACAAIARCCIg8AAEgACAGQpjaHH4gBUL///8Ag3wgBEIVh3wiBUILiDwABCAAIAVCA4g8AAMgACAGQuf2J34gB0L///8Ag3wgBUIVh3wiB0IGiDwABiAAIARCEIhCH4MgBUL///8AgyIFQgWGhDwAAiAAIAZC04xDfiAIQv///wCDfCAHQhWHfCIEQgmIPAAJIAAgBEIBiDwACCAAIAdC////AIMiB0IChiAFQhOIhDwABSAAIAZC0asIfiAJQv///wCDfCAEQhWHfCIFQgyIPAAMIAAgBUIEiDwACyAAIARC////AIMiCEIHhiAHQg6IhDwAByAAIAZCg6FWfiAKQv///wCDfCAFQhWHfCIEQgeIPAAOIAAgBUL///8AgyIFQgSGIAhCEYiEPAAKIAAgC0L///8AgyAEQhWHfCIGQgqIPAARIAAgBkICiDwAECAAIARC////AIMiB0IBhiAFQhSIhDwADSAAIAxC////AIMgBkIVh3wiBEINiDwAFCAAIARCBYg8ABMgACAGQv///wCDIgVCBoYgB0IPiIQ8AA8gACAOQv///wCDIARCFYd8IgY8ABUgACAEQgOGIAVCEoiEPAASIAAgBkIIiDwAFiAAIA9C////AIMgBkIVh3wiBEILiDwAGSAAIARCA4g8ABggACAQQv///wCDIARCFYd8IgVCBog8ABsgACAGQhCIQh+DIARC////AIMiBEIFhoQ8ABcgACANQv///wCDIAVCFYd8IgZCEYg8AB8gACAGQgmIPAAeIAAgBkIBiDwAHSAAIAVC////AIMiBUIChiAEQhOIhDwAGiAAIAZCB4YgBUIOiIQ8ABwLUgEDfyAALQAfQX9zQf8AcSEBQR4hAgNAIAEgACACai0AAEF/c3IhASACQX9qIgMhAiADDQALIAFB/wFxQX9qQewBIAAtAABrcUEIdkF/c0EBcQuMBAECfyMAQeANayICJAAgAkHgA2ogARAbIAJBwAJqIAEQTyACIAJBwAJqEBUgAkHAAmogAiACQeADahAaIAJBoAFqIAJBwAJqEBUgAkGABWoiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkGgBmoiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkHAB2oiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkHgCGoiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkGACmoiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkGgC2oiASACQaABahAbIAJBwAJqIAIgARAaIAJBoAFqIAJBwAJqEBUgAkHADGogAkGgAWoQGyAAEKoBQfwBIQEDQCACQcACaiAAEE8CQCABIgNBoIsCaiwAACIBQQFOBEAgAkGgAWogAkHAAmoQFSACQcACaiACQaABaiACQeADaiABQf4BcUEBdkGgAWxqEBoMAQsgAUF/Sg0AIAJBoAFqIAJBwAJqEBUgAkHAAmogAkGgAWogAkHgA2pBACABa0H+AXFBAXZBoAFsahCsAQsgACACQcACahAVIANBf2ohASADDQALIAJB4A1qJAALJQEBfyMAQaABayIBJAAgASAAEOMCIAEQUiEAIAFBoAFqJAAgAAvwAQECfyMAQYABayIDJAAgABAdIABBKGoQHSAAQdAAahA4IAAgASACQQAgAkGAAXFBB3YiBGsgAnFBAXRrQRh0QRh1IgJBARApECYgACABQfgAaiACQQIQKRAmIAAgAUHwAWogAkEDECkQJiAAIAFB6AJqIAJBBBApECYgACABQeADaiACQQUQKRAmIAAgAUHYBGogAkEGECkQJiAAIAFB0AVqIAJBBxApECYgACABQcgGaiACQQgQKRAmIANBCGogAEEoahAsIANBMGogABAsIANB2ABqIABB0ABqEHkgACADQQhqIAQQJiADQYABaiQAC+kGAgl/HH4gACABKAIMIgRBAXSsIhEgASgCBCIFQQF0rCILfiABKAIIIgasIhYgFn58IAEoAhAiB6wiECABKAIAIghBAXSsIg5+fCABKAIcIgJBJmysIhcgAqwiGn58IAEoAiAiCUETbKwiDCABKAIYIgNBAXSsfnwgASgCJCIKQSZsrCINIAEoAhQiAUEBdKwiEn58QgGGIh5CgICAEHwiH0Ia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IHZhciB3aW5kb3dfID0gJ29iamVjdCcgPT09IHR5cGVvZiB3aW5kb3cgPyB3aW5kb3cgOiBzZWxmOyB2YXIgY3J5cHRvXyA9IHR5cGVvZiB3aW5kb3dfLmNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3dfLmNyeXB0byA6IHdpbmRvd18ubXNDcnlwdG87IHZhciByYW5kb21WYWx1ZXNTdGFuZGFyZCA9IGZ1bmN0aW9uKCkgeyB2YXIgYnVmID0gbmV3IFVpbnQzMkFycmF5KDEpOyBjcnlwdG9fLmdldFJhbmRvbVZhbHVlcyhidWYpOyByZXR1cm4gYnVmWzBdID4+PiAwOyB9OyByYW5kb21WYWx1ZXNTdGFuZGFyZCgpOyBNb2R1bGUuZ2V0UmFuZG9tVmFsdWUgPSByYW5kb21WYWx1ZXNTdGFuZGFyZDsgfSBjYXRjaCAoZSkgeyB0cnkgeyB2YXIgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7IHZhciByYW5kb21WYWx1ZU5vZGVKUyA9IGZ1bmN0aW9uKCkgeyB2YXIgYnVmID0gY3J5cHRvWydyYW5kb21CeXRlcyddKDQpOyByZXR1cm4gKGJ1ZlswXSA8PCAyNCB8IGJ1ZlsxXSA8PCAxNiB8IGJ1ZlsyXSA8PCA4IHwgYnVmWzNdKSA+Pj4gMDsgfTsgcmFuZG9tVmFsdWVOb2RlSlMoKTsgTW9kdWxlLmdldFJhbmRvbVZhbHVlID0gcmFuZG9tVmFsdWVOb2RlSlM7IH0gY2F0Y2ggKGUpIHsgdGhyb3cgJ05vIHNlY3VyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBmb3VuZCc7IH0gfSB9IH0ATGlic29kaXVtRFJHYnVmX2xlbiA8PSBTSVpFX01BWAByYW5kb21ieXRlcy9yYW5kb21ieXRlcy5jAHJhbmRvbWJ5dGVzAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAYmxha2UyYl9maW5hbAAAAAAAAAAACMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gW291dGxlbiA8PSBVSU5UOF9NQVgAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwBjcnlwdG9fZ2VuZXJpY2hhc2hfYmxha2UyYl9maW5hbAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4AQbARCydZ8bL+CuWm/3vdKv4eFNQAUoADADDR8wB3eUD/MuOc/wBuxQFnG5AAQeARC8AHhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/AEHAGQsBAQBB4BkLsAEm6JWPwrInsEXD9Iny75jw1d+sBdPGMzmxOAKIbVP8BccXanA9TdhPujwLdg0QZw8qIFP6LDnMxk7H/XeSrAN67P///////////////////////////////////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBnxsL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBnI0CCwEBAEHAjQILAQEAQeCNAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQaCPAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB8JUCC4UBYjY0X3BvcyA8PSBiNjRfbGVuAHNvZGl1bS9jb2RlY3MuYwBzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaWQAJGFyZ29uMmkAJHY9ACRtPQAsdD0ALHA9ACRhcmdvbjJpZCR2PQAkYXJnb24yaSR2PQAkYXJnb24yaWQkACRhcmdvbjJpJABBkJcCCyhTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAMS4wLjE4AEG9lwILNEAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=";function yA(){try{if(s)return new Uint8Array(s);var A=NA(fA);if(A)return A;if(e)return e(fA);throw"both async and sync fetching of the wasm failed"}catch(A){iA(A)}}function sA(){return s||!i&&!n||"function"!=typeof fetch||eA(fA)?new Promise(function(A,I){A(yA())}):fetch(fA,{credentials:"same-origin"}).then(function(A){if(!A.ok)throw"failed to load wasm binary file at '"+fA+"'";return A.arrayBuffer()}).catch(function(){return yA()})}function wA(){var A={a:MA};function I(A,I){var g=A.exports;C.asm=g,EA()}function g(A){I(A.instance)}function B(I){return sA().then(function(I){return WebAssembly.instantiate(I,A)}).then(I,function(A){h("failed to asynchronously prepare wasm: "+A),iA(A)})}if(QA(),C.instantiateWasm)try{return C.instantiateWasm(A,I)}catch(A){return h("Module.instantiateWasm callback failed with error: "+A),!1}return function(){if(s||"function"!=typeof WebAssembly.instantiateStreaming||rA(fA)||eA(fA)||"function"!=typeof fetch)return B(g);fetch(fA,{credentials:"same-origin"}).then(function(I){return WebAssembly.instantiateStreaming(I,A).then(g,function(A){return h("wasm streaming compile failed: "+A),h("falling back to ArrayBuffer instantiation"),B(g)})})}(),{}}rA(fA)||(fA=y(fA));var hA={1024:function(){return C.getRandomValue()},1062:function(){if(void 0===C.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),C.getRandomValue=g}catch(A){try{var B=require("crypto"),Q=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),C.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}};function DA(A,I,g){var B=bA(I,g);return hA[A].apply(null,B)}function uA(A,I,g,B){iA("Assertion failed: "+_(A)+", at: "+[I?_(I):"unknown filename",g,B?_(B):"unknown function"])}function pA(){iA()}function lA(A,I,g){b.copyWithin(A,I,I+g)}function FA(){return b.length}function GA(A){try{return w.grow(A-H.byteLength+65535>>>16),M(w.buffer),1}catch(A){}}function kA(A){A>>>=0;var I=FA();if(A>2147483648)return!1;for(var g=1;g<=4;g*=2){var B=I*(1+.2/g);if(B=Math.min(B,A+100663296),GA(Math.min(2147483648,R(Math.max(16777216,A,B),65536))))return!0}return!1}function _A(A){return U[PA()>>2]=A,A}function HA(A){switch(A){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return _A(28),-1}K.push({func:function(){dA()}});var YA=[];function bA(A,I){var g;for(YA.length=0,I>>=2;g=b[A++];){var B=g<105;B&&1&I&&I++,YA.push(B?S[I++>>1]:U[I]),++I}return YA}var mA=!1;function UA(A){for(var I=[],g=0;g<A.length;g++){var B=A[g];B>255&&(mA&&F(!1,"Character code "+B+" ("+String.fromCharCode(B)+")  at offset "+g+" not in 0x00-0xFF."),B&=255),I.push(String.fromCharCode(B))}return I.join("")}var vA="function"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a<A.length);return n};function SA(A){if("boolean"==typeof a&&a){var I;try{I=Buffer.from(A,"base64")}catch(g){I=new Buffer(A,"base64")}return new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}try{for(var g=vA(A),B=new Uint8Array(g.length),C=0;C<g.length;++C)B[C]=g.charCodeAt(C);return B}catch(A){throw new Error("Converting base64 string to bytes failed.")}}function NA(A){if(rA(A))return SA(A.slice(aA.length))}var RA,MA={a:uA,c:pA,b:DA,e:lA,f:kA,memory:w,d:HA,table:p},dA=(wA(),C.___wasm_call_ctors=function(){return(dA=C.___wasm_call_ctors=C.asm.g).apply(null,arguments)}),PA=(C._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(C._crypto_aead_chacha20poly1305_encrypt_detached=C.asm.h).apply(null,arguments)},C._crypto_aead_chacha20poly1305_encrypt=function(){return(C._crypto_aead_chacha20poly1305_encrypt=C.asm.i).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(C._crypto_aead_chacha20poly1305_ietf_encrypt_detached=C.asm.j).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(C._crypto_aead_chacha20poly1305_ietf_encrypt=C.asm.k).apply(null,arguments)},C._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(C._crypto_aead_chacha20poly1305_decrypt_detached=C.asm.l).apply(null,arguments)},C._crypto_aead_chacha20poly1305_decrypt=function(){return(C._crypto_aead_chacha20poly1305_decrypt=C.asm.m).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(C._crypto_aead_chacha20poly1305_ietf_decrypt_detached=C.asm.n).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(C._crypto_aead_chacha20poly1305_ietf_decrypt=C.asm.o).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(C._crypto_aead_chacha20poly1305_ietf_keybytes=C.asm.p).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(C._crypto_aead_chacha20poly1305_ietf_npubbytes=C.asm.q).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(C._crypto_aead_chacha20poly1305_ietf_nsecbytes=C.asm.r).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(C._crypto_aead_chacha20poly1305_ietf_abytes=C.asm.s).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(C._crypto_aead_chacha20poly1305_ietf_messagebytes_max=C.asm.t).apply(null,arguments)},C._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(C._crypto_aead_chacha20poly1305_ietf_keygen=C.asm.u).apply(null,arguments)},C._crypto_aead_chacha20poly1305_keybytes=function(){return(C._crypto_aead_chacha20poly1305_keybytes=C.asm.v).apply(null,arguments)},C._crypto_aead_chacha20poly1305_npubbytes=function(){return(C._crypto_aead_chacha20poly1305_npubbytes=C.asm.w).apply(null,arguments)},C._crypto_aead_chacha20poly1305_nsecbytes=function(){return(C._crypto_aead_chacha20poly1305_nsecbytes=C.asm.x).apply(null,arguments)},C._crypto_aead_chacha20poly1305_abytes=function(){return(C._crypto_aead_chacha20poly1305_abytes=C.asm.y).apply(null,arguments)},C._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(C._crypto_aead_chacha20poly1305_messagebytes_max=C.asm.z).apply(null,arguments)},C._crypto_aead_chacha20poly1305_keygen=function(){return(C._crypto_aead_chacha20poly1305_keygen=C.asm.A).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(C._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=C.asm.B).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(C._crypto_aead_xchacha20poly1305_ietf_encrypt=C.asm.C).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(C._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=C.asm.D).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(C._crypto_aead_xchacha20poly1305_ietf_decrypt=C.asm.E).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(C._crypto_aead_xchacha20poly1305_ietf_keybytes=C.asm.F).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(C._crypto_aead_xchacha20poly1305_ietf_npubbytes=C.asm.G).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(C._crypto_aead_xchacha20poly1305_ietf_nsecbytes=C.asm.H).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(C._crypto_aead_xchacha20poly1305_ietf_abytes=C.asm.I).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(C._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=C.asm.J).apply(null,arguments)},C._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(C._crypto_aead_xchacha20poly1305_ietf_keygen=C.asm.K).apply(null,arguments)},C._crypto_auth_bytes=function(){return(C._crypto_auth_bytes=C.asm.L).apply(null,arguments)},C._crypto_auth_keybytes=function(){return(C._crypto_auth_keybytes=C.asm.M).apply(null,arguments)},C._crypto_auth=function(){return(C._crypto_auth=C.asm.N).apply(null,arguments)},C._crypto_auth_verify=function(){return(C._crypto_auth_verify=C.asm.O).apply(null,arguments)},C._crypto_auth_keygen=function(){return(C._crypto_auth_keygen=C.asm.P).apply(null,arguments)},C._crypto_box_seedbytes=function(){return(C._crypto_box_seedbytes=C.asm.Q).apply(null,arguments)},C._crypto_box_publickeybytes=function(){return(C._crypto_box_publickeybytes=C.asm.R).apply(null,arguments)},C._crypto_box_secretkeybytes=function(){return(C._crypto_box_secretkeybytes=C.asm.S).apply(null,arguments)},C._crypto_box_beforenmbytes=function(){return(C._crypto_box_beforenmbytes=C.asm.T).apply(null,arguments)},C._crypto_box_noncebytes=function(){return(C._crypto_box_noncebytes=C.asm.U).apply(null,arguments)},C._crypto_box_macbytes=function(){return(C._crypto_box_macbytes=C.asm.V).apply(null,arguments)},C._crypto_box_messagebytes_max=function(){return(C._crypto_box_messagebytes_max=C.asm.W).apply(null,arguments)},C._crypto_box_seed_keypair=function(){return(C._crypto_box_seed_keypair=C.asm.X).apply(null,arguments)},C._crypto_box_keypair=function(){return(C._crypto_box_keypair=C.asm.Y).apply(null,arguments)},C._crypto_box_beforenm=function(){return(C._crypto_box_beforenm=C.asm.Z).apply(null,arguments)},C._crypto_box_detached_afternm=function(){return(C._crypto_box_detached_afternm=C.asm._).apply(null,arguments)},C._crypto_box_detached=function(){return(C._crypto_box_detached=C.asm.$).apply(null,arguments)},C._crypto_box_easy_afternm=function(){return(C._crypto_box_easy_afternm=C.asm.aa).apply(null,arguments)},C._crypto_box_easy=function(){return(C._crypto_box_easy=C.asm.ba).apply(null,arguments)},C._crypto_box_open_detached_afternm=function(){return(C._crypto_box_open_detached_afternm=C.asm.ca).apply(null,arguments)},C._crypto_box_open_detached=function(){return(C._crypto_box_open_detached=C.asm.da).apply(null,arguments)},C._crypto_box_open_easy_afternm=function(){return(C._crypto_box_open_easy_afternm=C.asm.ea).apply(null,arguments)},C._crypto_box_open_easy=function(){return(C._crypto_box_open_easy=C.asm.fa).apply(null,arguments)},C._crypto_box_seal=function(){return(C._crypto_box_seal=C.asm.ga).apply(null,arguments)},C._crypto_box_seal_open=function(){return(C._crypto_box_seal_open=C.asm.ha).apply(null,arguments)},C._crypto_box_sealbytes=function(){return(C._crypto_box_sealbytes=C.asm.ia).apply(null,arguments)},C._crypto_generichash_bytes_min=function(){return(C._crypto_generichash_bytes_min=C.asm.ja).apply(null,arguments)},C._crypto_generichash_bytes_max=function(){return(C._crypto_generichash_bytes_max=C.asm.ka).apply(null,arguments)},C._crypto_generichash_bytes=function(){return(C._crypto_generichash_bytes=C.asm.la).apply(null,arguments)},C._crypto_generichash_keybytes_min=function(){return(C._crypto_generichash_keybytes_min=C.asm.ma).apply(null,arguments)},C._crypto_generichash_keybytes_max=function(){return(C._crypto_generichash_keybytes_max=C.asm.na).apply(null,arguments)},C._crypto_generichash_keybytes=function(){return(C._crypto_generichash_keybytes=C.asm.oa).apply(null,arguments)},C._crypto_generichash_statebytes=function(){return(C._crypto_generichash_statebytes=C.asm.pa).apply(null,arguments)},C._crypto_generichash=function(){return(C._crypto_generichash=C.asm.qa).apply(null,arguments)},C._crypto_generichash_init=function(){return(C._crypto_generichash_init=C.asm.ra).apply(null,arguments)},C._crypto_generichash_update=function(){return(C._crypto_generichash_update=C.asm.sa).apply(null,arguments)},C._crypto_generichash_final=function(){return(C._crypto_generichash_final=C.asm.ta).apply(null,arguments)},C._crypto_generichash_keygen=function(){return(C._crypto_generichash_keygen=C.asm.ua).apply(null,arguments)},C._crypto_hash_bytes=function(){return(C._crypto_hash_bytes=C.asm.va).apply(null,arguments)},C._crypto_hash=function(){return(C._crypto_hash=C.asm.wa).apply(null,arguments)},C._crypto_kdf_bytes_min=function(){return(C._crypto_kdf_bytes_min=C.asm.xa).apply(null,arguments)},C._crypto_kdf_bytes_max=function(){return(C._crypto_kdf_bytes_max=C.asm.ya).apply(null,arguments)},C._crypto_kdf_contextbytes=function(){return(C._crypto_kdf_contextbytes=C.asm.za).apply(null,arguments)},C._crypto_kdf_keybytes=function(){return(C._crypto_kdf_keybytes=C.asm.Aa).apply(null,arguments)},C._crypto_kdf_derive_from_key=function(){return(C._crypto_kdf_derive_from_key=C.asm.Ba).apply(null,arguments)},C._crypto_kdf_keygen=function(){return(C._crypto_kdf_keygen=C.asm.Ca).apply(null,arguments)},C._crypto_kx_seed_keypair=function(){return(C._crypto_kx_seed_keypair=C.asm.Da).apply(null,arguments)},C._crypto_kx_keypair=function(){return(C._crypto_kx_keypair=C.asm.Ea).apply(null,arguments)},C._crypto_kx_client_session_keys=function(){return(C._crypto_kx_client_session_keys=C.asm.Fa).apply(null,arguments)},C._crypto_kx_server_session_keys=function(){return(C._crypto_kx_server_session_keys=C.asm.Ga).apply(null,arguments)},C._crypto_kx_publickeybytes=function(){return(C._crypto_kx_publickeybytes=C.asm.Ha).apply(null,arguments)},C._crypto_kx_secretkeybytes=function(){return(C._crypto_kx_secretkeybytes=C.asm.Ia).apply(null,arguments)},C._crypto_kx_seedbytes=function(){return(C._crypto_kx_seedbytes=C.asm.Ja).apply(null,arguments)},C._crypto_kx_sessionkeybytes=function(){return(C._crypto_kx_sessionkeybytes=C.asm.Ka).apply(null,arguments)},C._crypto_pwhash_alg_argon2i13=function(){return(C._crypto_pwhash_alg_argon2i13=C.asm.La).apply(null,arguments)},C._crypto_pwhash_alg_argon2id13=function(){return(C._crypto_pwhash_alg_argon2id13=C.asm.Ma).apply(null,arguments)},C._crypto_pwhash_alg_default=function(){return(C._crypto_pwhash_alg_default=C.asm.Na).apply(null,arguments)},C._crypto_pwhash_bytes_min=function(){return(C._crypto_pwhash_bytes_min=C.asm.Oa).apply(null,arguments)},C._crypto_pwhash_bytes_max=function(){return(C._crypto_pwhash_bytes_max=C.asm.Pa).apply(null,arguments)},C._crypto_pwhash_passwd_min=function(){return(C._crypto_pwhash_passwd_min=C.asm.Qa).apply(null,arguments)},C._crypto_pwhash_passwd_max=function(){return(C._crypto_pwhash_passwd_max=C.asm.Ra).apply(null,arguments)},C._crypto_pwhash_saltbytes=function(){return(C._crypto_pwhash_saltbytes=C.asm.Sa).apply(null,arguments)},C._crypto_pwhash_strbytes=function(){return(C._crypto_pwhash_strbytes=C.asm.Ta).apply(null,arguments)},C._crypto_pwhash_strprefix=function(){return(C._crypto_pwhash_strprefix=C.asm.Ua).apply(null,arguments)},C._crypto_pwhash_opslimit_min=function(){return(C._crypto_pwhash_opslimit_min=C.asm.Va).apply(null,arguments)},C._crypto_pwhash_opslimit_max=function(){return(C._crypto_pwhash_opslimit_max=C.asm.Wa).apply(null,arguments)},C._crypto_pwhash_memlimit_min=function(){return(C._crypto_pwhash_memlimit_min=C.asm.Xa).apply(null,arguments)},C._crypto_pwhash_memlimit_max=function(){return(C._crypto_pwhash_memlimit_max=C.asm.Ya).apply(null,arguments)},C._crypto_pwhash_opslimit_interactive=function(){return(C._crypto_pwhash_opslimit_interactive=C.asm.Za).apply(null,arguments)},C._crypto_pwhash_memlimit_interactive=function(){return(C._crypto_pwhash_memlimit_interactive=C.asm._a).apply(null,arguments)},C._crypto_pwhash_opslimit_moderate=function(){return(C._crypto_pwhash_opslimit_moderate=C.asm.$a).apply(null,arguments)},C._crypto_pwhash_memlimit_moderate=function(){return(C._crypto_pwhash_memlimit_moderate=C.asm.ab).apply(null,arguments)},C._crypto_pwhash_opslimit_sensitive=function(){return(C._crypto_pwhash_opslimit_sensitive=C.asm.bb).apply(null,arguments)},C._crypto_pwhash_memlimit_sensitive=function(){return(C._crypto_pwhash_memlimit_sensitive=C.asm.cb).apply(null,arguments)},C._crypto_pwhash=function(){return(C._crypto_pwhash=C.asm.db).apply(null,arguments)},C._crypto_pwhash_str=function(){return(C._crypto_pwhash_str=C.asm.eb).apply(null,arguments)},C._crypto_pwhash_str_alg=function(){return(C._crypto_pwhash_str_alg=C.asm.fb).apply(null,arguments)},C._crypto_pwhash_str_verify=function(){return(C._crypto_pwhash_str_verify=C.asm.gb).apply(null,arguments)},C._crypto_pwhash_str_needs_rehash=function(){return(C._crypto_pwhash_str_needs_rehash=C.asm.hb).apply(null,arguments)},C._crypto_scalarmult_base=function(){return(C._crypto_scalarmult_base=C.asm.ib).apply(null,arguments)},C._crypto_scalarmult=function(){return(C._crypto_scalarmult=C.asm.jb).apply(null,arguments)},C._crypto_scalarmult_bytes=function(){return(C._crypto_scalarmult_bytes=C.asm.kb).apply(null,arguments)},C._crypto_scalarmult_scalarbytes=function(){return(C._crypto_scalarmult_scalarbytes=C.asm.lb).apply(null,arguments)},C._crypto_secretbox_keybytes=function(){return(C._crypto_secretbox_keybytes=C.asm.mb).apply(null,arguments)},C._crypto_secretbox_noncebytes=function(){return(C._crypto_secretbox_noncebytes=C.asm.nb).apply(null,arguments)},C._crypto_secretbox_macbytes=function(){return(C._crypto_secretbox_macbytes=C.asm.ob).apply(null,arguments)},C._crypto_secretbox_messagebytes_max=function(){return(C._crypto_secretbox_messagebytes_max=C.asm.pb).apply(null,arguments)},C._crypto_secretbox_keygen=function(){return(C._crypto_secretbox_keygen=C.asm.qb).apply(null,arguments)},C._crypto_secretbox_detached=function(){return(C._crypto_secretbox_detached=C.asm.rb).apply(null,arguments)},C._crypto_secretbox_easy=function(){return(C._crypto_secretbox_easy=C.asm.sb).apply(null,arguments)},C._crypto_secretbox_open_detached=function(){return(C._crypto_secretbox_open_detached=C.asm.tb).apply(null,arguments)},C._crypto_secretbox_open_easy=function(){return(C._crypto_secretbox_open_easy=C.asm.ub).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_keygen=function(){return(C._crypto_secretstream_xchacha20poly1305_keygen=C.asm.vb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_init_push=function(){return(C._crypto_secretstream_xchacha20poly1305_init_push=C.asm.wb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(C._crypto_secretstream_xchacha20poly1305_init_pull=C.asm.xb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_rekey=function(){return(C._crypto_secretstream_xchacha20poly1305_rekey=C.asm.yb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_push=function(){return(C._crypto_secretstream_xchacha20poly1305_push=C.asm.zb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_pull=function(){return(C._crypto_secretstream_xchacha20poly1305_pull=C.asm.Ab).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(C._crypto_secretstream_xchacha20poly1305_statebytes=C.asm.Bb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_abytes=function(){return(C._crypto_secretstream_xchacha20poly1305_abytes=C.asm.Cb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(C._crypto_secretstream_xchacha20poly1305_headerbytes=C.asm.Db).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(C._crypto_secretstream_xchacha20poly1305_keybytes=C.asm.Eb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(C._crypto_secretstream_xchacha20poly1305_messagebytes_max=C.asm.Fb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(C._crypto_secretstream_xchacha20poly1305_tag_message=C.asm.Gb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(C._crypto_secretstream_xchacha20poly1305_tag_push=C.asm.Hb).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(C._crypto_secretstream_xchacha20poly1305_tag_rekey=C.asm.Ib).apply(null,arguments)},C._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(C._crypto_secretstream_xchacha20poly1305_tag_final=C.asm.Jb).apply(null,arguments)},C._crypto_shorthash_bytes=function(){return(C._crypto_shorthash_bytes=C.asm.Kb).apply(null,arguments)},C._crypto_shorthash_keybytes=function(){return(C._crypto_shorthash_keybytes=C.asm.Lb).apply(null,arguments)},C._crypto_shorthash=function(){return(C._crypto_shorthash=C.asm.Mb).apply(null,arguments)},C._crypto_shorthash_keygen=function(){return(C._crypto_shorthash_keygen=C.asm.Nb).apply(null,arguments)},C._crypto_sign_statebytes=function(){return(C._crypto_sign_statebytes=C.asm.Ob).apply(null,arguments)},C._crypto_sign_bytes=function(){return(C._crypto_sign_bytes=C.asm.Pb).apply(null,arguments)},C._crypto_sign_seedbytes=function(){return(C._crypto_sign_seedbytes=C.asm.Qb).apply(null,arguments)},C._crypto_sign_publickeybytes=function(){return(C._crypto_sign_publickeybytes=C.asm.Rb).apply(null,arguments)},C._crypto_sign_secretkeybytes=function(){return(C._crypto_sign_secretkeybytes=C.asm.Sb).apply(null,arguments)},C._crypto_sign_messagebytes_max=function(){return(C._crypto_sign_messagebytes_max=C.asm.Tb).apply(null,arguments)},C._crypto_sign_seed_keypair=function(){return(C._crypto_sign_seed_keypair=C.asm.Ub).apply(null,arguments)},C._crypto_sign_keypair=function(){return(C._crypto_sign_keypair=C.asm.Vb).apply(null,arguments)},C._crypto_sign=function(){return(C._crypto_sign=C.asm.Wb).apply(null,arguments)},C._crypto_sign_open=function(){return(C._crypto_sign_open=C.asm.Xb).apply(null,arguments)},C._crypto_sign_detached=function(){return(C._crypto_sign_detached=C.asm.Yb).apply(null,arguments)},C._crypto_sign_verify_detached=function(){return(C._crypto_sign_verify_detached=C.asm.Zb).apply(null,arguments)},C._crypto_sign_init=function(){return(C._crypto_sign_init=C.asm._b).apply(null,arguments)},C._crypto_sign_update=function(){return(C._crypto_sign_update=C.asm.$b).apply(null,arguments)},C._crypto_sign_final_create=function(){return(C._crypto_sign_final_create=C.asm.ac).apply(null,arguments)},C._crypto_sign_final_verify=function(){return(C._crypto_sign_final_verify=C.asm.bc).apply(null,arguments)},C._crypto_sign_ed25519_pk_to_curve25519=function(){return(C._crypto_sign_ed25519_pk_to_curve25519=C.asm.cc).apply(null,arguments)},C._crypto_sign_ed25519_sk_to_curve25519=function(){return(C._crypto_sign_ed25519_sk_to_curve25519=C.asm.dc).apply(null,arguments)},C._randombytes_random=function(){return(C._randombytes_random=C.asm.ec).apply(null,arguments)},C._randombytes_stir=function(){return(C._randombytes_stir=C.asm.fc).apply(null,arguments)},C._randombytes_uniform=function(){return(C._randombytes_uniform=C.asm.gc).apply(null,arguments)},C._randombytes_buf=function(){return(C._randombytes_buf=C.asm.hc).apply(null,arguments)},C._randombytes_buf_deterministic=function(){return(C._randombytes_buf_deterministic=C.asm.ic).apply(null,arguments)},C._randombytes_seedbytes=function(){return(C._randombytes_seedbytes=C.asm.jc).apply(null,arguments)},C._randombytes_close=function(){return(C._randombytes_close=C.asm.kc).apply(null,arguments)},C._randombytes=function(){return(C._randombytes=C.asm.lc).apply(null,arguments)},C._sodium_bin2hex=function(){return(C._sodium_bin2hex=C.asm.mc).apply(null,arguments)},C._sodium_hex2bin=function(){return(C._sodium_hex2bin=C.asm.nc).apply(null,arguments)},C._sodium_base64_encoded_len=function(){return(C._sodium_base64_encoded_len=C.asm.oc).apply(null,arguments)},C._sodium_bin2base64=function(){return(C._sodium_bin2base64=C.asm.pc).apply(null,arguments)},C._sodium_base642bin=function(){return(C._sodium_base642bin=C.asm.qc).apply(null,arguments)},C._sodium_init=function(){return(C._sodium_init=C.asm.rc).apply(null,arguments)},C._sodium_pad=function(){return(C._sodium_pad=C.asm.sc).apply(null,arguments)},C._sodium_unpad=function(){return(C._sodium_unpad=C.asm.tc).apply(null,arguments)},C._sodium_version_string=function(){return(C._sodium_version_string=C.asm.uc).apply(null,arguments)},C._sodium_library_version_major=function(){return(C._sodium_library_version_major=C.asm.vc).apply(null,arguments)},C._sodium_library_version_minor=function(){return(C._sodium_library_version_minor=C.asm.wc).apply(null,arguments)},C._sodium_library_minimal=function(){return(C._sodium_library_minimal=C.asm.xc).apply(null,arguments)},C.___errno_location=function(){return(PA=C.___errno_location=C.asm.yc).apply(null,arguments)});function JA(A){function I(){RA||(RA=!0,C.calledRun=!0,l||(T(),W(),C.onRuntimeInitialized&&C.onRuntimeInitialized(),j()))}A=A||E,gA>0||(V(),gA>0||(C.setStatus?(C.setStatus("Running..."),setTimeout(function(){setTimeout(function(){C.setStatus("")},1),I()},1)):I()))}if(C._malloc=function(){return(C._malloc=C.asm.zc).apply(null,arguments)},C._free=function(){return(C._free=C.asm.Ac).apply(null,arguments)},C.setValue=D,C.getValue=u,C.UTF8ToString=_,CA=function A(){RA||JA(),RA||(CA=A)},C.run=JA,C.preInit)for("function"==typeof C.preInit&&(C.preInit=[C.preInit]);C.preInit.length>0;)C.preInit.pop()();JA()}).catch(function(){B.useBackupModule()}),"object"==typeof process&&"function"==typeof process.removeAllListeners&&(process.removeAllListeners("uncaughtException"),process.removeAllListeners("unhandledRejection")),I}"function"==typeof define&&define.amd?define(["exports"],I):"object"==typeof exports&&"string"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/libsodium/dist/modules")},{_process:267,buffer:185,crypto:200,fs:141,path:260}],250:[function(require,module,exports){"use strict";var inherits=require("inherits");var HashBase=require("hash-base");var Buffer=require("safe-buffer").Buffer;var ARRAY16=new Array(16);function MD5(){HashBase.call(this,64);this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878}inherits(MD5,HashBase);MD5.prototype._update=function(){var M=ARRAY16;for(var i=0;i<16;++i)M[i]=this._block.readInt32LE(i*4);var a=this._a;var b=this._b;var c=this._c;var d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7);d=fnF(d,a,b,c,M[1],3905402710,12);c=fnF(c,d,a,b,M[2],606105819,17);b=fnF(b,c,d,a,M[3],3250441966,22);a=fnF(a,b,c,d,M[4],4118548399,7);d=fnF(d,a,b,c,M[5],1200080426,12);c=fnF(c,d,a,b,M[6],2821735955,17);b=fnF(b,c,d,a,M[7],4249261313,22);a=fnF(a,b,c,d,M[8],1770035416,7);d=fnF(d,a,b,c,M[9],2336552879,12);c=fnF(c,d,a,b,M[10],4294925233,17);b=fnF(b,c,d,a,M[11],2304563134,22);a=fnF(a,b,c,d,M[12],1804603682,7);d=fnF(d,a,b,c,M[13],4254626195,12);c=fnF(c,d,a,b,M[14],2792965006,17);b=fnF(b,c,d,a,M[15],1236535329,22);a=fnG(a,b,c,d,M[1],4129170786,5);d=fnG(d,a,b,c,M[6],3225465664,9);c=fnG(c,d,a,b,M[11],643717713,14);b=fnG(b,c,d,a,M[0],3921069994,20);a=fnG(a,b,c,d,M[5],3593408605,5);d=fnG(d,a,b,c,M[10],38016083,9);c=fnG(c,d,a,b,M[15],3634488961,14);b=fnG(b,c,d,a,M[4],3889429448,20);a=fnG(a,b,c,d,M[9],568446438,5);d=fnG(d,a,b,c,M[14],3275163606,9);c=fnG(c,d,a,b,M[3],4107603335,14);b=fnG(b,c,d,a,M[8],1163531501,20);a=fnG(a,b,c,d,M[13],2850285829,5);d=fnG(d,a,b,c,M[2],4243563512,9);c=fnG(c,d,a,b,M[7],1735328473,14);b=fnG(b,c,d,a,M[12],2368359562,20);a=fnH(a,b,c,d,M[5],4294588738,4);d=fnH(d,a,b,c,M[8],2272392833,11);c=fnH(c,d,a,b,M[11],1839030562,16);b=fnH(b,c,d,a,M[14],4259657740,23);a=fnH(a,b,c,d,M[1],2763975236,4);d=fnH(d,a,b,c,M[4],1272893353,11);c=fnH(c,d,a,b,M[7],4139469664,16);b=fnH(b,c,d,a,M[10],3200236656,23);a=fnH(a,b,c,d,M[13],681279174,4);d=fnH(d,a,b,c,M[0],3936430074,11);c=fnH(c,d,a,b,M[3],3572445317,16);b=fnH(b,c,d,a,M[6],76029189,23);a=fnH(a,b,c,d,M[9],3654602809,4);d=fnH(d,a,b,c,M[12],3873151461,11);c=fnH(c,d,a,b,M[15],530742520,16);b=fnH(b,c,d,a,M[2],3299628645,23);a=fnI(a,b,c,d,M[0],4096336452,6);d=fnI(d,a,b,c,M[7],1126891415,10);c=fnI(c,d,a,b,M[14],2878612391,15);b=fnI(b,c,d,a,M[5],4237533241,21);a=fnI(a,b,c,d,M[12],1700485571,6);d=fnI(d,a,b,c,M[3],2399980690,10);c=fnI(c,d,a,b,M[10],4293915773,15);b=fnI(b,c,d,a,M[1],2240044497,21);a=fnI(a,b,c,d,M[8],1873313359,6);d=fnI(d,a,b,c,M[15],4264355552,10);c=fnI(c,d,a,b,M[6],2734768916,15);b=fnI(b,c,d,a,M[13],1309151649,21);a=fnI(a,b,c,d,M[4],4149444226,6);d=fnI(d,a,b,c,M[11],3174756917,10);c=fnI(c,d,a,b,M[2],718787259,15);b=fnI(b,c,d,a,M[9],3951481745,21);this._a=this._a+a|0;this._b=this._b+b|0;this._c=this._c+c|0;this._d=this._d+d|0};MD5.prototype._digest=function(){this._block[this._blockOffset++]=128;if(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 buffer=Buffer.allocUnsafe(16);buffer.writeInt32LE(this._a,0);buffer.writeInt32LE(this._b,4);buffer.writeInt32LE(this._c,8);buffer.writeInt32LE(this._d,12);return buffer};function rotl(x,n){return x<<n|x>>>32-n}function fnF(a,b,c,d,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+b|0}function fnG(a,b,c,d,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+b|0}function fnH(a,b,c,d,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+b|0}function fnI(a,b,c,d,m,k,s){return rotl(a+(c^(b|~d))+m+k|0,s)+b|0}module.exports=MD5},{"hash-base":230,inherits:245,"safe-buffer":293}],251:[function(require,module,exports){var bn=require("bn.js");var brorand=require("brorand");function MillerRabin(rand){this.rand=rand||new brorand.Rand}module.exports=MillerRabin;MillerRabin.create=function create(rand){return new MillerRabin(rand)};MillerRabin.prototype._randbelow=function _randbelow(n){var len=n.bitLength();var min_bytes=Math.ceil(len/8);do{var a=new bn(this.rand.generate(min_bytes))}while(a.cmp(n)>=0);return a};MillerRabin.prototype._randrange=function _randrange(start,stop){var size=stop.sub(start);return start.add(this._randbelow(size))};MillerRabin.prototype.test=function test(n,k,cb){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);var prime=true;for(;k>0;k--){var a=this._randrange(new bn(2),n1);if(cb)cb(a);var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return false;if(x.cmp(rn1)===0)break}if(i===s)return false}return prime};MillerRabin.prototype.getDivisor=function getDivisor(n,k){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);for(;k>0;k--){var a=this._randrange(new bn(2),n1);var g=n.gcd(a);if(g.cmpn(1)!==0)return g;var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return x.fromRed().subn(1).gcd(n);if(x.cmp(rn1)===0)break}if(i===s){x=x.redSqr();return x.fromRed().subn(1).gcd(n)}}return false}},{"bn.js":252,brorand:140}],252:[function(require,module,exports){arguments[4][109][0].apply(exports,arguments)},{buffer:141,dup:109}],253:[function(require,module,exports){module.exports=assert;function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}assert.equal=function assertEqual(l,r,msg){if(l!=r)throw new Error(msg||"Assertion failed: "+l+" != "+r)}},{}],254:[function(require,module,exports){"use strict";var utils=exports;function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg!=="string"){for(var i=0;i<msg.length;i++)res[i]=msg[i]|0;return res}if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(var i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}else{for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);var hi=c>>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}return res}utils.toArray=toArray;function zero2(word){if(word.length===1)return"0"+word;else return word}utils.zero2=zero2;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}utils.toHex=toHex;utils.encode=function encode(arr,enc){if(enc==="hex")return toHex(arr);else return arr}},{}],255:[function(require,module,exports){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],256:[function(require,module,exports){"use strict";var asn1=require("asn1.js");exports.certificate=require("./certificate");var RSAPrivateKey=asn1.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});exports.RSAPublicKey=RSAPublicKey;var PublicKey=asn1.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())});exports.PublicKey=PublicKey;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())});var PrivateKeyInfo=asn1.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});exports.DSAPrivateKey=DSAPrivateKey;exports.DSAparam=asn1.define("DSAparam",function(){this.int()});var ECPrivateKey=asn1.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});exports.signature=asn1.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"./certificate":257,"asn1.js":95}],257:[function(require,module,exports){"use strict";var asn=require("asn1.js");var Time=asn.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})});var AttributeTypeValue=asn.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())});var AlgorithmIdentifier=asn.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())});var SubjectPublicKeyInfo=asn.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())});var RelativeDistinguishedName=asn.define("RelativeDistinguishedName",function(){this.setof(AttributeTypeValue)});var RDNSequence=asn.define("RDNSequence",function(){this.seqof(RelativeDistinguishedName)});var Name=asn.define("Name",function(){this.choice({rdnSequence:this.use(RDNSequence)})});var Validity=asn.define("Validity",function(){this.seq().obj(this.key("notBefore").use(Time),this.key("notAfter").use(Time))});var Extension=asn.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(false),this.key("extnValue").octstr())});var TBSCertificate=asn.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(AlgorithmIdentifier),this.key("issuer").use(Name),this.key("validity").use(Validity),this.key("subject").use(Name),this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(Extension).optional())});var X509Certificate=asn.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(TBSCertificate),this.key("signatureAlgorithm").use(AlgorithmIdentifier),this.key("signatureValue").bitstr())});module.exports=X509Certificate},{"asn1.js":95}],258:[function(require,module,exports){var findProc=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m;var startRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;var fullRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m;var evp=require("evp_bytestokey");var ciphers=require("browserify-aes");var Buffer=require("safe-buffer").Buffer;module.exports=function(okey,password){var key=okey.toString();var match=key.match(findProc);var decrypted;if(!match){var match2=key.match(fullRegex);decrypted=new Buffer(match2[2].replace(/[\r\n]/g,""),"base64")}else{var suite="aes"+match[1];var iv=Buffer.from(match[2],"hex");var cipherText=Buffer.from(match[3].replace(/[\r\n]/g,""),"base64");var cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key;var out=[];var cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText));out.push(cipher.final());decrypted=Buffer.concat(out)}var tag=key.match(startRegex)[1];return{tag:tag,data:decrypted}}},{"browserify-aes":144,evp_bytestokey:229,"safe-buffer":293}],259:[function(require,module,exports){var asn1=require("./asn1");var aesid=require("./aesid.json");var fixProc=require("./fixProc");var ciphers=require("browserify-aes");var compat=require("pbkdf2");var Buffer=require("safe-buffer").Buffer;module.exports=parseKeys;function parseKeys(buffer){var password;if(typeof buffer==="object"&&!Buffer.isBuffer(buffer)){password=buffer.passphrase;buffer=buffer.key}if(typeof buffer==="string"){buffer=Buffer.from(buffer)}var stripped=fixProc(buffer,password);var type=stripped.tag;var data=stripped.data;var subtype,ndata;switch(type){case"CERTIFICATE":ndata=asn1.certificate.decode(data,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":if(!ndata){ndata=asn1.PublicKey.decode(data,"der")}subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":ndata.subjectPrivateKey=ndata.subjectPublicKey;return{type:"ec",data:ndata};case"1.2.840.10040.4.1":ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der");return{type:"dsa",data:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"ENCRYPTED PRIVATE KEY":data=asn1.EncryptedPrivateKey.decode(data,"der");data=decrypt(data,password);case"PRIVATE KEY":ndata=asn1.PrivateKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der");return{type:"dsa",params:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":data=asn1.ECPrivateKey.decode(data,"der");return{curve:data.parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}parseKeys.signature=asn1.signature;function decrypt(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt;var iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10);var algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")];var iv=data.algorithm.decrypt.cipher.iv;var cipherText=data.subjectPrivateKey;var keylen=parseInt(algo.split("-")[1],10)/8;var key=compat.pbkdf2Sync(password,salt,iters,keylen,"sha1");var cipher=ciphers.createDecipheriv(algo,key,iv);var out=[];out.push(cipher.update(cipherText));out.push(cipher.final());return Buffer.concat(out)}},{"./aesid.json":255,"./asn1":256,"./fixProc":258,"browserify-aes":144,pbkdf2:261,"safe-buffer":293}],260:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){if(typeof path!=="string")path=path+"";if(path.length===0)return".";var code=path.charCodeAt(0);var hasRoot=code===47;var end=-1;var matchedSlash=true;for(var i=path.length-1;i>=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1){return"/"}return path.slice(0,end)};function basename(path){if(typeof path!=="string")path=path+"";var start=0;var end=-1;var matchedSlash=true;var i;for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}exports.basename=function(path,ext){var f=basename(path);if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){if(typeof path!=="string")path=path+"";var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:267}],261:[function(require,module,exports){exports.pbkdf2=require("./lib/async");exports.pbkdf2Sync=require("./lib/sync")},{"./lib/async":262,"./lib/sync":265}],262:[function(require,module,exports){(function(process,global){var checkParameters=require("./precondition");var defaultEncoding=require("./default-encoding");var sync=require("./sync");var Buffer=require("safe-buffer").Buffer;var ZERO_BUF;var subtle=global.crypto&&global.crypto.subtle;var toBrowser={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"};var checks=[];function checkNative(algo){if(global.process&&!global.process.browser){return Promise.resolve(false)}if(!subtle||!subtle.importKey||!subtle.deriveBits){return Promise.resolve(false)}if(checks[algo]!==undefined){return checks[algo]}ZERO_BUF=ZERO_BUF||Buffer.alloc(8);var prom=browserPbkdf2(ZERO_BUF,ZERO_BUF,10,128,algo).then(function(){return true}).catch(function(){return false});checks[algo]=prom;return prom}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey("raw",password,{name:"PBKDF2"},false,["deriveBits"]).then(function(key){return subtle.deriveBits({name:"PBKDF2",salt:salt,iterations:iterations,hash:{name:algo}},key,length<<3)}).then(function(res){return Buffer.from(res)})}function resolvePromise(promise,callback){promise.then(function(out){process.nextTick(function(){callback(null,out)})},function(e){process.nextTick(function(){callback(e)})})}module.exports=function(password,salt,iterations,keylen,digest,callback){if(typeof digest==="function"){callback=digest;digest=undefined}digest=digest||"sha1";var algo=toBrowser[digest.toLowerCase()];if(!algo||typeof global.Promise!=="function"){return process.nextTick(function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){return callback(e)}callback(null,out)})}checkParameters(password,salt,iterations,keylen);if(typeof callback!=="function")throw new Error("No callback provided to pbkdf2");if(!Buffer.isBuffer(password))password=Buffer.from(password,defaultEncoding);if(!Buffer.isBuffer(salt))salt=Buffer.from(salt,defaultEncoding);resolvePromise(checkNative(algo).then(function(resp){if(resp)return browserPbkdf2(password,salt,iterations,keylen,algo);return sync(password,salt,iterations,keylen,digest)}),callback)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./default-encoding":263,"./precondition":264,"./sync":265,_process:267,"safe-buffer":293}],263:[function(require,module,exports){(function(process){var defaultEncoding;if(process.browser){defaultEncoding="utf-8"}else{var pVersionMajor=parseInt(process.version.split(".")[0].slice(1),10);defaultEncoding=pVersionMajor>=6?"utf-8":"binary"}module.exports=defaultEncoding}).call(this,require("_process"))},{_process:267}],264:[function(require,module,exports){(function(Buffer){var MAX_ALLOC=Math.pow(2,30)-1;function checkBuffer(buf,name){if(typeof buf!=="string"&&!Buffer.isBuffer(buf)){throw new TypeError(name+" must be a buffer or string")}}module.exports=function(password,salt,iterations,keylen){checkBuffer(password,"Password");checkBuffer(salt,"Salt");if(typeof iterations!=="number"){throw new TypeError("Iterations not a number")}if(iterations<0){throw new TypeError("Bad iterations")}if(typeof keylen!=="number"){throw new TypeError("Key length not a number")}if(keylen<0||keylen>MAX_ALLOC||keylen!==keylen){throw new TypeError("Bad key length")}}}).call(this,{isBuffer:require("../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../insert-module-globals/node_modules/is-buffer/index.js":246}],265:[function(require,module,exports){var md5=require("create-hash/md5");var RIPEMD160=require("ripemd160");var sha=require("sha.js");var checkParameters=require("./precondition");var defaultEncoding=require("./default-encoding");var Buffer=require("safe-buffer").Buffer;var ZEROS=Buffer.alloc(128);var sizes={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Hmac(alg,key,saltLen){var hash=getDigest(alg);var blocksize=alg==="sha512"||alg==="sha384"?128:64;if(key.length>blocksize){key=hash(key)}else if(key.length<blocksize){key=Buffer.concat([key,ZEROS],blocksize)}var ipad=Buffer.allocUnsafe(blocksize+sizes[alg]);var opad=Buffer.allocUnsafe(blocksize+sizes[alg]);for(var i=0;i<blocksize;i++){ipad[i]=key[i]^54;opad[i]=key[i]^92}var ipad1=Buffer.allocUnsafe(blocksize+saltLen+4);ipad.copy(ipad1,0,0,blocksize);this.ipad1=ipad1;this.ipad2=ipad;this.opad=opad;this.alg=alg;this.blocksize=blocksize;this.hash=hash;this.size=sizes[alg]}Hmac.prototype.run=function(data,ipad){data.copy(ipad,this.blocksize);var h=this.hash(ipad);h.copy(this.opad,this.blocksize);return this.hash(this.opad)};function getDigest(alg){function shaFunc(data){return sha(alg).update(data).digest()}function rmd160Func(data){return(new RIPEMD160).update(data).digest()}if(alg==="rmd160"||alg==="ripemd160")return rmd160Func;if(alg==="md5")return md5;return shaFunc}function pbkdf2(password,salt,iterations,keylen,digest){checkParameters(password,salt,iterations,keylen);if(!Buffer.isBuffer(password))password=Buffer.from(password,defaultEncoding);if(!Buffer.isBuffer(salt))salt=Buffer.from(salt,defaultEncoding);digest=digest||"sha1";var hmac=new Hmac(digest,password,salt.length);var DK=Buffer.allocUnsafe(keylen);var block1=Buffer.allocUnsafe(salt.length+4);salt.copy(block1,0,0,salt.length);var destPos=0;var hLen=sizes[digest];var l=Math.ceil(keylen/hLen);for(var i=1;i<=l;i++){block1.writeUInt32BE(i,salt.length);var T=hmac.run(block1,hmac.ipad1);var U=T;for(var j=1;j<iterations;j++){U=hmac.run(U,hmac.ipad2);for(var k=0;k<hLen;k++)T[k]^=U[k]}T.copy(DK,destPos);destPos+=hLen}return DK}module.exports=pbkdf2},{"./default-encoding":263,"./precondition":264,"create-hash/md5":197,ripemd160:292,"safe-buffer":293,"sha.js":295}],266:[function(require,module,exports){(function(process){"use strict";if(typeof process==="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){module.exports={nextTick:nextTick}}else{module.exports=process}function nextTick(fn,arg1,arg2,arg3){if(typeof fn!=="function"){throw new TypeError('"callback" argument must be a function')}var len=arguments.length;var args,i;switch(len){case 0:case 1:return process.nextTick(fn);case 2:return process.nextTick(function afterTickOne(){fn.call(null,arg1)});case 3:return process.nextTick(function afterTickTwo(){fn.call(null,arg1,arg2)});case 4:return process.nextTick(function afterTickThree(){fn.call(null,arg1,arg2,arg3)});default:args=new Array(len-1);i=0;while(i<args.length){args[i++]=arguments[i]}return process.nextTick(function afterTick(){fn.apply(null,args)})}}}).call(this,require("_process"))},{_process:267}],267:[function(require,module,exports){var process=module.exports={};var cachedSetTimeout;var cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){cachedSetTimeout=setTimeout}else{cachedSetTimeout=defaultSetTimout}}catch(e){cachedSetTimeout=defaultSetTimout}try{if(typeof clearTimeout==="function"){cachedClearTimeout=clearTimeout}else{cachedClearTimeout=defaultClearTimeout}}catch(e){cachedClearTimeout=defaultClearTimeout}})();function runTimeout(fun){if(cachedSetTimeout===setTimeout){return setTimeout(fun,0)}if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0)}try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){return clearTimeout(marker)}if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker)}try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;runClearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[]};process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],268:[function(require,module,exports){exports.publicEncrypt=require("./publicEncrypt");exports.privateDecrypt=require("./privateDecrypt");exports.privateEncrypt=function privateEncrypt(key,buf){return exports.publicEncrypt(key,buf,true)};exports.publicDecrypt=function publicDecrypt(key,buf){return exports.privateDecrypt(key,buf,true)}},{"./privateDecrypt":271,"./publicEncrypt":272}],269:[function(require,module,exports){var createHash=require("create-hash");var Buffer=require("safe-buffer").Buffer;module.exports=function(seed,len){var t=Buffer.alloc(0);var i=0;var c;while(t.length<len){c=i2ops(i++);t=Buffer.concat([t,createHash("sha1").update(seed).update(c).digest()])}return t.slice(0,len)};function i2ops(c){var out=Buffer.allocUnsafe(4);out.writeUInt32BE(c,0);return out}},{"create-hash":196,"safe-buffer":293}],270:[function(require,module,exports){arguments[4][109][0].apply(exports,arguments)},{buffer:141,dup:109}],271:[function(require,module,exports){var parseKeys=require("parse-asn1");var mgf=require("./mgf");var xor=require("./xor");var BN=require("bn.js");var crt=require("browserify-rsa");var createHash=require("create-hash");var withPublic=require("./withPublic");var Buffer=require("safe-buffer").Buffer;module.exports=function privateDecrypt(privateKey,enc,reverse){var padding;if(privateKey.padding){padding=privateKey.padding}else if(reverse){padding=1}else{padding=4}var key=parseKeys(privateKey);var k=key.modulus.byteLength();if(enc.length>k||new BN(enc).cmp(key.modulus)>=0){throw new Error("decryption error")}var msg;if(reverse){msg=withPublic(new BN(enc),key)}else{msg=crt(enc,key)}var zBuffer=Buffer.alloc(k-msg.length);msg=Buffer.concat([zBuffer,msg],k);if(padding===4){return oaep(key,msg)}else if(padding===1){return pkcs1(key,msg,reverse)}else if(padding===3){return msg}else{throw new Error("unknown padding")}};function oaep(key,msg){var k=key.modulus.byteLength();var iHash=createHash("sha1").update(Buffer.alloc(0)).digest();var hLen=iHash.length;if(msg[0]!==0){throw new Error("decryption error")}var maskedSeed=msg.slice(1,hLen+1);var maskedDb=msg.slice(hLen+1);var seed=xor(maskedSeed,mgf(maskedDb,hLen));var db=xor(maskedDb,mgf(seed,k-hLen-1));if(compare(iHash,db.slice(0,hLen))){throw new Error("decryption error")}var i=hLen;while(db[i]===0){i++}if(db[i++]!==1){throw new Error("decryption error")}return db.slice(i)}function pkcs1(key,msg,reverse){var p1=msg.slice(0,2);var i=2;var status=0;while(msg[i++]!==0){if(i>=msg.length){status++;break}}var ps=msg.slice(2,i-1);if(p1.toString("hex")!=="0002"&&!reverse||p1.toString("hex")!=="0001"&&reverse){status++}if(ps.length<8){status++}if(status){throw new Error("decryption error")}return msg.slice(i)}function compare(a,b){a=Buffer.from(a);b=Buffer.from(b);var dif=0;var len=a.length;if(a.length!==b.length){dif++;len=Math.min(a.length,b.length)}var i=-1;while(++i<len){dif+=a[i]^b[i]}return dif}},{"./mgf":269,"./withPublic":273,"./xor":274,"bn.js":270,"browserify-rsa":162,"create-hash":196,"parse-asn1":259,"safe-buffer":293}],272:[function(require,module,exports){var parseKeys=require("parse-asn1");var randomBytes=require("randombytes");var createHash=require("create-hash");var mgf=require("./mgf");var xor=require("./xor");var BN=require("bn.js");var withPublic=require("./withPublic");var crt=require("browserify-rsa");var Buffer=require("safe-buffer").Buffer;module.exports=function publicEncrypt(publicKey,msg,reverse){var padding;if(publicKey.padding){padding=publicKey.padding}else if(reverse){padding=1}else{padding=4}var key=parseKeys(publicKey);var paddedMsg;if(padding===4){paddedMsg=oaep(key,msg)}else if(padding===1){paddedMsg=pkcs1(key,msg,reverse)}else if(padding===3){paddedMsg=new BN(msg);if(paddedMsg.cmp(key.modulus)>=0){throw new Error("data too long for modulus")}}else{throw new Error("unknown padding")}if(reverse){return crt(paddedMsg,key)}else{return withPublic(paddedMsg,key)}};function oaep(key,msg){var k=key.modulus.byteLength();var mLen=msg.length;var iHash=createHash("sha1").update(Buffer.alloc(0)).digest();var hLen=iHash.length;var hLen2=2*hLen;if(mLen>k-hLen2-2){throw new Error("message too long")}var ps=Buffer.alloc(k-mLen-hLen2-2);var dblen=k-hLen-1;var seed=randomBytes(hLen);var maskedDb=xor(Buffer.concat([iHash,ps,Buffer.alloc(1,1),msg],dblen),mgf(seed,dblen));var maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer.concat([Buffer.alloc(1),maskedSeed,maskedDb],k))}function pkcs1(key,msg,reverse){var mLen=msg.length;var k=key.modulus.byteLength();if(mLen>k-11){throw new Error("message too long")}var ps;if(reverse){ps=Buffer.alloc(k-mLen-3,255)}else{ps=nonZero(k-mLen-3)}return new BN(Buffer.concat([Buffer.from([0,reverse?1:2]),ps,Buffer.alloc(1),msg],k))}function nonZero(len){var out=Buffer.allocUnsafe(len);var i=0;var cache=randomBytes(len*2);var cur=0;var num;while(i<len){if(cur===cache.length){cache=randomBytes(len*2);cur=0}num=cache[cur++];if(num){out[i++]=num}}return out}},{"./mgf":269,"./withPublic":273,"./xor":274,"bn.js":270,"browserify-rsa":162,"create-hash":196,"parse-asn1":259,randombytes:276,"safe-buffer":293}],273:[function(require,module,exports){var BN=require("bn.js");var Buffer=require("safe-buffer").Buffer;function withPublic(paddedMsg,key){return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray())}module.exports=withPublic},{"bn.js":270,"safe-buffer":293}],274:[function(require,module,exports){module.exports=function xor(a,b){var len=a.length;var i=-1;while(++i<len){a[i]^=b[i]}return a}},{}],275:[function(require,module,exports){var qrcode=function(){var qrcode=function(typeNumber,errorCorrectionLevel){var PAD0=236;var PAD1=17;var _typeNumber=typeNumber;var _errorCorrectionLevel=QRErrorCorrectionLevel[errorCorrectionLevel];var _modules=null;var _moduleCount=0;var _dataCache=null;var _dataList=[];var _this={};var makeImpl=function(test,maskPattern){_moduleCount=_typeNumber*4+17;_modules=function(moduleCount){var modules=new Array(moduleCount);for(var row=0;row<moduleCount;row+=1){modules[row]=new Array(moduleCount);for(var col=0;col<moduleCount;col+=1){modules[row][col]=null}}return modules}(_moduleCount);setupPositionProbePattern(0,0);setupPositionProbePattern(_moduleCount-7,0);setupPositionProbePattern(0,_moduleCount-7);setupPositionAdjustPattern();setupTimingPattern();setupTypeInfo(test,maskPattern);if(_typeNumber>=7){setupTypeNumber(test)}if(_dataCache==null){_dataCache=createData(_typeNumber,_errorCorrectionLevel,_dataList)}mapData(_dataCache,maskPattern)};var setupPositionProbePattern=function(row,col){for(var r=-1;r<=7;r+=1){if(row+r<=-1||_moduleCount<=row+r)continue;for(var c=-1;c<=7;c+=1){if(col+c<=-1||_moduleCount<=col+c)continue;if(0<=r&&r<=6&&(c==0||c==6)||0<=c&&c<=6&&(r==0||r==6)||2<=r&&r<=4&&2<=c&&c<=4){_modules[row+r][col+c]=true}else{_modules[row+r][col+c]=false}}}};var getBestMaskPattern=function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i+=1){makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(_this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i}}return pattern};var setupTimingPattern=function(){for(var r=8;r<_moduleCount-8;r+=1){if(_modules[r][6]!=null){continue}_modules[r][6]=r%2==0}for(var c=8;c<_moduleCount-8;c+=1){if(_modules[6][c]!=null){continue}_modules[6][c]=c%2==0}};var setupPositionAdjustPattern=function(){var pos=QRUtil.getPatternPosition(_typeNumber);for(var i=0;i<pos.length;i+=1){for(var j=0;j<pos.length;j+=1){var row=pos[i];var col=pos[j];if(_modules[row][col]!=null){continue}for(var r=-2;r<=2;r+=1){for(var c=-2;c<=2;c+=1){if(r==-2||r==2||c==-2||c==2||r==0&&c==0){_modules[row+r][col+c]=true}else{_modules[row+r][col+c]=false}}}}}};var setupTypeNumber=function(test){var bits=QRUtil.getBCHTypeNumber(_typeNumber);for(var i=0;i<18;i+=1){var mod=!test&&(bits>>i&1)==1;_modules[Math.floor(i/3)][i%3+_moduleCount-8-3]=mod}for(var i=0;i<18;i+=1){var mod=!test&&(bits>>i&1)==1;_modules[i%3+_moduleCount-8-3][Math.floor(i/3)]=mod}};var setupTypeInfo=function(test,maskPattern){var data=_errorCorrectionLevel<<3|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i+=1){var mod=!test&&(bits>>i&1)==1;if(i<6){_modules[i][8]=mod}else if(i<8){_modules[i+1][8]=mod}else{_modules[_moduleCount-15+i][8]=mod}}for(var i=0;i<15;i+=1){var mod=!test&&(bits>>i&1)==1;if(i<8){_modules[8][_moduleCount-i-1]=mod}else if(i<9){_modules[8][15-i-1+1]=mod}else{_modules[8][15-i-1]=mod}}_modules[_moduleCount-8][8]=!test};var mapData=function(data,maskPattern){var inc=-1;var row=_moduleCount-1;var bitIndex=7;var byteIndex=0;var maskFunc=QRUtil.getMaskFunction(maskPattern);for(var col=_moduleCount-1;col>0;col-=2){if(col==6)col-=1;while(true){for(var c=0;c<2;c+=1){if(_modules[row][col-c]==null){var dark=false;if(byteIndex<data.length){dark=(data[byteIndex]>>>bitIndex&1)==1}var mask=maskFunc(row,col-c);if(mask){dark=!dark}_modules[row][col-c]=dark;bitIndex-=1;if(bitIndex==-1){byteIndex+=1;bitIndex=7}}}row+=inc;if(row<0||_moduleCount<=row){row-=inc;inc=-inc;break}}}};var createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r<rsBlocks.length;r+=1){var dcCount=rsBlocks[r].dataCount;var ecCount=rsBlocks[r].totalCount-dcCount;maxDcCount=Math.max(maxDcCount,dcCount);maxEcCount=Math.max(maxEcCount,ecCount);dcdata[r]=new Array(dcCount);for(var i=0;i<dcdata[r].length;i+=1){dcdata[r][i]=255&buffer.getBuffer()[i+offset]}offset+=dcCount;var rsPoly=QRUtil.getErrorCorrectPolynomial(ecCount);var rawPoly=qrPolynomial(dcdata[r],rsPoly.getLength()-1);var modPoly=rawPoly.mod(rsPoly);ecdata[r]=new Array(rsPoly.getLength()-1);for(var i=0;i<ecdata[r].length;i+=1){var modIndex=i+modPoly.getLength()-ecdata[r].length;ecdata[r][i]=modIndex>=0?modPoly.getAt(modIndex):0}}var totalCodeCount=0;for(var i=0;i<rsBlocks.length;i+=1){totalCodeCount+=rsBlocks[i].totalCount}var data=new Array(totalCodeCount);var index=0;for(var i=0;i<maxDcCount;i+=1){for(var r=0;r<rsBlocks.length;r+=1){if(i<dcdata[r].length){data[index]=dcdata[r][i];index+=1}}}for(var i=0;i<maxEcCount;i+=1){for(var r=0;r<rsBlocks.length;r+=1){if(i<ecdata[r].length){data[index]=ecdata[r][i];index+=1}}}return data};var createData=function(typeNumber,errorCorrectionLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectionLevel);var buffer=qrBitBuffer();for(var i=0;i<dataList.length;i+=1){var data=dataList[i];buffer.put(data.getMode(),4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.getMode(),typeNumber));data.write(buffer)}var totalDataCount=0;for(var i=0;i<rsBlocks.length;i+=1){totalDataCount+=rsBlocks[i].dataCount}if(buffer.getLengthInBits()>totalDataCount*8){throw"code length overflow. ("+buffer.getLengthInBits()+">"+totalDataCount*8+")"}if(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4)}while(buffer.getLengthInBits()%8!=0){buffer.putBit(false)}while(true){if(buffer.getLengthInBits()>=totalDataCount*8){break}buffer.put(PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break}buffer.put(PAD1,8)}return createBytes(buffer,rsBlocks)};_this.addData=function(data,mode){mode=mode||"Byte";var newData=null;switch(mode){case"Numeric":newData=qrNumber(data);break;case"Alphanumeric":newData=qrAlphaNum(data);break;case"Byte":newData=qr8BitByte(data);break;case"Kanji":newData=qrKanji(data);break;default:throw"mode:"+mode}_dataList.push(newData);_dataCache=null};_this.isDark=function(row,col){if(row<0||_moduleCount<=row||col<0||_moduleCount<=col){throw row+","+col}return _modules[row][col]};_this.getModuleCount=function(){return _moduleCount};_this.make=function(){if(_typeNumber<1){var typeNumber=1;for(;typeNumber<40;typeNumber++){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,_errorCorrectionLevel);var buffer=qrBitBuffer();for(var i=0;i<_dataList.length;i++){var data=_dataList[i];buffer.put(data.getMode(),4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.getMode(),typeNumber));data.write(buffer)}var totalDataCount=0;for(var i=0;i<rsBlocks.length;i++){totalDataCount+=rsBlocks[i].dataCount}if(buffer.getLengthInBits()<=totalDataCount*8){break}}_typeNumber=typeNumber}makeImpl(false,getBestMaskPattern())};_this.createTableTag=function(cellSize,margin){cellSize=cellSize||2;margin=typeof margin=="undefined"?cellSize*4:margin;var qrHtml="";qrHtml+='<table style="';qrHtml+=" border-width: 0px; border-style: none;";qrHtml+=" border-collapse: collapse;";qrHtml+=" padding: 0px; margin: "+margin+"px;";qrHtml+='">';qrHtml+="<tbody>";for(var r=0;r<_this.getModuleCount();r+=1){qrHtml+="<tr>";for(var c=0;c<_this.getModuleCount();c+=1){qrHtml+='<td style="';qrHtml+=" border-width: 0px; border-style: none;";qrHtml+=" border-collapse: collapse;";qrHtml+=" padding: 0px; margin: 0px;";qrHtml+=" width: "+cellSize+"px;";qrHtml+=" height: "+cellSize+"px;";qrHtml+=" background-color: ";qrHtml+=_this.isDark(r,c)?"#000000":"#ffffff";qrHtml+=";";qrHtml+='"/>'}qrHtml+="</tr>"}qrHtml+="</tbody>";qrHtml+="</table>";return qrHtml};_this.createSvgTag=function(cellSize,margin,alt,title){var opts={};if(typeof arguments[0]=="object"){opts=arguments[0];cellSize=opts.cellSize;margin=opts.margin;alt=opts.alt;title=opts.title}cellSize=cellSize||2;margin=typeof margin=="undefined"?cellSize*4:margin;alt=typeof alt==="string"?{text:alt}:alt||{};alt.text=alt.text||null;alt.id=alt.text?alt.id||"qrcode-description":null;title=typeof title==="string"?{text:title}:title||{};title.text=title.text||null;title.id=title.text?title.id||"qrcode-title":null;var size=_this.getModuleCount()*cellSize+margin*2;var c,mc,r,mr,qrSvg="",rect;rect="l"+cellSize+",0 0,"+cellSize+" -"+cellSize+",0 0,-"+cellSize+"z ";qrSvg+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"';qrSvg+=!opts.scalable?' width="'+size+'px" height="'+size+'px"':"";qrSvg+=' viewBox="0 0 '+size+" "+size+'" ';qrSvg+=' preserveAspectRatio="xMinYMin meet"';qrSvg+=title.text||alt.text?' role="img" aria-labelledby="'+escapeXml([title.id,alt.id].join(" ").trim())+'"':"";qrSvg+=">";qrSvg+=title.text?'<title id="'+escapeXml(title.id)+'">'+escapeXml(title.text)+"</title>":"";qrSvg+=alt.text?'<description id="'+escapeXml(alt.id)+'">'+escapeXml(alt.text)+"</description>":"";qrSvg+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>';qrSvg+='<path d="';for(r=0;r<_this.getModuleCount();r+=1){mr=r*cellSize+margin;for(c=0;c<_this.getModuleCount();c+=1){if(_this.isDark(r,c)){mc=c*cellSize+margin;qrSvg+="M"+mc+","+mr+rect}}}qrSvg+='" stroke="transparent" fill="black"/>';qrSvg+="</svg>";return qrSvg};_this.createDataURL=function(cellSize,margin){cellSize=cellSize||2;margin=typeof margin=="undefined"?cellSize*4:margin;var size=_this.getModuleCount()*cellSize+margin*2;var min=margin;var max=size-margin;return createDataURL(size,size,function(x,y){if(min<=x&&x<max&&min<=y&&y<max){var c=Math.floor((x-min)/cellSize);var r=Math.floor((y-min)/cellSize);return _this.isDark(r,c)?0:1}else{return 1}})};_this.createImgTag=function(cellSize,margin,alt){cellSize=cellSize||2;margin=typeof margin=="undefined"?cellSize*4:margin;var size=_this.getModuleCount()*cellSize+margin*2;var img="";img+="<img";img+=' src="';img+=_this.createDataURL(cellSize,margin);img+='"';img+=' width="';img+=size;img+='"';img+=' height="';img+=size;img+='"';if(alt){img+=' alt="';img+=escapeXml(alt);img+='"'}img+="/>";return img};var escapeXml=function(s){var escaped="";for(var i=0;i<s.length;i+=1){var c=s.charAt(i);switch(c){case"<":escaped+="&lt;";break;case">":escaped+="&gt;";break;case"&":escaped+="&amp;";break;case'"':escaped+="&quot;";break;default:escaped+=c;break}}return escaped};var _createHalfASCII=function(margin){var cellSize=1;margin=typeof margin=="undefined"?cellSize*2:margin;var size=_this.getModuleCount()*cellSize+margin*2;var min=margin;var max=size-margin;var y,x,r1,r2,p;var blocks={"â–ˆâ–ˆ":"â–ˆ","â–ˆ ":"â–€"," â–ˆ":"â–„","  ":" "};var blocksLastLineNoMargin={"â–ˆâ–ˆ":"â–€","â–ˆ ":"â–€"," â–ˆ":" ","  ":" "};var ascii="";for(y=0;y<size;y+=2){r1=Math.floor((y-min)/cellSize);r2=Math.floor((y+1-min)/cellSize);for(x=0;x<size;x+=1){p="â–ˆ";if(min<=x&&x<max&&min<=y&&y<max&&_this.isDark(r1,Math.floor((x-min)/cellSize))){p=" "}if(min<=x&&x<max&&min<=y+1&&y+1<max&&_this.isDark(r2,Math.floor((x-min)/cellSize))){p+=" "}else{p+="â–ˆ"}ascii+=margin<1&&y+1>=max?blocksLastLineNoMargin[p]:blocks[p]}ascii+="\n"}if(size%2&&margin>0){return ascii.substring(0,ascii.length-size-1)+Array(size+1).join("â–€")}return ascii.substring(0,ascii.length-1)};_this.createASCII=function(cellSize,margin){cellSize=cellSize||1;if(cellSize<2){return _createHalfASCII(margin)}cellSize-=1;margin=typeof margin=="undefined"?cellSize*2:margin;var size=_this.getModuleCount()*cellSize+margin*2;var min=margin;var max=size-margin;var y,x,r,p;var white=Array(cellSize+1).join("â–ˆâ–ˆ");var black=Array(cellSize+1).join("  ");var ascii="";var line="";for(y=0;y<size;y+=1){r=Math.floor((y-min)/cellSize);line="";for(x=0;x<size;x+=1){p=1;if(min<=x&&x<max&&min<=y&&y<max&&_this.isDark(r,Math.floor((x-min)/cellSize))){p=0}line+=p?white:black}for(r=0;r<cellSize;r+=1){ascii+=line+"\n"}}return ascii.substring(0,ascii.length-1)};_this.renderTo2dContext=function(context,cellSize){cellSize=cellSize||2;var length=_this.getModuleCount();for(var row=0;row<length;row++){for(var col=0;col<length;col++){context.fillStyle=_this.isDark(row,col)?"black":"white";context.fillRect(row*cellSize,col*cellSize,cellSize,cellSize)}}};return _this};qrcode.stringToBytesFuncs={default:function(s){var bytes=[];for(var i=0;i<s.length;i+=1){var c=s.charCodeAt(i);bytes.push(c&255)}return bytes}};qrcode.stringToBytes=qrcode.stringToBytesFuncs["default"];qrcode.createStringToBytes=function(unicodeData,numChars){var unicodeMap=function(){var bin=base64DecodeInputStream(unicodeData);var read=function(){var b=bin.read();if(b==-1)throw"eof";return b};var count=0;var unicodeMap={};while(true){var b0=bin.read();if(b0==-1)break;var b1=read();var b2=read();var b3=read();var k=String.fromCharCode(b0<<8|b1);var v=b2<<8|b3;unicodeMap[k]=v;count+=1}if(count!=numChars){throw count+" != "+numChars}return unicodeMap}();var unknownChar="?".charCodeAt(0);return function(s){var bytes=[];for(var i=0;i<s.length;i+=1){var c=s.charCodeAt(i);if(c<128){bytes.push(c)}else{var b=unicodeMap[s.charAt(i)];if(typeof b=="number"){if((b&255)==b){bytes.push(b)}else{bytes.push(b>>>8);bytes.push(b&255)}}else{bytes.push(unknownChar)}}}return bytes}};var QRMode={MODE_NUMBER:1<<0,MODE_ALPHA_NUM:1<<1,MODE_8BIT_BYTE:1<<2,MODE_KANJI:1<<3};var QRErrorCorrectionLevel={L:1,M:0,Q:3,H:2};var QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var QRUtil=function(){var PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]];var G15=1<<10|1<<8|1<<5|1<<4|1<<2|1<<1|1<<0;var G18=1<<12|1<<11|1<<10|1<<9|1<<8|1<<5|1<<2|1<<0;var G15_MASK=1<<14|1<<12|1<<10|1<<4|1<<1;var _this={};var getBCHDigit=function(data){var digit=0;while(data!=0){digit+=1;data>>>=1}return digit};_this.getBCHTypeInfo=function(data){var d=data<<10;while(getBCHDigit(d)-getBCHDigit(G15)>=0){d^=G15<<getBCHDigit(d)-getBCHDigit(G15)}return(data<<10|d)^G15_MASK};_this.getBCHTypeNumber=function(data){var d=data<<12;while(getBCHDigit(d)-getBCHDigit(G18)>=0){d^=G18<<getBCHDigit(d)-getBCHDigit(G18)}return data<<12|d};_this.getPatternPosition=function(typeNumber){return PATTERN_POSITION_TABLE[typeNumber-1]};_this.getMaskFunction=function(maskPattern){switch(maskPattern){case QRMaskPattern.PATTERN000:return function(i,j){return(i+j)%2==0};case QRMaskPattern.PATTERN001:return function(i,j){return i%2==0};case QRMaskPattern.PATTERN010:return function(i,j){return j%3==0};case QRMaskPattern.PATTERN011:return function(i,j){return(i+j)%3==0};case QRMaskPattern.PATTERN100:return function(i,j){return(Math.floor(i/2)+Math.floor(j/3))%2==0};case QRMaskPattern.PATTERN101:return function(i,j){return i*j%2+i*j%3==0};case QRMaskPattern.PATTERN110:return function(i,j){return(i*j%2+i*j%3)%2==0};case QRMaskPattern.PATTERN111:return function(i,j){return(i*j%3+(i+j)%2)%2==0};default:throw"bad maskPattern:"+maskPattern}};_this.getErrorCorrectPolynomial=function(errorCorrectLength){var a=qrPolynomial([1],0);for(var i=0;i<errorCorrectLength;i+=1){a=a.multiply(qrPolynomial([1,QRMath.gexp(i)],0))}return a};_this.getLengthInBits=function(mode,type){if(1<=type&&type<10){switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw"mode:"+mode}}else if(type<27){switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw"mode:"+mode}}else if(type<41){switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw"mode:"+mode}}else{throw"type:"+type}};_this.getLostPoint=function(qrcode){var moduleCount=qrcode.getModuleCount();var lostPoint=0;for(var row=0;row<moduleCount;row+=1){for(var col=0;col<moduleCount;col+=1){var sameCount=0;var dark=qrcode.isDark(row,col);for(var r=-1;r<=1;r+=1){if(row+r<0||moduleCount<=row+r){continue}for(var c=-1;c<=1;c+=1){if(col+c<0||moduleCount<=col+c){continue}if(r==0&&c==0){continue}if(dark==qrcode.isDark(row+r,col+c)){sameCount+=1}}}if(sameCount>5){lostPoint+=3+sameCount-5}}}for(var row=0;row<moduleCount-1;row+=1){for(var col=0;col<moduleCount-1;col+=1){var count=0;if(qrcode.isDark(row,col))count+=1;if(qrcode.isDark(row+1,col))count+=1;if(qrcode.isDark(row,col+1))count+=1;if(qrcode.isDark(row+1,col+1))count+=1;if(count==0||count==4){lostPoint+=3}}}for(var row=0;row<moduleCount;row+=1){for(var col=0;col<moduleCount-6;col+=1){if(qrcode.isDark(row,col)&&!qrcode.isDark(row,col+1)&&qrcode.isDark(row,col+2)&&qrcode.isDark(row,col+3)&&qrcode.isDark(row,col+4)&&!qrcode.isDark(row,col+5)&&qrcode.isDark(row,col+6)){lostPoint+=40}}}for(var col=0;col<moduleCount;col+=1){for(var row=0;row<moduleCount-6;row+=1){if(qrcode.isDark(row,col)&&!qrcode.isDark(row+1,col)&&qrcode.isDark(row+2,col)&&qrcode.isDark(row+3,col)&&qrcode.isDark(row+4,col)&&!qrcode.isDark(row+5,col)&&qrcode.isDark(row+6,col)){lostPoint+=40}}}var darkCount=0;for(var col=0;col<moduleCount;col+=1){for(var row=0;row<moduleCount;row+=1){if(qrcode.isDark(row,col)){darkCount+=1}}}var ratio=Math.abs(100*darkCount/moduleCount/moduleCount-50)/5;lostPoint+=ratio*10;return lostPoint};return _this}();var QRMath=function(){var EXP_TABLE=new Array(256);var LOG_TABLE=new Array(256);for(var i=0;i<8;i+=1){EXP_TABLE[i]=1<<i}for(var i=8;i<256;i+=1){EXP_TABLE[i]=EXP_TABLE[i-4]^EXP_TABLE[i-5]^EXP_TABLE[i-6]^EXP_TABLE[i-8]}for(var i=0;i<255;i+=1){LOG_TABLE[EXP_TABLE[i]]=i}var _this={};_this.glog=function(n){if(n<1){throw"glog("+n+")"}return LOG_TABLE[n]};_this.gexp=function(n){while(n<0){n+=255}while(n>=256){n-=255}return EXP_TABLE[n]};return _this}();function qrPolynomial(num,shift){if(typeof num.length=="undefined"){throw num.length+"/"+shift}var _num=function(){var offset=0;while(offset<num.length&&num[offset]==0){offset+=1}var _num=new Array(num.length-offset+shift);for(var i=0;i<num.length-offset;i+=1){_num[i]=num[i+offset]}return _num}();var _this={};_this.getAt=function(index){return _num[index]};_this.getLength=function(){return _num.length};_this.multiply=function(e){var num=new Array(_this.getLength()+e.getLength()-1);for(var i=0;i<_this.getLength();i+=1){for(var j=0;j<e.getLength();j+=1){num[i+j]^=QRMath.gexp(QRMath.glog(_this.getAt(i))+QRMath.glog(e.getAt(j)))}}return qrPolynomial(num,0)};_this.mod=function(e){if(_this.getLength()-e.getLength()<0){return _this}var ratio=QRMath.glog(_this.getAt(0))-QRMath.glog(e.getAt(0));var num=new Array(_this.getLength());for(var i=0;i<_this.getLength();i+=1){num[i]=_this.getAt(i)}for(var i=0;i<e.getLength();i+=1){num[i]^=QRMath.gexp(QRMath.glog(e.getAt(i))+ratio)}return qrPolynomial(num,0).mod(e)};return _this}var QRRSBlock=function(){var RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];var qrRSBlock=function(totalCount,dataCount){var _this={};_this.totalCount=totalCount;_this.dataCount=dataCount;return _this};var _this={};var getRsBlockTable=function(typeNumber,errorCorrectionLevel){switch(errorCorrectionLevel){case QRErrorCorrectionLevel.L:return RS_BLOCK_TABLE[(typeNumber-1)*4+0];case QRErrorCorrectionLevel.M:return RS_BLOCK_TABLE[(typeNumber-1)*4+1];case QRErrorCorrectionLevel.Q:return RS_BLOCK_TABLE[(typeNumber-1)*4+2];case QRErrorCorrectionLevel.H:return RS_BLOCK_TABLE[(typeNumber-1)*4+3];default:return undefined}};_this.getRSBlocks=function(typeNumber,errorCorrectionLevel){var rsBlock=getRsBlockTable(typeNumber,errorCorrectionLevel);if(typeof rsBlock=="undefined"){throw"bad rs block @ typeNumber:"+typeNumber+"/errorCorrectionLevel:"+errorCorrectionLevel}var length=rsBlock.length/3;var list=[];for(var i=0;i<length;i+=1){var count=rsBlock[i*3+0];var totalCount=rsBlock[i*3+1];var dataCount=rsBlock[i*3+2];for(var j=0;j<count;j+=1){list.push(qrRSBlock(totalCount,dataCount))}}return list};return _this}();var qrBitBuffer=function(){var _buffer=[];var _length=0;var _this={};_this.getBuffer=function(){return _buffer};_this.getAt=function(index){var bufIndex=Math.floor(index/8);return(_buffer[bufIndex]>>>7-index%8&1)==1};_this.put=function(num,length){for(var i=0;i<length;i+=1){_this.putBit((num>>>length-i-1&1)==1)}};_this.getLengthInBits=function(){return _length};_this.putBit=function(bit){var bufIndex=Math.floor(_length/8);if(_buffer.length<=bufIndex){_buffer.push(0)}if(bit){_buffer[bufIndex]|=128>>>_length%8}_length+=1};return _this};var qrNumber=function(data){var _mode=QRMode.MODE_NUMBER;var _data=data;var _this={};_this.getMode=function(){return _mode};_this.getLength=function(buffer){return _data.length};_this.write=function(buffer){var data=_data;var i=0;while(i+2<data.length){buffer.put(strToNum(data.substring(i,i+3)),10);i+=3}if(i<data.length){if(data.length-i==1){buffer.put(strToNum(data.substring(i,i+1)),4)}else if(data.length-i==2){buffer.put(strToNum(data.substring(i,i+2)),7)}}};var strToNum=function(s){var num=0;for(var i=0;i<s.length;i+=1){num=num*10+chatToNum(s.charAt(i))}return num};var chatToNum=function(c){if("0"<=c&&c<="9"){return c.charCodeAt(0)-"0".charCodeAt(0)}throw"illegal char :"+c};return _this};var qrAlphaNum=function(data){var _mode=QRMode.MODE_ALPHA_NUM;var _data=data;var _this={};_this.getMode=function(){return _mode};_this.getLength=function(buffer){return _data.length};_this.write=function(buffer){var s=_data;var i=0;while(i+1<s.length){buffer.put(getCode(s.charAt(i))*45+getCode(s.charAt(i+1)),11);i+=2}if(i<s.length){buffer.put(getCode(s.charAt(i)),6)}};var getCode=function(c){if("0"<=c&&c<="9"){return c.charCodeAt(0)-"0".charCodeAt(0)}else if("A"<=c&&c<="Z"){return c.charCodeAt(0)-"A".charCodeAt(0)+10}else{switch(c){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+c}}};return _this};var qr8BitByte=function(data){var _mode=QRMode.MODE_8BIT_BYTE;var _data=data;var _bytes=qrcode.stringToBytes(data);var _this={};_this.getMode=function(){return _mode};_this.getLength=function(buffer){return _bytes.length};_this.write=function(buffer){for(var i=0;i<_bytes.length;i+=1){buffer.put(_bytes[i],8)}};return _this};var qrKanji=function(data){var _mode=QRMode.MODE_KANJI;var _data=data;var stringToBytes=qrcode.stringToBytesFuncs["SJIS"];if(!stringToBytes){throw"sjis not supported."}!function(c,code){var test=stringToBytes(c);if(test.length!=2||(test[0]<<8|test[1])!=code){throw"sjis not supported."}}("å�‹",38726);var _bytes=stringToBytes(data);var _this={};_this.getMode=function(){return _mode};_this.getLength=function(buffer){return~~(_bytes.length/2)};_this.write=function(buffer){var data=_bytes;var i=0;while(i+1<data.length){var c=(255&data[i])<<8|255&data[i+1];if(33088<=c&&c<=40956){c-=33088}else if(57408<=c&&c<=60351){c-=49472}else{throw"illegal char at "+(i+1)+"/"+c}c=(c>>>8&255)*192+(c&255);buffer.put(c,13);i+=2}if(i<data.length){throw"illegal char at "+(i+1)}};return _this};var byteArrayOutputStream=function(){var _bytes=[];var _this={};_this.writeByte=function(b){_bytes.push(b&255)};_this.writeShort=function(i){_this.writeByte(i);_this.writeByte(i>>>8)};_this.writeBytes=function(b,off,len){off=off||0;len=len||b.length;for(var i=0;i<len;i+=1){_this.writeByte(b[i+off])}};_this.writeString=function(s){for(var i=0;i<s.length;i+=1){_this.writeByte(s.charCodeAt(i))}};_this.toByteArray=function(){return _bytes};_this.toString=function(){var s="";s+="[";for(var i=0;i<_bytes.length;i+=1){if(i>0){s+=","}s+=_bytes[i]}s+="]";return s};return _this};var base64EncodeOutputStream=function(){var _buffer=0;var _buflen=0;var _length=0;var _base64="";var _this={};var writeEncoded=function(b){_base64+=String.fromCharCode(encode(b&63))};var encode=function(n){if(n<0){}else if(n<26){return 65+n}else if(n<52){return 97+(n-26)}else if(n<62){return 48+(n-52)}else if(n==62){return 43}else if(n==63){return 47}throw"n:"+n};_this.writeByte=function(n){_buffer=_buffer<<8|n&255;_buflen+=8;_length+=1;while(_buflen>=6){writeEncoded(_buffer>>>_buflen-6);_buflen-=6}};_this.flush=function(){if(_buflen>0){writeEncoded(_buffer<<6-_buflen);_buffer=0;_buflen=0}if(_length%3!=0){var padlen=3-_length%3;for(var i=0;i<padlen;i+=1){_base64+="="}}};_this.toString=function(){return _base64};return _this};var base64DecodeInputStream=function(str){var _str=str;var _pos=0;var _buffer=0;var _buflen=0;var _this={};_this.read=function(){while(_buflen<8){if(_pos>=_str.length){if(_buflen==0){return-1}throw"unexpected end of file./"+_buflen}var c=_str.charAt(_pos);_pos+=1;if(c=="="){_buflen=0;return-1}else if(c.match(/^\s$/)){continue}_buffer=_buffer<<6|decode(c.charCodeAt(0));_buflen+=6}var n=_buffer>>>_buflen-8&255;_buflen-=8;return n};var decode=function(c){if(65<=c&&c<=90){return c-65}else if(97<=c&&c<=122){return c-97+26}else if(48<=c&&c<=57){return c-48+52}else if(c==43){return 62}else if(c==47){return 63}else{throw"c:"+c}};return _this};var gifImage=function(width,height){var _width=width;var _height=height;var _data=new Array(width*height);var _this={};_this.setPixel=function(x,y,pixel){_data[y*_width+x]=pixel};_this.write=function(out){out.writeString("GIF87a");out.writeShort(_width);out.writeShort(_height);out.writeByte(128);out.writeByte(0);out.writeByte(0);out.writeByte(0);out.writeByte(0);out.writeByte(0);out.writeByte(255);out.writeByte(255);out.writeByte(255);out.writeString(",");out.writeShort(0);out.writeShort(0);out.writeShort(_width);out.writeShort(_height);out.writeByte(0);var lzwMinCodeSize=2;var raster=getLZWRaster(lzwMinCodeSize);out.writeByte(lzwMinCodeSize);var offset=0;while(raster.length-offset>255){out.writeByte(255);out.writeBytes(raster,offset,255);offset+=255}out.writeByte(raster.length-offset);out.writeBytes(raster,offset,raster.length-offset);out.writeByte(0);out.writeString(";")};var bitOutputStream=function(out){var _out=out;var _bitLength=0;var _bitBuffer=0;var _this={};_this.write=function(data,length){if(data>>>length!=0){throw"length over"}while(_bitLength+length>=8){_out.writeByte(255&(data<<_bitLength|_bitBuffer));length-=8-_bitLength;data>>>=8-_bitLength;_bitBuffer=0;_bitLength=0}_bitBuffer=data<<_bitLength|_bitBuffer;_bitLength=_bitLength+length};_this.flush=function(){if(_bitLength>0){_out.writeByte(_bitBuffer)}};return _this};var getLZWRaster=function(lzwMinCodeSize){var clearCode=1<<lzwMinCodeSize;var endCode=(1<<lzwMinCodeSize)+1;var bitLength=lzwMinCodeSize+1;var table=lzwTable();for(var i=0;i<clearCode;i+=1){table.add(String.fromCharCode(i))}table.add(String.fromCharCode(clearCode));table.add(String.fromCharCode(endCode));var byteOut=byteArrayOutputStream();var bitOut=bitOutputStream(byteOut);bitOut.write(clearCode,bitLength);var dataIndex=0;var s=String.fromCharCode(_data[dataIndex]);dataIndex+=1;while(dataIndex<_data.length){var c=String.fromCharCode(_data[dataIndex]);dataIndex+=1;if(table.contains(s+c)){s=s+c}else{bitOut.write(table.indexOf(s),bitLength);if(table.size()<4095){if(table.size()==1<<bitLength){bitLength+=1}table.add(s+c)}s=c}}bitOut.write(table.indexOf(s),bitLength);bitOut.write(endCode,bitLength);bitOut.flush();return byteOut.toByteArray()};var lzwTable=function(){var _map={};var _size=0;var _this={};_this.add=function(key){if(_this.contains(key)){throw"dup key:"+key}_map[key]=_size;_size+=1};_this.size=function(){return _size};_this.indexOf=function(key){return _map[key]};_this.contains=function(key){return typeof _map[key]!="undefined"};return _this};return _this};var createDataURL=function(width,height,getPixel){var gif=gifImage(width,height);for(var y=0;y<height;y+=1){for(var x=0;x<width;x+=1){gif.setPixel(x,y,getPixel(x,y))}}var b=byteArrayOutputStream();gif.write(b);var base64=base64EncodeOutputStream();var bytes=b.toByteArray();for(var i=0;i<bytes.length;i+=1){base64.writeByte(bytes[i])}base64.flush();return"data:image/gif;base64,"+base64};return qrcode}();!function(){qrcode.stringToBytesFuncs["UTF-8"]=function(s){function toUTF8Array(str){var utf8=[];for(var i=0;i<str.length;i++){var charcode=str.charCodeAt(i);if(charcode<128)utf8.push(charcode);else if(charcode<2048){utf8.push(192|charcode>>6,128|charcode&63)}else if(charcode<55296||charcode>=57344){utf8.push(224|charcode>>12,128|charcode>>6&63,128|charcode&63)}else{i++;charcode=65536+((charcode&1023)<<10|str.charCodeAt(i)&1023);utf8.push(240|charcode>>18,128|charcode>>12&63,128|charcode>>6&63,128|charcode&63)}}return utf8}return toUTF8Array(s)}}();(function(factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}})(function(){return qrcode})},{}],276:[function(require,module,exports){(function(process,global){"use strict";var MAX_BYTES=65536;var MAX_UINT32=4294967295;function oldBrowser(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}var Buffer=require("safe-buffer").Buffer;var crypto=global.crypto||global.msCrypto;if(crypto&&crypto.getRandomValues){module.exports=randomBytes}else{module.exports=oldBrowser}function randomBytes(size,cb){if(size>MAX_UINT32)throw new RangeError("requested too many random bytes");var bytes=Buffer.allocUnsafe(size);if(size>0){if(size>MAX_BYTES){for(var generated=0;generated<size;generated+=MAX_BYTES){crypto.getRandomValues(bytes.slice(generated,generated+MAX_BYTES))}}else{crypto.getRandomValues(bytes)}}if(typeof cb==="function"){return process.nextTick(function(){cb(null,bytes)})}return bytes}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:267,"safe-buffer":293}],277:[function(require,module,exports){(function(process,global){"use strict";function oldBrowser(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var safeBuffer=require("safe-buffer");var randombytes=require("randombytes");var Buffer=safeBuffer.Buffer;var kBufferMaxLength=safeBuffer.kMaxLength;var crypto=global.crypto||global.msCrypto;var kMaxUint32=Math.pow(2,32)-1;function assertOffset(offset,length){if(typeof offset!=="number"||offset!==offset){throw new TypeError("offset must be a number")}if(offset>kMaxUint32||offset<0){throw new TypeError("offset must be a uint32")}if(offset>kBufferMaxLength||offset>length){throw new RangeError("offset out of range")}}function assertSize(size,offset,length){if(typeof size!=="number"||size!==size){throw new TypeError("size must be a number")}if(size>kMaxUint32||size<0){throw new TypeError("size must be a uint32")}if(size+offset>length||size>kBufferMaxLength){throw new RangeError("buffer too small")}}if(crypto&&crypto.getRandomValues||!process.browser){exports.randomFill=randomFill;exports.randomFillSync=randomFillSync}else{exports.randomFill=oldBrowser;exports.randomFillSync=oldBrowser}function randomFill(buf,offset,size,cb){if(!Buffer.isBuffer(buf)&&!(buf instanceof global.Uint8Array)){throw new TypeError('"buf" argument must be a Buffer or Uint8Array')}if(typeof offset==="function"){cb=offset;offset=0;size=buf.length}else if(typeof size==="function"){cb=size;size=buf.length-offset}else if(typeof cb!=="function"){throw new TypeError('"cb" argument must be a function')}assertOffset(offset,buf.length);assertSize(size,offset,buf.length);return actualFill(buf,offset,size,cb)}function actualFill(buf,offset,size,cb){if(process.browser){var ourBuf=buf.buffer;var uint=new Uint8Array(ourBuf,offset,size);crypto.getRandomValues(uint);if(cb){process.nextTick(function(){cb(null,buf)});return}return buf}if(cb){randombytes(size,function(err,bytes){if(err){return cb(err)}bytes.copy(buf,offset);cb(null,buf)});return}var bytes=randombytes(size);bytes.copy(buf,offset);return buf}function randomFillSync(buf,offset,size){if(typeof offset==="undefined"){offset=0}if(!Buffer.isBuffer(buf)&&!(buf instanceof global.Uint8Array)){throw new TypeError('"buf" argument must be a Buffer or Uint8Array')}assertOffset(offset,buf.length);if(size===undefined)size=buf.length-offset;assertSize(size,offset,buf.length);return actualFill(buf,offset,size)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:267,randombytes:276,"safe-buffer":293}],278:[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":279}],279:[function(require,module,exports){"use strict";var pna=require("process-nextick-args");var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key)}return keys};module.exports=Duplex;var util=Object.create(require("core-util-is"));util.inherits=require("inherits");var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");util.inherits(Duplex,Readable);{var keys=objectKeys(Writable.prototype);for(var v=0;v<keys.length;v++){var method=keys[v];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]}}function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once("end",onend)}Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function onend(){if(this.allowHalfOpen||this._writableState.ended)return;pna.nextTick(onEndNT,this)}function onEndNT(self){self.end()}Object.defineProperty(Duplex.prototype,"destroyed",{get:function(){if(this._readableState===undefined||this._writableState===undefined){return false}return this._readableState.destroyed&&this._writableState.destroyed},set:function(value){if(this._readableState===undefined||this._writableState===undefined){return}this._readableState.destroyed=value;this._writableState.destroyed=value}});Duplex.prototype._destroy=function(err,cb){this.push(null);this.end();pna.nextTick(cb,err)}},{"./_stream_readable":281,"./_stream_writable":283,"core-util-is":193,inherits:245,"process-nextick-args":266}],280:[function(require,module,exports){"use strict";module.exports=PassThrough;var Transform=require("./_stream_transform");var util=Object.create(require("core-util-is"));util.inherits=require("inherits");util.inherits(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":282,"core-util-is":193,inherits:245}],281:[function(require,module,exports){(function(process,global){"use strict";var pna=require("process-nextick-args");module.exports=Readable;var isArray=require("isarray");var Duplex;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;var EElistenerCount=function(emitter,type){return emitter.listeners(type).length};var Stream=require("./internal/streams/stream");var Buffer=require("safe-buffer").Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk)}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array}var util=Object.create(require("core-util-is"));util.inherits=require("inherits");var debugUtil=require("util");var debug=void 0;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog("stream")}else{debug=function(){}}var BufferList=require("./internal/streams/BufferList");var destroyImpl=require("./internal/streams/destroy");var StringDecoder;util.inherits(Readable,Stream);var kProxyEvents=["error","close","destroy","pause","resume"];function prependListener(emitter,event,fn){if(typeof emitter.prependListener==="function")return emitter.prependListener(event,fn);if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]]}function ReadableState(options,stream){Duplex=Duplex||require("./_stream_duplex");options=options||{};var isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.readableObjectMode;var hwm=options.highWaterMark;var readableHwm=options.readableHighWaterMark;var defaultHwm=this.objectMode?16:16*1024;if(hwm||hwm===0)this.highWaterMark=hwm;else if(isDuplex&&(readableHwm||readableHwm===0))this.highWaterMark=readableHwm;else this.highWaterMark=defaultHwm;this.highWaterMark=Math.floor(this.highWaterMark);this.buffer=new BufferList;this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.destroyed=false;this.defaultEncoding=options.defaultEncoding||"utf8";this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}function Readable(options){Duplex=Duplex||require("./_stream_duplex");if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);this.readable=true;if(options){if(typeof options.read==="function")this._read=options.read;if(typeof options.destroy==="function")this._destroy=options.destroy}Stream.call(this)}Object.defineProperty(Readable.prototype,"destroyed",{get:function(){if(this._readableState===undefined){return false}return this._readableState.destroyed},set:function(value){if(!this._readableState){return}this._readableState.destroyed=value}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){this.push(null);cb(err)};Readable.prototype.push=function(chunk,encoding){var state=this._readableState;var skipChunkCheck;if(!state.objectMode){if(typeof chunk==="string"){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer.from(chunk,encoding);encoding=""}skipChunkCheck=true}}else{skipChunkCheck=true}return readableAddChunk(this,chunk,encoding,false,skipChunkCheck)};Readable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,true,false)};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){var state=stream._readableState;if(chunk===null){state.reading=false;onEofChunk(stream,state)}else{var er;if(!skipChunkCheck)er=chunkInvalid(state,chunk);if(er){stream.emit("error",er)}else if(state.objectMode||chunk&&chunk.length>0){if(typeof chunk!=="string"&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk)}if(addToFront){if(state.endEmitted)stream.emit("error",new Error("stream.unshift() after end event"));else addChunk(stream,state,chunk,true)}else if(state.ended){stream.emit("error",new Error("stream.push() after EOF"))}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state)}else{addChunk(stream,state,chunk,false)}}}else if(!addToFront){state.reading=false}}return needMoreData(state)}function addChunk(stream,state,chunk,addToFront){if(state.flowing&&state.length===0&&!state.sync){stream.emit("data",chunk);stream.read(0)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}maybeReadMore(stream,state)}function chunkInvalid(state,chunk){var er;if(!_isUint8Array(chunk)&&typeof chunk!=="string"&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0)}Readable.prototype.isPaused=function(){return this._readableState.flowing===false};Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc;return this};var MAX_HWM=8388608;function computeNewHighWaterMark(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug("length less than watermark",doRead)}if(state.ended||state.reading){doRead=false;debug("reading or ended",doRead)}else if(doRead){debug("do read");state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false;if(!state.reading)n=howMuchToRead(nOrig,state)}var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}else{state.length-=n}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function onEofChunk(stream,state){if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;if(state.sync)pna.nextTick(emitReadable_,stream);else emitReadable_(stream)}}function emitReadable_(stream){debug("emit readable");stream.emit("readable");flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;pna.nextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){debug("maybeReadMore read 0");stream.read(0);if(len===state.length)break;else len=state.length}state.readingMore=false}Readable.prototype._read=function(n){this.emit("error",new Error("_read() is not implemented"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:unpipe;if(state.endEmitted)pna.nextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable,unpipeInfo){debug("onunpipe");if(readable===src){if(unpipeInfo&&unpipeInfo.hasUnpiped===false){unpipeInfo.hasUnpiped=true;cleanup()}}}function onend(){debug("onend");dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=false;function cleanup(){debug("cleanup");dest.removeListener("close",onclose);dest.removeListener("finish",onfinish);dest.removeListener("drain",ondrain);dest.removeListener("error",onerror);dest.removeListener("unpipe",onunpipe);src.removeListener("end",onend);src.removeListener("end",unpipe);src.removeListener("data",ondata);cleanedUp=true;if(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain()}var increasedAwaitDrain=false;src.on("data",ondata);function ondata(chunk){debug("ondata");increasedAwaitDrain=false;var ret=dest.write(chunk);if(false===ret&&!increasedAwaitDrain){if((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",src._readableState.awaitDrain);src._readableState.awaitDrain++;increasedAwaitDrain=true}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)dest.emit("error",er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this,unpipeInfo);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i<len;i++){dests[i].emit("unpipe",this,unpipeInfo)}return this}var index=indexOf(state.pipes,dest);if(index===-1)return this;state.pipes.splice(index,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this,unpipeInfo);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==="data"){if(this._readableState.flowing!==false)this.resume()}else if(ev==="readable"){var state=this._readableState;if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.emittedReadable=false;if(!state.reading){pna.nextTick(nReadingNextTick,this)}else if(state.length){emitReadable(this)}}}return res};Readable.prototype.addListener=Readable.prototype.on;function nReadingNextTick(self){debug("readable nexttick read 0");self.read(0)}Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=true;resume(this,state)}return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;pna.nextTick(resume_,stream,state)}}function resume_(stream,state){if(!state.reading){debug("resume read 0");stream.read(0)}state.resumeScheduled=false;state.awaitDrain=0;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(false!==this._readableState.flowing){debug("pause");this._readableState.flowing=false;this.emit("pause")}return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);while(state.flowing&&stream.read()!==null){}}Readable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk)}_this.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===undefined&&typeof stream[i]==="function"){this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i)}}for(var n=0;n<kProxyEvents.length;n++){stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]))}this._read=function(n){debug("wrapped _read",n);if(paused){paused=false;stream.resume()}};return this};Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:false,get:function(){return this._readableState.highWaterMark}});Readable._fromList=fromList;function fromList(n,state){if(state.length===0)return null;var ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.head.data;else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=fromListPartial(n,state.buffer,state.decoder)}return ret}function fromListPartial(n,list,hasStrings){var ret;if(n<list.head.data.length){ret=list.head.data.slice(0,n);list.head.data=list.head.data.slice(n)}else if(n===list.head.data.length){ret=list.shift()}else{ret=hasStrings?copyFromBufferString(n,list):copyFromBuffer(n,list)}return ret}function copyFromBufferString(n,list){var p=list.head;var c=1;var ret=p.data;n-=ret.length;while(p=p.next){var str=p.data;var nb=n>str.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null}else{list.head=p;p.data=str.slice(nb)}break}++c}list.length-=c;return ret}function copyFromBuffer(n,list){var ret=Buffer.allocUnsafe(n);var p=list.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null}else{list.head=p;p.data=buf.slice(nb)}break}++c}list.length-=c;return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!state.endEmitted){state.ended=true;pna.nextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./_stream_duplex":279,"./internal/streams/BufferList":284,"./internal/streams/destroy":285,"./internal/streams/stream":286,_process:267,"core-util-is":193,events:186,inherits:245,isarray:247,"process-nextick-args":266,"safe-buffer":287,"string_decoder/":303,util:141}],282:[function(require,module,exports){"use strict";module.exports=Transform;var Duplex=require("./_stream_duplex");var util=Object.create(require("core-util-is"));util.inherits=require("inherits");util.inherits(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=false;var cb=ts.writecb;if(!cb){return this.emit("error",new Error("write callback called multiple times"))}ts.writechunk=null;ts.writecb=null;if(data!=null)this.push(data);cb(er);var rs=this._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){this._read(rs.highWaterMark)}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};this._readableState.needReadable=true;this._readableState.sync=false;if(options){if(typeof options.transform==="function")this._transform=options.transform;if(typeof options.flush==="function")this._flush=options.flush}this.on("prefinish",prefinish)}function prefinish(){var _this=this;if(typeof this._flush==="function"){this._flush(function(er,data){done(_this,er,data)})}else{done(this,null,null)}}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("_transform() is not implemented")};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&ts.writecb&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)}else{ts.needTransform=true}};Transform.prototype._destroy=function(err,cb){var _this2=this;Duplex.prototype._destroy.call(this,err,function(err2){cb(err2);_this2.emit("close")})};function done(stream,er,data){if(er)return stream.emit("error",er);if(data!=null)stream.push(data);if(stream._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(stream._transformState.transforming)throw new Error("Calling transform done when still transforming");return stream.push(null)}},{"./_stream_duplex":279,"core-util-is":193,inherits:245}],283:[function(require,module,exports){(function(process,global,setImmediate){"use strict";var pna=require("process-nextick-args");module.exports=Writable;function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null}function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(_this,state)}}var asyncWrite=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:pna.nextTick;var Duplex;Writable.WritableState=WritableState;var util=Object.create(require("core-util-is"));util.inherits=require("inherits");var internalUtil={deprecate:require("util-deprecate")};var Stream=require("./internal/streams/stream");var Buffer=require("safe-buffer").Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk)}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array}var destroyImpl=require("./internal/streams/destroy");util.inherits(Writable,Stream);function nop(){}function WritableState(options,stream){Duplex=Duplex||require("./_stream_duplex");options=options||{};var isDuplex=stream instanceof Duplex;this.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.writableObjectMode;var hwm=options.highWaterMark;var writableHwm=options.writableHighWaterMark;var defaultHwm=this.objectMode?16:16*1024;if(hwm||hwm===0)this.highWaterMark=hwm;else if(isDuplex&&(writableHwm||writableHwm===0))this.highWaterMark=writableHwm;else this.highWaterMark=defaultHwm;this.highWaterMark=Math.floor(this.highWaterMark);this.finalCalled=false;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;this.destroyed=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function getBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next}return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.","DEP0003")})}catch(_){}})();var realHasInstance;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function"){realHasInstance=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function(object){if(realHasInstance.call(this,object))return true;if(this!==Writable)return false;return object&&object._writableState instanceof WritableState}})}else{realHasInstance=function(object){return object instanceof this}}function Writable(options){Duplex=Duplex||require("./_stream_duplex");if(!realHasInstance.call(Writable,this)&&!(this instanceof Duplex)){return new Writable(options)}this._writableState=new WritableState(options,this);this.writable=true;if(options){if(typeof options.write==="function")this._write=options.write;if(typeof options.writev==="function")this._writev=options.writev;if(typeof options.destroy==="function")this._destroy=options.destroy;if(typeof options.final==="function")this._final=options.final}Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(stream,cb){var er=new Error("write after end");stream.emit("error",er);pna.nextTick(cb,er)}function validChunk(stream,state,chunk,cb){var valid=true;var er=false;if(chunk===null){er=new TypeError("May not write null values to stream")}else if(typeof chunk!=="string"&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}if(er){stream.emit("error",er);pna.nextTick(cb,er);valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;var isBuf=!state.objectMode&&_isUint8Array(chunk);if(isBuf&&!Buffer.isBuffer(chunk)){chunk=_uint8ArrayToBuffer(chunk)}if(typeof encoding==="function"){cb=encoding;encoding=null}if(isBuf)encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=nop;if(state.ended)writeAfterEnd(this,cb);else if(isBuf||validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb)}return ret};Writable.prototype.cork=function(){var state=this._writableState;state.corked++};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.finished&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){if(typeof encoding==="string")encoding=encoding.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+encoding);this._writableState.defaultEncoding=encoding;return this};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=Buffer.from(chunk,encoding)}return chunk}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding="buffer";chunk=newChunk}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk:chunk,encoding:encoding,isBuf:isBuf,callback:cb,next:null};if(last){last.next=state.lastBufferedRequest}else{state.bufferedRequest=state.lastBufferedRequest}state.bufferedRequestCount+=1}else{doWrite(stream,state,false,len,chunk,encoding,cb)}return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync){pna.nextTick(cb,er);pna.nextTick(finishMaybe,stream,state);stream._writableState.errorEmitted=true;stream.emit("error",er)}else{cb(er);stream._writableState.errorEmitted=true;stream.emit("error",er);finishMaybe(stream,state)}}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state);if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state)}if(sync){asyncWrite(afterWrite,stream,state,finished,cb)}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;var allBuffers=true;while(entry){buffer[count]=entry;if(!entry.isBuf)allBuffers=false;entry=entry.next;count+=1}buffer.allBuffers=allBuffers;doWrite(stream,state,true,state.length,buffer,"",holder.finish);state.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null}else{state.corkedRequestsFree=new CorkedRequest(state)}state.bufferedRequestCount=0}else{while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;state.bufferedRequestCount--;if(state.writing){break}}if(entry===null)state.lastBufferedRequest=null}state.bufferedRequest=entry;state.bufferProcessing=false}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("_write() is not implemented"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);if(state.corked){state.corked=1;this.uncork()}if(!state.ending&&!state.finished)endWritable(this,state,cb)};function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}function callFinal(stream,state){stream._final(function(err){state.pendingcb--;if(err){stream.emit("error",err)}state.prefinished=true;stream.emit("prefinish");finishMaybe(stream,state)})}function prefinish(stream,state){if(!state.prefinished&&!state.finalCalled){if(typeof stream._final==="function"){state.pendingcb++;state.finalCalled=true;pna.nextTick(callFinal,stream,state)}else{state.prefinished=true;stream.emit("prefinish")}}}function finishMaybe(stream,state){var need=needFinish(state);if(need){prefinish(stream,state);if(state.pendingcb===0){state.finished=true;stream.emit("finish")}}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)pna.nextTick(cb);else stream.once("finish",cb)}state.ended=true;stream.writable=false}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;corkReq.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next}if(state.corkedRequestsFree){state.corkedRequestsFree.next=corkReq}else{state.corkedRequestsFree=corkReq}}Object.defineProperty(Writable.prototype,"destroyed",{get:function(){if(this._writableState===undefined){return false}return this._writableState.destroyed},set:function(value){if(!this._writableState){return}this._writableState.destroyed=value}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){this.end();cb(err)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("timers").setImmediate)},{"./_stream_duplex":279,"./internal/streams/destroy":285,"./internal/streams/stream":286,_process:267,"core-util-is":193,inherits:245,"process-nextick-args":266,"safe-buffer":287,timers:187,"util-deprecate":305}],284:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var Buffer=require("safe-buffer").Buffer;var util=require("util");function copyBuffer(src,target,offset){src.copy(target,offset)}module.exports=function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0}BufferList.prototype.push=function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length};BufferList.prototype.unshift=function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length};BufferList.prototype.shift=function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret};BufferList.prototype.clear=function clear(){this.head=this.tail=null;this.length=0};BufferList.prototype.join=function join(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next){ret+=s+p.data}return ret};BufferList.prototype.concat=function concat(n){if(this.length===0)return Buffer.alloc(0);if(this.length===1)return this.head.data;var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next}return ret};return BufferList}();if(util&&util.inspect&&util.inspect.custom){module.exports.prototype[util.inspect.custom]=function(){var obj=util.inspect({length:this.length});return this.constructor.name+" "+obj}}},{"safe-buffer":287,util:141}],285:[function(require,module,exports){"use strict";var pna=require("process-nextick-args");function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err)}else if(err&&(!this._writableState||!this._writableState.errorEmitted)){pna.nextTick(emitErrorNT,this,err)}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(err||null,function(err){if(!cb&&err){pna.nextTick(emitErrorNT,_this,err);if(_this._writableState){_this._writableState.errorEmitted=true}}else if(cb){cb(err)}});return this}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(self,err){self.emit("error",err)}module.exports={destroy:destroy,undestroy:undestroy}},{"process-nextick-args":266}],286:[function(require,module,exports){arguments[4][183][0].apply(exports,arguments)},{dup:183,events:186}],287:[function(require,module,exports){var buffer=require("buffer");var Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer}else{copyProps(buffer,exports);exports.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}},{buffer:185}],288:[function(require,module,exports){module.exports=require("./readable").PassThrough},{"./readable":289}],289:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":279,"./lib/_stream_passthrough.js":280,"./lib/_stream_readable.js":281,"./lib/_stream_transform.js":282,"./lib/_stream_writable.js":283}],290:[function(require,module,exports){module.exports=require("./readable").Transform},{"./readable":289}],291:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":283}],292:[function(require,module,exports){"use strict";var Buffer=require("buffer").Buffer;var inherits=require("inherits");var HashBase=require("hash-base");var ARRAY16=new Array(16);var zl=[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];var zr=[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];var sl=[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];var sr=[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];var hl=[0,1518500249,1859775393,2400959708,2840853838];var hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160(){HashBase.call(this,64);this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520}inherits(RIPEMD160,HashBase);RIPEMD160.prototype._update=function(){var words=ARRAY16;for(var j=0;j<16;++j)words[j]=this._block.readInt32LE(j*4);var al=this._a|0;var bl=this._b|0;var cl=this._c|0;var dl=this._d|0;var el=this._e|0;var ar=this._a|0;var br=this._b|0;var cr=this._c|0;var dr=this._d|0;var er=this._e|0;for(var i=0;i<80;i+=1){var tl;var tr;if(i<16){tl=fn1(al,bl,cl,dl,el,words[zl[i]],hl[0],sl[i]);tr=fn5(ar,br,cr,dr,er,words[zr[i]],hr[0],sr[i])}else if(i<32){tl=fn2(al,bl,cl,dl,el,words[zl[i]],hl[1],sl[i]);tr=fn4(ar,br,cr,dr,er,words[zr[i]],hr[1],sr[i])}else if(i<48){tl=fn3(al,bl,cl,dl,el,words[zl[i]],hl[2],sl[i]);tr=fn3(ar,br,cr,dr,er,words[zr[i]],hr[2],sr[i])}else if(i<64){tl=fn4(al,bl,cl,dl,el,words[zl[i]],hl[3],sl[i]);tr=fn2(ar,br,cr,dr,er,words[zr[i]],hr[3],sr[i])}else{tl=fn5(al,bl,cl,dl,el,words[zl[i]],hl[4],sl[i]);tr=fn1(ar,br,cr,dr,er,words[zr[i]],hr[4],sr[i])}al=el;el=dl;dl=rotl(cl,10);cl=bl;bl=tl;ar=er;er=dr;dr=rotl(cr,10);cr=br;br=tr}var t=this._b+cl+dr|0;this._b=this._c+dl+er|0;this._c=this._d+el+ar|0;this._d=this._e+al+br|0;this._e=this._a+bl+cr|0;this._a=t};RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128;if(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 buffer=Buffer.alloc?Buffer.alloc(20):new Buffer(20);buffer.writeInt32LE(this._a,0);buffer.writeInt32LE(this._b,4);buffer.writeInt32LE(this._c,8);buffer.writeInt32LE(this._d,12);buffer.writeInt32LE(this._e,16);return buffer};function rotl(x,n){return x<<n|x>>>32-n}function fn1(a,b,c,d,e,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+e|0}function fn2(a,b,c,d,e,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+e|0}function fn3(a,b,c,d,e,m,k,s){return rotl(a+((b|~c)^d)+m+k|0,s)+e|0}function fn4(a,b,c,d,e,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+e|0}function fn5(a,b,c,d,e,m,k,s){return rotl(a+(b^(c|~d))+m+k|0,s)+e|0}module.exports=RIPEMD160},{buffer:185,"hash-base":230,inherits:245}],293:[function(require,module,exports){var buffer=require("buffer");var Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src){dst[key]=src[key]}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer}else{copyProps(buffer,exports);exports.Buffer=SafeBuffer}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer.prototype);copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==="number"){throw new TypeError("Argument must not be a number")}return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==="string"){buf.fill(fill,encoding)}else{buf.fill(fill)}}else{buf.fill(0)}return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=="number"){throw new TypeError("Argument must be a number")}return buffer.SlowBuffer(size)}},{buffer:185}],294:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function Hash(blockSize,finalSize){this._block=Buffer.alloc(blockSize);this._finalSize=finalSize;this._blockSize=blockSize;this._len=0}Hash.prototype.update=function(data,enc){if(typeof data==="string"){enc=enc||"utf8";data=Buffer.from(data,enc)}var block=this._block;var blockSize=this._blockSize;var length=data.length;var accum=this._len;for(var offset=0;offset<length;){var assigned=accum%blockSize;var remainder=Math.min(length-offset,blockSize-assigned);for(var i=0;i<remainder;i++){block[assigned+i]=data[offset+i]}accum+=remainder;offset+=remainder;if(accum%blockSize===0){this._update(block)}}this._len+=length;return this};Hash.prototype.digest=function(enc){var rem=this._len%this._blockSize;this._block[rem]=128;this._block.fill(0,rem+1);if(rem>=this._finalSize){this._update(this._block);this._block.fill(0)}var bits=this._len*8;if(bits<=4294967295){this._block.writeUInt32BE(bits,this._blockSize-4)}else{var lowBits=(bits&4294967295)>>>0;var highBits=(bits-lowBits)/4294967296;this._block.writeUInt32BE(highBits,this._blockSize-8);this._block.writeUInt32BE(lowBits,this._blockSize-4)}this._update(this._block);var hash=this._hash();return enc?hash.toString(enc):hash};Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")};module.exports=Hash},{"safe-buffer":293}],295:[function(require,module,exports){var exports=module.exports=function SHA(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha");exports.sha1=require("./sha1");exports.sha224=require("./sha224");exports.sha256=require("./sha256");exports.sha384=require("./sha384");exports.sha512=require("./sha512")},{"./sha":296,"./sha1":297,"./sha224":298,"./sha256":299,"./sha384":300,"./sha512":301}],296:[function(require,module,exports){var inherits=require("inherits");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var K=[1518500249,1859775393,2400959708|0,3395469782|0];var W=new Array(80);function Sha(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha,Hash);Sha.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){if(s===0)return b&c|~b&d;if(s===2)return b&c|b&d|c&d;return b^c^d}Sha.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20);var t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d;d=c;c=rotl30(b);b=a;a=t}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0};Sha.prototype._hash=function(){var H=Buffer.allocUnsafe(20);H.writeInt32BE(this._a|0,0);H.writeInt32BE(this._b|0,4);H.writeInt32BE(this._c|0,8);H.writeInt32BE(this._d|0,12);H.writeInt32BE(this._e|0,16);return H};module.exports=Sha},{"./hash":294,inherits:245,"safe-buffer":293}],297:[function(require,module,exports){var inherits=require("inherits");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var K=[1518500249,1859775393,2400959708|0,3395469782|0];var W=new Array(80);function Sha1(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha1,Hash);Sha1.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl1(num){return num<<1|num>>>31}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){if(s===0)return b&c|~b&d;if(s===2)return b&c|b&d|c&d;return b^c^d}Sha1.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<80;++i)W[i]=rotl1(W[i-3]^W[i-8]^W[i-14]^W[i-16]);for(var j=0;j<80;++j){var s=~~(j/20);var t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d;d=c;c=rotl30(b);b=a;a=t}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0};Sha1.prototype._hash=function(){var H=Buffer.allocUnsafe(20);H.writeInt32BE(this._a|0,0);H.writeInt32BE(this._b|0,4);H.writeInt32BE(this._c|0,8);H.writeInt32BE(this._d|0,12);H.writeInt32BE(this._e|0,16);return H};module.exports=Sha1},{"./hash":294,inherits:245,"safe-buffer":293}],298:[function(require,module,exports){var inherits=require("inherits");var Sha256=require("./sha256");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var W=new Array(64);function Sha224(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha224,Sha256);Sha224.prototype.init=function(){this._a=3238371032;this._b=914150663;this._c=812702999;this._d=4144912697;this._e=4290775857;this._f=1750603025;this._g=1694076839;this._h=3204075428;return this};Sha224.prototype._hash=function(){var H=Buffer.allocUnsafe(28);H.writeInt32BE(this._a,0);H.writeInt32BE(this._b,4);H.writeInt32BE(this._c,8);H.writeInt32BE(this._d,12);H.writeInt32BE(this._e,16);H.writeInt32BE(this._f,20);H.writeInt32BE(this._g,24);return H};module.exports=Sha224},{"./hash":294,"./sha256":299,inherits:245,"safe-buffer":293}],299:[function(require,module,exports){var inherits=require("inherits");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var K=[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];var W=new Array(64);function Sha256(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha256,Hash);Sha256.prototype.init=function(){this._a=1779033703;this._b=3144134277;this._c=1013904242;this._d=2773480762;this._e=1359893119;this._f=2600822924;this._g=528734635;this._h=1541459225;return this};function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}Sha256.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;var f=this._f|0;var g=this._g|0;var h=this._h|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<64;++i)W[i]=gamma1(W[i-2])+W[i-7]+gamma0(W[i-15])+W[i-16]|0;for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0;var T2=sigma0(a)+maj(a,b,c)|0;h=g;g=f;f=e;e=d+T1|0;d=c;c=b;b=a;a=T1+T2|0}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0;this._f=f+this._f|0;this._g=g+this._g|0;this._h=h+this._h|0};Sha256.prototype._hash=function(){var H=Buffer.allocUnsafe(32);H.writeInt32BE(this._a,0);H.writeInt32BE(this._b,4);H.writeInt32BE(this._c,8);H.writeInt32BE(this._d,12);H.writeInt32BE(this._e,16);H.writeInt32BE(this._f,20);H.writeInt32BE(this._g,24);H.writeInt32BE(this._h,28);return H};module.exports=Sha256},{"./hash":294,inherits:245,"safe-buffer":293}],300:[function(require,module,exports){var inherits=require("inherits");var SHA512=require("./sha512");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var W=new Array(160);function Sha384(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha384,SHA512);Sha384.prototype.init=function(){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;return this};Sha384.prototype._hash=function(){var H=Buffer.allocUnsafe(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);return H};module.exports=Sha384},{"./hash":294,"./sha512":301,inherits:245,"safe-buffer":293}],301:[function(require,module,exports){var inherits=require("inherits");var Hash=require("./hash");var Buffer=require("safe-buffer").Buffer;var K=[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];var W=new Array(160);function Sha512(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha512,Hash);Sha512.prototype.init=function(){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;return this};function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0<b>>>0?1:0}Sha512.prototype._update=function(M){var W=this._w;var ah=this._ah|0;var bh=this._bh|0;var ch=this._ch|0;var dh=this._dh|0;var eh=this._eh|0;var fh=this._fh|0;var gh=this._gh|0;var hh=this._hh|0;var al=this._al|0;var bl=this._bl|0;var cl=this._cl|0;var dl=this._dl|0;var el=this._el|0;var fl=this._fl|0;var gl=this._gl|0;var hl=this._hl|0;for(var i=0;i<32;i+=2){W[i]=M.readInt32BE(i*4);W[i+1]=M.readInt32BE(i*4+4)}for(;i<160;i+=2){var xh=W[i-15*2];var xl=W[i-15*2+1];var gamma0=Gamma0(xh,xl);var gamma0l=Gamma0l(xl,xh);xh=W[i-2*2];xl=W[i-2*2+1];var gamma1=Gamma1(xh,xl);var gamma1l=Gamma1l(xl,xh);var Wi7h=W[i-7*2];var Wi7l=W[i-7*2+1];var Wi16h=W[i-16*2];var Wi16l=W[i-16*2+1];var Wil=gamma0l+Wi7l|0;var Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wil=Wil+gamma1l|0;Wih=Wih+gamma1+getCarry(Wil,gamma1l)|0;Wil=Wil+Wi16l|0;Wih=Wih+Wi16h+getCarry(Wil,Wi16l)|0;W[i]=Wih;W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j];Wil=W[j+1];var majh=maj(ah,bh,ch);var majl=maj(al,bl,cl);var sigma0h=sigma0(ah,al);var sigma0l=sigma0(al,ah);var sigma1h=sigma1(eh,el);var sigma1l=sigma1(el,eh);var Kih=K[j];var Kil=K[j+1];var chh=Ch(eh,fh,gh);var chl=Ch(el,fl,gl);var t1l=hl+sigma1l|0;var t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1l=t1l+chl|0;t1h=t1h+chh+getCarry(t1l,chl)|0;t1l=t1l+Kil|0;t1h=t1h+Kih+getCarry(t1l,Kil)|0;t1l=t1l+Wil|0;t1h=t1h+Wih+getCarry(t1l,Wil)|0;var t2l=sigma0l+majl|0;var t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;el=dl+t1l|0;eh=dh+t1h+getCarry(el,dl)|0;dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;al=t1l+t2l|0;ah=t1h+t2h+getCarry(al,t1l)|0}this._al=this._al+al|0;this._bl=this._bl+bl|0;this._cl=this._cl+cl|0;this._dl=this._dl+dl|0;this._el=this._el+el|0;this._fl=this._fl+fl|0;this._gl=this._gl+gl|0;this._hl=this._hl+hl|0;this._ah=this._ah+ah+getCarry(this._al,al)|0;this._bh=this._bh+bh+getCarry(this._bl,bl)|0;this._ch=this._ch+ch+getCarry(this._cl,cl)|0;this._dh=this._dh+dh+getCarry(this._dl,dl)|0;this._eh=this._eh+eh+getCarry(this._el,el)|0;this._fh=this._fh+fh+getCarry(this._fl,fl)|0;this._gh=this._gh+gh+getCarry(this._gl,gl)|0;this._hh=this._hh+hh+getCarry(this._hl,hl)|0};Sha512.prototype._hash=function(){var H=Buffer.allocUnsafe(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);writeInt64BE(this._gh,this._gl,48);writeInt64BE(this._hh,this._hl,56);return H};module.exports=Sha512},{"./hash":294,inherits:245,"safe-buffer":293}],302:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;var inherits=require("inherits");inherits(Stream,EE);Stream.Readable=require("readable-stream/readable.js");Stream.Writable=require("readable-stream/writable.js");Stream.Duplex=require("readable-stream/duplex.js");Stream.Transform=require("readable-stream/transform.js");Stream.PassThrough=require("readable-stream/passthrough.js");Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause()}}}source.on("data",ondata);function ondrain(){if(source.readable&&source.resume){source.resume()}}dest.on("drain",ondrain);if(!dest._isStdio&&(!options||options.end!==false)){source.on("end",onend);source.on("close",onclose)}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end()}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==="function")dest.destroy()}function onerror(er){cleanup();if(EE.listenerCount(this,"error")===0){throw er}}source.on("error",onerror);dest.on("error",onerror);function cleanup(){source.removeListener("data",ondata);dest.removeListener("drain",ondrain);source.removeListener("end",onend);source.removeListener("close",onclose);source.removeListener("error",onerror);dest.removeListener("error",onerror);source.removeListener("end",cleanup);source.removeListener("close",cleanup);dest.removeListener("close",cleanup)}source.on("end",cleanup);source.on("close",cleanup);dest.on("close",cleanup);dest.emit("pipe",source);return dest}},{events:186,inherits:245,"readable-stream/duplex.js":278,"readable-stream/passthrough.js":288,"readable-stream/readable.js":289,"readable-stream/transform.js":290,"readable-stream/writable.js":291}],303:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer;var isEncoding=Buffer.isEncoding||function(encoding){encoding=""+encoding;switch(encoding&&encoding.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 true;default:return false}};function _normalizeEncoding(enc){if(!enc)return"utf8";var retried;while(true){switch(enc){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 enc;default:if(retried)return;enc=(""+enc).toLowerCase();retried=true}}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=="string"&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;nb=4;break;case"utf8":this.fillLast=utf8FillLast;nb=4;break;case"base64":this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return"";var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===undefined)return"";i=this.lastNeed;this.lastNeed=0}else{i=0}if(i<buf.length)return r?r+this.text(buf,i):this.text(buf,i);return r||""};StringDecoder.prototype.end=utf8End;StringDecoder.prototype.text=utf8Text;StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length){buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length);this.lastNeed-=buf.length};function utf8CheckByte(byte){if(byte<=127)return 0;else if(byte>>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j<i)return 0;var nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3}return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128){self.lastNeed=0;return"ï¿½"}if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128){self.lastNeed=1;return"ï¿½"}if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128){self.lastNeed=2;return"ï¿½"}}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+"ï¿½";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString("base64",i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1]}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1]}return buf.toString("base64",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed)return r+this.lastChar.toString("base64",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":304}],304:[function(require,module,exports){arguments[4][287][0].apply(exports,arguments)},{buffer:185,dup:287}],305:[function(require,module,exports){(function(global){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation")){return fn}var warned=false;function deprecated(){if(!warned){if(config("throwDeprecation")){throw new Error(msg)}else if(config("traceDeprecation")){console.trace(msg)}else{console.warn(msg)}warned=true}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return false}catch(_){return false}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==="true"}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],306:[function(require,module,exports){var indexOf=function(xs,item){if(xs.indexOf)return xs.indexOf(item);else for(var i=0;i<xs.length;i++){if(xs[i]===item)return i}return-1};var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);else{var res=[];for(var key in obj)res.push(key);return res}};var forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);else for(var i=0;i<xs.length;i++){fn(xs[i],i,xs)}};var defineProp=function(){try{Object.defineProperty({},"_",{});return function(obj,name,value){Object.defineProperty(obj,name,{writable:true,enumerable:false,configurable:true,value:value})}}catch(e){return function(obj,name,value){obj[name]=value}}}();var globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function NodeScript(code){if(!(this instanceof Script))return new Script(code);this.code=code};Script.prototype.runInContext=function(context){if(!(context instanceof Context)){throw new TypeError("needs a 'context' argument.")}var iframe=document.createElement("iframe");if(!iframe.style)iframe.style={};iframe.style.display="none";document.body.appendChild(iframe);var win=iframe.contentWindow;var wEval=win.eval,wExecScript=win.execScript;if(!wEval&&wExecScript){wExecScript.call(win,"null");wEval=win.eval}forEach(Object_keys(context),function(key){win[key]=context[key]});forEach(globals,function(key){if(context[key]){win[key]=context[key]}});var winKeys=Object_keys(win);var res=wEval.call(win,this.code);forEach(Object_keys(win),function(key){if(key in context||indexOf(winKeys,key)===-1){context[key]=win[key]}});forEach(globals,function(key){if(!(key in context)){defineProp(context,key,win[key])}});document.body.removeChild(iframe);return res};Script.prototype.runInThisContext=function(){return eval(this.code)};Script.prototype.runInNewContext=function(context){var ctx=Script.createContext(context);var res=this.runInContext(ctx);if(context){forEach(Object_keys(ctx),function(key){context[key]=ctx[key]})}return res};forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}});exports.isContext=function(context){return context instanceof Context};exports.createScript=function(code){return exports.Script(code)};exports.createContext=Script.createContext=function(context){var copy=new Context;if(typeof context==="object"){forEach(Object_keys(context),function(key){copy[key]=context[key]})}return copy}},{}]},{},[24])(24)});
