diff --git a/bitcore-wallet-client.js b/bitcore-wallet-client.js index b4ca73ff..17b65a4a 100644 --- a/bitcore-wallet-client.js +++ b/bitcore-wallet-client.js @@ -57,6 +57,7 @@ function API(opts) { this.doNotVerifyPayPro = opts.doNotVerifyPayPro; this.transports = opts.transports || ['polling', 'websocket']; + this.timeout = opts.timeout || 50000; if (this.verbose) { @@ -290,8 +291,8 @@ API.prototype.seedFromMnemonic = function(words, passphrase, network) { * @param {Number} index - index of the external key * @param {String} entropySourceHex - an HEX string containing random data, that can be reproducible by the device. NOTE: It should not be possible to derive entropySourceHex from xPubkey. */ -API.prototype.seedFromExternalWalletPublicKey = function(xPubKey, source, index, entropySourceHex) { - this.credentials = Credentials.fromExternalWalletPublicKey(xPubKey, source, index, entropySourceHex); +API.prototype.seedFromExtendedPublicKey = function(xPubKey, source, index, entropySourceHex) { + this.credentials = Credentials.fromExtendedPublicKey(xPubKey, source, index, entropySourceHex); } @@ -360,8 +361,8 @@ API.prototype._import = function(cb) { // it worked? if (!err) return cb(null, ret); - // Is the error other than "copayer was not found"? - if (err.code != 'NOT_AUTHORIZED') + // Is the error other than "copayer was not found"? || or no priv key. + if (err.code != 'NOT_AUTHORIZED' || self.isPrivKeyExternal()) return cb(err); //Second option, lets try to add an access @@ -402,6 +403,20 @@ API.prototype.importFromExtendedPrivateKey = function(xPrivKey, cb) { this._import(cb); }; + +API.prototype.importFromExtendedPublicKey = function(xPubKey, source, index, entropySourceHex, cb) { + log.debug('Importing from Extended Private Key'); + try { + this.credentials = Credentials.fromExtendedPublicKey(xPubKey, source, index, entropySourceHex); + } catch (e) { + log.info('xPriv error:', e); + return cb(Errors.INVALID_BACKUP); + }; + + this._import(cb); +}; + + /** * Open a wallet and try to complete the public key ring. * @@ -484,7 +499,7 @@ API.prototype._doRequest = function(method, url, args, cb) { body: args, json: true, withCredentials: false, - timeout: 10000 + timeout: this.timeout, }; log.debug('Request Args', util.inspect(args, { @@ -1732,16 +1747,20 @@ Credentials.fromMnemonic = function(words, passphrase, network) { * For external sources, this derivation should be done before * call fromExternalWalletPublicKey * - * entropySource should be a HEX string containing random data, that can - * be reproducible from + * entropySource should be a HEX string containing pseudorandom data, that can + * be deterministic derived from the xPrivKey, and should not be derived from xPubKey * */ -Credentials.fromExternalWalletPublicKey = function(xPubKey, source, index, entropySourceHex) { +Credentials.fromExtendedPublicKey = function(xPubKey, source, index, entropySourceHex) { $.checkArgument(entropySourceHex); + var entropyBuffer = new Buffer(entropySourceHex, 'hex'); + //require at least 112 bits of entropy + $.checkArgument(entropyBuffer.length >= 14, 'No enough entropy') + var x = new Credentials(); x.xPubKey = xPubKey; - x.entropySource = Bitcore.crypto.Hash.ripemd160(Bitcore.crypto.Hash.sha256(new Buffer(entropySourceHex, 'hex'))).toString('hex'); + x.entropySource = Bitcore.crypto.Hash.sha256sha256(entropyBuffer).toString('hex'); x.externalSource = source; x.externalIndex = index; @@ -1749,6 +1768,14 @@ Credentials.fromExternalWalletPublicKey = function(xPubKey, source, index, entro return x; }; +Credentials.prototype._hashFromEntropy = function(prefix, length) { + $.checkState(prefix); + var b = new Buffer(this.entropySource, 'hex'); + var b2 = Bitcore.crypto.Hash.sha256hmac(b, new Buffer(prefix)); + return b2.slice(0, length); +}; + + Credentials.prototype._expand = function() { $.checkState(this.xPrivKey || (this.xPubKey && this.entropySource)); @@ -1765,16 +1792,15 @@ Credentials.prototype._expand = function() { var pubKey = requestDerivation.publicKey; this.requestPubKey = pubKey.toString(); - this.entropySource = Bitcore.crypto.Hash.ripemd160(Bitcore.crypto.Hash.sha256(requestDerivation.privateKey.toBuffer())).toString('hex'); + this.entropySource = Bitcore.crypto.Hash.sha256(requestDerivation.privateKey.toBuffer()).toString('hex'); } else { - // Random priv key - var privKey = new Bitcore.PrivateKey(network); + var seed = this._hashFromEntropy('reqPrivKey', 32); + var privKey = new Bitcore.PrivateKey(seed.toString('hex'), network); this.requestPrivKey = privKey.toString(); this.requestPubKey = privKey.toPublicKey().toString(); } - this.personalEncryptingKey = Bitcore.crypto.Hash.sha256(new Buffer(this.entropySource, 'hex')).slice(0, 16).toString('base64'); - + this.personalEncryptingKey = this._hashFromEntropy('personalKey', 16).toString('base64'); var network = WalletUtils.getNetworkFromXPubKey(this.xPubKey); if (this.network) { @@ -114650,7 +114676,7 @@ module.exports={ "name": "bitcore-wallet-client", "description": "Client for bitcore-wallet-service", "author": "BitPay Inc", - "version": "0.2.0", + "version": "0.2.2", "keywords": [ "bitcoin", "copay", diff --git a/bitcore-wallet-client.min.js b/bitcore-wallet-client.min.js index eec9ad5d..de00b71e 100644 --- a/bitcore-wallet-client.min.js +++ b/bitcore-wallet-client.min.js @@ -1,5 +1,5 @@ -!function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g"}},e.prototype._processTxps=function(a){var b=this;if(a){var c=b.credentials.sharedEncryptingKey;g.each([].concat(a),function(a){a.encryptedMessage=a.message,a.message=e._decryptMessage(a.message,c)||null,g.each(a.actions,function(a){a.comment=e._decryptMessage(a.comment,c)}),g.each(a.outputs,function(a){a.encryptedMessage=a.message,a.message=e._decryptMessage(a.message,c)||null}),a.hasUnconfirmedInputs=g.any(a.inputs,function(a){return 0==a.confirmations})})}},e._parseError=function(a){if(g.isString(a))try{a=JSON.parse(a)}catch(b){a={error:a}}var c;return c=a&&a.code?new w(a.code,a.message):{code:"ERROR",error:a?a.error:"There was an unknown error processing the request"},s.error(c),c},e._signRequest=function(a,b,c,d){var e=[a.toLowerCase(),b,JSON.stringify(c)].join("|");return l.signMessage(e,d)},e.prototype.seedFromRandom=function(a){this.credentials=t.create(a)},e.prototype.seedFromRandomWithMnemonic=function(a,b,c){this.credentials=t.createWithMnemonic(a,b,c)},e.prototype.getMnemonic=function(){return this.credentials.getMnemonic()},e.prototype.mnemonicHasPassphrase=function(){return this.credentials.mnemonicHasPassphrase},e.prototype.clearMnemonic=function(){return this.credentials.clearMnemonic()},e.prototype.seedFromExtendedPrivateKey=function(a){this.credentials=t.fromExtendedPrivateKey(a)},e.prototype.seedFromMnemonic=function(a,b,c){this.credentials=t.fromMnemonic(a,b,c)},e.prototype.seedFromExternalWalletPublicKey=function(a,b,c,d){this.credentials=t.fromExternalWalletPublicKey(a,b,c,d)},e.prototype["export"]=function(a){h.checkState(this.credentials),a=a||{};var b,c=t.fromObj(this.credentials);return a.noSign&&c.setNoSign(),b=a.compressed?c.exportCompressed():JSON.stringify(c.toObj())},e.prototype["import"]=function(a,b){b=b||{};try{var c;c=b.compressed?t.importCompressed(a,b.password):t.fromObj(JSON.parse(a)),this.credentials=c}catch(d){throw x.INVALID_BACKUP}},e.prototype._import=function(a){h.checkState(this.credentials);var b=this;b.openWallet(function(c,d){return c?"NOT_AUTHORIZED"!=c.code?a(c):(s.info("Copayer not found, trying to add access"),void b.addAccess({},function(c){return c||b.openWallet(a),a(x.WALLET_DOES_NOT_EXIST)})):a(null,d)})},e.prototype.importFromMnemonic=function(a,b,c){s.debug("Importing from 12 Words");try{this.credentials=t.fromMnemonic(a,b.passphrase,b.network)}catch(d){return s.info("Mnemonic error:",d),c(x.INVALID_BACKUP)}this._import(c)},e.prototype.importFromExtendedPrivateKey=function(a,b){s.debug("Importing from Extended Private Key");try{this.credentials=t.fromExtendedPrivateKey(a)}catch(c){return s.info("xPriv error:",c),b(x.INVALID_BACKUP)}this._import(b)},e.prototype.openWallet=function(a){h.checkState(this.credentials);var b=this;return b.credentials.isComplete()&&b.credentials.hasWalletInfo()?a(null,!0):void b._doGetRequest("/v2/wallets/?includeExtendedInfo=1",function(c,d){if(c)return a(c);var f=d.wallet;if("complete"!=f.status)return a();if(b.credentials.walletPrivKey){if(!u.checkCopayers(b.credentials,f.copayers))return a(x.SERVER_COMPROMISED)}else s.warn("Could not verify copayers key (missing wallet Private Key)");if(b.credentials.addPublicKeyRing(e._extractPublicKeyRing(f.copayers)),!b.credentials.hasWalletInfo()){var h=g.find(f.copayers,{id:b.credentials.copayerId});b.credentials.addWalletInfo(f.id,f.name,f.m,f.n,null,h.name)}return b.emit("walletCompleted",f),b._processTxps(d.pendingTxps),b._processCustomData(d),a(null,d)})},e.prototype._doRequest=function(a,b,c,d){h.checkState(this.credentials);var f,g=c._requestPrivKey||this.credentials.requestPrivKey;g&&(delete c._requestPrivKey,f=e._signRequest(a,b,c,g));var j=this.baseUrl+b,c={relUrl:this.basePath+b,headers:{"x-identity":this.credentials.copayerId,"x-signature":f,"x-client-version":"bwc-"+v.version},method:a,url:j,body:c,json:!0,withCredentials:!1,timeout:1e4};s.debug("Request Args",i.inspect(c,{depth:10})),this.request(c,function(a,b,c){return s.debug(i.inspect(c,{depth:10})),b?200!=b.statusCode?d(404==b.statusCode?{code:"NOT_FOUND"}:b.statusCode?e._parseError(c):{code:"CONNECTION_ERROR"}):'{"error":"read ECONNRESET"}'===c?d(JSON.parse(c)):d(null,c,b.header):d({code:"CONNECTION_ERROR"})})},e.prototype._doPostRequest=function(a,b,c){return this._doRequest("post",a,b,c)},e.prototype._doPutRequest=function(a,b,c){return this._doRequest("put",a,b,c)},e.prototype._doGetRequest=function(a,b){return a+=a.indexOf("?")>0?"&":"?",a+="r="+g.random(1e4,99999),this._doRequest("get",a,{},b)},e.prototype._doDeleteRequest=function(a,b){return this._doRequest("delete",a,{},b)},e.prototype._doJoinWallet=function(a,b,c,d,e,f,g){h.shouldBeFunction(g),f=f||{},f.customData=f.customData||{},f.customData.walletPrivKey=b.toString();var i=l.encryptMessage(JSON.stringify(f.customData),this.credentials.personalEncryptingKey),j={walletId:a,name:e,xPubKey:c,requestPubKey:d,customData:i},k=l.getCopayerHash(j.name,j.xPubKey,j.requestPubKey);j.copayerSignature=l.signMessage(k,b);var m="/v1/wallets/"+a+"/copayers";this._doPostRequest(m,j,function(a,b){return a?g(a):g(null,b.wallet)})},e.prototype.isComplete=function(){return this.credentials&&this.credentials.isComplete()},e.prototype.isPrivKeyEncrypted=function(){return this.credentials&&this.credentials.isPrivKeyEncrypted()},e.prototype.hasPrivKeyEncrypted=function(){return this.credentials&&this.credentials.hasPrivKeyEncrypted()},e.prototype.isPrivKeyExternal=function(){return this.credentials&&this.credentials.hasExternalSource()},e.prototype.getPrivKeyExternalSourceName=function(){return this.credentials?this.credentials.getExternalSourceName():null},e.prototype.getExternalIndex=function(){return this.credentials?this.credentials.getExternalIndex():null},e.prototype.unlock=function(a){try{this.credentials.unlock(a)}catch(b){throw new Error("Could not unlock:"+b)}},e.prototype.canSign=function(){return this.credentials&&this.credentials.canSign()},e._extractPublicKeyRing=function(a){return g.map(a,function(a){var b=g.pick(a,["xPubKey","requestPubKey"]);return b.copayerName=a.name,b})},e.prototype.setPrivateKeyEncryption=function(a,b){this.credentials.setPrivateKeyEncryption(a,b||e.privateKeyEncryptionOpts)},e.prototype.disablePrivateKeyEncryption=function(a,b){return this.credentials.disablePrivateKeyEncryption()},e.prototype.lock=function(){this.credentials.lock()},e.prototype.getFeeLevels=function(a,b){var c=this;h.checkArgument(a||g.contains(["livenet","testnet"],a)),c._doGetRequest("/v1/feelevels/?network="+(a||"livenet"),function(a,c){return a?b(a):b(a,c)})},e.prototype.createWallet=function(a,b,c,d,e,f){var i=this;e&&h.shouldBeObject(e),e=e||{};var j=e.network||"livenet";if(!g.contains(["testnet","livenet"],j))return f(new Error("Invalid network"));if(i.credentials?s.info("Using existing keys"):(s.info("Generating new keys"),i.seedFromRandom(j)),j!=i.credentials.network)return f(new Error("Existing keys were created for a different network"));var k=e.walletPrivKey||new m.PrivateKey,n={name:a,m:c,n:d,pubKey:new m.PrivateKey(k).toPublicKey().toString(),network:j,id:e.id};i._doPostRequest("/v1/wallets/",n,function(e,g){if(e)return f(e);var h=g.walletId,m=l.toSecret(h,k,j);i.credentials.addWalletInfo(h,a,c,d,k.toString(),b),i._doJoinWallet(h,k,i.credentials.xPubKey,i.credentials.requestPubKey,b,{},function(a,b){return a?f(a):f(null,d>1?m:null)})})},e.prototype.joinWallet=function(a,b,c){var d=this;try{var e=l.fromSecret(a)}catch(f){return c(f)}d.credentials||d.seedFromRandom(e.network),d._doJoinWallet(e.walletId,e.walletPrivKey,d.credentials.xPubKey,d.credentials.requestPubKey,b,{},function(a,f){return a?c(a):(d.credentials.addWalletInfo(f.id,f.name,f.m,f.n,e.walletPrivKey.toString(),b),c(null,f))})},e.prototype.recreateWallet=function(a){h.checkState(this.credentials),h.checkState(this.credentials.isComplete()),h.checkState(this.credentials.walletPrivKey);var b=this,c=m.PrivateKey.fromString(b.credentials.walletPrivKey),d=b.credentials.walletId,e={name:b.credentials.walletName||"recovered wallet",m:b.credentials.m,n:b.credentials.n,pubKey:c.toPublicKey().toString(),network:b.credentials.network,id:d};b._doPostRequest("/v1/wallets/",e,function(e,f){if(e&&"WALLET_ALREADY_EXISTS"!=e.code)return a(e);d||(d=f.walletId);var g=1;j.each(b.credentials.publicKeyRing,function(a,e){var f=a.copayerName||"copayer "+g++;b._doJoinWallet(d,c,a.xPubKey,a.requestPubKey,f,{},function(a){return a&&"COPAYER_IN_WALLET"==a.code?e():e(a)})},a)})},e.prototype._processCustomData=function(a){var b=a.wallet.copayers;if(b){var c=g.find(b,{id:this.credentials.copayerId});if(c&&c.customData){var d;try{d=JSON.parse(l.decryptMessage(c.customData,this.credentials.personalEncryptingKey))}catch(e){s.warn("Could not decrypt customData:",c.customData)}d&&(a.customData=d,!this.credentials.walletPrivKey&&d.walletPrivKey&&this.credentials.addWalletPrivateKey(d.walletPrivKey))}}},e.prototype.getStatus=function(a,b){h.checkState(this.credentials),b||(b=a,a={},s.warn("DEPRECATED WARN: getStatus should receive 2 parameters."));var c=this;a=a||{},c._doGetRequest("/v2/wallets/?includeExtendedInfo="+(a.includeExtendedInfo?"1":"0"),function(a,d){if(a)return b(a);if("pending"==d.wallet.status){var e=c.credentials;d.wallet.secret=l.toSecret(e.walletId,e.walletPrivKey,e.network)}return c._processTxps(d.pendingTxps),c._processCustomData(d),b(a,d)})},e.prototype.getPreferences=function(a){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a);var b=this;b._doGetRequest("/v1/preferences/",function(b,c){return b?a(b):a(null,c)})},e.prototype.savePreferences=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(b);var c=this;c._doPutRequest("/v1/preferences/",a,b)},e.prototype._computeProposalSignature=function(a){var b;if(a.outputs){h.shouldBeArray(a.outputs);var c={outputs:g.map(a.outputs,function(a){return h.shouldBeNumber(a.amount),g.pick(a,["toAddress","amount","message"])}),message:a.message||null,payProUrl:a.payProUrl};b=l.getProposalHash(c)}else h.shouldBeNumber(a.amount),b=l.getProposalHash(a.toAddress,a.amount,a.message||null,a.payProUrl);return l.signMessage(b,this.credentials.requestPrivKey)},e.prototype.fetchPayPro=function(a,b){h.checkArgument(a).checkArgument(a.payProUrl),r.get({url:a.payProUrl,http:this.payProHttp},function(a,c){return a?b(a||"Could not fetch PayPro request"):b(null,c)})},e.prototype.getUtxos=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),a=a||{};var c="/v1/utxos/";a.addresses&&(c+="?"+q.stringify({addresses:[].concat(a.addresses).join(",")})),this._doGetRequest(c,b)},e.prototype.sendTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a);var c=this,d={toAddress:a.toAddress,amount:a.amount,message:e._encryptMessage(a.message,this.credentials.sharedEncryptingKey)||null,feePerKb:a.feePerKb,payProUrl:a.payProUrl,excludeUnconfirmedUtxos:!!a.excludeUnconfirmedUtxos,type:a.type,outputs:g.cloneDeep(a.outputs)};d.outputs&&g.each(d.outputs,function(a){a.message=e._encryptMessage(a.message,c.credentials.sharedEncryptingKey)||null}),s.debug("Generating & signing tx proposal:",JSON.stringify(d)),d.proposalSignature=this._computeProposalSignature(d),this._doPostRequest("/v1/txproposals/",d,function(a,c){return a?b(a):b(null,c)})},e.prototype.createAddress=function(a){h.checkState(this.credentials&&this.credentials.isComplete());var b=this;b._doPostRequest("/v1/addresses/",{},function(c,d){return c?a(c):u.checkAddress(b.credentials,d)?a(null,d):a(x.SERVER_COMPROMISED)})},e.prototype.getMainAddresses=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c._doGetRequest("/v1/addresses/",function(d,e){if(d)return b(d);if(!a.doNotVerify){var f=g.any(e,function(a){return!u.checkAddress(c.credentials,a)});if(f)return b(x.SERVER_COMPROMISED)}return b(null,e)})},e.prototype.getBalance=function(a){h.checkState(this.credentials&&this.credentials.isComplete()),this._doGetRequest("/v1/balance/",a)},e.prototype.getTxProposals=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c._doGetRequest("/v1/txproposals/",function(d,e){return d?b(d):(c._processTxps(e),void j.every(e,function(b,d){return a.doNotVerify?d(!0):void c.getPayPro(b,function(a,e){var f=u.checkTxProposal(c.credentials,b,{paypro:e});return d(f)})},function(d){if(!d)return b(x.SERVER_COMPROMISED);var f;return f=a.forAirGapped?{txps:JSON.parse(JSON.stringify(e)),encryptedPkr:l.encryptMessage(JSON.stringify(c.credentials.publicKeyRing),c.credentials.personalEncryptingKey),m:c.credentials.m,n:c.credentials.n}:e,b(null,f)}))})},e.prototype.getPayPro=function(a,b){var c=this;return!a.payProUrl||this.doNotVerifyPayPro?b():void r.get({url:a.payProUrl,http:c.payProHttp},function(a,c){return a?b(new Error("Cannot check transaction now:"+a)):b(null,c)})},e.prototype.signTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a.creatorId);var c=this;return c.canSign()||a.signatures?c.isPrivKeyEncrypted()?b(new Error("Private Key is encrypted, cannot sign")):void c.getPayPro(a,function(d,e){if(d)return b(d);var f=u.checkTxProposal(c.credentials,a,{paypro:e});if(!f)return b(x.SERVER_COMPROMISED);var g=a.signatures||l.signTxp(a,c.credentials.xPrivKey),h="/v1/txproposals/"+a.id+"/signatures/",i={signatures:g};c._doPostRequest(h,i,function(a,d){return a?b(a):(c._processTxps([d]),b(null,d))})}):b(new Error("You do not have the required keys to sign transactions"))},e.prototype.signTxProposalFromAirGapped=function(a,b,c,d){h.checkState(this.credentials);var e=this;if(!e.canSign())throw x.MISSING_PRIVATE_KEY;if(e.isPrivKeyEncrypted())throw x.ENCRYPTED_PRIVATE_KEY;var f;try{f=JSON.parse(l.decryptMessage(b,e.credentials.personalEncryptingKey))}catch(i){throw new Error("Could not decrypt public key ring")}if(!g.isArray(f)||f.length!=d)throw new Error("Invalid public key ring");if(e.credentials.m=c,e.credentials.n=d,e.credentials.addPublicKeyRing(f),!u.checkTxProposalBody(e.credentials,a))throw new Error("Fake transaction proposal");return l.signTxp(a,e.credentials.xPrivKey)},e.prototype.rejectTxProposal=function(a,b,c){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(c);var d=this,f="/v1/txproposals/"+a.id+"/rejections/",g={reason:e._encryptMessage(b,d.credentials.sharedEncryptingKey)||""};d._doPostRequest(f,g,function(a,b){return a?c(a):(d._processTxps([b]),c(null,b))})},e.prototype.broadcastRawTx=function(a,b){h.checkState(this.credentials),h.checkArgument(b);var c=this;a=a||{};var d="/v1/broadcast_raw/";c._doPostRequest(d,a,function(a,c){return a?b(a):b(null,c)})},e.prototype._doBroadcast=function(a,b){var c=this,d="/v1/txproposals/"+a.id+"/broadcast/";c._doPostRequest(d,{},function(a,c){return a?b(a):b(null,c)})},e.prototype.broadcastTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c.getPayPro(a,function(d,e){if(e){var f=l.buildTx(a);c.createAddress(function(d,g){return d?b(d):void r.send({http:c.payProHttp,url:a.payProUrl,amountSat:a.amount,refundAddr:g.address,merchant_data:e.merchant_data,rawTx:f.uncheckedSerialize()},function(d,e,f){return d?b(d):void c._doBroadcast(a,function(a,c){return b(a,c,f)})})})}else c._doBroadcast(a,b)})},e.prototype.removeTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d="/v1/txproposals/"+a.id;c._doDeleteRequest(d,function(a){return b(a)})},e.prototype.getTxHistory=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d=[];a&&(a.skip&&d.push("skip="+a.skip),a.limit&&d.push("limit="+a.limit));var e="";d.length>0&&(e="?"+d.join("&"));var f="/v1/txhistory/"+e;c._doGetRequest(f,function(a,d){return a?b(a):(c._processTxps(d),b(null,d))})},e.prototype.getTx=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d="/v1/txproposals/"+a;this._doGetRequest(d,function(a,d){return a?b(a):(c._processTxps([d]),b(null,d))})},e.prototype.startScan=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d={includeCopayerBranches:a.includeCopayerBranches};c._doPostRequest("/v1/addresses/scan",d,function(a){return b(a)})},e.prototype._oldCopayDecrypt=function(a,b,c){var d,e="@#$",f="%^#@";try{var g=a+e+b;d=n.decrypt(g,c)}catch(h){g=a+f+b;try{d=n.decrypt(g,c)}catch(h){s.debug(h)}}if(!d)return null;var i;try{i=JSON.parse(d)}catch(h){}return i},e.prototype.getWalletIdsFromOldCopay=function(a,b,c){var d=this._oldCopayDecrypt(a,b,c);if(!d)return null;var e=d.walletIds.concat(g.keys(d.focusedTimestamps));return g.uniq(e)},e.prototype._walletPrivKeyFromOldCopayWallet=function(a){var b=a.publicKeyRing.copayersExtPubKeys.sort().join(""),c=new d(b),e=new m.PrivateKey.fromBuffer(m.crypto.Hash.sha256(c));return e.toString()},e.prototype.createWalletFromOldCopay=function(a,b,c,d){var e=this,f=this._oldCopayDecrypt(a,b,c);if(!f)return d("Could not decrypt");if(f.publicKeyRing.copayersExtPubKeys.length!=f.opts.totalCopayers)return d("Wallet is incomplete, cannot be imported");var g=f.opts.requiredCopayers,h=f.opts.totalCopayers,i=f.opts.id,k=f.opts.name,l=f.opts.networkName;this.credentials=t.fromOldCopayWallet(f);var m=this._walletPrivKeyFromOldCopayWallet(f),n=this.credentials.copayerName;this.getStatus({includeExtendedInfo:!0},function(a){return a?void e.createWallet(k,n,g,h,{network:l,id:i,walletPrivKey:m},function(a,b){if(a&&"WALLET_ALREADY_EXISTS"==a.code)return e.credentials.addWalletInfo(i,k,g,h,m,n),e.addAccess({},function(a){return a?d(a):void e.openWallet(function(a){return d(a,!0)})});if(a)return d(a);j.eachSeries(e.credentials.publicKeyRing,function(a,b){return a.xPubKey==e.credentials.xPubKey?b():void e._doJoinWallet(i,m,a.xPubKey,a.requestPubKey,a.copayerName,{},b)},d)}):(s.debug("Wallet is already imported"),e.credentials.addWalletInfo(i,k,g,h,m,n),d())})},e.prototype.addAccess=function(a,b){h.checkState(this.credentials&&this.credentials.canSign());var c=new m.PrivateKey(a.generateNewKey?null:this.credentials.requestPrivKey),d=c.toPublicKey().toString(),e=new m.HDPrivateKey(this.credentials.xPrivKey).derive(l.PATHS.BASE_ADDRESS_DERIVATION),f=l.signRequestPubKey(d,e),g=this.credentials.copayerId,a={copayerId:g,requestPubKey:d,signature:f,name:a.name,restrictions:a.restrictions};this._doPutRequest("/v1/copayers/"+g+"/",a,function(a,d){return a?b(a):b(null,d.wallet,c)})},b.exports=e}).call(this,a("_process"),a("buffer").Buffer)},{"../package.json":472,"./credentials":3,"./errors/clienterror":4,"./errors/errordefinitions":5,"./log":7,"./paypro":8,"./verifier":9,_process:301,async:10,"bitcore-wallet-utils":45,"browser-request":128,buffer:145,events:292,lodash:324,preconditions:325,querystring:305,request:330,sjcl:421,"socket.io-client":422,url:319,util:321}],3:[function(a,b,c){(function(c){"use strict";function d(){this.version="1.0.0"}var e=a("preconditions").singleton(),f=a("lodash"),g=a("bitcore-wallet-utils"),h=g.Bitcore,i=a("bitcore-mnemonic"),j=a("sjcl"),k=["network","xPrivKey","xPrivKeyEncrypted","xPubKey","requestPrivKey","requestPubKey","copayerId","publicKeyRing","walletId","walletName","m","n","walletPrivKey","personalEncryptingKey","sharedEncryptingKey","copayerName","externalSource","externalIndex","mnemonic","mnemonicEncrypted","entropySource","mnemonicHasPassphrase"],l=["xPrivKey","xPrivKeyEncrypted","requestPrivKey","xPubKey","m","n","publicKeyRing","sharedEncryptingKey","externalSource","externalIndex"];d.create=function(a){var b=new d;return b.network=a,b.xPrivKey=new h.HDPrivateKey(a).toString(),b._expand(),b};var m={en:i.Words.ENGLISH,es:i.Words.SPANISH,jp:i.Words.JAPANESE,zh:i.Words.CHINESE,fr:i.Words.FRENCH};d.createWithMnemonic=function(a,b,c){if(c||(c="en"),!m[c])throw new Error("Unsupported language");var e=new i(m[c]),f=new d;return f.network=a,f.xPrivKey=e.toHDPrivateKey(b,a).toString(),f._expand(),f.mnemonic=e.phrase,f.mnemonicHasPassphrase=!!b,f},d.fromExtendedPrivateKey=function(a){var b=new d;return b.xPrivKey=a,b._expand(),b},d.fromMnemonic=function(a,b,c){var e=new i(a),f=new d;return f.xPrivKey=e.toHDPrivateKey(b,c).toString(),f.mnemonicHasPassphrase=!!b,f._expand(),f},d.fromExternalWalletPublicKey=function(a,b,f,g){e.checkArgument(g);var i=new d;return i.xPubKey=a,i.entropySource=h.crypto.Hash.ripemd160(h.crypto.Hash.sha256(new c(g,"hex"))).toString("hex"),i.externalSource=b,i.externalIndex=f,i._expand(),i},d.prototype._expand=function(){if(e.checkState(this.xPrivKey||this.xPubKey&&this.entropySource),this.xPrivKey){var a=new h.HDPrivateKey.fromString(this.xPrivKey),b=a.derive(g.PATHS.BASE_ADDRESS_DERIVATION);this.xPubKey=new h.HDPublicKey(b).toString();var d=a.derive(g.PATHS.REQUEST_KEY);this.requestPrivKey=d.privateKey.toString();var f=d.publicKey;this.requestPubKey=f.toString(),this.entropySource=h.crypto.Hash.ripemd160(h.crypto.Hash.sha256(d.privateKey.toBuffer())).toString("hex")}else{var i=new h.PrivateKey(j);this.requestPrivKey=i.toString(),this.requestPubKey=i.toPublicKey().toString()}this.personalEncryptingKey=h.crypto.Hash.sha256(new c(this.entropySource,"hex")).slice(0,16).toString("base64");var j=g.getNetworkFromXPubKey(this.xPubKey);this.network?e.checkState(this.network==j):this.network=j,this.copayerId=g.xPubToCopayerId(this.xPubKey),this.publicKeyRing=[{xPubKey:this.xPubKey,requestPubKey:this.requestPubKey}]},d.fromObj=function(a){var b=new d;return f.each(k,function(c){b[c]=a[c]}),e.checkState(b.xPrivKey||b.xPubKey||b.xPrivKeyEncrypted,"invalid input"),b},d.prototype.toObj=function(){var a=this,b={};return f.each(k,function(c){b[c]=a[c]}),b},d.prototype.addWalletPrivateKey=function(a){this.walletPrivKey=a,this.sharedEncryptingKey=g.privateKeyToAESKey(a)},d.prototype.addWalletInfo=function(a,b,c,d,e,f){this.walletId=a,this.walletName=b,this.m=c,this.n=d,e&&this.addWalletPrivateKey(e),f&&(this.copayerName=f),1==d&&this.addPublicKeyRing([{xPubKey:this.xPubKey,requestPubKey:this.requestPubKey}])},d.prototype.hasWalletInfo=function(){return!!this.walletId},d.prototype.isPrivKeyEncrypted=function(){return!!this.xPrivKeyEncrypted&&!this.xPrivKey},d.prototype.hasPrivKeyEncrypted=function(){return!!this.xPrivKeyEncrypted},d.prototype.setPrivateKeyEncryption=function(a,b){if(this.xPrivKeyEncrypted)throw new Error("Encrypted Privkey Already exists");if(!this.xPrivKey)throw new Error("No private key to encrypt");if(this.xPrivKeyEncrypted=j.encrypt(a,this.xPrivKey,b),!this.xPrivKeyEncrypted)throw new Error("Could not encrypt");this.mnemonic&&(this.mnemonicEncrypted=j.encrypt(a,this.mnemonic,b))},d.prototype.disablePrivateKeyEncryption=function(){if(!this.xPrivKeyEncrypted)throw new Error("Private Key is not encrypted");if(!this.xPrivKey)throw new Error("Wallet is locked, cannot disable encryption");this.xPrivKeyEncrypted=null,this.mnemonicEncrypted=null},d.prototype.lock=function(){if(!this.xPrivKeyEncrypted)throw new Error("Could not lock, no encrypted private key");delete this.xPrivKey,delete this.mnemonic},d.prototype.unlock=function(a){this.xPrivKeyEncrypted&&(this.xPrivKey=j.decrypt(a,this.xPrivKeyEncrypted),this.mnemonicEncrypted&&(this.mnemonic=j.decrypt(a,this.mnemonicEncrypted)))},d.prototype.addPublicKeyRing=function(a){this.publicKeyRing=f.clone(a)},d.prototype.canSign=function(){return!!this.xPrivKey||!!this.xPrivKeyEncrypted},d.prototype.setNoSign=function(){delete this.xPrivKey,delete this.xPrivKeyEncrypted,delete this.mnemonic,delete this.mnemonicEncrypted},d.prototype.isComplete=function(){return this.m&&this.n&&this.publicKeyRing&&this.publicKeyRing.length==this.n?!0:!1},d.prototype.hasExternalSource=function(){return"string"==typeof this.externalSource},d.prototype.getExternalSourceName=function(){return this.externalSource},d.prototype.getExternalIndex=function(){return this.externalIndex},d.prototype.getMnemonic=function(){if(this.mnemonicEncrypted&&!this.mnemonic)throw new Error("Credentials are encrypted");return this.mnemonic},d.prototype.clearMnemonic=function(){delete this.mnemonic,delete this.mnemonicEncrypted},d.prototype.exportCompressed=function(){var a=this,b=f.map(l,function(b){return"xPubKey"!=b&&"requestPrivKey"!=b||!a.canSign()?"requestPrivKey"==b?h.PrivateKey.fromString(a.requestPrivKey).toWIF():"publicKeyRing"==b?f.reject(a.publicKeyRing,{xPubKey:a.xPubKey}):a[b]:""});return b.unshift(a.version),JSON.stringify(b)},d.importCompressed=function(a,b){var c;try{c=JSON.parse(a)}catch(e){throw new Error("Invalid compressed format")}var h=new d;c[0];return c=f.rest(c),f.each(l,function(a,b){h[a]=c[b]}),b&&h.unlock(b),h._expand(),b&&h.lock(b),h.network=g.getNetworkFromXPubKey(h.xPubKey),h.publicKeyRing.push({xPubKey:h.xPubKey,requestPubKey:h.requestPubKey}),h},d.fromOldCopayWallet=function(a){var b=d.fromExtendedPrivateKey(a.privateKey.extendedPrivateKeyString),c=f.map(a.publicKeyRing.copayersExtPubKeys,function(c){var d,e=c===b.xPubKey;if(e){var f=g.PATHS.REQUEST_KEY;d=new h.HDPrivateKey(b.xPrivKey).derive(f).hdPublicKey}else{var f=g.PATHS.REQUEST_KEY_AUTH;d=new h.HDPublicKey(c).derive(f)}var i=new h.HDPublicKey(c).derive("m/2147483646/0/0"),j=i.publicKey.toString("hex"),k=a.publicKeyRing.nicknameFor[j];return e&&(b.copayerName=k),{xPubKey:c,requestPubKey:d.publicKey.toString(),copayerName:k}});return b.addPublicKeyRing(c),b},b.exports=d}).call(this,a("buffer").Buffer)},{"bitcore-mnemonic":11,"bitcore-wallet-utils":45,buffer:145,lodash:324,preconditions:325,sjcl:421}],4:[function(a,b,c){"use strict";function d(a,b){this.code=a,this.message=b}d.prototype.toString=function(){return""},b.exports=d},{}],5:[function(a,b,c){"use strict";var d=a("lodash"),e=a("./clienterror"),f={INVALID_BACKUP:"Invalid Backup",WALLET_DOES_NOT_EXIST:"Wallet does not exist. Need to recreate",MISSING_PRIVATE_KEY:"Missing private keys to sign",ENCRYPTED_PRIVATE_KEY:"Private key is encrypted, cannot sign",SERVER_COMPROMISED:"Server response could not be verified"},g=d.zipObject(d.map(f,function(a,b){return[b,new e(b,a)]}));g.codes=d.mapValues(f,function(a,b){return b}),b.exports=g},{"./clienterror":4,lodash:324}],6:[function(a,b,c){var d=b.exports=a("./api");d.Verifier=a("./verifier"),d.Utils=a("bitcore-wallet-utils"),d.sjcl=a("sjcl"),d.Bitcore=a("bitcore-wallet-utils").Bitcore},{"./api":2,"./verifier":9,"bitcore-wallet-utils":45,sjcl:421}],7:[function(a,b,c){var d=a("lodash"),e=function(a){this.name=a||"log",this.level=2};e.prototype.getLevels=function(){return f};var f={debug:0,info:1,log:2,warn:3,error:4,fatal:5};d.each(f,function(a,b){e.prototype[b]=function(){if(a>=f[this.level]){if(Error.stackTraceLimit&&"debug"==this.level){var c=Error.stackTraceLimit;Error.stackTraceLimit=2;var d;try{anerror()}catch(e){d=e.stack}var g=d.split("\n"),h=g[2];h=":"+h.substr(6),Error.stackTraceLimit=c}var i,j="["+b+(h||"")+"] "+arguments[0],i=[].slice.call(arguments,1);console[b]?(i.unshift(j),console[b].apply(console,i)):(i.length&&(j+=JSON.stringify(i)),console.log(j))}}}),e.prototype.setLevel=function(a){this.level=a};var g=new e("copay");new Error;g.setLevel("info"),b.exports=g},{lodash:324}],8:[function(a,b,c){(function(c,d){var e=a("preconditions").singleton(),f=a("bitcore-wallet-utils"),g=f.Bitcore,h=a("bitcore-payment-protocol"),i={};i._nodeRequest=function(b,c){b.agent=!1;var e=b.httpNode||a("http"===b.proto?"http":"https"),f="POST"==b.method?"post":"get";e[f](b,function(a){if(200!=a.statusCode)return c("HTTP Request Error");var b=[];a.on("data",function(a){b.push(a)}),a.on("end",function(){return b=d.concat(b),c(null,b)})})},i._browserRequest=function(a,b){var c=(a.method||"GET").toUpperCase(),d=a.url,e=a;e.headers=e.headers||{},e.body=e.body||e.data||"";var f=a.xhr||new XMLHttpRequest;f.open(c,d,!0),Object.keys(e.headers).forEach(function(a){var b=e.headers[a];"Content-Length"!==a&&"Content-Transfer-Encoding"!==a&&f.setRequestHeader(a,b)}),f.responseType="arraybuffer",f.onload=function(a){var c=f.response;return b(null,new Uint8Array(c))},f.onerror=function(a){var c;return c=0!==f.status&&f.statusText?f.statusText:"HTTP Request Error",b(c)},e.body?f.send(e.body):f.send(null)};var j=function(a){a.url.match(/^((http[s]?):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/);if(a.proto=RegExp.$2,a.host=RegExp.$3,a.path=RegExp.$4+RegExp.$6,a.http)return a.http;var b=a.env;return b||(b=c&&!c.browser?"node":"browser"),"node"==b?i._nodeRequest:http=i._browserRequest};i.get=function(a,b){e.checkArgument(a&&a.url);var c=j(a);a.headers=a.headers||{Accept:h.PAYMENT_REQUEST_CONTENT_TYPE,"Content-Type":"application/octet-stream"},c(a,function(c,e){if(c)return b(c);var f;try{var i=h.PaymentRequest.decode(e);f=(new h).makePaymentRequest(i)}catch(j){return b("Could not parse payment protocol:"+j)}var k=(f.get("signature"),f.get("serialized_payment_details")),l=f.verify(!0),m=h.PaymentDetails.decode(k),n=new h;n=n.makePaymentDetails(m);var o=n.get("outputs");if(o.length>1)return b(new Error("Payment Protocol Error: Requests with more that one output are not supported"));var p=o[0],q=p.get("amount");q=q.low+4294967296*q.high;var r="test"==n.get("network")?"testnet":"livenet",s=p.get("script").offset,t=p.get("script").limit,u=new d(new Uint8Array(p.get("script").buffer)),v=u.slice(s,t),w=new g.Address.fromScript(new g.Script(v),r),x=n.get("merchant_data");return x&&(x=x.toString()),b(null,{verified:l.verified,verifyData:{caName:l.caName,selfSigned:l.selfSigned},expires:n.get("expires"),memo:n.get("memo"),time:n.get("time"),merchant_data:x,toAddress:w.toString(),amount:q,network:r,domain:a.host,url:a.url})})},i._getPayProRefundOutputs=function(a,b){b=b.toString(10);var c=new h.Output,e=new g.Address(a),f=e.toObject().hash,i=new g.Script; -return i.add(g.Opcode.OP_HASH160).add(new d(f,"hex")).add(g.Opcode.OP_EQUAL),c.set("script",i.toBuffer()),c.set("amount",b),[c]},i._createPayment=function(a,b,c,e){var f=new h;f=f.makePayment(),a&&(a=new d(a),f.set("merchant_data",a));var g=new d(b,"hex");f.set("transactions",[g]);var i=this._getPayProRefundOutputs(c,e);i&&f.set("refund_to",i),f=f.serialize();for(var j=new ArrayBuffer(f.length),k=new Uint8Array(j),l=0;l Hash: ",j," Signature: ",b.proposalSignature),g.verifyMessage(j,b.proposalSignature,h)&&d.checkAddress(a,b.changeAddress)?!0:!1},d.checkTxProposal=function(a,b,c){return c=c||{},this.checkTxProposalBody(a,b)&&(!c.paypro||b.toAddress==c.paypro.toAddress&&b.amount==c.paypro.amount)?!0:!1},b.exports=d},{"./log":7,"bitcore-wallet-utils":45,lodash:324,preconditions:325}],10:[function(a,b,c){(function(a){!function(){function c(a){var b=!1;return function(){if(b)throw new Error("Callback was already called.");b=!0,a.apply(d,arguments)}}var d,e,f={};d=this,null!=d&&(e=d.async),f.noConflict=function(){return d.async=e,f};var g=Object.prototype.toString,h=Array.isArray||function(a){return"[object Array]"===g.call(a)},i=function(a,b){for(var c=0;c=a.length&&d())}if(d=d||function(){},!a.length)return d();var f=0;i(a,function(a){b(a,c(e))})},f.forEach=f.each,f.eachSeries=function(a,b,c){if(c=c||function(){},!a.length)return c();var d=0,e=function(){b(a[d],function(b){b?(c(b),c=function(){}):(d+=1,d>=a.length?c():e())})};e()},f.forEachSeries=f.eachSeries,f.eachLimit=function(a,b,c,d){var e=m(b);e.apply(null,[a,c,d])},f.forEachLimit=f.eachLimit;var m=function(a){return function(b,c,d){if(d=d||function(){},!b.length||0>=a)return d();var e=0,f=0,g=0;!function h(){if(e>=b.length)return d();for(;a>g&&f=b.length?d():h())})}()}},n=function(a){return function(){var b=Array.prototype.slice.call(arguments);return a.apply(null,[f.each].concat(b))}},o=function(a,b){return function(){var c=Array.prototype.slice.call(arguments);return b.apply(null,[m(a)].concat(c))}},p=function(a){return function(){var b=Array.prototype.slice.call(arguments);return a.apply(null,[f.eachSeries].concat(b))}},q=function(a,b,c,d){if(b=j(b,function(a,b){return{index:b,value:a}}),d){var e=[];a(b,function(a,b){c(a.value,function(c,d){e[a.index]=d,b(c)})},function(a){d(a,e)})}else a(b,function(a,b){c(a.value,function(a){b(a)})})};f.map=n(q),f.mapSeries=p(q),f.mapLimit=function(a,b,c,d){return r(b)(a,c,d)};var r=function(a){return o(a,q)};f.reduce=function(a,b,c,d){f.eachSeries(a,function(a,d){c(b,a,function(a,c){b=c,d(a)})},function(a){d(a,b)})},f.inject=f.reduce,f.foldl=f.reduce,f.reduceRight=function(a,b,c,d){var e=j(a,function(a){return a}).reverse();f.reduce(e,b,c,d)},f.foldr=f.reduceRight;var s=function(a,b,c,d){var e=[];b=j(b,function(a,b){return{index:b,value:a}}),a(b,function(a,b){c(a.value,function(c){c&&e.push(a),b()})},function(a){d(j(e.sort(function(a,b){return a.index-b.index}),function(a){return a.value}))})};f.filter=n(s),f.filterSeries=p(s),f.select=f.filter,f.selectSeries=f.filterSeries;var t=function(a,b,c,d){var e=[];b=j(b,function(a,b){return{index:b,value:a}}),a(b,function(a,b){c(a.value,function(c){c||e.push(a),b()})},function(a){d(j(e.sort(function(a,b){return a.index-b.index}),function(a){return a.value}))})};f.reject=n(t),f.rejectSeries=p(t);var u=function(a,b,c,d){a(b,function(a,b){c(a,function(c){c?(d(a),d=function(){}):b()})},function(a){d()})};f.detect=n(u),f.detectSeries=p(u),f.some=function(a,b,c){f.each(a,function(a,d){b(a,function(a){a&&(c(!0),c=function(){}),d()})},function(a){c(!1)})},f.any=f.some,f.every=function(a,b,c){f.each(a,function(a,d){b(a,function(a){a||(c(!1),c=function(){}),d()})},function(a){c(!0)})},f.all=f.every,f.sortBy=function(a,b,c){f.map(a,function(a,c){b(a,function(b,d){b?c(b):c(null,{value:a,criteria:d})})},function(a,b){if(a)return c(a);var d=function(a,b){var c=a.criteria,d=b.criteria;return d>c?-1:c>d?1:0};c(null,j(b.sort(d),function(a){return a.value}))})},f.auto=function(a,b){b=b||function(){};var c=l(a),d=c.length;if(!d)return b();var e={},g=[],j=function(a){g.unshift(a)},m=function(a){for(var b=0;bd;){var f=d+(e-d+1>>>1);c(b,a[f])>=0?d=f:e=f-1}return d}function e(a,b,e,g){return a.started||(a.started=!0),h(b)||(b=[b]),0==b.length?f.setImmediate(function(){a.drain&&a.drain()}):void i(b,function(b){var h={data:b,priority:e,callback:"function"==typeof g?g:null};a.tasks.splice(d(a.tasks,h,c)+1,0,h),a.saturated&&a.tasks.length===a.concurrency&&a.saturated(),f.setImmediate(a.process)})}var g=f.queue(a,b);return g.push=function(a,b,c){e(g,a,b,c)},delete g.unshift,g},f.cargo=function(a,b){var c=!1,d=[],e={tasks:d,payload:b,saturated:null,empty:null,drain:null,drained:!0,push:function(a,c){h(a)||(a=[a]),i(a,function(a){d.push({data:a,callback:"function"==typeof c?c:null}),e.drained=!1,e.saturated&&d.length===b&&e.saturated()}),f.setImmediate(e.process)},process:function g(){if(!c){if(0===d.length)return e.drain&&!e.drained&&e.drain(),void(e.drained=!0);var f="number"==typeof b?d.splice(0,b):d.splice(0,d.length),h=j(f,function(a){return a.data});e.empty&&e.empty(),c=!0,a(h,function(){c=!1;var a=arguments;i(f,function(b){b.callback&&b.callback.apply(null,a)}),g()})}},length:function(){return d.length},running:function(){return c}};return e};var x=function(a){return function(b){var c=Array.prototype.slice.call(arguments,1);b.apply(null,c.concat([function(b){var c=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(b?console.error&&console.error(b):console[a]&&i(c,function(b){console[a](b)}))}]))}};f.log=x("log"),f.dir=x("dir"),f.memoize=function(a,b){var c={},d={};b=b||function(a){return a};var e=function(){var e=Array.prototype.slice.call(arguments),g=e.pop(),h=b.apply(null,e);h in c?f.nextTick(function(){g.apply(null,c[h])}):h in d?d[h].push(g):(d[h]=[g],a.apply(null,e.concat([function(){c[h]=arguments;var a=d[h];delete d[h];for(var b=0,e=a.length;e>b;b++)a[b].apply(null,arguments)}])))};return e.memo=c,e.unmemoized=a,e},f.unmemoize=function(a){return function(){return(a.unmemoized||a).apply(null,arguments)}},f.times=function(a,b,c){for(var d=[],e=0;a>e;e++)d.push(e);return f.map(d,b,c)},f.timesSeries=function(a,b,c){for(var d=[],e=0;a>e;e++)d.push(e);return f.mapSeries(d,b,c)},f.seq=function(){var a=arguments;return function(){var b=this,c=Array.prototype.slice.call(arguments),d=c.pop();f.reduce(a,c,function(a,c,d){c.apply(b,a.concat([function(){var a=arguments[0],b=Array.prototype.slice.call(arguments,1);d(a,b)}]))},function(a,c){d.apply(b,[a].concat(c))})}},f.compose=function(){return f.seq.apply(null,Array.prototype.reverse.call(arguments))};var y=function(a,b){var c=function(){var c=this,d=Array.prototype.slice.call(arguments),e=d.pop();return a(b,function(a,b){a.apply(c,d.concat([b]))},e)};if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return c.apply(this,d)}return c};f.applyEach=n(y),f.applyEachSeries=p(y),f.forever=function(a,b){function c(d){if(d){if(b)return b(d);throw d}a(c)}c()},"undefined"!=typeof b&&b.exports?b.exports=f:"undefined"!=typeof define&&define.amd?define([],function(){return f}):d.async=f}()}).call(this,a("_process"))},{_process:301}],11:[function(a,b,c){b.exports=a("./lib/mnemonic")},{"./lib/mnemonic":13}],12:[function(a,b,c){"use strict";var d={name:"Mnemonic",message:"Internal Error on bitcore-mnemonic module {0}",errors:[{name:"InvalidEntropy",message:"Entropy length must be an even multiple of 11 bits: {0}"},{name:"UnknownWordlist",message:"Could not detect the used word list: {0}"},{name:"InvalidMnemonic",message:"Mnemonic string is invalid: {0}"}]};b.exports=a("bitcore").errors.extend(d)},{bitcore:51}],13:[function(a,b,c){(function(c){"use strict";var d=a("bitcore"),e=d.crypto.BN,f=a("unorm"),g=d.deps._,h=a("./pbkdf2"),i=a("./errors"),j=d.crypto.Hash,k=d.crypto.Random,l=d.util.preconditions,m=function(a,b){if(!(this instanceof m))return new m(a,b);g.isArray(a)&&(b=a,a=null);var e,h,j;if(c.isBuffer(a))j=a;else if(g.isString(a))h=f.nfkd(a);else if(g.isNumber(a))e=a;else if(a)throw new d.errors.InvalidArgument("data","Must be a Buffer, a string or an integer");if(e=e||128,b=b||m._getDictionary(h),h&&!b)throw new i.UnknownWordlist(h);if(b=b||m.Words.ENGLISH,j&&(h=m._entropy2mnemonic(j,b)),h&&!m.isValid(h,b))throw new i.InvalidMnemonic(h);if(e%32!==0||128>e)throw new d.errors.InvalidArgument("ENT","Values must be ENT > 128 and ENT % 32 == 0");h=h||m._mnemonic(e,b),Object.defineProperty(this,"wordlist",{configurable:!1,value:b}),Object.defineProperty(this,"phrase",{configurable:!1,value:h})};m.Words=a("./words"),m.isValid=function(a,b){if(a=f.nfkd(a),b=b||m._getDictionary(a),!b)return!1;for(var d=a.split(" "),e="",g=0;gh)return!1;e+=("00000000000"+h.toString(2)).slice(-11)}var i=e.length/33,j=e.slice(-i),k=e.slice(0,e.length-i),l=new c(k.length/8);for(g=0;ge)return!1}return!0},m._getDictionary=function(a){if(!a)return null;for(var b=Object.keys(m.Words),c=0;c"},m._mnemonic=function(a,b){var c=k.getRandomBuffer(a/8);return m._entropy2mnemonic(c,b)},m._entropy2mnemonic=function(a,b){for(var c="",d=0;d(Math.pow(2,32)-1)*g)throw Error("Requested key length too long");if("string"!=typeof a&&!c.isBuffer(a))throw new TypeError("key must a string or Buffer");if("string"!=typeof b&&!c.isBuffer(b))throw new TypeError("salt must a string or Buffer");"string"==typeof b&&(b=new c(b));var h=new c(f),i=new c(g),j=new c(g),k=new c(b.length+4),l=Math.ceil(f/g),m=f-(l-1)*g;b.copy(k,0,0,b.length);for(var n=1;l>=n;n++){k[b.length+0]=n>>24&255,k[b.length+1]=n>>16&255,k[b.length+2]=n>>8&255,k[b.length+3]=n>>0&255,i=e.createHmac("sha512",a).update(k).digest(),i.copy(j,0,0,g);for(var o=1;d>o;o++){i=e.createHmac("sha512",a).update(i).digest();for(var p=0;g>p;p++)j[p]^=i[p]}var q=(n-1)*g,r=n===l?m:g;j.copy(h,q,0,r)}return h}var e=a("crypto");b.exports=d}).call(this,a("buffer").Buffer)},{buffer:145,crypto:151}],15:[function(a,b,c){"use strict";var d=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"];b.exports=d},{}],16:[function(a,b,c){"use strict";var d=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]; +!function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g"}},e.prototype._processTxps=function(a){var b=this;if(a){var c=b.credentials.sharedEncryptingKey;g.each([].concat(a),function(a){a.encryptedMessage=a.message,a.message=e._decryptMessage(a.message,c)||null,g.each(a.actions,function(a){a.comment=e._decryptMessage(a.comment,c)}),g.each(a.outputs,function(a){a.encryptedMessage=a.message,a.message=e._decryptMessage(a.message,c)||null}),a.hasUnconfirmedInputs=g.any(a.inputs,function(a){return 0==a.confirmations})})}},e._parseError=function(a){if(g.isString(a))try{a=JSON.parse(a)}catch(b){a={error:a}}var c;return c=a&&a.code?new w(a.code,a.message):{code:"ERROR",error:a?a.error:"There was an unknown error processing the request"},s.error(c),c},e._signRequest=function(a,b,c,d){var e=[a.toLowerCase(),b,JSON.stringify(c)].join("|");return l.signMessage(e,d)},e.prototype.seedFromRandom=function(a){this.credentials=t.create(a)},e.prototype.seedFromRandomWithMnemonic=function(a,b,c){this.credentials=t.createWithMnemonic(a,b,c)},e.prototype.getMnemonic=function(){return this.credentials.getMnemonic()},e.prototype.mnemonicHasPassphrase=function(){return this.credentials.mnemonicHasPassphrase},e.prototype.clearMnemonic=function(){return this.credentials.clearMnemonic()},e.prototype.seedFromExtendedPrivateKey=function(a){this.credentials=t.fromExtendedPrivateKey(a)},e.prototype.seedFromMnemonic=function(a,b,c){this.credentials=t.fromMnemonic(a,b,c)},e.prototype.seedFromExtendedPublicKey=function(a,b,c,d){this.credentials=t.fromExtendedPublicKey(a,b,c,d)},e.prototype["export"]=function(a){h.checkState(this.credentials),a=a||{};var b,c=t.fromObj(this.credentials);return a.noSign&&c.setNoSign(),b=a.compressed?c.exportCompressed():JSON.stringify(c.toObj())},e.prototype["import"]=function(a,b){b=b||{};try{var c;c=b.compressed?t.importCompressed(a,b.password):t.fromObj(JSON.parse(a)),this.credentials=c}catch(d){throw x.INVALID_BACKUP}},e.prototype._import=function(a){h.checkState(this.credentials);var b=this;b.openWallet(function(c,d){return c?"NOT_AUTHORIZED"!=c.code||b.isPrivKeyExternal()?a(c):(s.info("Copayer not found, trying to add access"),void b.addAccess({},function(c){return c||b.openWallet(a),a(x.WALLET_DOES_NOT_EXIST)})):a(null,d)})},e.prototype.importFromMnemonic=function(a,b,c){s.debug("Importing from 12 Words");try{this.credentials=t.fromMnemonic(a,b.passphrase,b.network)}catch(d){return s.info("Mnemonic error:",d),c(x.INVALID_BACKUP)}this._import(c)},e.prototype.importFromExtendedPrivateKey=function(a,b){s.debug("Importing from Extended Private Key");try{this.credentials=t.fromExtendedPrivateKey(a)}catch(c){return s.info("xPriv error:",c),b(x.INVALID_BACKUP)}this._import(b)},e.prototype.importFromExtendedPublicKey=function(a,b,c,d,e){s.debug("Importing from Extended Private Key");try{this.credentials=t.fromExtendedPublicKey(a,b,c,d)}catch(f){return s.info("xPriv error:",f),e(x.INVALID_BACKUP)}this._import(e)},e.prototype.openWallet=function(a){h.checkState(this.credentials);var b=this;return b.credentials.isComplete()&&b.credentials.hasWalletInfo()?a(null,!0):void b._doGetRequest("/v2/wallets/?includeExtendedInfo=1",function(c,d){if(c)return a(c);var f=d.wallet;if("complete"!=f.status)return a();if(b.credentials.walletPrivKey){if(!u.checkCopayers(b.credentials,f.copayers))return a(x.SERVER_COMPROMISED)}else s.warn("Could not verify copayers key (missing wallet Private Key)");if(b.credentials.addPublicKeyRing(e._extractPublicKeyRing(f.copayers)),!b.credentials.hasWalletInfo()){var h=g.find(f.copayers,{id:b.credentials.copayerId});b.credentials.addWalletInfo(f.id,f.name,f.m,f.n,null,h.name)}return b.emit("walletCompleted",f),b._processTxps(d.pendingTxps),b._processCustomData(d),a(null,d)})},e.prototype._doRequest=function(a,b,c,d){h.checkState(this.credentials);var f,g=c._requestPrivKey||this.credentials.requestPrivKey;g&&(delete c._requestPrivKey,f=e._signRequest(a,b,c,g));var j=this.baseUrl+b,c={relUrl:this.basePath+b,headers:{"x-identity":this.credentials.copayerId,"x-signature":f,"x-client-version":"bwc-"+v.version},method:a,url:j,body:c,json:!0,withCredentials:!1,timeout:this.timeout};s.debug("Request Args",i.inspect(c,{depth:10})),this.request(c,function(a,b,c){return s.debug(i.inspect(c,{depth:10})),b?200!=b.statusCode?d(404==b.statusCode?{code:"NOT_FOUND"}:b.statusCode?e._parseError(c):{code:"CONNECTION_ERROR"}):'{"error":"read ECONNRESET"}'===c?d(JSON.parse(c)):d(null,c,b.header):d({code:"CONNECTION_ERROR"})})},e.prototype._doPostRequest=function(a,b,c){return this._doRequest("post",a,b,c)},e.prototype._doPutRequest=function(a,b,c){return this._doRequest("put",a,b,c)},e.prototype._doGetRequest=function(a,b){return a+=a.indexOf("?")>0?"&":"?",a+="r="+g.random(1e4,99999),this._doRequest("get",a,{},b)},e.prototype._doDeleteRequest=function(a,b){return this._doRequest("delete",a,{},b)},e.prototype._doJoinWallet=function(a,b,c,d,e,f,g){h.shouldBeFunction(g),f=f||{},f.customData=f.customData||{},f.customData.walletPrivKey=b.toString();var i=l.encryptMessage(JSON.stringify(f.customData),this.credentials.personalEncryptingKey),j={walletId:a,name:e,xPubKey:c,requestPubKey:d,customData:i},k=l.getCopayerHash(j.name,j.xPubKey,j.requestPubKey);j.copayerSignature=l.signMessage(k,b);var m="/v1/wallets/"+a+"/copayers";this._doPostRequest(m,j,function(a,b){return a?g(a):g(null,b.wallet)})},e.prototype.isComplete=function(){return this.credentials&&this.credentials.isComplete()},e.prototype.isPrivKeyEncrypted=function(){return this.credentials&&this.credentials.isPrivKeyEncrypted()},e.prototype.hasPrivKeyEncrypted=function(){return this.credentials&&this.credentials.hasPrivKeyEncrypted()},e.prototype.isPrivKeyExternal=function(){return this.credentials&&this.credentials.hasExternalSource()},e.prototype.getPrivKeyExternalSourceName=function(){return this.credentials?this.credentials.getExternalSourceName():null},e.prototype.getExternalIndex=function(){return this.credentials?this.credentials.getExternalIndex():null},e.prototype.unlock=function(a){try{this.credentials.unlock(a)}catch(b){throw new Error("Could not unlock:"+b)}},e.prototype.canSign=function(){return this.credentials&&this.credentials.canSign()},e._extractPublicKeyRing=function(a){return g.map(a,function(a){var b=g.pick(a,["xPubKey","requestPubKey"]);return b.copayerName=a.name,b})},e.prototype.setPrivateKeyEncryption=function(a,b){this.credentials.setPrivateKeyEncryption(a,b||e.privateKeyEncryptionOpts)},e.prototype.disablePrivateKeyEncryption=function(a,b){return this.credentials.disablePrivateKeyEncryption()},e.prototype.lock=function(){this.credentials.lock()},e.prototype.getFeeLevels=function(a,b){var c=this;h.checkArgument(a||g.contains(["livenet","testnet"],a)),c._doGetRequest("/v1/feelevels/?network="+(a||"livenet"),function(a,c){return a?b(a):b(a,c)})},e.prototype.createWallet=function(a,b,c,d,e,f){var i=this;e&&h.shouldBeObject(e),e=e||{};var j=e.network||"livenet";if(!g.contains(["testnet","livenet"],j))return f(new Error("Invalid network"));if(i.credentials?s.info("Using existing keys"):(s.info("Generating new keys"),i.seedFromRandom(j)),j!=i.credentials.network)return f(new Error("Existing keys were created for a different network"));var k=e.walletPrivKey||new m.PrivateKey,n={name:a,m:c,n:d,pubKey:new m.PrivateKey(k).toPublicKey().toString(),network:j,id:e.id};i._doPostRequest("/v1/wallets/",n,function(e,g){if(e)return f(e);var h=g.walletId,m=l.toSecret(h,k,j);i.credentials.addWalletInfo(h,a,c,d,k.toString(),b),i._doJoinWallet(h,k,i.credentials.xPubKey,i.credentials.requestPubKey,b,{},function(a,b){return a?f(a):f(null,d>1?m:null)})})},e.prototype.joinWallet=function(a,b,c){var d=this;try{var e=l.fromSecret(a)}catch(f){return c(f)}d.credentials||d.seedFromRandom(e.network),d._doJoinWallet(e.walletId,e.walletPrivKey,d.credentials.xPubKey,d.credentials.requestPubKey,b,{},function(a,f){return a?c(a):(d.credentials.addWalletInfo(f.id,f.name,f.m,f.n,e.walletPrivKey.toString(),b),c(null,f))})},e.prototype.recreateWallet=function(a){h.checkState(this.credentials),h.checkState(this.credentials.isComplete()),h.checkState(this.credentials.walletPrivKey);var b=this,c=m.PrivateKey.fromString(b.credentials.walletPrivKey),d=b.credentials.walletId,e={name:b.credentials.walletName||"recovered wallet",m:b.credentials.m,n:b.credentials.n,pubKey:c.toPublicKey().toString(),network:b.credentials.network,id:d};b._doPostRequest("/v1/wallets/",e,function(e,f){if(e&&"WALLET_ALREADY_EXISTS"!=e.code)return a(e);d||(d=f.walletId);var g=1;j.each(b.credentials.publicKeyRing,function(a,e){var f=a.copayerName||"copayer "+g++;b._doJoinWallet(d,c,a.xPubKey,a.requestPubKey,f,{},function(a){return a&&"COPAYER_IN_WALLET"==a.code?e():e(a)})},a)})},e.prototype._processCustomData=function(a){var b=a.wallet.copayers;if(b){var c=g.find(b,{id:this.credentials.copayerId});if(c&&c.customData){var d;try{d=JSON.parse(l.decryptMessage(c.customData,this.credentials.personalEncryptingKey))}catch(e){s.warn("Could not decrypt customData:",c.customData)}d&&(a.customData=d,!this.credentials.walletPrivKey&&d.walletPrivKey&&this.credentials.addWalletPrivateKey(d.walletPrivKey))}}},e.prototype.getStatus=function(a,b){h.checkState(this.credentials),b||(b=a,a={},s.warn("DEPRECATED WARN: getStatus should receive 2 parameters."));var c=this;a=a||{},c._doGetRequest("/v2/wallets/?includeExtendedInfo="+(a.includeExtendedInfo?"1":"0"),function(a,d){if(a)return b(a);if("pending"==d.wallet.status){var e=c.credentials;d.wallet.secret=l.toSecret(e.walletId,e.walletPrivKey,e.network)}return c._processTxps(d.pendingTxps),c._processCustomData(d),b(a,d)})},e.prototype.getPreferences=function(a){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a);var b=this;b._doGetRequest("/v1/preferences/",function(b,c){return b?a(b):a(null,c)})},e.prototype.savePreferences=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(b);var c=this;c._doPutRequest("/v1/preferences/",a,b)},e.prototype._computeProposalSignature=function(a){var b;if(a.outputs){h.shouldBeArray(a.outputs);var c={outputs:g.map(a.outputs,function(a){return h.shouldBeNumber(a.amount),g.pick(a,["toAddress","amount","message"])}),message:a.message||null,payProUrl:a.payProUrl};b=l.getProposalHash(c)}else h.shouldBeNumber(a.amount),b=l.getProposalHash(a.toAddress,a.amount,a.message||null,a.payProUrl);return l.signMessage(b,this.credentials.requestPrivKey)},e.prototype.fetchPayPro=function(a,b){h.checkArgument(a).checkArgument(a.payProUrl),r.get({url:a.payProUrl,http:this.payProHttp},function(a,c){return a?b(a||"Could not fetch PayPro request"):b(null,c)})},e.prototype.getUtxos=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),a=a||{};var c="/v1/utxos/";a.addresses&&(c+="?"+q.stringify({addresses:[].concat(a.addresses).join(",")})),this._doGetRequest(c,b)},e.prototype.sendTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a);var c=this,d={toAddress:a.toAddress,amount:a.amount,message:e._encryptMessage(a.message,this.credentials.sharedEncryptingKey)||null,feePerKb:a.feePerKb,payProUrl:a.payProUrl,excludeUnconfirmedUtxos:!!a.excludeUnconfirmedUtxos,type:a.type,outputs:g.cloneDeep(a.outputs)};d.outputs&&g.each(d.outputs,function(a){a.message=e._encryptMessage(a.message,c.credentials.sharedEncryptingKey)||null}),s.debug("Generating & signing tx proposal:",JSON.stringify(d)),d.proposalSignature=this._computeProposalSignature(d),this._doPostRequest("/v1/txproposals/",d,function(a,c){return a?b(a):b(null,c)})},e.prototype.createAddress=function(a){h.checkState(this.credentials&&this.credentials.isComplete());var b=this;b._doPostRequest("/v1/addresses/",{},function(c,d){return c?a(c):u.checkAddress(b.credentials,d)?a(null,d):a(x.SERVER_COMPROMISED)})},e.prototype.getMainAddresses=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c._doGetRequest("/v1/addresses/",function(d,e){if(d)return b(d);if(!a.doNotVerify){var f=g.any(e,function(a){return!u.checkAddress(c.credentials,a)});if(f)return b(x.SERVER_COMPROMISED)}return b(null,e)})},e.prototype.getBalance=function(a){h.checkState(this.credentials&&this.credentials.isComplete()),this._doGetRequest("/v1/balance/",a)},e.prototype.getTxProposals=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c._doGetRequest("/v1/txproposals/",function(d,e){return d?b(d):(c._processTxps(e),void j.every(e,function(b,d){return a.doNotVerify?d(!0):void c.getPayPro(b,function(a,e){var f=u.checkTxProposal(c.credentials,b,{paypro:e});return d(f)})},function(d){if(!d)return b(x.SERVER_COMPROMISED);var f;return f=a.forAirGapped?{txps:JSON.parse(JSON.stringify(e)),encryptedPkr:l.encryptMessage(JSON.stringify(c.credentials.publicKeyRing),c.credentials.personalEncryptingKey),m:c.credentials.m,n:c.credentials.n}:e,b(null,f)}))})},e.prototype.getPayPro=function(a,b){var c=this;return!a.payProUrl||this.doNotVerifyPayPro?b():void r.get({url:a.payProUrl,http:c.payProHttp},function(a,c){return a?b(new Error("Cannot check transaction now:"+a)):b(null,c)})},e.prototype.signTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(a.creatorId);var c=this;return c.canSign()||a.signatures?c.isPrivKeyEncrypted()?b(new Error("Private Key is encrypted, cannot sign")):void c.getPayPro(a,function(d,e){if(d)return b(d);var f=u.checkTxProposal(c.credentials,a,{paypro:e});if(!f)return b(x.SERVER_COMPROMISED);var g=a.signatures||l.signTxp(a,c.credentials.xPrivKey),h="/v1/txproposals/"+a.id+"/signatures/",i={signatures:g};c._doPostRequest(h,i,function(a,d){return a?b(a):(c._processTxps([d]),b(null,d))})}):b(new Error("You do not have the required keys to sign transactions"))},e.prototype.signTxProposalFromAirGapped=function(a,b,c,d){h.checkState(this.credentials);var e=this;if(!e.canSign())throw x.MISSING_PRIVATE_KEY;if(e.isPrivKeyEncrypted())throw x.ENCRYPTED_PRIVATE_KEY;var f;try{f=JSON.parse(l.decryptMessage(b,e.credentials.personalEncryptingKey))}catch(i){throw new Error("Could not decrypt public key ring")}if(!g.isArray(f)||f.length!=d)throw new Error("Invalid public key ring");if(e.credentials.m=c,e.credentials.n=d,e.credentials.addPublicKeyRing(f),!u.checkTxProposalBody(e.credentials,a))throw new Error("Fake transaction proposal");return l.signTxp(a,e.credentials.xPrivKey)},e.prototype.rejectTxProposal=function(a,b,c){h.checkState(this.credentials&&this.credentials.isComplete()),h.checkArgument(c);var d=this,f="/v1/txproposals/"+a.id+"/rejections/",g={reason:e._encryptMessage(b,d.credentials.sharedEncryptingKey)||""};d._doPostRequest(f,g,function(a,b){return a?c(a):(d._processTxps([b]),c(null,b))})},e.prototype.broadcastRawTx=function(a,b){h.checkState(this.credentials),h.checkArgument(b);var c=this;a=a||{};var d="/v1/broadcast_raw/";c._doPostRequest(d,a,function(a,c){return a?b(a):b(null,c)})},e.prototype._doBroadcast=function(a,b){var c=this,d="/v1/txproposals/"+a.id+"/broadcast/";c._doPostRequest(d,{},function(a,c){return a?b(a):b(null,c)})},e.prototype.broadcastTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this;c.getPayPro(a,function(d,e){if(e){var f=l.buildTx(a);c.createAddress(function(d,g){return d?b(d):void r.send({http:c.payProHttp,url:a.payProUrl,amountSat:a.amount,refundAddr:g.address,merchant_data:e.merchant_data,rawTx:f.uncheckedSerialize()},function(d,e,f){return d?b(d):void c._doBroadcast(a,function(a,c){return b(a,c,f)})})})}else c._doBroadcast(a,b)})},e.prototype.removeTxProposal=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d="/v1/txproposals/"+a.id;c._doDeleteRequest(d,function(a){return b(a)})},e.prototype.getTxHistory=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d=[];a&&(a.skip&&d.push("skip="+a.skip),a.limit&&d.push("limit="+a.limit));var e="";d.length>0&&(e="?"+d.join("&"));var f="/v1/txhistory/"+e;c._doGetRequest(f,function(a,d){return a?b(a):(c._processTxps(d),b(null,d))})},e.prototype.getTx=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d="/v1/txproposals/"+a;this._doGetRequest(d,function(a,d){return a?b(a):(c._processTxps([d]),b(null,d))})},e.prototype.startScan=function(a,b){h.checkState(this.credentials&&this.credentials.isComplete());var c=this,d={includeCopayerBranches:a.includeCopayerBranches};c._doPostRequest("/v1/addresses/scan",d,function(a){return b(a)})},e.prototype._oldCopayDecrypt=function(a,b,c){var d,e="@#$",f="%^#@";try{var g=a+e+b;d=n.decrypt(g,c)}catch(h){g=a+f+b;try{d=n.decrypt(g,c)}catch(h){s.debug(h)}}if(!d)return null;var i;try{i=JSON.parse(d)}catch(h){}return i},e.prototype.getWalletIdsFromOldCopay=function(a,b,c){var d=this._oldCopayDecrypt(a,b,c);if(!d)return null;var e=d.walletIds.concat(g.keys(d.focusedTimestamps));return g.uniq(e)},e.prototype._walletPrivKeyFromOldCopayWallet=function(a){var b=a.publicKeyRing.copayersExtPubKeys.sort().join(""),c=new d(b),e=new m.PrivateKey.fromBuffer(m.crypto.Hash.sha256(c));return e.toString()},e.prototype.createWalletFromOldCopay=function(a,b,c,d){var e=this,f=this._oldCopayDecrypt(a,b,c);if(!f)return d("Could not decrypt");if(f.publicKeyRing.copayersExtPubKeys.length!=f.opts.totalCopayers)return d("Wallet is incomplete, cannot be imported");var g=f.opts.requiredCopayers,h=f.opts.totalCopayers,i=f.opts.id,k=f.opts.name,l=f.opts.networkName;this.credentials=t.fromOldCopayWallet(f);var m=this._walletPrivKeyFromOldCopayWallet(f),n=this.credentials.copayerName;this.getStatus({includeExtendedInfo:!0},function(a){return a?void e.createWallet(k,n,g,h,{network:l,id:i,walletPrivKey:m},function(a,b){if(a&&"WALLET_ALREADY_EXISTS"==a.code)return e.credentials.addWalletInfo(i,k,g,h,m,n),e.addAccess({},function(a){return a?d(a):void e.openWallet(function(a){return d(a,!0)})});if(a)return d(a);j.eachSeries(e.credentials.publicKeyRing,function(a,b){return a.xPubKey==e.credentials.xPubKey?b():void e._doJoinWallet(i,m,a.xPubKey,a.requestPubKey,a.copayerName,{},b)},d)}):(s.debug("Wallet is already imported"),e.credentials.addWalletInfo(i,k,g,h,m,n),d())})},e.prototype.addAccess=function(a,b){h.checkState(this.credentials&&this.credentials.canSign());var c=new m.PrivateKey(a.generateNewKey?null:this.credentials.requestPrivKey),d=c.toPublicKey().toString(),e=new m.HDPrivateKey(this.credentials.xPrivKey).derive(l.PATHS.BASE_ADDRESS_DERIVATION),f=l.signRequestPubKey(d,e),g=this.credentials.copayerId,a={copayerId:g,requestPubKey:d,signature:f,name:a.name,restrictions:a.restrictions};this._doPutRequest("/v1/copayers/"+g+"/",a,function(a,d){return a?b(a):b(null,d.wallet,c)})},b.exports=e}).call(this,a("_process"),a("buffer").Buffer)},{"../package.json":472,"./credentials":3,"./errors/clienterror":4,"./errors/errordefinitions":5,"./log":7,"./paypro":8,"./verifier":9,_process:301,async:10,"bitcore-wallet-utils":45,"browser-request":128,buffer:145,events:292,lodash:324,preconditions:325,querystring:305,request:330,sjcl:421,"socket.io-client":422,url:319,util:321}],3:[function(a,b,c){(function(c){"use strict";function d(){this.version="1.0.0"}var e=a("preconditions").singleton(),f=a("lodash"),g=a("bitcore-wallet-utils"),h=g.Bitcore,i=a("bitcore-mnemonic"),j=a("sjcl"),k=["network","xPrivKey","xPrivKeyEncrypted","xPubKey","requestPrivKey","requestPubKey","copayerId","publicKeyRing","walletId","walletName","m","n","walletPrivKey","personalEncryptingKey","sharedEncryptingKey","copayerName","externalSource","externalIndex","mnemonic","mnemonicEncrypted","entropySource","mnemonicHasPassphrase"],l=["xPrivKey","xPrivKeyEncrypted","requestPrivKey","xPubKey","m","n","publicKeyRing","sharedEncryptingKey","externalSource","externalIndex"];d.create=function(a){var b=new d;return b.network=a,b.xPrivKey=new h.HDPrivateKey(a).toString(),b._expand(),b};var m={en:i.Words.ENGLISH,es:i.Words.SPANISH,jp:i.Words.JAPANESE,zh:i.Words.CHINESE,fr:i.Words.FRENCH};d.createWithMnemonic=function(a,b,c){if(c||(c="en"),!m[c])throw new Error("Unsupported language");var e=new i(m[c]),f=new d;return f.network=a,f.xPrivKey=e.toHDPrivateKey(b,a).toString(),f._expand(),f.mnemonic=e.phrase,f.mnemonicHasPassphrase=!!b,f},d.fromExtendedPrivateKey=function(a){var b=new d;return b.xPrivKey=a,b._expand(),b},d.fromMnemonic=function(a,b,c){var e=new i(a),f=new d;return f.xPrivKey=e.toHDPrivateKey(b,c).toString(),f.mnemonicHasPassphrase=!!b,f._expand(),f},d.fromExtendedPublicKey=function(a,b,f,g){e.checkArgument(g);var i=new c(g,"hex");e.checkArgument(i.length>=14,"No enough entropy");var j=new d;return j.xPubKey=a,j.entropySource=h.crypto.Hash.sha256sha256(i).toString("hex"),j.externalSource=b,j.externalIndex=f,j._expand(),j},d.prototype._hashFromEntropy=function(a,b){e.checkState(a);var d=new c(this.entropySource,"hex"),f=h.crypto.Hash.sha256hmac(d,new c(a));return f.slice(0,b)},d.prototype._expand=function(){if(e.checkState(this.xPrivKey||this.xPubKey&&this.entropySource),this.xPrivKey){var a=new h.HDPrivateKey.fromString(this.xPrivKey),b=a.derive(g.PATHS.BASE_ADDRESS_DERIVATION);this.xPubKey=new h.HDPublicKey(b).toString();var c=a.derive(g.PATHS.REQUEST_KEY);this.requestPrivKey=c.privateKey.toString();var d=c.publicKey;this.requestPubKey=d.toString(),this.entropySource=h.crypto.Hash.sha256(c.privateKey.toBuffer()).toString("hex")}else{var f=this._hashFromEntropy("reqPrivKey",32),i=new h.PrivateKey(f.toString("hex"),j);this.requestPrivKey=i.toString(),this.requestPubKey=i.toPublicKey().toString()}this.personalEncryptingKey=this._hashFromEntropy("personalKey",16).toString("base64");var j=g.getNetworkFromXPubKey(this.xPubKey);this.network?e.checkState(this.network==j):this.network=j,this.copayerId=g.xPubToCopayerId(this.xPubKey),this.publicKeyRing=[{xPubKey:this.xPubKey,requestPubKey:this.requestPubKey}]},d.fromObj=function(a){var b=new d;return f.each(k,function(c){b[c]=a[c]}),e.checkState(b.xPrivKey||b.xPubKey||b.xPrivKeyEncrypted,"invalid input"),b},d.prototype.toObj=function(){var a=this,b={};return f.each(k,function(c){b[c]=a[c]}),b},d.prototype.addWalletPrivateKey=function(a){this.walletPrivKey=a,this.sharedEncryptingKey=g.privateKeyToAESKey(a)},d.prototype.addWalletInfo=function(a,b,c,d,e,f){this.walletId=a,this.walletName=b,this.m=c,this.n=d,e&&this.addWalletPrivateKey(e),f&&(this.copayerName=f),1==d&&this.addPublicKeyRing([{xPubKey:this.xPubKey,requestPubKey:this.requestPubKey}])},d.prototype.hasWalletInfo=function(){return!!this.walletId},d.prototype.isPrivKeyEncrypted=function(){return!!this.xPrivKeyEncrypted&&!this.xPrivKey},d.prototype.hasPrivKeyEncrypted=function(){return!!this.xPrivKeyEncrypted},d.prototype.setPrivateKeyEncryption=function(a,b){if(this.xPrivKeyEncrypted)throw new Error("Encrypted Privkey Already exists");if(!this.xPrivKey)throw new Error("No private key to encrypt");if(this.xPrivKeyEncrypted=j.encrypt(a,this.xPrivKey,b),!this.xPrivKeyEncrypted)throw new Error("Could not encrypt");this.mnemonic&&(this.mnemonicEncrypted=j.encrypt(a,this.mnemonic,b))},d.prototype.disablePrivateKeyEncryption=function(){if(!this.xPrivKeyEncrypted)throw new Error("Private Key is not encrypted");if(!this.xPrivKey)throw new Error("Wallet is locked, cannot disable encryption");this.xPrivKeyEncrypted=null,this.mnemonicEncrypted=null},d.prototype.lock=function(){if(!this.xPrivKeyEncrypted)throw new Error("Could not lock, no encrypted private key");delete this.xPrivKey,delete this.mnemonic},d.prototype.unlock=function(a){this.xPrivKeyEncrypted&&(this.xPrivKey=j.decrypt(a,this.xPrivKeyEncrypted),this.mnemonicEncrypted&&(this.mnemonic=j.decrypt(a,this.mnemonicEncrypted)))},d.prototype.addPublicKeyRing=function(a){this.publicKeyRing=f.clone(a)},d.prototype.canSign=function(){return!!this.xPrivKey||!!this.xPrivKeyEncrypted},d.prototype.setNoSign=function(){delete this.xPrivKey,delete this.xPrivKeyEncrypted,delete this.mnemonic,delete this.mnemonicEncrypted},d.prototype.isComplete=function(){return this.m&&this.n&&this.publicKeyRing&&this.publicKeyRing.length==this.n?!0:!1},d.prototype.hasExternalSource=function(){return"string"==typeof this.externalSource},d.prototype.getExternalSourceName=function(){return this.externalSource},d.prototype.getExternalIndex=function(){return this.externalIndex},d.prototype.getMnemonic=function(){if(this.mnemonicEncrypted&&!this.mnemonic)throw new Error("Credentials are encrypted");return this.mnemonic},d.prototype.clearMnemonic=function(){delete this.mnemonic,delete this.mnemonicEncrypted},d.prototype.exportCompressed=function(){var a=this,b=f.map(l,function(b){return"xPubKey"!=b&&"requestPrivKey"!=b||!a.canSign()?"requestPrivKey"==b?h.PrivateKey.fromString(a.requestPrivKey).toWIF():"publicKeyRing"==b?f.reject(a.publicKeyRing,{xPubKey:a.xPubKey}):a[b]:""});return b.unshift(a.version),JSON.stringify(b)},d.importCompressed=function(a,b){var c;try{c=JSON.parse(a)}catch(e){throw new Error("Invalid compressed format")}var h=new d;c[0];return c=f.rest(c),f.each(l,function(a,b){h[a]=c[b]}),b&&h.unlock(b),h._expand(),b&&h.lock(b),h.network=g.getNetworkFromXPubKey(h.xPubKey),h.publicKeyRing.push({xPubKey:h.xPubKey,requestPubKey:h.requestPubKey}),h},d.fromOldCopayWallet=function(a){var b=d.fromExtendedPrivateKey(a.privateKey.extendedPrivateKeyString),c=f.map(a.publicKeyRing.copayersExtPubKeys,function(c){var d,e=c===b.xPubKey;if(e){var f=g.PATHS.REQUEST_KEY;d=new h.HDPrivateKey(b.xPrivKey).derive(f).hdPublicKey}else{var f=g.PATHS.REQUEST_KEY_AUTH;d=new h.HDPublicKey(c).derive(f)}var i=new h.HDPublicKey(c).derive("m/2147483646/0/0"),j=i.publicKey.toString("hex"),k=a.publicKeyRing.nicknameFor[j];return e&&(b.copayerName=k),{xPubKey:c,requestPubKey:d.publicKey.toString(),copayerName:k}});return b.addPublicKeyRing(c),b},b.exports=d}).call(this,a("buffer").Buffer)},{"bitcore-mnemonic":11,"bitcore-wallet-utils":45,buffer:145,lodash:324,preconditions:325,sjcl:421}],4:[function(a,b,c){"use strict";function d(a,b){this.code=a,this.message=b}d.prototype.toString=function(){return""},b.exports=d},{}],5:[function(a,b,c){"use strict";var d=a("lodash"),e=a("./clienterror"),f={INVALID_BACKUP:"Invalid Backup",WALLET_DOES_NOT_EXIST:"Wallet does not exist. Need to recreate",MISSING_PRIVATE_KEY:"Missing private keys to sign",ENCRYPTED_PRIVATE_KEY:"Private key is encrypted, cannot sign",SERVER_COMPROMISED:"Server response could not be verified"},g=d.zipObject(d.map(f,function(a,b){return[b,new e(b,a)]}));g.codes=d.mapValues(f,function(a,b){return b}),b.exports=g},{"./clienterror":4,lodash:324}],6:[function(a,b,c){var d=b.exports=a("./api");d.Verifier=a("./verifier"),d.Utils=a("bitcore-wallet-utils"),d.sjcl=a("sjcl"),d.Bitcore=a("bitcore-wallet-utils").Bitcore},{"./api":2,"./verifier":9,"bitcore-wallet-utils":45,sjcl:421}],7:[function(a,b,c){var d=a("lodash"),e=function(a){this.name=a||"log",this.level=2};e.prototype.getLevels=function(){return f};var f={debug:0,info:1,log:2,warn:3,error:4,fatal:5};d.each(f,function(a,b){e.prototype[b]=function(){if(a>=f[this.level]){if(Error.stackTraceLimit&&"debug"==this.level){var c=Error.stackTraceLimit;Error.stackTraceLimit=2;var d;try{anerror()}catch(e){d=e.stack}var g=d.split("\n"),h=g[2];h=":"+h.substr(6),Error.stackTraceLimit=c}var i,j="["+b+(h||"")+"] "+arguments[0],i=[].slice.call(arguments,1);console[b]?(i.unshift(j),console[b].apply(console,i)):(i.length&&(j+=JSON.stringify(i)),console.log(j))}}}),e.prototype.setLevel=function(a){this.level=a};var g=new e("copay");new Error;g.setLevel("info"),b.exports=g},{lodash:324}],8:[function(a,b,c){(function(c,d){var e=a("preconditions").singleton(),f=a("bitcore-wallet-utils"),g=f.Bitcore,h=a("bitcore-payment-protocol"),i={};i._nodeRequest=function(b,c){b.agent=!1;var e=b.httpNode||a("http"===b.proto?"http":"https"),f="POST"==b.method?"post":"get";e[f](b,function(a){if(200!=a.statusCode)return c("HTTP Request Error");var b=[];a.on("data",function(a){b.push(a)}),a.on("end",function(){return b=d.concat(b),c(null,b)})})},i._browserRequest=function(a,b){var c=(a.method||"GET").toUpperCase(),d=a.url,e=a;e.headers=e.headers||{},e.body=e.body||e.data||"";var f=a.xhr||new XMLHttpRequest;f.open(c,d,!0),Object.keys(e.headers).forEach(function(a){var b=e.headers[a];"Content-Length"!==a&&"Content-Transfer-Encoding"!==a&&f.setRequestHeader(a,b)}),f.responseType="arraybuffer",f.onload=function(a){var c=f.response;return b(null,new Uint8Array(c))},f.onerror=function(a){var c;return c=0!==f.status&&f.statusText?f.statusText:"HTTP Request Error",b(c)},e.body?f.send(e.body):f.send(null)};var j=function(a){a.url.match(/^((http[s]?):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/);if(a.proto=RegExp.$2,a.host=RegExp.$3,a.path=RegExp.$4+RegExp.$6,a.http)return a.http;var b=a.env;return b||(b=c&&!c.browser?"node":"browser"),"node"==b?i._nodeRequest:http=i._browserRequest};i.get=function(a,b){e.checkArgument(a&&a.url);var c=j(a);a.headers=a.headers||{Accept:h.PAYMENT_REQUEST_CONTENT_TYPE,"Content-Type":"application/octet-stream"},c(a,function(c,e){if(c)return b(c);var f;try{var i=h.PaymentRequest.decode(e);f=(new h).makePaymentRequest(i)}catch(j){return b("Could not parse payment protocol:"+j)}var k=(f.get("signature"),f.get("serialized_payment_details")),l=f.verify(!0),m=h.PaymentDetails.decode(k),n=new h;n=n.makePaymentDetails(m);var o=n.get("outputs");if(o.length>1)return b(new Error("Payment Protocol Error: Requests with more that one output are not supported"));var p=o[0],q=p.get("amount");q=q.low+4294967296*q.high;var r="test"==n.get("network")?"testnet":"livenet",s=p.get("script").offset,t=p.get("script").limit,u=new d(new Uint8Array(p.get("script").buffer)),v=u.slice(s,t),w=new g.Address.fromScript(new g.Script(v),r),x=n.get("merchant_data"); +return x&&(x=x.toString()),b(null,{verified:l.verified,verifyData:{caName:l.caName,selfSigned:l.selfSigned},expires:n.get("expires"),memo:n.get("memo"),time:n.get("time"),merchant_data:x,toAddress:w.toString(),amount:q,network:r,domain:a.host,url:a.url})})},i._getPayProRefundOutputs=function(a,b){b=b.toString(10);var c=new h.Output,e=new g.Address(a),f=e.toObject().hash,i=new g.Script;return i.add(g.Opcode.OP_HASH160).add(new d(f,"hex")).add(g.Opcode.OP_EQUAL),c.set("script",i.toBuffer()),c.set("amount",b),[c]},i._createPayment=function(a,b,c,e){var f=new h;f=f.makePayment(),a&&(a=new d(a),f.set("merchant_data",a));var g=new d(b,"hex");f.set("transactions",[g]);var i=this._getPayProRefundOutputs(c,e);i&&f.set("refund_to",i),f=f.serialize();for(var j=new ArrayBuffer(f.length),k=new Uint8Array(j),l=0;l Hash: ",j," Signature: ",b.proposalSignature),g.verifyMessage(j,b.proposalSignature,h)&&d.checkAddress(a,b.changeAddress)?!0:!1},d.checkTxProposal=function(a,b,c){return c=c||{},this.checkTxProposalBody(a,b)&&(!c.paypro||b.toAddress==c.paypro.toAddress&&b.amount==c.paypro.amount)?!0:!1},b.exports=d},{"./log":7,"bitcore-wallet-utils":45,lodash:324,preconditions:325}],10:[function(a,b,c){(function(a){!function(){function c(a){var b=!1;return function(){if(b)throw new Error("Callback was already called.");b=!0,a.apply(d,arguments)}}var d,e,f={};d=this,null!=d&&(e=d.async),f.noConflict=function(){return d.async=e,f};var g=Object.prototype.toString,h=Array.isArray||function(a){return"[object Array]"===g.call(a)},i=function(a,b){for(var c=0;c=a.length&&d())}if(d=d||function(){},!a.length)return d();var f=0;i(a,function(a){b(a,c(e))})},f.forEach=f.each,f.eachSeries=function(a,b,c){if(c=c||function(){},!a.length)return c();var d=0,e=function(){b(a[d],function(b){b?(c(b),c=function(){}):(d+=1,d>=a.length?c():e())})};e()},f.forEachSeries=f.eachSeries,f.eachLimit=function(a,b,c,d){var e=m(b);e.apply(null,[a,c,d])},f.forEachLimit=f.eachLimit;var m=function(a){return function(b,c,d){if(d=d||function(){},!b.length||0>=a)return d();var e=0,f=0,g=0;!function h(){if(e>=b.length)return d();for(;a>g&&f=b.length?d():h())})}()}},n=function(a){return function(){var b=Array.prototype.slice.call(arguments);return a.apply(null,[f.each].concat(b))}},o=function(a,b){return function(){var c=Array.prototype.slice.call(arguments);return b.apply(null,[m(a)].concat(c))}},p=function(a){return function(){var b=Array.prototype.slice.call(arguments);return a.apply(null,[f.eachSeries].concat(b))}},q=function(a,b,c,d){if(b=j(b,function(a,b){return{index:b,value:a}}),d){var e=[];a(b,function(a,b){c(a.value,function(c,d){e[a.index]=d,b(c)})},function(a){d(a,e)})}else a(b,function(a,b){c(a.value,function(a){b(a)})})};f.map=n(q),f.mapSeries=p(q),f.mapLimit=function(a,b,c,d){return r(b)(a,c,d)};var r=function(a){return o(a,q)};f.reduce=function(a,b,c,d){f.eachSeries(a,function(a,d){c(b,a,function(a,c){b=c,d(a)})},function(a){d(a,b)})},f.inject=f.reduce,f.foldl=f.reduce,f.reduceRight=function(a,b,c,d){var e=j(a,function(a){return a}).reverse();f.reduce(e,b,c,d)},f.foldr=f.reduceRight;var s=function(a,b,c,d){var e=[];b=j(b,function(a,b){return{index:b,value:a}}),a(b,function(a,b){c(a.value,function(c){c&&e.push(a),b()})},function(a){d(j(e.sort(function(a,b){return a.index-b.index}),function(a){return a.value}))})};f.filter=n(s),f.filterSeries=p(s),f.select=f.filter,f.selectSeries=f.filterSeries;var t=function(a,b,c,d){var e=[];b=j(b,function(a,b){return{index:b,value:a}}),a(b,function(a,b){c(a.value,function(c){c||e.push(a),b()})},function(a){d(j(e.sort(function(a,b){return a.index-b.index}),function(a){return a.value}))})};f.reject=n(t),f.rejectSeries=p(t);var u=function(a,b,c,d){a(b,function(a,b){c(a,function(c){c?(d(a),d=function(){}):b()})},function(a){d()})};f.detect=n(u),f.detectSeries=p(u),f.some=function(a,b,c){f.each(a,function(a,d){b(a,function(a){a&&(c(!0),c=function(){}),d()})},function(a){c(!1)})},f.any=f.some,f.every=function(a,b,c){f.each(a,function(a,d){b(a,function(a){a||(c(!1),c=function(){}),d()})},function(a){c(!0)})},f.all=f.every,f.sortBy=function(a,b,c){f.map(a,function(a,c){b(a,function(b,d){b?c(b):c(null,{value:a,criteria:d})})},function(a,b){if(a)return c(a);var d=function(a,b){var c=a.criteria,d=b.criteria;return d>c?-1:c>d?1:0};c(null,j(b.sort(d),function(a){return a.value}))})},f.auto=function(a,b){b=b||function(){};var c=l(a),d=c.length;if(!d)return b();var e={},g=[],j=function(a){g.unshift(a)},m=function(a){for(var b=0;bd;){var f=d+(e-d+1>>>1);c(b,a[f])>=0?d=f:e=f-1}return d}function e(a,b,e,g){return a.started||(a.started=!0),h(b)||(b=[b]),0==b.length?f.setImmediate(function(){a.drain&&a.drain()}):void i(b,function(b){var h={data:b,priority:e,callback:"function"==typeof g?g:null};a.tasks.splice(d(a.tasks,h,c)+1,0,h),a.saturated&&a.tasks.length===a.concurrency&&a.saturated(),f.setImmediate(a.process)})}var g=f.queue(a,b);return g.push=function(a,b,c){e(g,a,b,c)},delete g.unshift,g},f.cargo=function(a,b){var c=!1,d=[],e={tasks:d,payload:b,saturated:null,empty:null,drain:null,drained:!0,push:function(a,c){h(a)||(a=[a]),i(a,function(a){d.push({data:a,callback:"function"==typeof c?c:null}),e.drained=!1,e.saturated&&d.length===b&&e.saturated()}),f.setImmediate(e.process)},process:function g(){if(!c){if(0===d.length)return e.drain&&!e.drained&&e.drain(),void(e.drained=!0);var f="number"==typeof b?d.splice(0,b):d.splice(0,d.length),h=j(f,function(a){return a.data});e.empty&&e.empty(),c=!0,a(h,function(){c=!1;var a=arguments;i(f,function(b){b.callback&&b.callback.apply(null,a)}),g()})}},length:function(){return d.length},running:function(){return c}};return e};var x=function(a){return function(b){var c=Array.prototype.slice.call(arguments,1);b.apply(null,c.concat([function(b){var c=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(b?console.error&&console.error(b):console[a]&&i(c,function(b){console[a](b)}))}]))}};f.log=x("log"),f.dir=x("dir"),f.memoize=function(a,b){var c={},d={};b=b||function(a){return a};var e=function(){var e=Array.prototype.slice.call(arguments),g=e.pop(),h=b.apply(null,e);h in c?f.nextTick(function(){g.apply(null,c[h])}):h in d?d[h].push(g):(d[h]=[g],a.apply(null,e.concat([function(){c[h]=arguments;var a=d[h];delete d[h];for(var b=0,e=a.length;e>b;b++)a[b].apply(null,arguments)}])))};return e.memo=c,e.unmemoized=a,e},f.unmemoize=function(a){return function(){return(a.unmemoized||a).apply(null,arguments)}},f.times=function(a,b,c){for(var d=[],e=0;a>e;e++)d.push(e);return f.map(d,b,c)},f.timesSeries=function(a,b,c){for(var d=[],e=0;a>e;e++)d.push(e);return f.mapSeries(d,b,c)},f.seq=function(){var a=arguments;return function(){var b=this,c=Array.prototype.slice.call(arguments),d=c.pop();f.reduce(a,c,function(a,c,d){c.apply(b,a.concat([function(){var a=arguments[0],b=Array.prototype.slice.call(arguments,1);d(a,b)}]))},function(a,c){d.apply(b,[a].concat(c))})}},f.compose=function(){return f.seq.apply(null,Array.prototype.reverse.call(arguments))};var y=function(a,b){var c=function(){var c=this,d=Array.prototype.slice.call(arguments),e=d.pop();return a(b,function(a,b){a.apply(c,d.concat([b]))},e)};if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return c.apply(this,d)}return c};f.applyEach=n(y),f.applyEachSeries=p(y),f.forever=function(a,b){function c(d){if(d){if(b)return b(d);throw d}a(c)}c()},"undefined"!=typeof b&&b.exports?b.exports=f:"undefined"!=typeof define&&define.amd?define([],function(){return f}):d.async=f}()}).call(this,a("_process"))},{_process:301}],11:[function(a,b,c){b.exports=a("./lib/mnemonic")},{"./lib/mnemonic":13}],12:[function(a,b,c){"use strict";var d={name:"Mnemonic",message:"Internal Error on bitcore-mnemonic module {0}",errors:[{name:"InvalidEntropy",message:"Entropy length must be an even multiple of 11 bits: {0}"},{name:"UnknownWordlist",message:"Could not detect the used word list: {0}"},{name:"InvalidMnemonic",message:"Mnemonic string is invalid: {0}"}]};b.exports=a("bitcore").errors.extend(d)},{bitcore:51}],13:[function(a,b,c){(function(c){"use strict";var d=a("bitcore"),e=d.crypto.BN,f=a("unorm"),g=d.deps._,h=a("./pbkdf2"),i=a("./errors"),j=d.crypto.Hash,k=d.crypto.Random,l=d.util.preconditions,m=function(a,b){if(!(this instanceof m))return new m(a,b);g.isArray(a)&&(b=a,a=null);var e,h,j;if(c.isBuffer(a))j=a;else if(g.isString(a))h=f.nfkd(a);else if(g.isNumber(a))e=a;else if(a)throw new d.errors.InvalidArgument("data","Must be a Buffer, a string or an integer");if(e=e||128,b=b||m._getDictionary(h),h&&!b)throw new i.UnknownWordlist(h);if(b=b||m.Words.ENGLISH,j&&(h=m._entropy2mnemonic(j,b)),h&&!m.isValid(h,b))throw new i.InvalidMnemonic(h);if(e%32!==0||128>e)throw new d.errors.InvalidArgument("ENT","Values must be ENT > 128 and ENT % 32 == 0");h=h||m._mnemonic(e,b),Object.defineProperty(this,"wordlist",{configurable:!1,value:b}),Object.defineProperty(this,"phrase",{configurable:!1,value:h})};m.Words=a("./words"),m.isValid=function(a,b){if(a=f.nfkd(a),b=b||m._getDictionary(a),!b)return!1;for(var d=a.split(" "),e="",g=0;gh)return!1;e+=("00000000000"+h.toString(2)).slice(-11)}var i=e.length/33,j=e.slice(-i),k=e.slice(0,e.length-i),l=new c(k.length/8);for(g=0;ge)return!1}return!0},m._getDictionary=function(a){if(!a)return null;for(var b=Object.keys(m.Words),c=0;c"},m._mnemonic=function(a,b){var c=k.getRandomBuffer(a/8);return m._entropy2mnemonic(c,b)},m._entropy2mnemonic=function(a,b){for(var c="",d=0;d(Math.pow(2,32)-1)*g)throw Error("Requested key length too long");if("string"!=typeof a&&!c.isBuffer(a))throw new TypeError("key must a string or Buffer");if("string"!=typeof b&&!c.isBuffer(b))throw new TypeError("salt must a string or Buffer");"string"==typeof b&&(b=new c(b));var h=new c(f),i=new c(g),j=new c(g),k=new c(b.length+4),l=Math.ceil(f/g),m=f-(l-1)*g;b.copy(k,0,0,b.length);for(var n=1;l>=n;n++){k[b.length+0]=n>>24&255,k[b.length+1]=n>>16&255,k[b.length+2]=n>>8&255,k[b.length+3]=n>>0&255,i=e.createHmac("sha512",a).update(k).digest(),i.copy(j,0,0,g);for(var o=1;d>o;o++){i=e.createHmac("sha512",a).update(i).digest();for(var p=0;g>p;p++)j[p]^=i[p]}var q=(n-1)*g,r=n===l?m:g;j.copy(h,q,0,r)}return h}var e=a("crypto");b.exports=d}).call(this,a("buffer").Buffer)},{buffer:145,crypto:151}],15:[function(a,b,c){"use strict";var d=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"];b.exports=d},{}],16:[function(a,b,c){"use strict";var d=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]; b.exports=d},{}],17:[function(a,b,c){"use string";var d=["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"];b.exports=d},{}],18:[function(a,b,c){b.exports={CHINESE:a("./chinese"),ENGLISH:a("./english"),FRENCH:a("./french"),JAPANESE:a("./japanese"),SPANISH:a("./spanish")}},{"./chinese":15,"./english":16,"./french":17,"./japanese":19,"./spanish":20}],19:[function(a,b,c){"use strict";var d=["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]; b.exports=d},{}],20:[function(a,b,c){"use strict";var d=["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"];b.exports=d},{}],21:[function(a,b,c){!function(a){"use strict";function c(a,b,c){var d=x[b];return d||(d=a(b,c),d.feature&&++y[b>>8&255]>m&&(x[b]=d)),d}function d(a,b,c){var d=65280&b,e=w.udata[d]||{},f=e[b];return f?new w(b,f):new w(b,l)}function e(a,b,c){return c?a(b,c):new w(b,null)}function f(a,b,c){var d;if(o>b||b>=o+r&&n>b||b>n+v)return a(b,c);if(b>=o&&o+r>b){var e={},f=(b-o)*s;for(d=0;s>d;++d)e[p+d]=n+t*(d+f);return new w(b,[,,e])}var g=b-n,h=g%t,i=[];if(0!==h)i[0]=[n+g-h,q+h];else for(i[0]=[o+Math.floor(g/u),p+Math.floor(g%u/t)],i[2]={},d=1;t>d;++d)i[2][q+d]=b+d;return new w(b,i)}function g(a,b,c){return 60>b||b>13311&&42607>b?new w(b,l):a(b,c)}function h(a){return G("NFD",a)}function i(a){return G("NFKD",a)}function j(a){return G("NFC",a)}function k(a){return G("NFKC",a)}for(var l=[null,0,{}],m=10,n=44032,o=4352,p=4449,q=4519,r=19,s=21,t=28,u=s*t,v=r*u,w=function(a,b){this.codepoint=a,this.feature=b},x={},y=[],z=0;255>=z;++z)y[z]=0;var A=[g,c,e,f,d];w.fromCharCode=A.reduceRight(function(a,b){return function(c,d){return b(a,c,d)}},null),w.isHighSurrogate=function(a){return a>=55296&&56319>=a},w.isLowSurrogate=function(a){return a>=56320&&57343>=a},w.prototype.prepFeature=function(){this.feature||(this.feature=w.fromCharCode(this.codepoint,!0).feature)},w.prototype.toString=function(){if(this.codepoint<65536)return String.fromCharCode(this.codepoint);var a=this.codepoint-65536;return String.fromCharCode(Math.floor(a/1024)+55296,a%1024+56320)},w.prototype.getDecomp=function(){return this.prepFeature(),this.feature[0]||null},w.prototype.isCompatibility=function(){return this.prepFeature(),!!this.feature[1]&&256&this.feature[1]},w.prototype.isExclude=function(){return this.prepFeature(),!!this.feature[1]&&512&this.feature[1]},w.prototype.getCanonicalClass=function(){return this.prepFeature(),this.feature[1]?255&this.feature[1]:0},w.prototype.getComposite=function(a){if(this.prepFeature(),!this.feature[2])return null;var b=this.feature[2][a.codepoint];return b?w.fromCharCode(b):null};var B=function(a){this.str=a,this.cursor=0};B.prototype.next=function(){if(this.str&&this.cursor0;--c){var d=this.resBuf[c-1],e=d.getCanonicalClass();if(a>=e)break}this.resBuf.splice(c,0,b)}while(0!==a);return this.resBuf.shift()};var E=function(a){this.it=a,this.procBuf=[],this.resBuf=[],this.lastClass=null};E.prototype.next=function(){for(;0===this.resBuf.length;){var a=this.it.next();if(!a){this.resBuf=this.procBuf,this.procBuf=[];break}if(0===this.procBuf.length)this.lastClass=a.getCanonicalClass(),this.procBuf.push(a);else{var b=this.procBuf[0],c=b.getComposite(a),d=a.getCanonicalClass();c&&(this.lastClass0&&"\ufeff"===o[0][0]&&(o[0]=o[0].substring(1)),a.body=o.join("")),b._json)try{a.body=JSON.parse(a.body,b._jsonReviver)}catch(c){k("invalid JSON received",b.uri.href)}k("emitting complete",b.uri.href),"undefined"!=typeof a.body||b._json||(a.body=null===b.encoding?new d(0):""),b.emit("complete",a,a.body)})}else b.on("end",function(){return b._aborted?void k("aborted",b.uri.href):void b.emit("complete",a)});k("finish init function",b.uri.href)}},j.prototype.abort=function(){var a=this;a._aborted=!0,a.req?a.req.abort():a.response&&a.response.abort(),a.emit("abort")},j.prototype.pipeDest=function(a){var b=this,c=b.response;if(a.headers&&!a.headersSent){if(c.caseless.has("content-type")){var d=c.caseless.has("content-type");a.setHeader?a.setHeader(d,c.headers[d]):a.headers[d]=c.headers[d]}if(c.caseless.has("content-length")){var e=c.caseless.has("content-length");a.setHeader?a.setHeader(e,c.headers[e]):a.headers[e]=c.headers[e]}}if(a.setHeader&&!a.headersSent){for(var f in c.headers)b.gzip&&"content-encoding"===f||a.setHeader(f,c.headers[f]);a.statusCode=c.statusCode}b.pipefilter&&b.pipefilter(c,a)},j.prototype.qs=function(a,b){var c,d=this;c=!b&&d.uri.query?d._qs.parse(d.uri.query):{};for(var e in a)c[e]=a[e];if(""===d._qs.stringify(c))return d;var f=d._qs.stringify(c);return d.uri=n.parse(d.uri.href.split("?")[0]+"?"+f),d.url=d.uri,d.path=d.uri.path,d},j.prototype.form=function(a){var b=this;return a?(/^application\/x-www-form-urlencoded\b/.test(b.getHeader("content-type"))||b.setHeader("content-type","application/x-www-form-urlencoded"),b.body="string"==typeof a?b._qs.rfc3986(a.toString("utf8")):b._qs.stringify(a).toString("utf8"),b):(b._form=new z,b._form.on("error",function(a){a.message="form-data: "+a.message,b.emit("error",a),b.abort()}),b._form)},j.prototype.multipart=function(a){var b=this;return b._multipart.onRequest(a),b._multipart.chunked||(b.body=b._multipart.body),b},j.prototype.json=function(a){var b=this;return b.hasHeader("accept")||b.setHeader("accept","application/json"),b._json=!0,"boolean"==typeof a?void 0!==b.body&&(/^application\/x-www-form-urlencoded\b/.test(b.getHeader("content-type"))?b.body=b._qs.rfc3986(b.body):b.body=K(b.body),b.hasHeader("content-type")||b.setHeader("content-type","application/json")):(b.body=K(a),b.hasHeader("content-type")||b.setHeader("content-type","application/json")),"function"==typeof b.jsonReviver&&(b._jsonReviver=b.jsonReviver),b},j.prototype.getHeader=function(a,b){var c,d,e,f=this;return b||(b=f.headers),Object.keys(b).forEach(function(f){f.length===a.length&&(d=new RegExp(a,"i"),e=f.match(d),e&&(c=b[f]))}),c},j.prototype.auth=function(a,b,c,d){var e=this;return e._auth.onRequest(a,b,c,d),e},j.prototype.aws=function(a,b){var c=this;if(!b)return c._aws=a,c;var d=new Date;c.setHeader("date",d.toUTCString());var e={key:a.key,secret:a.secret,verb:c.method.toUpperCase(),date:d,contentType:c.getHeader("content-type")||"",md5:c.getHeader("content-md5")||"",amazonHeaders:t.canonicalizeHeaders(c.headers)},f=c.uri.path;return a.bucket&&f?e.resource="/"+a.bucket+f:a.bucket&&!f?e.resource="/"+a.bucket:!a.bucket&&f?e.resource=f:a.bucket||f||(e.resource="/"),e.resource=t.canonicalizeResource(e.resource),c.setHeader("authorization",t.authorization(e)),c},j.prototype.httpSignature=function(a){var b=this;return u.signRequest({getHeader:function(a){return b.getHeader(a,b.headers)},setHeader:function(a,c){b.setHeader(a,c)},method:b.method,path:b.path},a),k("httpSignature authorization",b.getHeader("authorization")),b},j.prototype.hawk=function(a){var b=this;b.setHeader("Authorization",s.client.header(b.uri,b.method,a).field)},j.prototype.oauth=function(a){var b=this;return b._oauth.onRequest(a),b},j.prototype.jar=function(a){var b,c=this;if(0===c._redirect.redirectsFollowed&&(c.originalCookieHeader=c.getHeader("cookie")),a){var d=a&&a.getCookieString?a:Q,e=c.uri.href;d&&(b=d.getCookieString(e))}else b=!1,c._disableCookies=!0;return b&&b.length&&(c.originalCookieHeader?c.setHeader("cookie",c.originalCookieHeader+"; "+b):c.setHeader("cookie",b)),c._jar=a,c},j.prototype.pipe=function(a,b){var c=this;if(!c.response)return c.dests.push(a),p.Stream.prototype.pipe.call(c,a,b),a;if(c._destdata)c.emit("error",new Error("You cannot pipe after data has been emitted from the response."));else{if(!c._ended)return p.Stream.prototype.pipe.call(c,a,b),c.pipeDest(a),a;c.emit("error",new Error("You cannot pipe after the response has been ended."))}},j.prototype.write=function(){var a=this;return a._started||a.start(),a.req.write.apply(a.req,arguments)},j.prototype.end=function(a){var b=this;a&&b.write(a),b._started||b.start(),b.req.end()},j.prototype.pause=function(){var a=this;a.responseContent?a.responseContent.pause.apply(a.responseContent,arguments):a._paused=!0},j.prototype.resume=function(){var a=this;a.responseContent?a.responseContent.resume.apply(a.responseContent,arguments):a._paused=!1},j.prototype.destroy=function(){var a=this;a._ended?a.response&&a.response.destroy():a.end()},j.defaultProxyHeaderWhiteList=J.defaultProxyHeaderWhiteList.slice(),j.defaultProxyHeaderExclusiveList=J.defaultProxyHeaderExclusiveList.slice(),j.prototype.toJSON=h,b.exports=j}).call(this,a("_process"),a("buffer").Buffer)},{"./lib/auth":331,"./lib/cookies":332,"./lib/getProxyFromURI":333,"./lib/har":334,"./lib/helpers":335,"./lib/multipart":336,"./lib/oauth":337,"./lib/querystring":338,"./lib/redirect":339,"./lib/tunnel":340,_process:301,"aws-sign2":341,bl:342,buffer:145,caseless:353,"forever-agent":357,"form-data":358,hawk:384,http:293,"http-signature":385,https:297,"mime-types":402,stream:317,stringstream:411,url:319,util:321,zlib:144}],421:[function(a,b,c){"use strict";function d(a){throw a}function e(a,b,c){4!==b.length&&d(new n.exception.invalid("invalid aes block size"));var e=a.b[c],f=b[0]^e[0],g=b[c?3:1]^e[1],h=b[2]^e[2];b=b[c?1:3]^e[3];var i,j,k,l,m=e.length/4-2,o=4,p=[0,0,0,0];i=a.k[c],a=i[0];var q=i[1],r=i[2],s=i[3],t=i[4];for(l=0;m>l;l++)i=a[f>>>24]^q[g>>16&255]^r[h>>8&255]^s[255&b]^e[o],j=a[g>>>24]^q[h>>16&255]^r[b>>8&255]^s[255&f]^e[o+1],k=a[h>>>24]^q[b>>16&255]^r[f>>8&255]^s[255&g]^e[o+2],b=a[b>>>24]^q[f>>16&255]^r[g>>8&255]^s[255&h]^e[o+3],o+=4,f=i,g=j,h=k;for(l=0;4>l;l++)p[c?3&-l:l]=t[f>>>24]<<24^t[g>>16&255]<<16^t[h>>8&255]<<8^t[255&b]^e[o++],i=f,f=g,g=h,h=b,b=i;return p}function f(a,b){var c,d,e,f=b.slice(0),g=a.r,h=a.b,i=g[0],j=g[1],k=g[2],l=g[3],m=g[4],n=g[5],o=g[6],p=g[7];for(c=0;64>c;c++)16>c?d=f[c]:(d=f[c+1&15],e=f[c+14&15],d=f[15&c]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+f[15&c]+f[c+9&15]|0),d=d+p+(m>>>6^m>>>11^m>>>25^m<<26^m<<21^m<<7)+(o^m&(n^o))+h[c],p=o,o=n,n=m,m=l+d|0,l=k,k=j,j=i,i=d+(j&k^l&(j^k))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;g[0]=g[0]+i|0,g[1]=g[1]+j|0,g[2]=g[2]+k|0,g[3]=g[3]+l|0,g[4]=g[4]+m|0,g[5]=g[5]+n|0,g[6]=g[6]+o|0,g[7]=g[7]+p|0}function g(a,b){var c,d=n.random.w[a],e=[];for(c in d)d.hasOwnProperty(c)&&e.push(d[c]);for(c=0;cb&&(a.f[b]=a.f[b]+1|0,!a.f[b]);b++);return a.A.encrypt(a.f)}function k(a,b){return function(){b.apply(a,arguments)}}var l=void 0,m=!1,n={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return"CORRUPT: "+this.message},this.message=a},invalid:function(a){this.toString=function(){return"INVALID: "+this.message},this.message=a},bug:function(a){this.toString=function(){return"BUG: "+this.message},this.message=a},notReady:function(a){this.toString=function(){return"NOT READY: "+this.message},this.message=a}}};"undefined"!=typeof b&&b.exports&&(b.exports=n),"function"==typeof define&&define([],function(){return n}),n.cipher.aes=function(a){this.k[0][0][0]||this.D();var b,c,e,f,g=this.k[0][4],h=this.k[1];b=a.length;var i=1;for(4!==b&&6!==b&&8!==b&&d(new n.exception.invalid("invalid aes key size")),this.b=[e=a.slice(0),f=[]],a=b;4*b+28>a;a++)c=e[a-1],(0===a%b||8===b&&4===a%b)&&(c=g[c>>>24]<<24^g[c>>16&255]<<16^g[c>>8&255]<<8^g[255&c],0===a%b&&(c=c<<8^c>>>24^i<<24,i=i<<1^283*(i>>7))),e[a]=e[a-b]^c;for(b=0;a;b++,a--)c=e[3&b?a:a-4],f[b]=4>=a||4>b?c:h[0][g[c>>>24]]^h[1][g[c>>16&255]]^h[2][g[c>>8&255]]^h[3][g[255&c]]},n.cipher.aes.prototype={encrypt:function(a){return e(this,a,0)},decrypt:function(a){return e(this,a,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var a,b,c,d,e,f,g,h=this.k[0],i=this.k[1],j=h[4],k=i[4],l=[],m=[];for(a=0;256>a;a++)m[(l[a]=a<<1^283*(a>>7))^a]=a;for(b=c=0;!j[b];b^=d||1,c=m[c]||1)for(f=c^c<<1^c<<2^c<<3^c<<4,f=f>>8^255&f^99,j[b]=f,k[f]=b,e=l[a=l[d=l[b]]],g=16843009*e^65537*a^257*d^16843008*b,e=257*l[f]^16843008*f,a=0;4>a;a++)h[a][b]=e=e<<24^e>>>8,i[a][f]=g=g<<24^g>>>8;for(a=0;5>a;a++)h[a]=h[a].slice(0),i[a]=i[a].slice(0)}},n.bitArray={bitSlice:function(a,b,c){return a=n.bitArray.P(a.slice(b/32),32-(31&b)).slice(1),c===l?a:n.bitArray.clamp(a,c-b)},extract:function(a,b,c){var d=Math.floor(-b-c&31);return(-32&(b+c-1^b)?a[b/32|0]<<32-d^a[b/32+1|0]>>>d:a[b/32|0]>>>d)&(1<0&&b&&(a[c-1]=n.bitArray.partial(b,a[c-1]&2147483648>>b-1,1)),a},partial:function(a,b,c){return 32===a?b:(c?0|b:b<<32-a)+1099511627776*a},getPartial:function(a){return Math.round(a/1099511627776)||32},equal:function(a,b){if(n.bitArray.bitLength(a)!==n.bitArray.bitLength(b))return m;var c,d=0;for(c=0;c=32;b-=32)d.push(c),c=0;if(0===b)return d.concat(a);for(e=0;e>>b),c=a[e]<<32-b;return e=a.length?a[a.length-1]:0,a=n.bitArray.getPartial(e),d.push(n.bitArray.partial(b+a&31,b+a>32?c:d.pop(),1)),d},l:function(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]},byteswapM:function(a){var b,c;for(b=0;b>>24|c>>>8&65280|(65280&c)<<8|c<<24;return a}},n.codec.utf8String={fromBits:function(a){var b,c,d="",e=n.bitArray.bitLength(a);for(b=0;e/8>b;b++)0===(3&b)&&(c=a[b/4]),d+=String.fromCharCode(c>>>24),c<<=8;return decodeURIComponent(escape(d))},toBits:function(a){a=unescape(encodeURIComponent(a));var b,c=[],d=0;for(b=0;b>>e)>>>26),6>e?(g=a[c]<<6-e,e+=26,c++):(g<<=6,e-=6);for(;3&d.length&&!b;)d+="=";return d},toBits:function(a,b){a=a.replace(/\s|=/g,"");var c,e,f=[],g=0,h=n.codec.base64.J,i=0;for(b&&(h=h.substr(0,62)+"-_"),c=0;ce&&d(new n.exception.invalid("this isn't base64!")),g>26?(g-=26,f.push(i^e>>>g),i=e<<32-g):(g+=6,i^=e<<32-g);return 56&g&&f.push(n.bitArray.partial(56&g,i,1)),f}},n.codec.base64url={fromBits:function(a){return n.codec.base64.fromBits(a,1,1)},toBits:function(a){return n.codec.base64.toBits(a,1)}},n.hash.sha256=function(a){this.b[0]||this.D(),a?(this.r=a.r.slice(0),this.o=a.o.slice(0),this.h=a.h):this.reset()},n.hash.sha256.hash=function(a){return(new n.hash.sha256).update(a).finalize()},n.hash.sha256.prototype={blockSize:512,reset:function(){return this.r=this.N.slice(0),this.o=[],this.h=0,this},update:function(a){"string"==typeof a&&(a=n.codec.utf8String.toBits(a));var b,c=this.o=n.bitArray.concat(this.o,a);for(b=this.h,a=this.h=b+n.bitArray.bitLength(a),b=512+b&-512;a>=b;b+=512)f(this,c.splice(0,16));return this},finalize:function(){var a,b=this.o,c=this.r,b=n.bitArray.concat(b,[n.bitArray.partial(1,1)]);for(a=b.length+2;15&a;a++)b.push(0);for(b.push(Math.floor(this.h/4294967296)),b.push(0|this.h);b.length;)f(this,b.splice(0,16));return this.reset(),c},N:[],b:[],D:function(){function a(a){return 4294967296*(a-Math.floor(a))|0}var b,c=0,d=2;a:for(;64>c;d++){for(b=2;d>=b*b;b++)if(0===d%b)continue a;8>c&&(this.N[c]=a(Math.pow(d,.5))),this.b[c]=a(Math.pow(d,1/3)),c++}}},n.mode.ccm={name:"ccm",encrypt:function(a,b,c,e,f){var g,h=b.slice(0),i=n.bitArray,j=i.bitLength(c)/8,k=i.bitLength(h)/8;for(f=f||64,e=e||[],7>j&&d(new n.exception.invalid("ccm: iv must be at least 7 bytes")),g=2;4>g&&k>>>8*g;g++);return 15-j>g&&(g=15-j),c=i.clamp(c,8*(15-g)),b=n.mode.ccm.L(a,b,c,e,f,g),h=n.mode.ccm.p(a,h,c,b,f,g),i.concat(h.data,h.tag)},decrypt:function(a,b,c,e,f){f=f||64,e=e||[];var g=n.bitArray,h=g.bitLength(c)/8,i=g.bitLength(b),j=g.clamp(b,i-f),k=g.bitSlice(b,i-f),i=(i-f)/8;for(7>h&&d(new n.exception.invalid("ccm: iv must be at least 7 bytes")),b=2;4>b&&i>>>8*b;b++);return 15-h>b&&(b=15-h),c=g.clamp(c,8*(15-b)),j=n.mode.ccm.p(a,j,c,k,f,b),a=n.mode.ccm.L(a,j.data,c,e,f,b),g.equal(j.tag,a)||d(new n.exception.corrupt("ccm: tag doesn't match")),j.data},L:function(a,b,c,e,f,g){var h=[],i=n.bitArray,j=i.l;if(f/=8,(f%2||4>f||f>16)&&d(new n.exception.invalid("ccm: invalid tag length")),(4294967295=c?h=[i.partial(16,c)]:4294967295>=c&&(h=i.concat([i.partial(16,65534)],[c])),h=i.concat(h,e),e=0;eg;g+=4)c[3]++,e=a.encrypt(c),b[g]^=e[0],b[g+1]^=e[1],b[g+2]^=e[2],b[g+3]^=e[3];return{tag:d,data:h.clamp(b,j)}}},n.mode.ocb2={name:"ocb2",encrypt:function(a,b,c,e,f,g){128!==n.bitArray.bitLength(c)&&d(new n.exception.invalid("ocb iv must be 128 bits"));var h,i=n.mode.ocb2.H,j=n.bitArray,k=j.l,l=[0,0,0,0];c=i(a.encrypt(c));var m,o=[];for(e=e||[],f=f||64,h=0;h+4c+4;c+=4)h=l(o,a.decrypt(l(o,b.slice(c,c+4)))),m=l(m,h),q=q.concat(h),o=j(o);return i=p-32*c,h=a.encrypt(l(o,[0,0,0,i])),h=l(h,k.clamp(b.slice(c),i).concat([0,0,0])),m=l(m,h),m=a.encrypt(l(m,l(o,j(o)))),e.length&&(m=l(m,g?e:n.mode.ocb2.pmac(a,e))),k.equal(k.clamp(m,f),k.bitSlice(b,p))||d(new n.exception.corrupt("ocb: tag doesn't match")),q.concat(k.clamp(h,i))},pmac:function(a,b){var c,d=n.mode.ocb2.H,e=n.bitArray,f=e.l,g=[0,0,0,0],h=a.encrypt([0,0,0,0]),h=f(h,d(d(h)));for(c=0;c+4e.bitLength(c)&&(h=f(h,d(h)),c=e.concat(c,[-2147483648,0,0,0])),g=f(g,c),a.encrypt(f(d(f(h,d(h))),g))},H:function(a){return[a[0]<<1^a[1]>>>31,a[1]<<1^a[2]>>>31,a[2]<<1^a[3]>>>31,a[3]<<1^135*(a[0]>>>31)]}},n.mode.gcm={name:"gcm",encrypt:function(a,b,c,d,e){var f=b.slice(0);return b=n.bitArray,d=d||[],a=n.mode.gcm.p(!0,a,f,d,c,e||128),b.concat(a.data,a.tag)},decrypt:function(a,b,c,e,f){var g=b.slice(0),h=n.bitArray,i=h.bitLength(g);return f=f||128,e=e||[],i>=f?(b=h.bitSlice(g,i-f),g=h.bitSlice(g,0,i-f)):(b=g,g=[]),a=n.mode.gcm.p(m,a,g,e,c,f),h.equal(a.tag,b)||d(new n.exception.corrupt("gcm: tag doesn't match")),a.data},Z:function(a,b){var c,d,e,f,g,h=n.bitArray.l;for(e=[0,0,0,0],f=b.slice(0),c=0;128>c;c++){for((d=0!==(a[Math.floor(c/32)]&1<<31-c%32))&&(e=h(e,f)),g=0!==(1&f[3]),d=3;d>0;d--)f[d]=f[d]>>>1|(1&f[d-1])<<31;f[0]>>>=1,g&&(f[0]^=-520093696)}return e},g:function(a,b,c){var d,e=c.length;for(b=b.slice(0),d=0;e>d;d+=4)b[0]^=4294967295&c[d],b[1]^=4294967295&c[d+1],b[2]^=4294967295&c[d+2],b[3]^=4294967295&c[d+3],b=n.mode.gcm.Z(b,a);return b},p:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,o,p=n.bitArray;for(l=c.length,m=p.bitLength(c),o=p.bitLength(d),h=p.bitLength(e),g=b.encrypt([0,0,0,0]),96===h?(e=e.slice(0),e=p.concat(e,[1])):(e=n.mode.gcm.g(g,[0,0,0,0],e),e=n.mode.gcm.g(g,e,[0,0,Math.floor(h/4294967296),4294967295&h])),h=n.mode.gcm.g(g,[0,0,0,0],d),k=e.slice(0),d=h.slice(0),a||(d=n.mode.gcm.g(g,h,c)),j=0;l>j;j+=4)k[3]++,i=b.encrypt(k),c[j]^=i[0],c[j+1]^=i[1],c[j+2]^=i[2],c[j+3]^=i[3];return c=p.clamp(c,m),a&&(d=n.mode.gcm.g(g,h,c)),a=[Math.floor(o/4294967296),4294967295&o,Math.floor(m/4294967296),4294967295&m],d=n.mode.gcm.g(g,d,a),i=b.encrypt(e),d[0]^=i[0],d[1]^=i[1],d[2]^=i[2],d[3]^=i[3],{tag:p.bitSlice(d,0,f),data:c}}},n.misc.hmac=function(a,b){this.M=b=b||n.hash.sha256;var c,d=[[],[]],e=b.prototype.blockSize/32;for(this.n=[new b,new b],a.length>e&&(a=b.hash(a)),c=0;e>c;c++)d[0][c]=909522486^a[c],d[1][c]=1549556828^a[c];this.n[0].update(d[0]),this.n[1].update(d[1]),this.G=new b(this.n[0])},n.misc.hmac.prototype.encrypt=n.misc.hmac.prototype.mac=function(a){return this.Q&&d(new n.exception.invalid("encrypt on already updated hmac called!")),this.update(a),this.digest(a)},n.misc.hmac.prototype.reset=function(){this.G=new this.M(this.n[0]),this.Q=m},n.misc.hmac.prototype.update=function(a){this.Q=!0,this.G.update(a)},n.misc.hmac.prototype.digest=function(){var a=this.G.finalize(),a=new this.M(this.n[1]).update(a).finalize();return this.reset(),a},n.misc.pbkdf2=function(a,b,c,e,f){c=c||1e3,(0>e||0>c)&&d(n.exception.invalid("invalid params to pbkdf2")),"string"==typeof a&&(a=n.codec.utf8String.toBits(a)),"string"==typeof b&&(b=n.codec.utf8String.toBits(b)),f=f||n.misc.hmac,a=new f(a);var g,h,i,j,k=[],l=n.bitArray;for(j=1;32*k.length<(e||1);j++){for(f=g=a.encrypt(l.concat(b,[j])),h=1;c>h;h++)for(g=a.encrypt(g),i=0;ig;g++)f.push(4294967296*Math.random()|0);for(g=0;g=1<this.j&&(this.j=h),this.F++,this.b=n.hash.sha256.hash(this.b.concat(f)),this.A=new n.cipher.aes(this.b),c=0;4>c&&(this.f[c]=this.f[c]+1|0,!this.f[c]);c++);}for(c=0;a>c;c+=4)0===(c+1)%this.S&&i(this),f=j(this),e.push(f[0],f[1],f[2],f[3]);return i(this),e.slice(0,a)},setDefaultParanoia:function(a,b){0===a&&"Setting paranoia=0 will ruin your security; use it only for testing"!==b&&d("Setting paranoia=0 will ruin your security; use it only for testing"),this.B=a},addEntropy:function(a,b,c){c=c||"user";var e,f,h=(new Date).valueOf(),i=this.s[c],j=this.isReady(),k=0;switch(e=this.K[c],e===l&&(e=this.K[c]=this.W++),i===l&&(i=this.s[c]=0),this.s[c]=(this.s[c]+1)%this.c.length,typeof a){case"number":b===l&&(b=1),this.c[i].update([e,this.C++,1,b,h,1,0|a]);break;case"object":if(c=Object.prototype.toString.call(a),"[object Uint32Array]"===c){for(f=[],c=0;c0;)b++,f>>>=1;this.c[i].update([e,this.C++,2,b,h,a.length].concat(a))}break;case"string":b===l&&(b=a.length),this.c[i].update([e,this.C++,3,b,h,a.length]),this.c[i].update(a);break;default:k=1}k&&d(new n.exception.bug("random: addEntropy only supports number, array of numbers or string")),this.i[i]+=b,this.d+=b,j===this.m&&(this.isReady()!==this.m&&g("seeded",Math.max(this.j,this.d)),g("progress",this.getProgress()))},isReady:function(a){return a=this.I[a!==l?a:this.B],this.j&&this.j>=a?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=a?this.u|this.m:this.m},getProgress:function(a){return a=this.I[a?a:this.B],this.j>=a?1:this.d>a?1:this.d/a},startCollectors:function(){this.q||(this.a={loadTimeCollector:k(this,this.aa),mouseCollector:k(this,this.ba),keyboardCollector:k(this,this.$),accelerometerCollector:k(this,this.U),touchCollector:k(this,this.da)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,m),window.addEventListener("mousemove",this.a.mouseCollector,m),window.addEventListener("keypress",this.a.keyboardCollector,m),window.addEventListener("devicemotion",this.a.accelerometerCollector,m),window.addEventListener("touchmove",this.a.touchCollector,m)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):d(new n.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,m),window.removeEventListener("mousemove",this.a.mouseCollector,m),window.removeEventListener("keypress",this.a.keyboardCollector,m),window.removeEventListener("devicemotion",this.a.accelerometerCollector,m),window.removeEventListener("touchmove",this.a.touchCollector,m)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=m)},addEventListener:function(a,b){this.w[a][this.V++]=b},removeEventListener:function(a,b){var c,d,e=this.w[a],f=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&f.push(d);for(c=0;c=h.iter||64!==h.ts&&96!==h.ts&&128!==h.ts||128!==h.ks&&192!==h.ks&&256!==h.ks||2>h.iv.length||4=b.iter||64!==b.ts&&96!==b.ts&&128!==b.ts||128!==b.ks&&192!==b.ks&&256!==b.ks||!b.iv||2>b.iv.length||40&&!this.encoding){var a=this.packetBuffer.shift();this.packet(a)}},d.prototype.cleanup=function(){for(var a;a=this.subs.shift();)a.destroy();this.packetBuffer=[],this.encoding=!1,this.decoder.destroy()},d.prototype.close=d.prototype.disconnect=function(){this.skipReconnect=!0,this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},d.prototype.onclose=function(a){k("close"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",a),this._reconnection&&!this.skipReconnect&&this.reconnect()},d.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var a=this;if(this.backoff.attempts>=this._reconnectionAttempts)k("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var b=this.backoff.duration();k("will wait %dms before reconnect attempt",b),this.reconnecting=!0;var c=setTimeout(function(){a.skipReconnect||(k("attempting reconnect"),a.emitAll("reconnect_attempt",a.backoff.attempts),a.emitAll("reconnecting",a.backoff.attempts),a.skipReconnect||a.open(function(b){b?(k("reconnect attempt error"),a.reconnecting=!1,a.reconnect(),a.emitAll("reconnect_error",b.data)):(k("reconnect success"),a.onreconnect())}))},b);this.subs.push({destroy:function(){clearTimeout(c)}})}},d.prototype.onreconnect=function(){var a=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",a)}},{"./on":425,"./socket":426,"./url":427,backo2:428,"component-bind":429,"component-emitter":430,debug:431,"engine.io-client":432,indexof:463,"object-component":464,"socket.io-parser":467}],425:[function(a,b,c){function d(a,b,c){return a.on(b,c),{destroy:function(){a.removeListener(b,c)}}}b.exports=d},{}],426:[function(a,b,c){function d(a,b){this.io=a,this.nsp=b,this.json=this,this.ids=0,this.acks={},this.io.autoConnect&&this.open(),this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0}var e=a("socket.io-parser"),f=a("component-emitter"),g=a("to-array"),h=a("./on"),i=a("component-bind"),j=a("debug")("socket.io-client:socket"),k=a("has-binary");b.exports=c=d;var l={connect:1,connect_error:1,connect_timeout:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1},m=f.prototype.emit;f(d.prototype),d.prototype.subEvents=function(){if(!this.subs){var a=this.io;this.subs=[h(a,"open",i(this,"onopen")),h(a,"packet",i(this,"onpacket")),h(a,"close",i(this,"onclose"))]}},d.prototype.open=d.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"==this.io.readyState&&this.onopen(),this)},d.prototype.send=function(){var a=g(arguments);return a.unshift("message"),this.emit.apply(this,a),this},d.prototype.emit=function(a){if(l.hasOwnProperty(a))return m.apply(this,arguments),this;var b=g(arguments),c=e.EVENT;k(b)&&(c=e.BINARY_EVENT);var d={type:c,data:b};return"function"==typeof b[b.length-1]&&(j("emitting packet with ack id %d",this.ids),this.acks[this.ids]=b.pop(),d.id=this.ids++),this.connected?this.packet(d):this.sendBuffer.push(d),this},d.prototype.packet=function(a){a.nsp=this.nsp,this.io.packet(a)},d.prototype.onopen=function(){j("transport is open - connecting"),"/"!=this.nsp&&this.packet({type:e.CONNECT})},d.prototype.onclose=function(a){j("close (%s)",a),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",a)},d.prototype.onpacket=function(a){if(a.nsp==this.nsp)switch(a.type){case e.CONNECT:this.onconnect();break;case e.EVENT:this.onevent(a);break;case e.BINARY_EVENT:this.onevent(a);break;case e.ACK:this.onack(a);break;case e.BINARY_ACK:this.onack(a);break;case e.DISCONNECT:this.ondisconnect();break;case e.ERROR:this.emit("error",a.data)}},d.prototype.onevent=function(a){var b=a.data||[];j("emitting event %j",b),null!=a.id&&(j("attaching ack callback to event"),b.push(this.ack(a.id))),this.connected?m.apply(this,b):this.receiveBuffer.push(b)},d.prototype.ack=function(a){var b=this,c=!1;return function(){if(!c){c=!0;var d=g(arguments);j("sending ack %j",d);var f=k(d)?e.BINARY_ACK:e.ACK;b.packet({type:f,id:a,data:d})}}},d.prototype.onack=function(a){j("calling ack %s with %j",a.id,a.data);var b=this.acks[a.id];b.apply(this,a.data),delete this.acks[a.id]},d.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},d.prototype.emitBuffered=function(){var a;for(a=0;a0&&a.jitter<=1?a.jitter:0,this.attempts=0}b.exports=d,d.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var b=Math.random(),c=Math.floor(b*this.jitter*a);a=0==(1&Math.floor(10*b))?a-c:a+c}return 0|Math.min(a,this.max)},d.prototype.reset=function(){this.attempts=0},d.prototype.setMin=function(a){this.ms=a},d.prototype.setMax=function(a){this.max=a},d.prototype.setJitter=function(a){this.jitter=a}},{}],429:[function(a,b,c){var d=[].slice;b.exports=function(a,b){if("string"==typeof b&&(b=a[b]),"function"!=typeof b)throw new Error("bind() requires a function");var c=d.call(arguments,2);return function(){return b.apply(a,c.concat(d.call(arguments)))}}},{}],430:[function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}b.exports=d,d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks[a]=this._callbacks[a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){d.off(a,c),b.apply(this,arguments)}var d=this;return this._callbacks=this._callbacks||{},c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks[a];if(!c)return this;if(1==arguments.length)return delete this._callbacks[a],this;for(var d,e=0;ed;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks[a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],431:[function(a,b,c){function d(a){return d.enabled(a)?function(b){b=e(b);var c=new Date,f=c-(d[a]||c);d[a]=c,b=a+" "+b+" +"+d.humanize(f),window.console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}:function(){}}function e(a){return a instanceof Error?a.stack||a.message:a}b.exports=d,d.names=[],d.skips=[],d.enable=function(a){try{localStorage.debug=a}catch(b){}for(var c=(a||"").split(/[\s,]+/),e=c.length,f=0;e>f;f++)a=c[f].replace("*",".*?"),"-"===a[0]?d.skips.push(new RegExp("^"+a.substr(1)+"$")):d.names.push(new RegExp("^"+a+"$"))},d.disable=function(){d.enable("")},d.humanize=function(a){var b=1e3,c=6e4,d=60*c;return a>=d?(a/d).toFixed(1)+"h":a>=c?(a/c).toFixed(1)+"m":a>=b?(a/b|0)+"s":a+"ms"},d.enabled=function(a){for(var b=0,c=d.skips.length;c>b;b++)if(d.skips[b].test(a))return!1;for(var b=0,c=d.names.length;c>b;b++)if(d.names[b].test(a))return!0;return!1};try{window.localStorage&&d.enable(localStorage.debug)}catch(f){}},{}],432:[function(a,b,c){b.exports=a("./lib/")},{"./lib/":433}],433:[function(a,b,c){b.exports=a("./socket"),b.exports.parser=a("engine.io-parser")},{"./socket":434,"engine.io-parser":446}],434:[function(a,b,c){(function(c){function d(a,b){if(!(this instanceof d))return new d(a,b);if(b=b||{},a&&"object"==typeof a&&(b=a,a=null),a&&(a=k(a),b.host=a.host,b.secure="https"==a.protocol||"wss"==a.protocol,b.port=a.port,a.query&&(b.query=a.query)),this.secure=null!=b.secure?b.secure:c.location&&"https:"==location.protocol,b.host){var e=b.host.split(":");b.hostname=e.shift(),e.length?b.port=e.pop():b.port||(b.port=this.secure?"443":"80")}this.agent=b.agent||!1,this.hostname=b.hostname||(c.location?location.hostname:"localhost"),this.port=b.port||(c.location&&location.port?location.port:this.secure?443:80),this.query=b.query||{},"string"==typeof this.query&&(this.query=m.decode(this.query)),this.upgrade=!1!==b.upgrade,this.path=(b.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!b.forceJSONP,this.jsonp=!1!==b.jsonp,this.forceBase64=!!b.forceBase64,this.enablesXDR=!!b.enablesXDR,this.timestampParam=b.timestampParam||"t",this.timestampRequests=b.timestampRequests,this.transports=b.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.callbackBuffer=[],this.policyPort=b.policyPort||843,this.rememberUpgrade=b.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=b.onlyBinaryUpgrades,this.pfx=b.pfx||null,this.key=b.key||null,this.passphrase=b.passphrase||null,this.cert=b.cert||null,this.ca=b.ca||null,this.ciphers=b.ciphers||null,this.rejectUnauthorized=b.rejectUnauthorized||null,this.open()}function e(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var f=a("./transports"),g=a("component-emitter"),h=a("debug")("engine.io-client:socket"),i=a("indexof"),j=a("engine.io-parser"),k=a("parseuri"),l=a("parsejson"),m=a("parseqs");b.exports=d,d.priorWebsocketSuccess=!1,g(d.prototype),d.protocol=j.protocol,d.Socket=d,d.Transport=a("./transport"),d.transports=a("./transports"),d.parser=a("engine.io-parser"),d.prototype.createTransport=function(a){h('creating transport "%s"',a);var b=e(this.query);b.EIO=j.protocol,b.transport=a,this.id&&(b.sid=this.id);var c=new f[a]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:b,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized});return c},d.prototype.open=function(){var a;if(this.rememberUpgrade&&d.priorWebsocketSuccess&&-1!=this.transports.indexOf("websocket"))a="websocket";else{if(0==this.transports.length){var b=this;return void setTimeout(function(){b.emit("error","No transports available")},0)}a=this.transports[0]}this.readyState="opening";var a;try{a=this.createTransport(a)}catch(c){return this.transports.shift(),void this.open()}a.open(),this.setTransport(a)},d.prototype.setTransport=function(a){h("setting transport %s",a.name);var b=this;this.transport&&(h("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=a,a.on("drain",function(){b.onDrain()}).on("packet",function(a){b.onPacket(a)}).on("error",function(a){b.onError(a)}).on("close",function(){b.onClose("transport close")})},d.prototype.probe=function(a){function b(){if(m.onlyBinaryUpgrades){var b=!this.supportsBinary&&m.transport.supportsBinary;l=l||b}l||(h('probe transport "%s" opened',a),k.send([{type:"ping",data:"probe"}]),k.once("packet",function(b){if(!l)if("pong"==b.type&&"probe"==b.data){if(h('probe transport "%s" pong',a),m.upgrading=!0,m.emit("upgrading",k),!k)return;d.priorWebsocketSuccess="websocket"==k.name,h('pausing current transport "%s"',m.transport.name),m.transport.pause(function(){l||"closed"!=m.readyState&&(h("changing transport and sending upgrade packet"),j(),m.setTransport(k),k.send([{type:"upgrade"}]),m.emit("upgrade",k),k=null,m.upgrading=!1,m.flush())})}else{h('probe transport "%s" failed',a);var c=new Error("probe error");c.transport=k.name,m.emit("upgradeError",c)}}))}function c(){l||(l=!0,j(),k.close(),k=null)}function e(b){var d=new Error("probe error: "+b);d.transport=k.name,c(),h('probe transport "%s" failed because of error: %s',a,b),m.emit("upgradeError",d)}function f(){e("transport closed")}function g(){e("socket closed")}function i(a){k&&a.name!=k.name&&(h('"%s" works - aborting "%s"',a.name,k.name),c())}function j(){k.removeListener("open",b),k.removeListener("error",e),k.removeListener("close",f),m.removeListener("close",g),m.removeListener("upgrading",i)}h('probing transport "%s"',a);var k=this.createTransport(a,{probe:1}),l=!1,m=this;d.priorWebsocketSuccess=!1,k.once("open",b),k.once("error",e),k.once("close",f),this.once("close",g),this.once("upgrading",i),k.open()},d.prototype.onOpen=function(){if(h("socket open"),this.readyState="open",d.priorWebsocketSuccess="websocket"==this.transport.name,this.emit("open"),this.flush(),"open"==this.readyState&&this.upgrade&&this.transport.pause){h("starting upgrade probes");for(var a=0,b=this.upgrades.length;b>a;a++)this.probe(this.upgrades[a])}},d.prototype.onPacket=function(a){if("opening"==this.readyState||"open"==this.readyState)switch(h('socket receive: type "%s", data "%s"',a.type,a.data),this.emit("packet",a),this.emit("heartbeat"),a.type){case"open":this.onHandshake(l(a.data));break;case"pong":this.setPing();break;case"error":var b=new Error("server error");b.code=a.data,this.emit("error",b);break;case"message":this.emit("data",a.data),this.emit("message",a.data)}else h('packet received with socket readyState "%s"',this.readyState)},d.prototype.onHandshake=function(a){this.emit("handshake",a),this.id=a.sid,this.transport.query.sid=a.sid,this.upgrades=this.filterUpgrades(a.upgrades),this.pingInterval=a.pingInterval,this.pingTimeout=a.pingTimeout,this.onOpen(),"closed"!=this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},d.prototype.onHeartbeat=function(a){clearTimeout(this.pingTimeoutTimer);var b=this;b.pingTimeoutTimer=setTimeout(function(){"closed"!=b.readyState&&b.onClose("ping timeout")},a||b.pingInterval+b.pingTimeout)},d.prototype.setPing=function(){var a=this;clearTimeout(a.pingIntervalTimer),a.pingIntervalTimer=setTimeout(function(){h("writing ping packet - expecting pong within %sms",a.pingTimeout),a.ping(),a.onHeartbeat(a.pingTimeout)},a.pingInterval)},d.prototype.ping=function(){this.sendPacket("ping")},d.prototype.onDrain=function(){for(var a=0;ac;c++)~i(this.transports,a[c])&&b.push(a[c]);return b}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}); },{"./transport":435,"./transports":436,"component-emitter":430,debug:443,"engine.io-parser":446,indexof:463,parsejson:457,parseqs:458,parseuri:459}],435:[function(a,b,c){function d(a){this.path=a.path,this.hostname=a.hostname,this.port=a.port,this.secure=a.secure,this.query=a.query,this.timestampParam=a.timestampParam,this.timestampRequests=a.timestampRequests,this.readyState="",this.agent=a.agent||!1,this.socket=a.socket,this.enablesXDR=a.enablesXDR,this.pfx=a.pfx,this.key=a.key,this.passphrase=a.passphrase,this.cert=a.cert,this.ca=a.ca,this.ciphers=a.ciphers,this.rejectUnauthorized=a.rejectUnauthorized}var e=a("engine.io-parser"),f=a("component-emitter");b.exports=d,f(d.prototype),d.timestamps=0,d.prototype.onError=function(a,b){var c=new Error(a);return c.type="TransportError",c.description=b,this.emit("error",c),this},d.prototype.open=function(){return("closed"==this.readyState||""==this.readyState)&&(this.readyState="opening",this.doOpen()),this},d.prototype.close=function(){return("opening"==this.readyState||"open"==this.readyState)&&(this.doClose(),this.onClose()),this},d.prototype.send=function(a){if("open"!=this.readyState)throw new Error("Transport not open");this.write(a)},d.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},d.prototype.onData=function(a){var b=e.decodePacket(a,this.socket.binaryType);this.onPacket(b)},d.prototype.onPacket=function(a){this.emit("packet",a)},d.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},{"component-emitter":430,"engine.io-parser":446}],436:[function(a,b,c){(function(b){function d(a){var c,d=!1,h=!1,i=!1!==a.jsonp;if(b.location){var j="https:"==location.protocol,k=location.port;k||(k=j?443:80),d=a.hostname!=location.hostname||k!=a.port,h=a.secure!=j}if(a.xdomain=d,a.xscheme=h,c=new e(a),"open"in c&&!a.forceJSONP)return new f(a);if(!i)throw new Error("JSONP disabled");return new g(a)}var e=a("xmlhttprequest"),f=a("./polling-xhr"),g=a("./polling-jsonp"),h=a("./websocket");c.polling=d,c.websocket=h}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./polling-jsonp":437,"./polling-xhr":438,"./websocket":440,xmlhttprequest:441}],437:[function(a,b,c){(function(c){function d(){}function e(a){f.call(this,a),this.query=this.query||{},h||(c.___eio||(c.___eio=[]),h=c.___eio),this.index=h.length;var b=this;h.push(function(a){b.onData(a)}),this.query.j=this.index,c.document&&c.addEventListener&&c.addEventListener("beforeunload",function(){b.script&&(b.script.onerror=d)},!1)}var f=a("./polling"),g=a("component-inherit");b.exports=e;var h,i=/\n/g,j=/\\n/g;g(e,f),e.prototype.supportsBinary=!1,e.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),f.prototype.doClose.call(this)},e.prototype.doPoll=function(){var a=this,b=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),b.async=!0,b.src=this.uri(),b.onerror=function(b){a.onError("jsonp poll error",b)};var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c),this.script=b;var d="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);d&&setTimeout(function(){var a=document.createElement("iframe");document.body.appendChild(a),document.body.removeChild(a)},100)},e.prototype.doWrite=function(a,b){function c(){d(),b()}function d(){if(e.iframe)try{e.form.removeChild(e.iframe)}catch(a){e.onError("jsonp polling iframe removal error",a)}try{var b='