From e012d854ce55ad219f29d75aa4450e288e8af740 Mon Sep 17 00:00:00 2001 From: vee <897831508@qq.com> Date: Tue, 23 Nov 2021 16:35:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A5=E5=A4=AA=E5=9D=8A=E4=BD=99=E9=A2=9D?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/menu/sendToken/enPassword/index.vue | 7 ++- pages/menu/sendToken/transfer/index.vue | 4 +- unpackage/dist/dev/app-plus/app-service.js | 12 ++-- utils/EthUtil.js | 73 ++++++++++++---------- utils/SystemConfiguration.js | 2 + utils/TokenUtil.js | 2 +- utils/WalletUtil.js | 1 + 7 files changed, 58 insertions(+), 43 deletions(-) diff --git a/pages/menu/sendToken/enPassword/index.vue b/pages/menu/sendToken/enPassword/index.vue index edac221..232b5bc 100644 --- a/pages/menu/sendToken/enPassword/index.vue +++ b/pages/menu/sendToken/enPassword/index.vue @@ -46,9 +46,11 @@ } }, transaction() { + console.log(this.transInfoPass.privateKey) + let that=this if (this.transInfoPass.type === 'ETH') { - this.$EthUtil.transaction(this.transInfoPass.fromAddress, this.transInfoPass.privateKey, - this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.contractAddress, + this.$EthUtil.transaction(this.transInfoPass.fromAddress, + this.transInfoPass.toAddress, this.transInfoPass.amount.toString(), this.transInfoPass.privateKey.substring(2,this.transInfoPass.privateKey.length), this.transInfoPass.contractAddress, function(hash, err) { if (!err) { @@ -64,7 +66,6 @@ }) }, 1000) } else { - console.log(err, 'cuowu') uni.showToast({ diff --git a/pages/menu/sendToken/transfer/index.vue b/pages/menu/sendToken/transfer/index.vue index 86a176a..7e9fdd4 100644 --- a/pages/menu/sendToken/transfer/index.vue +++ b/pages/menu/sendToken/transfer/index.vue @@ -444,7 +444,9 @@ this.$EthUtil.getGas().then((res) => { console.log(res, 'ETH') this.$EthUtil.getGas().then((res) => { - that.transInfoPass.fee = res * 61000 / Math.pow(10, 6) + that.transInfoPass.fee = res * 61000 / Math.pow(10, 18) + that.showBottom = true; + that.show = true; }) }) diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index cdf7b45..2f6e9c7 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -3397,7 +3397,7 @@ module.exports = g; /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var tronweb = __webpack_require__(/*! tronweb */ 39);\nvar bip39 = __webpack_require__(/*! bip39 */ 340);\nvar bip32 = __webpack_require__(/*! bip32 */ 395);\nvar util = __webpack_require__(/*! ethereumjs-util */ 411);\nvar ethers = __webpack_require__(/*! ethers */ 63);\nvar bitcoin = __webpack_require__(/*! bitcoinjs-lib */ 442);\nvar Tx = __webpack_require__(/*! ethereumjs-tx */ 516);\n\n\n\n\nvar token = {\n // 获取助记词\n generateMnemonic: function generateMnemonic() {\n return bip39.generateMnemonic();\n },\n\n //获取Child\n getPrivateKey: function getPrivateKey(mnemonic, hdpath) {\n if (mnemonic.split(\" \").length % 12 > 0) {\n throw new Error(\"mnemonic error\");\n }\n var seed = bip39.mnemonicToSeedSync(mnemonic);\n var node = bip32.fromSeed(seed);\n var child = node.derivePath(hdpath);\n var privateKey = util.bufferToHex(child.privateKey);\n return privateKey;\n\n },\n //根据助记词生成以太坊ETH的钱包信息\n generateEth: function generateEth(mnemonic) {\n\n\n var privateKey = this.getPrivateKey(mnemonic, \"m/44'/60'/0'/0/0\");\n\n var wallet = new ethers.Wallet(privateKey);\n var address = wallet.address;\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n //根据助记词生成波场TRON的钱包信息\n generateTron: function generateTron(mnemonic) {\n var privateKey = this.getPrivateKey(mnemonic, \"m/44'/195'/0'/0/0\");\n privateKey = privateKey.replace('0x', '');\n var address = tronweb.address.fromPrivateKey(privateKey);\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n //根据助记词生成比特币BTC钱包信息\n generateBtc: function generateBtc(mnemonic) {\n if (mnemonic.split(\" \").length % 12 > 0) {\n throw new Error(\"mnemonic error\");\n }\n var seed = bip39.mnemonicToSeedSync(mnemonic);\n var node = bip32.fromSeed(seed);\n var keyPair = node.derivePath(\"m/44'/195'/0'/0/0\");\n var privateKey = keyPair.toWIF();\n __f__(\"log\", \"BTC私钥:\", privateKey, \" at utils/TokenUtil.js:62\");\n var address = bitcoin.payments.p2sh({\n redeem: bitcoin.payments.p2wpkh({\n pubkey: keyPair.publicKey }) });\n\n\n\n //bitcoin.payments.p2pkh({ pubkey: child.publicKey })\n //console.log(address.fromScriptHash({pubkey: keyPair.publicKey}))\n return {\n 'privateKey': privateKey,\n 'address': address.address };\n\n },\n //导入比特币BTC私钥\n importBtcPrivateKey: function importBtcPrivateKey(privateKey) {\n var keyPair = new bitcoin.ECPair.fromWIF(privateKey);\n var address = bitcoin.payments.p2sh({\n redeem: bitcoin.payments.p2wpkh({\n pubkey: keyPair.publicKey }) });\n\n\n //console.log(address.fromScriptHash({pubkey: keyPair.publicKey}))\n return {\n 'privateKey': privateKey,\n 'address': address.address };\n\n },\n //导入以太坊ETH私钥\n importEthPrivateKey: function importEthPrivateKey(privateKey) {\n var wallet = new ethers.Wallet(privateKey);\n var address = wallet.address;\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n //导入波场TRON私钥\n importTronPrivateKey: function importTronPrivateKey(privateKey) {\n privateKey = privateKey.replace('0x', '');\n var address = tronweb.address.fromPrivateKey(privateKey);\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n\n\n initialWallet: function initialWallet(mnemonic, password) {\n var btc = this.generateBtc(mnemonic);\n btc.mnemonic = mnemonic;\n btc.password = password;\n btc.balance = 0;\n btc.coinList = [{\n name: \"BTC\",\n name2: \"BTC\",\n xname: 'Bitcoin',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/bye.png */ 518) }];\n\n var eth = this.generateEth(mnemonic);\n eth.password = password;\n eth.balance = 0;\n eth.mnemonic = mnemonic;\n eth.coinList = [{\n name: \"ETH\",\n name2: \"ETH\",\n xname: 'Ethereum',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) },\n\n {\n name: \"USDT\",\n name2: \"ERC20-USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: __webpack_require__(/*! @/static/tongyonh/img500.png */ 520) }];\n\n\n __f__(\"log\", eth.coinList, 4444, \" at utils/TokenUtil.js:142\");\n __f__(\"log\", eth, 2224, \" at utils/TokenUtil.js:143\");\n var tron = this.generateTron(mnemonic);\n tron.password = password;\n tron.balance = 0;\n tron.mnemonic = mnemonic;\n tron.coinList = [{\n name: \"TRX\",\n name2: \"TRX\",\n xname: 'TRON',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/tron1.png */ 521) },\n\n {\n name: \"USDT\",\n name2: \"TRC20-USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',\n icon: __webpack_require__(/*! @/static/tongyonh/tether_usd.png */ 522) }];\n\n\n\n var wallrtInfo = {\n \"BTC\": [\n btc],\n\n \"ETH\": [\n eth],\n\n \"TRON\": [\n tron] };\n\n\n return wallrtInfo;\n },\n\n // creatingWallets: function() {\n // \tlet mnemonic = this.generateMnemonic();\n // \tlet eth = this.generateEth(mnemonic);\n // \tlet tron = this.generateTron(mnemonic);\n // \tlet btc = this.generateBtc(mnemonic);\n // \t// let privateKey = this.getPrivateKey(mnemonic);\n // \treturn {\n // \t\t'eth': eth,\n // \t\t'tron': tron,\n // \t\t'btc': btc,\n // \t\t'mnemonic': mnemonic,\n // \t\t// 'privateKey': privateKey\n // \t};\n // },\n creatingWallets: function creatingWallets() {\n var mnemonic = this.generateMnemonic();\n\n // let privateKey = this.getPrivateKey(mnemonic);\n return {\n\n 'mnemonic': mnemonic\n // 'privateKey': privateKey\n };\n } };var _default =\n\ntoken;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvVG9rZW5VdGlsLmpzIl0sIm5hbWVzIjpbInRyb253ZWIiLCJyZXF1aXJlIiwiYmlwMzkiLCJiaXAzMiIsInV0aWwiLCJldGhlcnMiLCJiaXRjb2luIiwiVHgiLCJ0b2tlbiIsImdlbmVyYXRlTW5lbW9uaWMiLCJnZXRQcml2YXRlS2V5IiwibW5lbW9uaWMiLCJoZHBhdGgiLCJzcGxpdCIsImxlbmd0aCIsIkVycm9yIiwic2VlZCIsIm1uZW1vbmljVG9TZWVkU3luYyIsIm5vZGUiLCJmcm9tU2VlZCIsImNoaWxkIiwiZGVyaXZlUGF0aCIsInByaXZhdGVLZXkiLCJidWZmZXJUb0hleCIsImdlbmVyYXRlRXRoIiwid2FsbGV0IiwiV2FsbGV0IiwiYWRkcmVzcyIsImdlbmVyYXRlVHJvbiIsInJlcGxhY2UiLCJmcm9tUHJpdmF0ZUtleSIsImdlbmVyYXRlQnRjIiwia2V5UGFpciIsInRvV0lGIiwicGF5bWVudHMiLCJwMnNoIiwicmVkZWVtIiwicDJ3cGtoIiwicHVia2V5IiwicHVibGljS2V5IiwiaW1wb3J0QnRjUHJpdmF0ZUtleSIsIkVDUGFpciIsImZyb21XSUYiLCJpbXBvcnRFdGhQcml2YXRlS2V5IiwiaW1wb3J0VHJvblByaXZhdGVLZXkiLCJpbml0aWFsV2FsbGV0IiwicGFzc3dvcmQiLCJidGMiLCJiYWxhbmNlIiwiY29pbkxpc3QiLCJuYW1lIiwibmFtZTIiLCJ4bmFtZSIsImljb24iLCJldGgiLCJjb250cmFjdEFkZHJlc3MiLCJ0cm9uIiwid2FsbHJ0SW5mbyIsImNyZWF0aW5nV2FsbGV0cyJdLCJtYXBwaW5ncyI6Im9JQUFBLElBQU1BLE9BQU8sR0FBR0MsbUJBQU8sQ0FBQyxpQkFBRCxDQUF2QjtBQUNBLElBQU1DLEtBQUssR0FBR0QsbUJBQU8sQ0FBQyxnQkFBRCxDQUFyQjtBQUNBLElBQU1FLEtBQUssR0FBR0YsbUJBQU8sQ0FBQyxnQkFBRCxDQUFyQjtBQUNBLElBQU1HLElBQUksR0FBR0gsbUJBQU8sQ0FB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Z01lSCxLIiwiZmlsZSI6IjM4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdHJvbndlYiA9IHJlcXVpcmUoJ3Ryb253ZWInKVxyXG5jb25zdCBiaXAzOSA9IHJlcXVpcmUoJ2JpcDM5Jyk7XHJcbmNvbnN0IGJpcDMyID0gcmVxdWlyZSgnYmlwMzInKTtcclxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJ2V0aGVyZXVtanMtdXRpbCcpXHJcbmNvbnN0IGV0aGVycyA9IHJlcXVpcmUoJ2V0aGVycycpXHJcbmNvbnN0IGJpdGNvaW4gPSByZXF1aXJlKCdiaXRjb2luanMtbGliJylcclxubGV0IFR4ID0gcmVxdWlyZSgnZXRoZXJldW1qcy10eCcpO1xyXG5cclxuXHJcblxyXG5cclxubGV0IHRva2VuID0ge1xyXG5cdC8vIOiOt+WPluWKqeiusOivjVxyXG5cdGdlbmVyYXRlTW5lbW9uaWM6IGZ1bmN0aW9uKCkge1xyXG5cdFx0cmV0dXJuIGJpcDM5LmdlbmVyYXRlTW5lbW9uaWMoKTtcclxuXHR9LFxyXG5cclxuXHQvL+iOt+WPlkNoaWxkXHJcblx0Z2V0UHJpdmF0ZUtleTogZnVuY3Rpb24obW5lbW9uaWMsIGhkcGF0aCkge1xyXG5cdFx0aWYgKG1uZW1vbmljLnNwbGl0KFwiIFwiKS5sZW5ndGggJSAxMiA+IDApIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwibW5lbW9uaWMgZXJyb3JcIik7XHJcblx0XHR9XHJcblx0XHRsZXQgc2VlZCA9IGJpcDM5Lm1uZW1vbmljVG9TZWVkU3luYyhtbmVtb25pYyk7XHJcblx0XHRjb25zdCBub2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XHJcblx0XHRjb25zdCBjaGlsZCA9IG5vZGUuZGVyaXZlUGF0aChoZHBhdGgpO1xyXG5cdFx0bGV0IHByaXZhdGVLZXkgPSB1dGlsLmJ1ZmZlclRvSGV4KGNoaWxkLnByaXZhdGVLZXkpO1xyXG5cdFx0cmV0dXJuIHByaXZhdGVLZXk7XHJcblxyXG5cdH0sXHJcblx0Ly/moLnmja7liqnorrDor43nlJ/miJDku6XlpKrlnYpFVEjnmoTpkrHljIXkv6Hmga9cclxuXHRnZW5lcmF0ZUV0aDogZnVuY3Rpb24obW5lbW9uaWMpIHtcclxuXHJcblxyXG5cdFx0bGV0IHByaXZhdGVLZXkgPSB0aGlzLmdldFByaXZhdGVLZXkobW5lbW9uaWMsIFwibS80NCcvNjAnLzAnLzAvMFwiKTtcclxuXHJcblx0XHRsZXQgd2FsbGV0ID0gbmV3IGV0aGVycy5XYWxsZXQocHJpdmF0ZUtleSk7XHJcblx0XHRsZXQgYWRkcmVzcyA9IHdhbGxldC5hZGRyZXNzO1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0J3ByaXZhdGVLZXknOiBwcml2YXRlS2V5LFxyXG5cdFx0XHQnYWRkcmVzcyc6IGFkZHJlc3NcclxuXHRcdH07XHJcblx0fSxcclxuXHQvL+agueaNruWKqeiusOivjeeUn+aIkOazouWculRST07nmoTpkrHljIXkv6Hmga9cclxuXHRnZW5lcmF0ZVRyb246IGZ1bmN0aW9uKG1uZW1vbmljKSB7XHJcblx0XHRsZXQgcHJpdmF0ZUtleSA9IHRoaXMuZ2V0UHJpdmF0ZUtleShtbmVtb25pYywgXCJtLzQ0Jy8xOTUnLzAnLzAvMFwiKTtcclxuXHRcdHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnJlcGxhY2UoJzB4JywgJycpO1xyXG5cdFx0bGV0IGFkZHJlc3MgPSB0cm9ud2ViLmFkZHJlc3MuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzc1xyXG5cdFx0fTtcclxuXHR9LFxyXG5cdC8v5qC55o2u5Yqp6K6w6K+N55Sf5oiQ5q+U54m55biBQlRD6ZKx5YyF5L+h5oGvXHJcblx0Z2VuZXJhdGVCdGM6IGZ1bmN0aW9uKG1uZW1vbmljKSB7XHJcblx0XHRpZiAobW5lbW9uaWMuc3BsaXQoXCIgXCIpLmxlbmd0aCAlIDEyID4gMCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtbmVtb25pYyBlcnJvclwiKTtcclxuXHRcdH1cclxuXHRcdGxldCBzZWVkID0gYmlwMzkubW5lbW9uaWNUb1NlZWRTeW5jKG1uZW1vbmljKTtcclxuXHRcdGNvbnN0IG5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcclxuXHRcdGNvbnN0IGtleVBhaXIgPSBub2RlLmRlcml2ZVBhdGgoXCJtLzQ0Jy8xOTUnLzAnLzAvMFwiKTtcclxuXHRcdGNvbnN0IHByaXZhdGVLZXkgPSBrZXlQYWlyLnRvV0lGKCk7XHJcblx0XHRjb25zb2xlLmxvZyhcIkJUQ+engemSpe+8mlwiLCBwcml2YXRlS2V5KVxyXG5cdFx0bGV0IGFkZHJlc3MgPSBiaXRjb2luLnBheW1lbnRzLnAyc2goe1xyXG5cdFx0XHRyZWRlZW06IGJpdGNvaW4ucGF5bWVudHMucDJ3cGtoKHtcclxuXHRcdFx0XHRwdWJrZXk6IGtleVBhaXIucHVibGljS2V5XHJcblx0XHRcdH0pXHJcblx0XHR9KTtcclxuXHJcblx0XHQvL2JpdGNvaW4ucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGNoaWxkLnB1YmxpY0tleSB9KVxyXG5cdFx0Ly9jb25zb2xlLmxvZyhhZGRyZXNzLmZyb21TY3JpcHRIYXNoKHtwdWJrZXk6IGtleVBhaXIucHVibGljS2V5fSkpXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzcy5hZGRyZXNzXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Ly/lr7zlhaXmr5TnibnluIFCVEPnp4HpkqVcclxuXHRpbXBvcnRCdGNQcml2YXRlS2V5OiBmdW5jdGlvbihwcml2YXRlS2V5KSB7XHJcblx0XHRsZXQga2V5UGFpciA9IG5ldyBiaXRjb2luLkVDUGFpci5mcm9tV0lGKHByaXZhdGVLZXkpO1xyXG5cdFx0bGV0IGFkZHJlc3MgPSBiaXRjb2luLnBheW1lbnRzLnAyc2goe1xyXG5cdFx0XHRyZWRlZW06IGJpdGNvaW4ucGF5bWVudHMucDJ3cGtoKHtcclxuXHRcdFx0XHRwdWJrZXk6IGtleVBhaXIucHVibGljS2V5XHJcblx0XHRcdH0pXHJcblx0XHR9KTtcclxuXHRcdC8vY29uc29sZS5sb2coYWRkcmVzcy5mcm9tU2NyaXB0SGFzaCh7cHVia2V5OiBrZXlQYWlyLnB1YmxpY0tleX0pKVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0J3ByaXZhdGVLZXknOiBwcml2YXRlS2V5LFxyXG5cdFx0XHQnYWRkcmVzcyc6IGFkZHJlc3MuYWRkcmVzc1xyXG5cdFx0fTtcclxuXHR9LFxyXG5cdC8v5a+85YWl5Lul5aSq5Z2KRVRI56eB6ZKlXHJcblx0aW1wb3J0RXRoUHJpdmF0ZUtleTogZnVuY3Rpb24ocHJpdmF0ZUtleSkge1xyXG5cdFx0bGV0IHdhbGxldCA9IG5ldyBldGhlcnMuV2FsbGV0KHByaXZhdGVLZXkpO1xyXG5cdFx0bGV0IGFkZHJlc3MgPSB3YWxsZXQuYWRkcmVzcztcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdCdwcml2YXRlS2V5JzogcHJpdmF0ZUtleSxcclxuXHRcdFx0J2FkZHJlc3MnOiBhZGRyZXNzXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Ly/lr7zlhaXms6LlnLpUUk9O56eB6ZKlXHJcblx0aW1wb3J0VHJvblByaXZhdGVLZXk6IGZ1bmN0aW9uKHByaXZhdGVLZXkpIHtcclxuXHRcdHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnJlcGxhY2UoJzB4JywgJycpO1xyXG5cdFx0bGV0IGFkZHJlc3MgPSB0cm9ud2ViLmFkZHJlc3MuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzc1xyXG5cdFx0fTtcclxuXHR9LFxyXG5cclxuXHJcblx0aW5pdGlhbFdhbGxldDogZnVuY3Rpb24obW5lbW9uaWMsIHBhc3N3b3JkKSB7XHJcblx0XHRsZXQgYnRjID0gdGhpcy5nZW5lcmF0ZUJ0YyhtbmVtb25pYyk7XHJcblx0XHRidGMubW5lbW9uaWMgPSBtbmVtb25pYztcclxuXHRcdGJ0Yy5wYXNzd29yZCA9IHBhc3N3b3JkO1xyXG5cdFx0YnRjLmJhbGFuY2UgPSAwO1xyXG5cdFx0YnRjLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0bmFtZTogXCJCVENcIixcclxuXHRcdFx0bmFtZTI6IFwiQlRDXCIsXHJcblx0XHRcdHhuYW1lOiAnQml0Y29pbicsXHJcblx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL2J5ZS5wbmcnKVxyXG5cdFx0fV07XHJcblx0XHRsZXQgZXRoID0gdGhpcy5nZW5lcmF0ZUV0aChtbmVtb25pYyk7XHJcblx0XHRldGgucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdGV0aC5iYWxhbmNlID0gMDtcclxuXHRcdGV0aC5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0ZXRoLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0XHRuYW1lOiBcIkVUSFwiLFxyXG5cdFx0XHRcdG5hbWUyOiBcIkVUSFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnRXRoZXJldW0nLFxyXG5cdFx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvRnJhbWUzMjk5LnBuZycpXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcIlVTRFRcIixcclxuXHRcdFx0XHRuYW1lMjogXCJFUkMyMC1VU0RUXCIsXHJcblx0XHRcdFx0eG5hbWU6ICdUZXRoZXIgVVNEJyxcclxuXHRcdFx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0XHRcdGNvbnRyYWN0QWRkcmVzczogJzB4ZGFjMTdmOTU4ZDJlZTUyM2EyMjA2MjA2OTk0NTk3YzEzZDgzMWVjNycsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvaW1nNTAwLnBuZycpXHJcblx0XHRcdH1cclxuXHRcdF07XHJcblx0XHRjb25zb2xlLmxvZyhldGguY29pbkxpc3QsIDQ0NDQpXHJcblx0XHRjb25zb2xlLmxvZyhldGgsIDIyMjQpXHJcblx0XHRsZXQgdHJvbiA9IHRoaXMuZ2VuZXJhdGVUcm9uKG1uZW1vbmljKTtcclxuXHRcdHRyb24ucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHRyb24uYmFsYW5jZSA9IDA7XHJcblx0XHR0cm9uLm1uZW1vbmljID0gbW5lbW9uaWM7XHJcblx0XHR0cm9uLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0XHRuYW1lOiBcIlRSWFwiLFxyXG5cdFx0XHRcdG5hbWUyOiBcIlRSWFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVFJPTicsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90cm9uMS5wbmcnKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0bmFtZTogXCJVU0RUXCIsXHJcblx0XHRcdFx0bmFtZTI6IFwiVFJDMjAtVVNEVFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVGV0aGVyIFVTRCcsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRjb250cmFjdEFkZHJlc3M6ICdUUjdOSHFqZUtReEdUQ2k4cThaWTRwTDhvdFN6Z2pMajZ0JyxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90ZXRoZXJfdXNkLnBuZycpXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cclxuXHRcdGxldCB3YWxscnRJbmZvID0ge1xyXG5cdFx0XHRcIkJUQ1wiOiBbXHJcblx0XHRcdFx0YnRjXHJcblx0XHRcdF0sXHJcblx0XHRcdFwiRVRIXCI6IFtcclxuXHRcdFx0XHRldGhcclxuXHRcdFx0XSxcclxuXHRcdFx0XCJUUk9OXCI6IFtcclxuXHRcdFx0XHR0cm9uXHJcblx0XHRcdF1cclxuXHRcdH1cclxuXHRcdHJldHVybiB3YWxscnRJbmZvO1xyXG5cdH0sXHJcblxyXG5cdC8vIGNyZWF0aW5nV2FsbGV0czogZnVuY3Rpb24oKSB7XHJcblx0Ly8gXHRsZXQgbW5lbW9uaWMgPSB0aGlzLmdlbmVyYXRlTW5lbW9uaWMoKTtcclxuXHQvLyBcdGxldCBldGggPSB0aGlzLmdlbmVyYXRlRXRoKG1uZW1vbmljKTtcclxuXHQvLyBcdGxldCB0cm9uID0gdGhpcy5nZW5lcmF0ZVRyb24obW5lbW9uaWMpO1xyXG5cdC8vIFx0bGV0IGJ0YyA9IHRoaXMuZ2VuZXJhdGVCdGMobW5lbW9uaWMpO1xyXG5cdC8vIFx0Ly8gbGV0IHByaXZhdGVLZXkgPSB0aGlzLmdldFByaXZhdGVLZXkobW5lbW9uaWMpO1xyXG5cdC8vIFx0cmV0dXJuIHtcclxuXHQvLyBcdFx0J2V0aCc6IGV0aCxcclxuXHQvLyBcdFx0J3Ryb24nOiB0cm9uLFxyXG5cdC8vIFx0XHQnYnRjJzogYnRjLFxyXG5cdC8vIFx0XHQnbW5lbW9uaWMnOiBtbmVtb25pYyxcclxuXHQvLyBcdFx0Ly8gJ3ByaXZhdGVLZXknOiBwcml2YXRlS2V5XHJcblx0Ly8gXHR9O1xyXG5cdC8vIH0sXHJcblx0Y3JlYXRpbmdXYWxsZXRzOiBmdW5jdGlvbigpIHtcclxuXHRcdGxldCBtbmVtb25pYyA9IHRoaXMuZ2VuZXJhdGVNbmVtb25pYygpO1xyXG5cdFx0XHJcblx0XHQvLyBsZXQgcHJpdmF0ZUtleSA9IHRoaXMuZ2V0UHJpdmF0ZUtleShtbmVtb25pYyk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHJcblx0XHRcdCdtbmVtb25pYyc6IG1uZW1vbmljLFxyXG5cdFx0XHQvLyAncHJpdmF0ZUtleSc6IHByaXZhdGVLZXlcclxuXHRcdH07XHJcblx0fSxcclxufVxyXG5leHBvcnQgZGVmYXVsdCB0b2tlblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///38\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var tronweb = __webpack_require__(/*! tronweb */ 39);\nvar bip39 = __webpack_require__(/*! bip39 */ 340);\nvar bip32 = __webpack_require__(/*! bip32 */ 395);\nvar util = __webpack_require__(/*! ethereumjs-util */ 411);\nvar ethers = __webpack_require__(/*! ethers */ 63);\nvar bitcoin = __webpack_require__(/*! bitcoinjs-lib */ 442);\nvar Tx = __webpack_require__(/*! ethereumjs-tx */ 516);\n\n\n\n\nvar token = {\n // 获取助记词\n generateMnemonic: function generateMnemonic() {\n return bip39.generateMnemonic();\n },\n\n //获取Child\n getPrivateKey: function getPrivateKey(mnemonic, hdpath) {\n if (mnemonic.split(\" \").length % 12 > 0) {\n throw new Error(\"mnemonic error\");\n }\n var seed = bip39.mnemonicToSeedSync(mnemonic);\n var node = bip32.fromSeed(seed);\n var child = node.derivePath(hdpath);\n var privateKey = util.bufferToHex(child.privateKey);\n return privateKey;\n\n },\n //根据助记词生成以太坊ETH的钱包信息\n generateEth: function generateEth(mnemonic) {\n\n\n var privateKey = this.getPrivateKey(mnemonic, \"m/44'/60'/0'/0/0\");\n\n var wallet = new ethers.Wallet(privateKey);\n var address = wallet.address;\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n //根据助记词生成波场TRON的钱包信息\n generateTron: function generateTron(mnemonic) {\n var privateKey = this.getPrivateKey(mnemonic, \"m/44'/195'/0'/0/0\");\n privateKey = privateKey.replace('0x', '');\n var address = tronweb.address.fromPrivateKey(privateKey);\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n //根据助记词生成比特币BTC钱包信息\n generateBtc: function generateBtc(mnemonic) {\n if (mnemonic.split(\" \").length % 12 > 0) {\n throw new Error(\"mnemonic error\");\n }\n var seed = bip39.mnemonicToSeedSync(mnemonic);\n var node = bip32.fromSeed(seed);\n var keyPair = node.derivePath(\"m/44'/195'/0'/0/0\");\n var privateKey = keyPair.toWIF();\n __f__(\"log\", \"BTC私钥:\", privateKey, \" at utils/TokenUtil.js:62\");\n var address = bitcoin.payments.p2sh({\n redeem: bitcoin.payments.p2wpkh({\n pubkey: keyPair.publicKey }) });\n\n\n\n //bitcoin.payments.p2pkh({ pubkey: child.publicKey })\n //console.log(address.fromScriptHash({pubkey: keyPair.publicKey}))\n return {\n 'privateKey': privateKey,\n 'address': address.address };\n\n },\n //导入比特币BTC私钥\n importBtcPrivateKey: function importBtcPrivateKey(privateKey) {\n var keyPair = new bitcoin.ECPair.fromWIF(privateKey);\n var address = bitcoin.payments.p2sh({\n redeem: bitcoin.payments.p2wpkh({\n pubkey: keyPair.publicKey }) });\n\n\n //console.log(address.fromScriptHash({pubkey: keyPair.publicKey}))\n return {\n 'privateKey': privateKey,\n 'address': address.address };\n\n },\n //导入以太坊ETH私钥\n importEthPrivateKey: function importEthPrivateKey(privateKey) {\n var wallet = new ethers.Wallet(privateKey);\n var address = wallet.address;\n return {\n 'privateKey': wallet.privateKey,\n 'address': address };\n\n },\n //导入波场TRON私钥\n importTronPrivateKey: function importTronPrivateKey(privateKey) {\n privateKey = privateKey.replace('0x', '');\n var address = tronweb.address.fromPrivateKey(privateKey);\n return {\n 'privateKey': privateKey,\n 'address': address };\n\n },\n\n\n initialWallet: function initialWallet(mnemonic, password) {\n var btc = this.generateBtc(mnemonic);\n btc.mnemonic = mnemonic;\n btc.password = password;\n btc.balance = 0;\n btc.coinList = [{\n name: \"BTC\",\n name2: \"BTC\",\n xname: 'Bitcoin',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/bye.png */ 518) }];\n\n var eth = this.generateEth(mnemonic);\n eth.password = password;\n eth.balance = 0;\n eth.mnemonic = mnemonic;\n eth.coinList = [{\n name: \"ETH\",\n name2: \"ETH\",\n xname: 'Ethereum',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) },\n\n {\n name: \"USDT\",\n name2: \"ERC20-USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: __webpack_require__(/*! @/static/tongyonh/img500.png */ 520) }];\n\n\n __f__(\"log\", eth.coinList, 4444, \" at utils/TokenUtil.js:142\");\n __f__(\"log\", eth, 2224, \" at utils/TokenUtil.js:143\");\n var tron = this.generateTron(mnemonic);\n tron.password = password;\n tron.balance = 0;\n tron.mnemonic = mnemonic;\n tron.coinList = [{\n name: \"TRX\",\n name2: \"TRX\",\n xname: 'TRON',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/tron1.png */ 521) },\n\n {\n name: \"USDT\",\n name2: \"TRC20-USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',\n icon: __webpack_require__(/*! @/static/tongyonh/tether_usd.png */ 522) }];\n\n\n\n var wallrtInfo = {\n \"BTC\": [\n btc],\n\n \"ETH\": [\n eth],\n\n \"TRON\": [\n tron] };\n\n\n return wallrtInfo;\n },\n\n // creatingWallets: function() {\n // \tlet mnemonic = this.generateMnemonic();\n // \tlet eth = this.generateEth(mnemonic);\n // \tlet tron = this.generateTron(mnemonic);\n // \tlet btc = this.generateBtc(mnemonic);\n // \t// let privateKey = this.getPrivateKey(mnemonic);\n // \treturn {\n // \t\t'eth': eth,\n // \t\t'tron': tron,\n // \t\t'btc': btc,\n // \t\t'mnemonic': mnemonic,\n // \t\t// 'privateKey': privateKey\n // \t};\n // },\n creatingWallets: function creatingWallets() {\n var mnemonic = this.generateMnemonic();\n\n // let privateKey = this.getPrivateKey(mnemonic);\n return {\n\n 'mnemonic': mnemonic\n // 'privateKey': privateKey\n };\n } };var _default =\n\ntoken;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvVG9rZW5VdGlsLmpzIl0sIm5hbWVzIjpbInRyb253ZWIiLCJyZXF1aXJlIiwiYmlwMzkiLCJiaXAzMiIsInV0aWwiLCJldGhlcnMiLCJiaXRjb2luIiwiVHgiLCJ0b2tlbiIsImdlbmVyYXRlTW5lbW9uaWMiLCJnZXRQcml2YXRlS2V5IiwibW5lbW9uaWMiLCJoZHBhdGgiLCJzcGxpdCIsImxlbmd0aCIsIkVycm9yIiwic2VlZCIsIm1uZW1vbmljVG9TZWVkU3luYyIsIm5vZGUiLCJmcm9tU2VlZCIsImNoaWxkIiwiZGVyaXZlUGF0aCIsInByaXZhdGVLZXkiLCJidWZmZXJUb0hleCIsImdlbmVyYXRlRXRoIiwid2FsbGV0IiwiV2FsbGV0IiwiYWRkcmVzcyIsImdlbmVyYXRlVHJvbiIsInJlcGxhY2UiLCJmcm9tUHJpdmF0ZUtleSIsImdlbmVyYXRlQnRjIiwia2V5UGFpciIsInRvV0lGIiwicGF5bWVudHMiLCJwMnNoIiwicmVkZWVtIiwicDJ3cGtoIiwicHVia2V5IiwicHVibGljS2V5IiwiaW1wb3J0QnRjUHJpdmF0ZUtleSIsIkVDUGFpciIsImZyb21XSUYiLCJpbXBvcnRFdGhQcml2YXRlS2V5IiwiaW1wb3J0VHJvblByaXZhdGVLZXkiLCJpbml0aWFsV2FsbGV0IiwicGFzc3dvcmQiLCJidGMiLCJiYWxhbmNlIiwiY29pbkxpc3QiLCJuYW1lIiwibmFtZTIiLCJ4bmFtZSIsImljb24iLCJldGgiLCJjb250cmFjdEFkZHJlc3MiLCJ0cm9uIiwid2FsbHJ0SW5mbyIsImNyZWF0aW5nV2FsbGV0cyJdLCJtYXBwaW5ncyI6Im9JQUFBLElBQU1BLE9BQU8sR0FBR0MsbUJBQU8sQ0FBQyxpQkFBRCxDQUF2QjtBQUNBLElBQU1DLEtBQUssR0FBR0QsbUJBQU8sQ0FBQyxnQkFBRCxDQUFyQjtBQUNBLElBQU1FLEtBQUssR0FBR0YsbUJBQU8sQ0FBQyxnQkFBRCxDQUFyQjtBQUNBLElBQU1HLElBQUksR0FBR0gsbUJBQU8sQ0FB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LEVBQVosQzs7QUFnTWVILEsiLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB0cm9ud2ViID0gcmVxdWlyZSgndHJvbndlYicpXHJcbmNvbnN0IGJpcDM5ID0gcmVxdWlyZSgnYmlwMzknKTtcclxuY29uc3QgYmlwMzIgPSByZXF1aXJlKCdiaXAzMicpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnZXRoZXJldW1qcy11dGlsJylcclxuY29uc3QgZXRoZXJzID0gcmVxdWlyZSgnZXRoZXJzJylcclxuY29uc3QgYml0Y29pbiA9IHJlcXVpcmUoJ2JpdGNvaW5qcy1saWInKVxyXG5sZXQgVHggPSByZXF1aXJlKCdldGhlcmV1bWpzLXR4Jyk7XHJcblxyXG5cclxuXHJcblxyXG5sZXQgdG9rZW4gPSB7XHJcblx0Ly8g6I635Y+W5Yqp6K6w6K+NXHJcblx0Z2VuZXJhdGVNbmVtb25pYzogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gYmlwMzkuZ2VuZXJhdGVNbmVtb25pYygpO1xyXG5cdH0sXHJcblxyXG5cdC8v6I635Y+WQ2hpbGRcclxuXHRnZXRQcml2YXRlS2V5OiBmdW5jdGlvbihtbmVtb25pYywgaGRwYXRoKSB7XHJcblx0XHRpZiAobW5lbW9uaWMuc3BsaXQoXCIgXCIpLmxlbmd0aCAlIDEyID4gMCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJtbmVtb25pYyBlcnJvclwiKTtcclxuXHRcdH1cclxuXHRcdGxldCBzZWVkID0gYmlwMzkubW5lbW9uaWNUb1NlZWRTeW5jKG1uZW1vbmljKTtcclxuXHRcdGNvbnN0IG5vZGUgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcclxuXHRcdGNvbnN0IGNoaWxkID0gbm9kZS5kZXJpdmVQYXRoKGhkcGF0aCk7XHJcblx0XHRsZXQgcHJpdmF0ZUtleSA9IHV0aWwuYnVmZmVyVG9IZXgoY2hpbGQucHJpdmF0ZUtleSk7XHJcblx0XHRyZXR1cm4gcHJpdmF0ZUtleTtcclxuXHJcblx0fSxcclxuXHQvL+agueaNruWKqeiusOivjeeUn+aIkOS7peWkquWdikVUSOeahOmSseWMheS/oeaBr1xyXG5cdGdlbmVyYXRlRXRoOiBmdW5jdGlvbihtbmVtb25pYykge1xyXG5cclxuXHJcblx0XHRsZXQgcHJpdmF0ZUtleSA9IHRoaXMuZ2V0UHJpdmF0ZUtleShtbmVtb25pYywgXCJtLzQ0Jy82MCcvMCcvMC8wXCIpO1xyXG5cclxuXHRcdGxldCB3YWxsZXQgPSBuZXcgZXRoZXJzLldhbGxldChwcml2YXRlS2V5KTtcclxuXHRcdGxldCBhZGRyZXNzID0gd2FsbGV0LmFkZHJlc3M7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzc1xyXG5cdFx0fTtcclxuXHR9LFxyXG5cdC8v5qC55o2u5Yqp6K6w6K+N55Sf5oiQ5rOi5Zy6VFJPTueahOmSseWMheS/oeaBr1xyXG5cdGdlbmVyYXRlVHJvbjogZnVuY3Rpb24obW5lbW9uaWMpIHtcclxuXHRcdGxldCBwcml2YXRlS2V5ID0gdGhpcy5nZXRQcml2YXRlS2V5KG1uZW1vbmljLCBcIm0vNDQnLzE5NScvMCcvMC8wXCIpO1xyXG5cdFx0cHJpdmF0ZUtleSA9IHByaXZhdGVLZXkucmVwbGFjZSgnMHgnLCAnJyk7XHJcblx0XHRsZXQgYWRkcmVzcyA9IHRyb253ZWIuYWRkcmVzcy5mcm9tUHJpdmF0ZUtleShwcml2YXRlS2V5KTtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdCdwcml2YXRlS2V5JzogcHJpdmF0ZUtleSxcclxuXHRcdFx0J2FkZHJlc3MnOiBhZGRyZXNzXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Ly/moLnmja7liqnorrDor43nlJ/miJDmr5TnibnluIFCVEPpkrHljIXkv6Hmga9cclxuXHRnZW5lcmF0ZUJ0YzogZnVuY3Rpb24obW5lbW9uaWMpIHtcclxuXHRcdGlmIChtbmVtb25pYy5zcGxpdChcIiBcIikubGVuZ3RoICUgMTIgPiAwKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIm1uZW1vbmljIGVycm9yXCIpO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHNlZWQgPSBiaXAzOS5tbmVtb25pY1RvU2VlZFN5bmMobW5lbW9uaWMpO1xyXG5cdFx0Y29uc3Qgbm9kZSA9IGJpcDMyLmZyb21TZWVkKHNlZWQpO1xyXG5cdFx0Y29uc3Qga2V5UGFpciA9IG5vZGUuZGVyaXZlUGF0aChcIm0vNDQnLzE5NScvMCcvMC8wXCIpO1xyXG5cdFx0Y29uc3QgcHJpdmF0ZUtleSA9IGtleVBhaXIudG9XSUYoKTtcclxuXHRcdGNvbnNvbGUubG9nKFwiQlRD56eB6ZKl77yaXCIsIHByaXZhdGVLZXkpXHJcblx0XHRsZXQgYWRkcmVzcyA9IGJpdGNvaW4ucGF5bWVudHMucDJzaCh7XHJcblx0XHRcdHJlZGVlbTogYml0Y29pbi5wYXltZW50cy5wMndwa2goe1xyXG5cdFx0XHRcdHB1YmtleToga2V5UGFpci5wdWJsaWNLZXlcclxuXHRcdFx0fSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vYml0Y29pbi5wYXltZW50cy5wMnBraCh7IHB1YmtleTogY2hpbGQucHVibGljS2V5IH0pXHJcblx0XHQvL2NvbnNvbGUubG9nKGFkZHJlc3MuZnJvbVNjcmlwdEhhc2goe3B1YmtleToga2V5UGFpci5wdWJsaWNLZXl9KSlcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdCdwcml2YXRlS2V5JzogcHJpdmF0ZUtleSxcclxuXHRcdFx0J2FkZHJlc3MnOiBhZGRyZXNzLmFkZHJlc3NcclxuXHRcdH07XHJcblx0fSxcclxuXHQvL+WvvOWFpeavlOeJueW4gUJUQ+engemSpVxyXG5cdGltcG9ydEJ0Y1ByaXZhdGVLZXk6IGZ1bmN0aW9uKHByaXZhdGVLZXkpIHtcclxuXHRcdGxldCBrZXlQYWlyID0gbmV3IGJpdGNvaW4uRUNQYWlyLmZyb21XSUYocHJpdmF0ZUtleSk7XHJcblx0XHRsZXQgYWRkcmVzcyA9IGJpdGNvaW4ucGF5bWVudHMucDJzaCh7XHJcblx0XHRcdHJlZGVlbTogYml0Y29pbi5wYXltZW50cy5wMndwa2goe1xyXG5cdFx0XHRcdHB1YmtleToga2V5UGFpci5wdWJsaWNLZXlcclxuXHRcdFx0fSlcclxuXHRcdH0pO1xyXG5cdFx0Ly9jb25zb2xlLmxvZyhhZGRyZXNzLmZyb21TY3JpcHRIYXNoKHtwdWJrZXk6IGtleVBhaXIucHVibGljS2V5fSkpXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzcy5hZGRyZXNzXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Ly/lr7zlhaXku6XlpKrlnYpFVEjnp4HpkqVcclxuXHRpbXBvcnRFdGhQcml2YXRlS2V5OiBmdW5jdGlvbihwcml2YXRlS2V5KSB7XHJcblx0XHRsZXQgd2FsbGV0ID0gbmV3IGV0aGVycy5XYWxsZXQocHJpdmF0ZUtleSk7XHJcblx0XHRsZXQgYWRkcmVzcyA9IHdhbGxldC5hZGRyZXNzO1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0J3ByaXZhdGVLZXknOiB3YWxsZXQucHJpdmF0ZUtleSxcclxuXHRcdFx0J2FkZHJlc3MnOiBhZGRyZXNzXHJcblx0XHR9O1xyXG5cdH0sXHJcblx0Ly/lr7zlhaXms6LlnLpUUk9O56eB6ZKlXHJcblx0aW1wb3J0VHJvblByaXZhdGVLZXk6IGZ1bmN0aW9uKHByaXZhdGVLZXkpIHtcclxuXHRcdHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnJlcGxhY2UoJzB4JywgJycpO1xyXG5cdFx0bGV0IGFkZHJlc3MgPSB0cm9ud2ViLmFkZHJlc3MuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQncHJpdmF0ZUtleSc6IHByaXZhdGVLZXksXHJcblx0XHRcdCdhZGRyZXNzJzogYWRkcmVzc1xyXG5cdFx0fTtcclxuXHR9LFxyXG5cclxuXHJcblx0aW5pdGlhbFdhbGxldDogZnVuY3Rpb24obW5lbW9uaWMsIHBhc3N3b3JkKSB7XHJcblx0XHRsZXQgYnRjID0gdGhpcy5nZW5lcmF0ZUJ0YyhtbmVtb25pYyk7XHJcblx0XHRidGMubW5lbW9uaWMgPSBtbmVtb25pYztcclxuXHRcdGJ0Yy5wYXNzd29yZCA9IHBhc3N3b3JkO1xyXG5cdFx0YnRjLmJhbGFuY2UgPSAwO1xyXG5cdFx0YnRjLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0bmFtZTogXCJCVENcIixcclxuXHRcdFx0bmFtZTI6IFwiQlRDXCIsXHJcblx0XHRcdHhuYW1lOiAnQml0Y29pbicsXHJcblx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL2J5ZS5wbmcnKVxyXG5cdFx0fV07XHJcblx0XHRsZXQgZXRoID0gdGhpcy5nZW5lcmF0ZUV0aChtbmVtb25pYyk7XHJcblx0XHRldGgucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdGV0aC5iYWxhbmNlID0gMDtcclxuXHRcdGV0aC5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0ZXRoLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0XHRuYW1lOiBcIkVUSFwiLFxyXG5cdFx0XHRcdG5hbWUyOiBcIkVUSFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnRXRoZXJldW0nLFxyXG5cdFx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvRnJhbWUzMjk5LnBuZycpXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcIlVTRFRcIixcclxuXHRcdFx0XHRuYW1lMjogXCJFUkMyMC1VU0RUXCIsXHJcblx0XHRcdFx0eG5hbWU6ICdUZXRoZXIgVVNEJyxcclxuXHRcdFx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0XHRcdGNvbnRyYWN0QWRkcmVzczogJzB4ZGFjMTdmOTU4ZDJlZTUyM2EyMjA2MjA2OTk0NTk3YzEzZDgzMWVjNycsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvaW1nNTAwLnBuZycpXHJcblx0XHRcdH1cclxuXHRcdF07XHJcblx0XHRjb25zb2xlLmxvZyhldGguY29pbkxpc3QsIDQ0NDQpXHJcblx0XHRjb25zb2xlLmxvZyhldGgsIDIyMjQpXHJcblx0XHRsZXQgdHJvbiA9IHRoaXMuZ2VuZXJhdGVUcm9uKG1uZW1vbmljKTtcclxuXHRcdHRyb24ucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHRyb24uYmFsYW5jZSA9IDA7XHJcblx0XHR0cm9uLm1uZW1vbmljID0gbW5lbW9uaWM7XHJcblx0XHR0cm9uLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0XHRuYW1lOiBcIlRSWFwiLFxyXG5cdFx0XHRcdG5hbWUyOiBcIlRSWFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVFJPTicsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90cm9uMS5wbmcnKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0bmFtZTogXCJVU0RUXCIsXHJcblx0XHRcdFx0bmFtZTI6IFwiVFJDMjAtVVNEVFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVGV0aGVyIFVTRCcsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRjb250cmFjdEFkZHJlc3M6ICdUUjdOSHFqZUtReEdUQ2k4cThaWTRwTDhvdFN6Z2pMajZ0JyxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90ZXRoZXJfdXNkLnBuZycpXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cclxuXHRcdGxldCB3YWxscnRJbmZvID0ge1xyXG5cdFx0XHRcIkJUQ1wiOiBbXHJcblx0XHRcdFx0YnRjXHJcblx0XHRcdF0sXHJcblx0XHRcdFwiRVRIXCI6IFtcclxuXHRcdFx0XHRldGhcclxuXHRcdFx0XSxcclxuXHRcdFx0XCJUUk9OXCI6IFtcclxuXHRcdFx0XHR0cm9uXHJcblx0XHRcdF1cclxuXHRcdH1cclxuXHRcdHJldHVybiB3YWxscnRJbmZvO1xyXG5cdH0sXHJcblxyXG5cdC8vIGNyZWF0aW5nV2FsbGV0czogZnVuY3Rpb24oKSB7XHJcblx0Ly8gXHRsZXQgbW5lbW9uaWMgPSB0aGlzLmdlbmVyYXRlTW5lbW9uaWMoKTtcclxuXHQvLyBcdGxldCBldGggPSB0aGlzLmdlbmVyYXRlRXRoKG1uZW1vbmljKTtcclxuXHQvLyBcdGxldCB0cm9uID0gdGhpcy5nZW5lcmF0ZVRyb24obW5lbW9uaWMpO1xyXG5cdC8vIFx0bGV0IGJ0YyA9IHRoaXMuZ2VuZXJhdGVCdGMobW5lbW9uaWMpO1xyXG5cdC8vIFx0Ly8gbGV0IHByaXZhdGVLZXkgPSB0aGlzLmdldFByaXZhdGVLZXkobW5lbW9uaWMpO1xyXG5cdC8vIFx0cmV0dXJuIHtcclxuXHQvLyBcdFx0J2V0aCc6IGV0aCxcclxuXHQvLyBcdFx0J3Ryb24nOiB0cm9uLFxyXG5cdC8vIFx0XHQnYnRjJzogYnRjLFxyXG5cdC8vIFx0XHQnbW5lbW9uaWMnOiBtbmVtb25pYyxcclxuXHQvLyBcdFx0Ly8gJ3ByaXZhdGVLZXknOiBwcml2YXRlS2V5XHJcblx0Ly8gXHR9O1xyXG5cdC8vIH0sXHJcblx0Y3JlYXRpbmdXYWxsZXRzOiBmdW5jdGlvbigpIHtcclxuXHRcdGxldCBtbmVtb25pYyA9IHRoaXMuZ2VuZXJhdGVNbmVtb25pYygpO1xyXG5cdFx0XHJcblx0XHQvLyBsZXQgcHJpdmF0ZUtleSA9IHRoaXMuZ2V0UHJpdmF0ZUtleShtbmVtb25pYyk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHJcblx0XHRcdCdtbmVtb25pYyc6IG1uZW1vbmljLFxyXG5cdFx0XHQvLyAncHJpdmF0ZUtleSc6IHByaXZhdGVLZXlcclxuXHRcdH07XHJcblx0fSxcclxufVxyXG5leHBvcnQgZGVmYXVsdCB0b2tlblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///38\n"); /***/ }), /* 39 */ @@ -81421,7 +81421,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _C_P /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _navigation = _interopRequireDefault(__webpack_require__(/*! @/components/navigation/navigation.vue */ 523));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { coin: {}, fee: 0, show: false, show2: false, currency: 'USD', showFinger: false, showBottom: false, fingerSuccess: false, fingerFail: false, // 是否显示使用密码,有设置指纹就不显示\n passShow: false, price: 0, // 不用指纹去密码页面存的信息\n transInfoPass: { fromAddress: '', toAddress: '', privateKey: '', amount: '', remark: '', contractAddress: '', password: '', balancePrice: 0, fee: 0 }, transaction: {}, teee: this.$t('index').Pleaserecipientaddress, teee2: this.$t('index').offchain };}, computed: { i18n: function i18n() {return this.$t('index');} }, methods: { sendTransaction: function sendTransaction() {var _this2 = this;var that = this;if (this.coin.type === 'ETH') {this.$EthUtil.transaction(this.transInfoPass.fromAddress, this.transInfoPass.privateKey, this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.contractAddress, function (hash, err) {if (!err) {__f__(\"log\", 2222211111, \" at pages/menu/sendToken/transfer/index.vue:291\");that.showFinger = false;that.showBottom = false;that.fingerSuccess = true;uni.showToast({ title: this.$t('index').Transfersucceeded, icon: 'none', duration: 1500 });setTimeout(function () {that.fingerSuccess = false;uni.reLaunch({ url: '/pages/menu/wallet/index' });}, 1000);} else {__f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/transfer/index.vue:308\");that.showFinger = false;that.showBottom = true;uni.showToast({ title: this.$t('index').Transferfailedconfirm, icon: 'none', duration: 1500 });}});} else if (this.coin.type === 'TRX') {this.$TronUtil.transaction(this.transaction, this.transInfoPass.privateKey, this.transInfoPass.contractAddress).then(function (res) {__f__(\"log\", 1212121212121212, \" at pages/menu/sendToken/transfer/index.vue:322\");that.showFinger = false;that.showBottom = false;that.fingerSuccess = true;uni.showToast({ title: _this2.$t('index').Transfersucceeded, icon: 'none', duration: 1500 });setTimeout(function () {that.fingerSuccess = false;uni.reLaunch({ url: '/pages/menu/wallet/index' });}, 1000);}).catch(function (err) {__f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/transfer/index.vue:338\");that.showFinger = false;that.showBottom = true;uni.showToast({ title: _this2.$t('index').Transferfailedconfirm, icon: 'none', duration: 1500 });});}}, cancelAll: function cancelAll() {this.show = false;this.showBottom = false;}, cancelFail: function cancelFail() {this.printCancel();this.fingerFail = false;this.showBottom = true;this.showFinger = false;}, cancel: function cancel() {this.showFinger = false;this.showBottom = true;this.printCancel();}, // 不用指纹去密码页\n goPassword: function goPassword() {this.printCancel();this.show = false;this.showBottom = false;__f__(\"log\", 111, \" at pages/menu/sendToken/transfer/index.vue:370\");uni.setStorageSync('transInfoPass', this.transInfoPass);uni.navigateTo({ url: '/pages/menu/sendToken/enPassword/index' });}, // 唤起指纹\n confirmTo: function confirmTo(type) {if (!this.passShow) {this.goPassword();} else {__f__(\"log\", '点击提交', \" at pages/menu/sendToken/transfer/index.vue:381\");if (type == 'try') {this.fingerFail = false;}__f__(\"log\", 123123132132132, \" at pages/menu/sendToken/transfer/index.vue:385\");this.show = true;this.showFinger = true;this.showBottom = false;this.fingerprint();}}, back: function back() {uni.reLaunch({ url: '../../token/btc/index' });}, // 点击获取所有钱\n forAll: function forAll() {this.transInfoPass.amount = this.coin.balance;}, // 确认提交\n Confirm: function Confirm() {var _this3 = this; // 做判断\n if (this.transInfoPass.amount == '') {uni.showToast({ title: this.$t('index').enterthetransferamount, icon: 'none', duration: 1500 });return;}if (this.transInfoPass.toAddress == '') {uni.showToast({ title: this.$t('index').enterthereceivingaddress, icon: 'none', duration: 1500 });return;}if (Number(this.transInfoPass.amount) == '' < 0) {uni.showToast({ title: this.$t('index').lessthan, icon: 'none', duration: 1500 });return;}if (Number(this.transInfoPass.amount) > this.coin.balance) {uni.showToast({ title: this.$t('index').yourcredit, icon: 'none', duration: 1500 });return;}var that = this;if (this.coin.type === 'ETH') {this.$EthUtil.getGas().then(function (res) {__f__(\"log\", res, 'ETH', \" at pages/menu/sendToken/transfer/index.vue:445\");_this3.$EthUtil.getGas().then(function (res) {that.transInfoPass.fee = res * 61000 / Math.pow(10, 6);});});} else if (this.coin.type === 'TRX') {this.$TronUtil.getTransaction(this.transInfoPass.fromAddress, this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.remark, this.transInfoPass.contractAddress).then(function (res) {that.transaction = res;uni.setStorageSync('transaction', that.transaction);__f__(\"log\", JSON.stringify(that.transaction), \" at pages/menu/sendToken/transfer/index.vue:458\");var size = JSON.stringify(that.transaction).replace(/[^x00-xFF]/g, '**').length;__f__(\"log\", size, \"size\", \" at pages/menu/sendToken/transfer/index.vue:460\");__f__(\"log\", size.toString().length, \"size\", \" at pages/menu/sendToken/transfer/index.vue:461\");that.transInfoPass.fee = Number(size) * (size.toString().length + 1) * 1000 / Math.pow(10, 6);that.showBottom = true;that.show = true;}).catch(function (err) {__f__(\"log\", err, \" at pages/menu/sendToken/transfer/index.vue:467\");that.showFinger = false;uni.showToast({ title: _this3.$t('index').addresserror, icon: 'none', duration: 1500 });});}}, scanCode: function scanCode() {var _this = this;uni.scanCode({ success: function success(res) {__f__(\"log\", '扫码内容', res.result, \" at pages/menu/sendToken/transfer/index.vue:485\");_this.transInfoPass.toAddress = res.result;} });}, // 取消指纹识别\n printCancel: function printCancel() {this.showFinger = false;__f__(\"log\", this.showFinger, 4444, \" at pages/menu/sendToken/transfer/index.vue:495\"); //plus.fingerprint.cancel();\n __f__(\"log\", this.showFinger, 4444, \" at pages/menu/sendToken/transfer/index.vue:497\");\n\n },\n fingerprint: function fingerprint(sett) {\n var bltype = true;\n\n if (!plus.fingerprint.isSupport()) {\n uni.showToast({\n title: this.$t('index').fingerprintidentification,\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n uni.showToast({\n title: this.$t('index').notequipped,\n icon: 'none',\n duration: 1500 });\n\n\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n uni.showToast({\n title: this.$t('index').oninthesetting,\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else {\n // this.result = '此设备支持指纹识别';\n // // this.disabled = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n var that = this;\n\n plus.fingerprint.authenticate(function () {\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n\n that.sendTransaction();\n\n }, function (e) {\n switch (e.code) {\n // 指纹识别失败后的各种情况\n case e.AUTHENTICATE_MISMATCH:\n plus.nativeUI.toast(that.$t('index').Fingerprintmatchingfailed);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:557\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:561\");\n break;\n case e.AUTHENTICATE_OVERLIMIT:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert(that.$t('index').Thenumberoffingerprint);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:567\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:571\");\n break;\n case e.CANCEL:\n plus.nativeUI.toast(that.$t('index').Recognitioncancelled);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:576\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:580\");\n break;\n default:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n // uni.setStorageSync('fingerPass', false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:585\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:589\");\n plus.nativeUI.alert(that.$t('index').Fingerprintidentificationfailed);\n break;}\n\n });\n // Android平台手动弹出等待提示框 \n if ('Android' == plus.os.name) {\n this.show = true;\n /* plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {\n \tplus.fingerprint.cancel();\n } */\n }\n\n\n }\n\n\n\n },\n\n\n goAddress: function goAddress(text) {\n uni.setStorageSync('transInfoPass', this.transInfoPass);\n uni.setStorageSync('sourcePage', '/pages/menu/sendToken/transfer/index');\n uni.navigateTo({\n url: '../address/index?item=transfer' });\n\n } },\n\n onLoad: function onLoad(a) {\n if (a.item === 'address') {\n this.transInfoPass = uni.getStorageSync('transInfoPass');\n } else if (a.item === 'index') {\n this.transInfoPass.toAddress = uni.getStorageSync('address');\n } else {\n uni.removeStorageSync('transInfoPass');\n uni.removeStorageSync('address');\n }\n\n this.coin = uni.getStorageSync('coin');\n\n\n // 每次进来拿缓存里有没有指纹\n this.transInfoPass.fromAddress = this.coin.address;\n this.transInfoPass.privateKey = this.coin.privateKey;\n this.transInfoPass.password = this.coin.password;\n this.transInfoPass.contractAddress = this.coin.contractAddress;\n this.transInfoPass.type = this.coin.type;\n __f__(\"log\", this.transInfoPass, '指纹', \" at pages/menu/sendToken/transfer/index.vue:637\");\n if (uni.getStorageSync('fingerPass')) {\n this.passShow = uni.getStorageSync('fingerPass');\n }\n var currency = uni.getStorageSync('currency');\n if (currency) {\n this.currency = currency;\n }\n if (this.currency === 'USD') {\n if (this.coin.balancePrice && this.coin.balancePrice > 0) {\n this.price = (this.coin.balancePrice / this.coin.balance).toFixed(2);\n }\n } else {\n if (this.coin.balanceCnyPrice && this.coin.balancePrice > 0) {\n this.price = (this.coin.balanceCnyPrice / this.coin.balance).toFixed(2);\n }\n }\n\n } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVudS9zZW5kVG9rZW4vdHJhbnNmZXIvaW5kZXgudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvUEEsaUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsUUFEQSxFQUVBLE1BRkEsRUFHQSxXQUhBLEVBSUEsWUFKQSxFQUtBLGVBTEEsRUFNQSxpQkFOQSxFQU9BLGlCQVBBLEVBUUEsb0JBUkEsRUFTQSxpQkFUQSxFQVVBO0FBQ0EscUJBWEEsRUFZQSxRQVpBLEVBYUE7QUFDQSx1QkFDQSxlQURBLEVBRUEsYUFGQSxFQUdBLGNBSEEsRUFJQSxVQUpBLEVBS0EsVUFMQSxFQU1BLG1CQU5BLEVBT0EsWUFQQSxFQVFBLGVBUkEsRUFTQSxNQVRBLEVBZEEsRUF5QkEsZUF6QkEsRUEwQkEsNkNBMUJBLEVBMkJBLGdDQTNCQSxHQTZCQSxDQS9CQSxF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QSxPQVBBLE1BT0E7QUFDQTtBQUNBLDZDQURBO0FBRUEsc0JBRkE7QUFHQSx3QkFIQTs7O0FBTUEsT0FQQSxNQU9BO0FBQ0E7QUFDQSxnREFEQTtBQUVBLHNCQUZBO0FBR0Esd0JBSEE7O0FBS0E7QUFDQSxPQVBBLE1BT0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkE7O0FBRUE7QUFDQSx1Q0FEQSxDQUNBOztBQUVBOztBQUVBLFNBTEEsRUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQURBLENBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FEQSxDQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkF2Q0E7O0FBeUNBLFNBL0NBO0FBZ0RBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7O0FBR0E7Ozs7QUFJQSxLQXBVQTs7O0FBdVVBLGFBdlVBLHFCQXVVQSxJQXZVQSxFQXVVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQURBOztBQUdBLEtBN1VBLEVBckNBOztBQW9YQSxRQXBYQSxrQkFvWEEsQ0FwWEEsRUFvWEE7QUFDQTtBQUNBO0FBQ0EsS0FGQSxNQUVBO0FBQ0E7QUFDQSxLQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBSkEsTUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBelpBLEUiLCJmaWxlIjoiNzg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiYWNcIj5cclxuXHRcdDxuYXZpZ2F0aW9uIDpzaG93QmFjaz1cImZhbHNlXCIgOmJnbnVtPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vLi4vLi4vc3RhdGljL3Rvbmd5b25oL1ZlY3Rvci5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJiYWNrXCIgQGNsaWNrPVwiYmFjaygpXCI+PC9pbWFnZT5cclxuXHRcdFx0PHRleHQgY2xhc3M9XCJiaWdfdGl0bGVcIj5cclxuXHRcdFx0XHR7e2NvaW4ubmFtZX19IHt7aTE4bi5UcmFuc2Zlcn19XHJcblx0XHRcdDwvdGV4dD5cclxuXHRcdDwvbmF2aWdhdGlvbj5cclxuXHRcdDx2aWV3IGNsYXNzPVwibWFpblwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5fY29uXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ5dWFuXCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2UgOnNyYz1cImNvaW4uaWNvblwiIG1vZGU9XCJhc3BlY3RGaXRcIiBjbGFzcz1cImltZzFcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxyXG5cdFx0XHRcdFx0e3tjb2luLm5hbWV9fVxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidG9wIGZsZXhcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aTE4bi5SZWNlaXZpbmdhZGRyZXNzfX1cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQyXCIgQGNsaWNrPVwiZ29BZGRyZXNzKCd0cmFuc2ZlcicpXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpMThuLkFkZHJlc3NCb29rfX1cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dGNvblwiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiZm9udC1zaXplOiAzMHJweDsgY29sb3I6ICNEMEQwRDI7XCJcclxuXHRcdFx0XHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJ0ZWVlXCIgY2xhc3M9XCJpbnB1dDFcIlxyXG5cdFx0XHRcdFx0XHRcdHYtbW9kZWw9XCJ0cmFuc0luZm9QYXNzLnRvQWRkcmVzc1wiIC8+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi8uLi8uLi9zdGF0aWMvdG9uZ3lvbmgvRnJhbWUzMzAucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwiaW1nMVwiIEBjbGljaz1cInNjYW5Db2RlXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AgZmxleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpMThuLlRyYW5zZmVyYW1vdW50fX1cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dGNvbjIgZmxleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0YyBmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3tjb2luLm5hbWV9fVxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiZm9udC1zaXplOiAzMHJweDsgY29sb3I6ICNEMEQwRDI7XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiMC4wMDAwMDAwXCIgY2xhc3M9XCJpbnB1dDNcIiB2LW1vZGVsPVwidHJhbnNJbmZvUGFzcy5hbW91bnRcIiAvPlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx0ZXh0PiDiiYggPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0YyBmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3tjdXJyZW5jeX19XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIDp2YWx1ZT1cIihwcmljZSp0cmFuc0luZm9QYXNzLmFtb3VudCkudG9GaXhlZCgyKVwiIGRpc2FibGVkPVwiZGlzYWJsZWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXItc3R5bGU9XCJmb250LXNpemU6IDMwcnB4OyBjb2xvcjogI0QwRDBEMjtcIiBwbGFjZWhvbGRlcj1cIjAuMDAwMDAwMFwiXHJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImlucHV0M1wiIC8+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidG9wIGZsZXggYm90dG9tXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDNcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2kxOG4uQmFsYW5jZX19OiB7e2NvaW4uYmFsYW5jZX19XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MSBiZ1wiIEBjbGljaz1cImZvckFsbFwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aTE4bi5BTEx9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidG9wIGZsZXhcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aTE4bi5SZW1hcmt9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dGNvblwiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIHBsYWNlaG9sZGVyLXN0eWxlPVwiZm9udC1zaXplOiAzMHJweDsgY29sb3I6ICNEMEQwRDI7XCJcclxuXHRcdFx0XHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJ0ZWVlMlwiIHYtbW9kZWw9XCJ0cmFuc0luZm9QYXNzLnJlbWFya1wiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJpbnB1dDFcIiAvPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRvcCBmbGV4XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2kxOG4uVHJhbnNhY3Rpb25mZWV9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbnB1dGNvblwiPlxyXG5cdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiB2LW1vZGVsPVwidHJhbnNJbmZvUGFzcy5mZWVcIiBkaXNhYmxlZD1cImRpc2FibGVkXCIgdmFsdWU9XCJcIlxyXG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyLXN0eWxlPVwiZm9udC1zaXplOiAzMHJweDsgY29sb3I6ICNEMEQwRDI7XCJcclxuXHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIlBsZWFzZSBlbnRlciBhIG5vdGUgKG9mZi1jaGFpbilcIiBjbGFzcz1cImlucHV0MlwiIC8+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0ZXh0MlwiPnt7Y29pbi50eXBlfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0XHQ8dmlldyBjbGFzcz1cImJpZ19jb25cIiB2LWlmPVwic2hvd0JvdHRvbVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpYW9cIiBAY2xpY2s9XCJjYW5jZWxBbGxcIj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJpZ3RpdGxlXCI+XHJcblx0XHRcdFx0e3tpMThuLlRyYW5zZmVyY29uZmlybWF0aW9ufX1cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJvdHRvbV9jb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInl1YW5cIj5cclxuXHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwiY29pbi5pY29uXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwiaW1nMVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cclxuXHRcdFx0XHRcdHt7Y29pbi50eXBlfX1cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZV9jb24gZmxleFwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHRBbW91bnRcclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0e3t0cmFuc0luZm9QYXNzLmFtb3VudH19IHt7Y29pbi5uYW1lfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdFNlbmQgYWRkcmVzc1xyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MlwiPlxyXG5cdFx0XHRcdFx0XHR7e3RyYW5zSW5mb1Bhc3MuZnJvbUFkZHJlc3N9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLlJlY2VpdmluZ2FkZHJlc3N9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MlwiPlxyXG5cdFx0XHRcdFx0XHR7e3RyYW5zSW5mb1Bhc3MudG9BZGRyZXNzfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5SZW1hcmt9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MlwiPlxyXG5cdFx0XHRcdFx0XHR7e3RyYW5zSW5mb1Bhc3MucmVtYXJrfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5UcmFuc2FjdGlvbmZlZX19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQyXCI+XHJcblx0XHRcdFx0XHRcdHt7dHJhbnNJbmZvUGFzcy5mZWV9fSB7e2NvaW4udHlwZX19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImdvdG9cIiBAY2xpY2s9XCJjb25maXJtVG9cIj5cclxuXHRcdFx0XHRcdHt7aTE4bi5Db25maXJtfX1cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dS1tYXNrIHotaW5kZXg9XCIxMFwiIDpzaG93PVwic2hvd1wiIEBjbGljaz1cImNhbmNlbEFsbFwiPjwvdS1tYXNrPlxyXG5cdFx0PCEtLSA8dS1tYXNrIHotaW5kZXg9XCIxMDAwXCIgOnNob3c9XCJzaG93MlwiIEBjbGljaz1cInNob3cyID0gZmFsc2VcIj48L3UtbWFzaz4gLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInpoaXdlbl9jb25cIiB2LWlmPVwic2hvd0ZpbmdlclwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpYW9cIiBAY2xpY2s9XCJjYW5jZWxcIj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJpZ3RpdGxlXCI+XHJcblx0XHRcdFx0e3tpMThuLkZpbmdlcnByaW50cGFzc3dvcmR9fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYm90dG9tX2NvblwiPlxyXG5cdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi8uLi8uLi9zdGF0aWMvdG9uZ3lvbmgvemhpd2VuLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIiBjbGFzcz1cImltZzFcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdHt7aTE4bi5maW5nZXJwcmludHNlbnNvcn19XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBjb25cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dHQxXCIgQGNsaWNrPVwiZ29QYXNzd29yZFwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uVXNlUGFzc3dvcmR9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dDJcIiBAY2xpY2s9XCJjYW5jZWxcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLkNhbmNlbH19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ6aGl3ZW5fY29uXCIgdi1pZj1cImZpbmdlckZhaWxcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0aWFvXCI+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJiaWd0aXRsZVwiPlxyXG5cdFx0XHRcdHt7aTE4bi5GaW5nZXJwcmludHBhc3N3b3JkfX1cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJvdHRvbV9jb25cIj5cclxuXHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vLi4vLi4vc3RhdGljL3Rvbmd5b25oL2FsZXJ0LWNpcmNsZS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJpbWcxXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxIHJlZFwiPlxyXG5cdFx0XHRcdFx0e3tpMThuLkZpbmdlcnByaW50cmVjb2duaXplZH19PGJyPjx0ZXh0IEBjbGljaz1cImNvbmZpcm1UbygndHJ5JylcIj57e2kxOG4uVHJ5YWdhaW59fTwvdGV4dD4gLlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXggY29uXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHR0MVwiIEBjbGljaz1cImdvUGFzc3dvcmRcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLlVzZVBhc3N3b3JkfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dHQyXCIgQGNsaWNrPVwiY2FuY2VsRmFpbFwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uQ2FuY2VsfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0XHQ8dmlldyBjbGFzcz1cInpoaXdlbl9jb25cIiB2LWlmPVwiZmluZ2VyU3VjY2Vzc1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpYW9cIj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJpZ3RpdGxlXCI+XHJcblx0XHRcdFx0e3tpMThuLmZpbmdlclBhc3N9fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYm90dG9tX2NvblwiPlxyXG5cdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi8uLi8uLi9zdGF0aWMvdG9uZ3lvbmgveC1jaXJjbGUucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwiaW1nMVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MSBncmVlblwiPlxyXG5cdFx0XHRcdFx0e3tpMThuLkZpbmdlcnByaW50cmVjb2duaXplZH19XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBjb25cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dHQxXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5Vc2VQYXNzd29yZH19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHR0MlwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uQ29uZmlybX19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG5fY29uXCIgQGNsaWNrPVwiQ29uZmlybVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJ0blwiPlxyXG5cdFx0XHRcdHt7aTE4bi5Db25maXJtfX1cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdDwvdmlldz5cclxuXHJcblxyXG5cdDwvdmlldz5cclxuXHJcblxyXG5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGNvbnQgZnJvbSBcIkAvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24udnVlXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNvaW46IHt9LFxyXG5cdFx0XHRcdGZlZTogMCxcclxuXHRcdFx0XHRzaG93OiBmYWxzZSxcclxuXHRcdFx0XHRzaG93MjogZmFsc2UsXHJcblx0XHRcdFx0Y3VycmVuY3k6J1VTRCcsXHJcblx0XHRcdFx0c2hvd0ZpbmdlcjogZmFsc2UsXHJcblx0XHRcdFx0c2hvd0JvdHRvbTogZmFsc2UsXHJcblx0XHRcdFx0ZmluZ2VyU3VjY2VzczogZmFsc2UsXHJcblx0XHRcdFx0ZmluZ2VyRmFpbDogZmFsc2UsXHJcblx0XHRcdFx0Ly8g5piv5ZCm5pi+56S65L2/55So5a+G56CB77yM5pyJ6K6+572u5oyH57q55bCx5LiN5pi+56S6XHJcblx0XHRcdFx0cGFzc1Nob3c6IGZhbHNlLFxyXG5cdFx0XHRcdHByaWNlOiAwLFxyXG5cdFx0XHRcdC8vIOS4jeeUqOaMh+e6ueWOu+WvhueggemhtemdouWtmOeahOS/oeaBr1xyXG5cdFx0XHRcdHRyYW5zSW5mb1Bhc3M6IHtcclxuXHRcdFx0XHRcdGZyb21BZGRyZXNzOiAnJyxcclxuXHRcdFx0XHRcdHRvQWRkcmVzczogJycsXHJcblx0XHRcdFx0XHRwcml2YXRlS2V5OiAnJyxcclxuXHRcdFx0XHRcdGFtb3VudDogJycsXHJcblx0XHRcdFx0XHRyZW1hcms6ICcnLFxyXG5cdFx0XHRcdFx0Y29udHJhY3RBZGRyZXNzOiAnJyxcclxuXHRcdFx0XHRcdHBhc3N3b3JkOiAnJyxcclxuXHRcdFx0XHRcdGJhbGFuY2VQcmljZTogMCxcclxuXHRcdFx0XHRcdGZlZTogMFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dHJhbnNhY3Rpb246IHt9LFxyXG5cdFx0XHRcdHRlZWU6dGhpcy4kdCgnaW5kZXgnKS5QbGVhc2VyZWNpcGllbnRhZGRyZXNzLFxyXG5cdFx0XHRcdHRlZWUyOnRoaXMuJHQoJ2luZGV4Jykub2ZmY2hhaW4sXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRpMThuKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLiR0KCdpbmRleCcpXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRzZW5kVHJhbnNhY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdGlmICh0aGlzLmNvaW4udHlwZSA9PT0gJ0VUSCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuJEV0aFV0aWwudHJhbnNhY3Rpb24odGhpcy50cmFuc0luZm9QYXNzLmZyb21BZGRyZXNzLCB0aGlzLnRyYW5zSW5mb1Bhc3MucHJpdmF0ZUtleSxcclxuXHRcdFx0XHRcdFx0dGhpcy50cmFuc0luZm9QYXNzLnRvQWRkcmVzcywgdGhpcy50cmFuc0luZm9QYXNzLmFtb3VudCwgdGhpcy50cmFuc0luZm9QYXNzLmNvbnRyYWN0QWRkcmVzcyxcclxuXHRcdFx0XHRcdFx0ZnVuY3Rpb24oaGFzaCwgZXJyKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFlcnIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKDIyMjIyMTExMTEpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dGaW5nZXIgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmZpbmdlclN1Y2Nlc3MgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLlRyYW5zZmVyc3VjY2VlZGVkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyU3VjY2VzcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9tZW51L3dhbGxldC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdjdW93dScpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dGaW5nZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0JvdHRvbSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4JykuVHJhbnNmZXJmYWlsZWRjb25maXJtLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuY29pbi50eXBlID09PSAnVFJYJykge1xyXG5cdFx0XHRcdFx0dGhpcy4kVHJvblV0aWwudHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbiwgdGhpcy50cmFuc0luZm9QYXNzLnByaXZhdGVLZXksIHRoaXMudHJhbnNJbmZvUGFzc1xyXG5cdFx0XHRcdFx0XHRcdC5jb250cmFjdEFkZHJlc3MpXHJcblx0XHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygxMjEyMTIxMjEyMTIxMjEyKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0ZpbmdlciA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJTdWNjZXNzID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLlRyYW5zZmVyc3VjY2VlZGVkLFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJTdWNjZXNzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvbWVudS93YWxsZXQvaW5kZXgnXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyLCAnY3Vvd3UnKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0ZpbmdlciA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0JvdHRvbSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5UcmFuc2ZlcmZhaWxlZGNvbmZpcm0sXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2FuY2VsQWxsKCkge1xyXG5cdFx0XHRcdHRoaXMuc2hvdyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc2hvd0JvdHRvbSA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxGYWlsKCkge1xyXG5cdFx0XHRcdHRoaXMucHJpbnRDYW5jZWwoKVxyXG5cdFx0XHRcdHRoaXMuZmluZ2VyRmFpbCA9IGZhbHNlXHJcblx0XHRcdFx0dGhpcy5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnNob3dGaW5nZXIgPSBmYWxzZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2FuY2VsKCkge1xyXG5cdFx0XHRcdHRoaXMuc2hvd0ZpbmdlciA9IGZhbHNlXHJcblx0XHRcdFx0dGhpcy5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLnByaW50Q2FuY2VsKClcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5LiN55So5oyH57q55Y675a+G56CB6aG1XHJcblx0XHRcdGdvUGFzc3dvcmQoKSB7XHJcblx0XHRcdFx0dGhpcy5wcmludENhbmNlbCgpO1xyXG5cdFx0XHRcdHRoaXMuc2hvdyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc2hvd0JvdHRvbSA9IGZhbHNlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKDExMSlcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnLCB0aGlzLnRyYW5zSW5mb1Bhc3MpXHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL21lbnUvc2VuZFRva2VuL2VuUGFzc3dvcmQvaW5kZXgnXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5ZSk6LW35oyH57q5XHJcblx0XHRcdGNvbmZpcm1Ubyh0eXBlKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnBhc3NTaG93KSB7XHJcblx0XHRcdFx0XHR0aGlzLmdvUGFzc3dvcmQoKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+eCueWHu+aPkOS6pCcpXHJcblx0XHRcdFx0XHRpZiAodHlwZSA9PSAndHJ5Jykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpbmdlckZhaWwgPSBmYWxzZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKDEyMzEyMzEzMjEzMjEzMilcclxuXHRcdFx0XHRcdHRoaXMuc2hvdyA9IHRydWVcclxuXHRcdFx0XHRcdHRoaXMuc2hvd0ZpbmdlciA9IHRydWVcclxuXHRcdFx0XHRcdHRoaXMuc2hvd0JvdHRvbSA9IGZhbHNlO1xyXG5cclxuXHJcblx0XHRcdFx0XHR0aGlzLmZpbmdlcnByaW50KCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGJhY2soKSB7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dW5pLnJlTGF1bmNoKHtcclxuXHRcdFx0XHRcdHVybDogJy4uLy4uL3Rva2VuL2J0Yy9pbmRleCdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDngrnlh7vojrflj5bmiYDmnInpkrFcclxuXHRcdFx0Zm9yQWxsKCkge1xyXG5cdFx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy5hbW91bnQgPSB0aGlzLmNvaW4uYmFsYW5jZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDnoa7orqTmj5DkuqRcclxuXHRcdFx0Q29uZmlybSgpIHtcclxuXHRcdFx0XHQvLyDlgZrliKTmlq1cclxuXHRcdFx0XHRpZiAodGhpcy50cmFuc0luZm9QYXNzLmFtb3VudCA9PSAnJykge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLmVudGVydGhldHJhbnNmZXJhbW91bnQsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMudHJhbnNJbmZvUGFzcy50b0FkZHJlc3MgPT0gJycpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5lbnRlcnRoZXJlY2VpdmluZ2FkZHJlc3MsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKE51bWJlcih0aGlzLnRyYW5zSW5mb1Bhc3MuYW1vdW50KSA9PSAnJyA8IDApIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5sZXNzdGhhbixcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoTnVtYmVyKHRoaXMudHJhbnNJbmZvUGFzcy5hbW91bnQpID4gdGhpcy5jb2luLmJhbGFuY2UpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS55b3VyY3JlZGl0LFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmICh0aGlzLmNvaW4udHlwZSA9PT0gJ0VUSCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuJEV0aFV0aWwuZ2V0R2FzKCkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlcywgJ0VUSCcpXHJcblx0XHRcdFx0XHRcdHRoaXMuJEV0aFV0aWwuZ2V0R2FzKCkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC50cmFuc0luZm9QYXNzLmZlZSA9IHJlcyAqIDYxMDAwIC8gTWF0aC5wb3coMTAsIDYpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuY29pbi50eXBlID09PSAnVFJYJykge1xyXG5cdFx0XHRcdFx0dGhpcy4kVHJvblV0aWwuZ2V0VHJhbnNhY3Rpb24odGhpcy50cmFuc0luZm9QYXNzLmZyb21BZGRyZXNzLFxyXG5cdFx0XHRcdFx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy50b0FkZHJlc3MsIHRoaXMudHJhbnNJbmZvUGFzcy5hbW91bnQsIHRoaXMudHJhbnNJbmZvUGFzcy5yZW1hcmssIHRoaXNcclxuXHRcdFx0XHRcdFx0XHQudHJhbnNJbmZvUGFzcy5jb250cmFjdEFkZHJlc3MpXHJcblx0XHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRyYW5zYWN0aW9uID0gcmVzO1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygndHJhbnNhY3Rpb24nLCB0aGF0LnRyYW5zYWN0aW9uKVxyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoYXQudHJhbnNhY3Rpb24pKVxyXG5cdFx0XHRcdFx0XHRcdGxldCBzaXplID0gSlNPTi5zdHJpbmdpZnkodGhhdC50cmFuc2FjdGlvbikucmVwbGFjZSgvW154MDAteEZGXS9nLCAnKionKS5sZW5ndGg7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coc2l6ZSwgXCJzaXplXCIpXHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coc2l6ZS50b1N0cmluZygpLmxlbmd0aCwgXCJzaXplXCIpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC50cmFuc0luZm9QYXNzLmZlZSA9IE51bWJlcihzaXplKSAqIChzaXplLnRvU3RyaW5nKCkubGVuZ3RoICsgMSkgKiAxMDAwIC8gTWF0aC5wb3coMTAsXHJcblx0XHRcdFx0XHRcdFx0XHQ2KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvdyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0ZpbmdlciA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLmFkZHJlc3NlcnJvcixcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0pXHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdHNjYW5Db2RlKCkge1xyXG5cdFx0XHRcdHZhciBfdGhpcyA9IHRoaXNcclxuXHRcdFx0XHR1bmkuc2NhbkNvZGUoe1xyXG5cdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmiavnoIHlhoXlrrknLCByZXMucmVzdWx0KVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0X3RoaXMudHJhbnNJbmZvUGFzcy50b0FkZHJlc3MgPSByZXMucmVzdWx0O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Ly8g5Y+W5raI5oyH57q56K+G5YirXHJcblx0XHRcdHByaW50Q2FuY2VsKCkge1xyXG5cdFx0XHRcdHRoaXMuc2hvd0ZpbmdlciA9IGZhbHNlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuc2hvd0ZpbmdlciwgNDQ0NClcclxuXHRcdFx0XHQvL3BsdXMuZmluZ2VycHJpbnQuY2FuY2VsKCk7XHJcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5zaG93RmluZ2VyLCA0NDQ0KVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0ZmluZ2VycHJpbnQ6IGZ1bmN0aW9uKHNldHQpIHtcclxuXHRcdFx0XHRsZXQgYmx0eXBlID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0XHRpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNTdXBwb3J0KCkpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5maW5nZXJwcmludGlkZW50aWZpY2F0aW9uLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Ly8gdGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHRcdFx0fSBlbHNlIGlmICghcGx1cy5maW5nZXJwcmludC5pc0tleWd1YXJkU2VjdXJlKCkpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5ub3RlcXVpcHBlZCxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICghcGx1cy5maW5nZXJwcmludC5pc0Vucm9sbGVkRmluZ2VycHJpbnRzKCkpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5vbmludGhlc2V0dGluZyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC8vIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyB0aGlzLnJlc3VsdCA9ICfmraTorr7lpIfmlK/mjIHmjIfnurnor4bliKsnO1xyXG5cdFx0XHRcdFx0Ly8gLy8gdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0Ly8gI2lmZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdFx0Ly8gdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAnUGxlYXNlIHVzZSBpdCBpbiB3ZWNoYXQgcmVhbCBtYWNoaW5lLiBUaGUgc2ltdWxhdG9yIGRvZXMgbm90IHN1cHBvcnQgaXQnLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1QTFVTIHx8IE1QLVdFSVhJTlxyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAnRmluZ2VycHJpbnQgaWRlbnRpZmljYXRpb24gaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtJyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMCxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHJcblxyXG5cdFx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXHJcblx0XHRcdFx0XHRwbHVzLmZpbmdlcnByaW50LmF1dGhlbnRpY2F0ZShmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5jbG9zZVdhaXRpbmcoKTsgLy/lhbzlrrlBbmRyb2lk5bmz5Y+w5YWz6Zet562J5b6F5qGGXHJcblxyXG5cdFx0XHRcdFx0XHR0aGF0LnNlbmRUcmFuc2FjdGlvbigpXHJcblxyXG5cdFx0XHRcdFx0fSwgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKGUuY29kZSkge1xyXG5cdFx0XHRcdFx0XHRcdC8vIOaMh+e6ueivhuWIq+Wksei0peWQjueahOWQhOenjeaDheWGtVxyXG5cdFx0XHRcdFx0XHRcdGNhc2UgZS5BVVRIRU5USUNBVEVfTUlTTUFUQ0g6XHJcblx0XHRcdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLnRvYXN0KHRoYXQuJHQoJ2luZGV4JykuRmluZ2VycHJpbnRtYXRjaGluZ2ZhaWxlZCk7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB1bmkuc2V0U3RvcmFnZVN5bmMoJ2ZpbmdlclBhc3MnLGZhbHNlKVxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5zaG93RmluZ2VyLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyRmFpbCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3c9ZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LmZpbmdlckZhaWwsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdGNhc2UgZS5BVVRIRU5USUNBVEVfT1ZFUkxJTUlUOlxyXG5cdFx0XHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5jbG9zZVdhaXRpbmcoKTsgLy/lhbzlrrlBbmRyb2lk5bmz5Y+w5YWz6Zet562J5b6F5qGGXHJcblx0XHRcdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLmFsZXJ0KHRoYXQuJHQoJ2luZGV4JykuVGhlbnVtYmVyb2ZmaW5nZXJwcmludCk7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB1bmkuc2V0U3RvcmFnZVN5bmMoJ2ZpbmdlclBhc3MnLGZhbHNlKVxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5zaG93RmluZ2VyLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyRmFpbCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3c9ZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LmZpbmdlckZhaWwsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdGNhc2UgZS5DQU5DRUw6XHJcblx0XHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS50b2FzdCh0aGF0LiR0KCdpbmRleCcpLlJlY29nbml0aW9uY2FuY2VsbGVkKTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5zZXRTdG9yYWdlU3luYygnZmluZ2VyUGFzcycsZmFsc2UpXHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LnNob3dGaW5nZXIsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0JvdHRvbSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJGYWlsID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvdz1mYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoYXQuZmluZ2VyRmFpbCwgNDU0NTQ1KVxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuY2xvc2VXYWl0aW5nKCk7IC8v5YW85a65QW5kcm9pZOW5s+WPsOWFs+mXreetieW+heahhlxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNldFN0b3JhZ2VTeW5jKCdmaW5nZXJQYXNzJywgZmFsc2UpXHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LnNob3dGaW5nZXIsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0JvdHRvbSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJGYWlsID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvdz1mYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoYXQuZmluZ2VyRmFpbCwgNDU0NTQ1KVxyXG5cdFx0XHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5hbGVydCh0aGF0LiR0KCdpbmRleCcpLkZpbmdlcnByaW50aWRlbnRpZmljYXRpb25mYWlsZWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0Ly8gQW5kcm9pZOW5s+WPsOaJi+WKqOW8ueWHuuetieW+heaPkOekuuahhiBcclxuXHRcdFx0XHRcdGlmICgnQW5kcm9pZCcgPT0gcGx1cy5vcy5uYW1lKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvdyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdC8qIHBsdXMubmF0aXZlVUkuc2hvd1dhaXRpbmcoJ+aMh+e6ueivhuWIq+S4rS4uLicpLm9uY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHRwbHVzLmZpbmdlcnByaW50LmNhbmNlbCgpO1xyXG5cdFx0XHRcdFx0XHR9ICovXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cclxuXHJcblx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0Z29BZGRyZXNzKHRleHQpIHtcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnLHRoaXMudHJhbnNJbmZvUGFzcylcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3NvdXJjZVBhZ2UnLCAnL3BhZ2VzL21lbnUvc2VuZFRva2VuL3RyYW5zZmVyL2luZGV4Jyk7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiAnLi4vYWRkcmVzcy9pbmRleD9pdGVtPXRyYW5zZmVyJ1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoYSkge1xyXG5cdFx0XHRpZihhLml0ZW09PT0nYWRkcmVzcycpe1xyXG5cdFx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcz11bmkuZ2V0U3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnKTtcclxuXHRcdFx0fWVsc2UgaWYoYS5pdGVtID09PSdpbmRleCcpe1xyXG5cdFx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy50b0FkZHJlc3M9dW5pLmdldFN0b3JhZ2VTeW5jKCdhZGRyZXNzJyk7XHJcblx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygndHJhbnNJbmZvUGFzcycpXHJcblx0XHRcdFx0dW5pLnJlbW92ZVN0b3JhZ2VTeW5jKCdhZGRyZXNzJylcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dGhpcy5jb2luID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdjb2luJylcclxuXHRcdFx0XHJcblx0XHRcdFxyXG5cdFx0XHQvLyDmr4/mrKHov5vmnaXmi7/nvJPlrZjph4zmnInmsqHmnInmjIfnurlcclxuXHRcdFx0dGhpcy50cmFuc0luZm9QYXNzLmZyb21BZGRyZXNzID0gdGhpcy5jb2luLmFkZHJlc3M7XHJcblx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy5wcml2YXRlS2V5ID0gdGhpcy5jb2luLnByaXZhdGVLZXk7XHJcblx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy5wYXNzd29yZCA9IHRoaXMuY29pbi5wYXNzd29yZDtcclxuXHRcdFx0dGhpcy50cmFuc0luZm9QYXNzLmNvbnRyYWN0QWRkcmVzcyA9IHRoaXMuY29pbi5jb250cmFjdEFkZHJlc3NcclxuXHRcdFx0dGhpcy50cmFuc0luZm9QYXNzLnR5cGUgPSB0aGlzLmNvaW4udHlwZTtcclxuXHRcdFx0Y29uc29sZS5sb2codGhpcy50cmFuc0luZm9QYXNzLCAn5oyH57q5JylcclxuXHRcdFx0aWYgKHVuaS5nZXRTdG9yYWdlU3luYygnZmluZ2VyUGFzcycpKSB7XHJcblx0XHRcdFx0dGhpcy5wYXNzU2hvdyA9IHVuaS5nZXRTdG9yYWdlU3luYygnZmluZ2VyUGFzcycpXHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IGN1cnJlbmN5PXVuaS5nZXRTdG9yYWdlU3luYygnY3VycmVuY3knKTtcclxuXHRcdFx0aWYoY3VycmVuY3kpe1xyXG5cdFx0XHRcdHRoaXMuY3VycmVuY3k9Y3VycmVuY3k7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYodGhpcy5jdXJyZW5jeT09PSdVU0QnKXtcclxuXHRcdFx0XHRpZiAodGhpcy5jb2luLmJhbGFuY2VQcmljZSYmdGhpcy5jb2luLmJhbGFuY2VQcmljZT4wKSB7XHJcblx0XHRcdFx0XHR0aGlzLnByaWNlID0gKHRoaXMuY29pbi5iYWxhbmNlUHJpY2UgLyB0aGlzLmNvaW4uYmFsYW5jZSkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29pbi5iYWxhbmNlQ255UHJpY2UmJnRoaXMuY29pbi5iYWxhbmNlUHJpY2U+MCkge1xyXG5cdFx0XHRcdFx0dGhpcy5wcmljZSA9ICh0aGlzLmNvaW4uYmFsYW5jZUNueVByaWNlIC8gdGhpcy5jb2luLmJhbGFuY2UpLnRvRml4ZWQoMilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblx0fTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzY29wZWQ+XHJcblx0cGFnZSB7XHJcblx0XHRiYWNrZ3JvdW5kOiAjRkFGQUZBO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuPC9zdHlsZT5cclxuXHJcbjxzdHlsZT5cclxuXHRAaW1wb3J0ICcuL2luZGV4LmNzcyc7XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///785\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _navigation = _interopRequireDefault(__webpack_require__(/*! @/components/navigation/navigation.vue */ 523));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { coin: {}, fee: 0, show: false, show2: false, currency: 'USD', showFinger: false, showBottom: false, fingerSuccess: false, fingerFail: false, // 是否显示使用密码,有设置指纹就不显示\n passShow: false, price: 0, // 不用指纹去密码页面存的信息\n transInfoPass: { fromAddress: '', toAddress: '', privateKey: '', amount: '', remark: '', contractAddress: '', password: '', balancePrice: 0, fee: 0 }, transaction: {}, teee: this.$t('index').Pleaserecipientaddress, teee2: this.$t('index').offchain };}, computed: { i18n: function i18n() {return this.$t('index');} }, methods: { sendTransaction: function sendTransaction() {var _this2 = this;var that = this;if (this.coin.type === 'ETH') {this.$EthUtil.transaction(this.transInfoPass.fromAddress, this.transInfoPass.privateKey, this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.contractAddress, function (hash, err) {if (!err) {__f__(\"log\", 2222211111, \" at pages/menu/sendToken/transfer/index.vue:291\");that.showFinger = false;that.showBottom = false;that.fingerSuccess = true;uni.showToast({ title: this.$t('index').Transfersucceeded, icon: 'none', duration: 1500 });setTimeout(function () {that.fingerSuccess = false;uni.reLaunch({ url: '/pages/menu/wallet/index' });}, 1000);} else {__f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/transfer/index.vue:308\");that.showFinger = false;that.showBottom = true;uni.showToast({ title: this.$t('index').Transferfailedconfirm, icon: 'none', duration: 1500 });}});} else if (this.coin.type === 'TRX') {this.$TronUtil.transaction(this.transaction, this.transInfoPass.privateKey, this.transInfoPass.contractAddress).then(function (res) {__f__(\"log\", 1212121212121212, \" at pages/menu/sendToken/transfer/index.vue:322\");that.showFinger = false;that.showBottom = false;that.fingerSuccess = true;uni.showToast({ title: _this2.$t('index').Transfersucceeded, icon: 'none', duration: 1500 });setTimeout(function () {that.fingerSuccess = false;uni.reLaunch({ url: '/pages/menu/wallet/index' });}, 1000);}).catch(function (err) {__f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/transfer/index.vue:338\");that.showFinger = false;that.showBottom = true;uni.showToast({ title: _this2.$t('index').Transferfailedconfirm, icon: 'none', duration: 1500 });});}}, cancelAll: function cancelAll() {this.show = false;this.showBottom = false;}, cancelFail: function cancelFail() {this.printCancel();this.fingerFail = false;this.showBottom = true;this.showFinger = false;}, cancel: function cancel() {this.showFinger = false;this.showBottom = true;this.printCancel();}, // 不用指纹去密码页\n goPassword: function goPassword() {this.printCancel();this.show = false;this.showBottom = false;__f__(\"log\", 111, \" at pages/menu/sendToken/transfer/index.vue:370\");uni.setStorageSync('transInfoPass', this.transInfoPass);uni.navigateTo({ url: '/pages/menu/sendToken/enPassword/index' });}, // 唤起指纹\n confirmTo: function confirmTo(type) {if (!this.passShow) {this.goPassword();} else {__f__(\"log\", '点击提交', \" at pages/menu/sendToken/transfer/index.vue:381\");if (type == 'try') {this.fingerFail = false;}__f__(\"log\", 123123132132132, \" at pages/menu/sendToken/transfer/index.vue:385\");this.show = true;this.showFinger = true;this.showBottom = false;this.fingerprint();}}, back: function back() {uni.reLaunch({ url: '../../token/btc/index' });}, // 点击获取所有钱\n forAll: function forAll() {this.transInfoPass.amount = this.coin.balance;}, // 确认提交\n Confirm: function Confirm() {var _this3 = this; // 做判断\n if (this.transInfoPass.amount == '') {uni.showToast({ title: this.$t('index').enterthetransferamount, icon: 'none', duration: 1500 });return;}if (this.transInfoPass.toAddress == '') {uni.showToast({ title: this.$t('index').enterthereceivingaddress, icon: 'none', duration: 1500 });return;}if (Number(this.transInfoPass.amount) == '' < 0) {uni.showToast({ title: this.$t('index').lessthan, icon: 'none', duration: 1500 });return;}if (Number(this.transInfoPass.amount) > this.coin.balance) {uni.showToast({ title: this.$t('index').yourcredit, icon: 'none', duration: 1500 });return;}var that = this;if (this.coin.type === 'ETH') {this.$EthUtil.getGas().then(function (res) {__f__(\"log\", res, 'ETH', \" at pages/menu/sendToken/transfer/index.vue:445\");_this3.$EthUtil.getGas().then(function (res) {that.transInfoPass.fee = res * 61000 / Math.pow(10, 18);that.showBottom = true;that.show = true;});});} else if (this.coin.type === 'TRX') {this.$TronUtil.getTransaction(this.transInfoPass.fromAddress, this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.remark, this.transInfoPass.contractAddress).then(function (res) {that.transaction = res;uni.setStorageSync('transaction', that.transaction);__f__(\"log\", JSON.stringify(that.transaction), \" at pages/menu/sendToken/transfer/index.vue:460\");var size = JSON.stringify(that.transaction).replace(/[^x00-xFF]/g, '**').length;__f__(\"log\", size, \"size\", \" at pages/menu/sendToken/transfer/index.vue:462\");__f__(\"log\", size.toString().length, \"size\", \" at pages/menu/sendToken/transfer/index.vue:463\");that.transInfoPass.fee = Number(size) * (size.toString().length + 1) * 1000 / Math.pow(10, 6);that.showBottom = true;that.show = true;}).catch(function (err) {__f__(\"log\", err, \" at pages/menu/sendToken/transfer/index.vue:469\");that.showFinger = false;uni.showToast({ title: _this3.$t('index').addresserror, icon: 'none', duration: 1500 });});}}, scanCode: function scanCode() {var _this = this;uni.scanCode({ success: function success(res) {__f__(\"log\", '扫码内容', res.result, \" at pages/menu/sendToken/transfer/index.vue:487\");_this.transInfoPass.toAddress = res.result;} });}, // 取消指纹识别\n printCancel: function printCancel() {this.showFinger = false;\n __f__(\"log\", this.showFinger, 4444, \" at pages/menu/sendToken/transfer/index.vue:497\");\n //plus.fingerprint.cancel();\n __f__(\"log\", this.showFinger, 4444, \" at pages/menu/sendToken/transfer/index.vue:499\");\n\n },\n fingerprint: function fingerprint(sett) {\n var bltype = true;\n\n if (!plus.fingerprint.isSupport()) {\n uni.showToast({\n title: this.$t('index').fingerprintidentification,\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n uni.showToast({\n title: this.$t('index').notequipped,\n icon: 'none',\n duration: 1500 });\n\n\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n uni.showToast({\n title: this.$t('index').oninthesetting,\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else {\n // this.result = '此设备支持指纹识别';\n // // this.disabled = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n var that = this;\n\n plus.fingerprint.authenticate(function () {\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n\n that.sendTransaction();\n\n }, function (e) {\n switch (e.code) {\n // 指纹识别失败后的各种情况\n case e.AUTHENTICATE_MISMATCH:\n plus.nativeUI.toast(that.$t('index').Fingerprintmatchingfailed);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:559\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:563\");\n break;\n case e.AUTHENTICATE_OVERLIMIT:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert(that.$t('index').Thenumberoffingerprint);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:569\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:573\");\n break;\n case e.CANCEL:\n plus.nativeUI.toast(that.$t('index').Recognitioncancelled);\n // uni.setStorageSync('fingerPass',false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:578\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:582\");\n break;\n default:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n // uni.setStorageSync('fingerPass', false)\n __f__(\"log\", that.showFinger, 454545, \" at pages/menu/sendToken/transfer/index.vue:587\");\n that.showBottom = false;\n that.fingerFail = true;\n that.show = false;\n __f__(\"log\", that.fingerFail, 454545, \" at pages/menu/sendToken/transfer/index.vue:591\");\n plus.nativeUI.alert(that.$t('index').Fingerprintidentificationfailed);\n break;}\n\n });\n // Android平台手动弹出等待提示框 \n if ('Android' == plus.os.name) {\n this.show = true;\n /* plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {\n \tplus.fingerprint.cancel();\n } */\n }\n\n\n }\n\n\n\n },\n\n\n goAddress: function goAddress(text) {\n uni.setStorageSync('transInfoPass', this.transInfoPass);\n uni.setStorageSync('sourcePage', '/pages/menu/sendToken/transfer/index');\n uni.navigateTo({\n url: '../address/index?item=transfer' });\n\n } },\n\n onLoad: function onLoad(a) {\n if (a.item === 'address') {\n this.transInfoPass = uni.getStorageSync('transInfoPass');\n } else if (a.item === 'index') {\n this.transInfoPass.toAddress = uni.getStorageSync('address');\n } else {\n uni.removeStorageSync('transInfoPass');\n uni.removeStorageSync('address');\n }\n\n this.coin = uni.getStorageSync('coin');\n\n\n // 每次进来拿缓存里有没有指纹\n this.transInfoPass.fromAddress = this.coin.address;\n this.transInfoPass.privateKey = this.coin.privateKey;\n this.transInfoPass.password = this.coin.password;\n this.transInfoPass.contractAddress = this.coin.contractAddress;\n this.transInfoPass.type = this.coin.type;\n __f__(\"log\", this.transInfoPass, '指纹', \" at pages/menu/sendToken/transfer/index.vue:639\");\n if (uni.getStorageSync('fingerPass')) {\n this.passShow = uni.getStorageSync('fingerPass');\n }\n var currency = uni.getStorageSync('currency');\n if (currency) {\n this.currency = currency;\n }\n if (this.currency === 'USD') {\n if (this.coin.balancePrice && this.coin.balancePrice > 0) {\n this.price = (this.coin.balancePrice / this.coin.balance).toFixed(2);\n }\n } else {\n if (this.coin.balanceCnyPrice && this.coin.balancePrice > 0) {\n this.price = (this.coin.balanceCnyPrice / this.coin.balance).toFixed(2);\n }\n }\n\n } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVudS9zZW5kVG9rZW4vdHJhbnNmZXIvaW5kZXgudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvUEEsaUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsUUFEQSxFQUVBLE1BRkEsRUFHQSxXQUhBLEVBSUEsWUFKQSxFQUtBLGVBTEEsRUFNQSxpQkFOQSxFQU9BLGlCQVBBLEVBUUEsb0JBUkEsRUFTQSxpQkFUQSxFQVVBO0FBQ0EscUJBWEEsRUFZQSxRQVpBLEVBYUE7QUFDQSx1QkFDQSxlQURBLEVBRUEsYUFGQSxFQUdBLGNBSEEsRUFJQSxVQUpBLEVBS0EsVUFMQSxFQU1BLG1CQU5BLEVBT0EsWUFQQSxFQVFBLGVBUkEsRUFTQSxNQVRBLEVBZEEsRUF5QkEsZUF6QkEsRUEwQkEsNkNBMUJBLEVBMkJBLGdDQTNCQSxHQTZCQSxDQS9CQSxF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QTtBQUNBLE9BUEEsTUFPQTtBQUNBO0FBQ0EsNkNBREE7QUFFQSxzQkFGQTtBQUdBLHdCQUhBOzs7QUFNQSxPQVBBLE1BT0E7QUFDQTtBQUNBLGdEQURBO0FBRUEsc0JBRkE7QUFHQSx3QkFIQTs7QUFLQTtBQUNBLE9BUEEsTUFPQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTs7QUFFQTtBQUNBLHVDQURBLENBQ0E7O0FBRUE7O0FBRUEsU0FMQSxFQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBREEsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQURBLENBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQXZDQTs7QUF5Q0EsU0EvQ0E7QUFnREE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOzs7QUFHQTs7OztBQUlBLEtBdFVBOzs7QUF5VUEsYUF6VUEscUJBeVVBLElBelVBLEVBeVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBREE7O0FBR0EsS0EvVUEsRUFyQ0E7O0FBc1hBLFFBdFhBLGtCQXNYQSxDQXRYQSxFQXNYQTtBQUNBO0FBQ0E7QUFDQSxLQUZBLE1BRUE7QUFDQTtBQUNBLEtBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FKQSxNQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsR0EzWkEsRSIsImZpbGUiOiI3ODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJhY1wiPlxyXG5cdFx0PG5hdmlnYXRpb24gOnNob3dCYWNrPVwiZmFsc2VcIiA6YmdudW09XCJ0cnVlXCI+XHJcblx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi8uLi8uLi9zdGF0aWMvdG9uZ3lvbmgvVmVjdG9yLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIiBjbGFzcz1cImJhY2tcIiBAY2xpY2s9XCJiYWNrKClcIj48L2ltYWdlPlxyXG5cdFx0XHQ8dGV4dCBjbGFzcz1cImJpZ190aXRsZVwiPlxyXG5cdFx0XHRcdHt7Y29pbi5uYW1lfX0ge3tpMThuLlRyYW5zZmVyfX1cclxuXHRcdFx0PC90ZXh0PlxyXG5cdFx0PC9uYXZpZ2F0aW9uPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJtYWluXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwibWFpbl9jb25cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInl1YW5cIj5cclxuXHRcdFx0XHRcdDxpbWFnZSA6c3JjPVwiY29pbi5pY29uXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwiaW1nMVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XHJcblx0XHRcdFx0XHR7e2NvaW4ubmFtZX19XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AgZmxleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpMThuLlJlY2VpdmluZ2FkZHJlc3N9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDJcIiBAY2xpY2s9XCJnb0FkZHJlc3MoJ3RyYW5zZmVyJylcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2kxOG4uQWRkcmVzc0Jvb2t9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0Y29uXCI+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiXCIgcGxhY2Vob2xkZXItc3R5bGU9XCJmb250LXNpemU6IDMwcnB4OyBjb2xvcjogI0QwRDBEMjtcIlxyXG5cdFx0XHRcdFx0XHRcdDpwbGFjZWhvbGRlcj1cInRlZWVcIiBjbGFzcz1cImlucHV0MVwiXHJcblx0XHRcdFx0XHRcdFx0di1tb2RlbD1cInRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzXCIgLz5cclxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uLy4uLy4uL3N0YXRpYy90b25neW9uaC9GcmFtZTMzMC5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJpbWcxXCIgQGNsaWNrPVwic2NhbkNvZGVcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRvcCBmbGV4XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2kxOG4uVHJhbnNmZXJhbW91bnR9fVxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0Y29uMiBmbGV4XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRjIGZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHR0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7e2NvaW4ubmFtZX19XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiXCIgcGxhY2Vob2xkZXItc3R5bGU9XCJmb250LXNpemU6IDMwcnB4OyBjb2xvcjogI0QwRDBEMjtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCIwLjAwMDAwMDBcIiBjbGFzcz1cImlucHV0M1wiIHYtbW9kZWw9XCJ0cmFuc0luZm9QYXNzLmFtb3VudFwiIC8+XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHRleHQ+IOKJiCA8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW5wdXRjIGZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHR0XCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7e2N1cnJlbmN5fX1cclxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgOnZhbHVlPVwiKHByaWNlKnRyYW5zSW5mb1Bhc3MuYW1vdW50KS50b0ZpeGVkKDIpXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlci1zdHlsZT1cImZvbnQtc2l6ZTogMzBycHg7IGNvbG9yOiAjRDBEMEQyO1wiIHBsYWNlaG9sZGVyPVwiMC4wMDAwMDAwXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiaW5wdXQzXCIgLz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AgZmxleCBib3R0b21cIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0M1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aTE4bi5CYWxhbmNlfX06IHt7Y29pbi5iYWxhbmNlfX1cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxIGJnXCIgQGNsaWNrPVwiZm9yQWxsXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpMThuLkFMTH19XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0b3AgZmxleFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdFx0e3tpMThuLlJlbWFya319XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0Y29uXCI+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiXCIgcGxhY2Vob2xkZXItc3R5bGU9XCJmb250LXNpemU6IDMwcnB4OyBjb2xvcjogI0QwRDBEMjtcIlxyXG5cdFx0XHRcdFx0XHRcdDpwbGFjZWhvbGRlcj1cInRlZWUyXCIgdi1tb2RlbD1cInRyYW5zSW5mb1Bhc3MucmVtYXJrXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImlucHV0MVwiIC8+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidG9wIGZsZXhcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7aTE4bi5UcmFuc2FjdGlvbmZlZX19XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImlucHV0Y29uXCI+XHJcblx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJ0cmFuc0luZm9QYXNzLmZlZVwiIGRpc2FibGVkPVwiZGlzYWJsZWRcIiB2YWx1ZT1cIlwiXHJcblx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXItc3R5bGU9XCJmb250LXNpemU6IDMwcnB4OyBjb2xvcjogI0QwRDBEMjtcIlxyXG5cdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiUGxlYXNlIGVudGVyIGEgbm90ZSAob2ZmLWNoYWluKVwiIGNsYXNzPVwiaW5wdXQyXCIgLz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRleHQyXCI+e3tjb2luLnR5cGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYmlnX2NvblwiIHYtaWY9XCJzaG93Qm90dG9tXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGlhb1wiIEBjbGljaz1cImNhbmNlbEFsbFwiPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYmlndGl0bGVcIj5cclxuXHRcdFx0XHR7e2kxOG4uVHJhbnNmZXJjb25maXJtYXRpb259fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYm90dG9tX2NvblwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwieXVhblwiPlxyXG5cdFx0XHRcdFx0PGltYWdlIDpzcmM9XCJjb2luLmljb25cIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJpbWcxXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxyXG5cdFx0XHRcdFx0e3tjb2luLnR5cGV9fVxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlX2NvbiBmbGV4XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxXCI+XHJcblx0XHRcdFx0XHRcdEFtb3VudFxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHR7e3RyYW5zSW5mb1Bhc3MuYW1vdW50fX0ge3tjb2luLm5hbWV9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0U2VuZCBhZGRyZXNzXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQyXCI+XHJcblx0XHRcdFx0XHRcdHt7dHJhbnNJbmZvUGFzcy5mcm9tQWRkcmVzc319XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uUmVjZWl2aW5nYWRkcmVzc319XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQyXCI+XHJcblx0XHRcdFx0XHRcdHt7dHJhbnNJbmZvUGFzcy50b0FkZHJlc3N9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLlJlbWFya319XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQyXCI+XHJcblx0XHRcdFx0XHRcdHt7dHJhbnNJbmZvUGFzcy5yZW1hcmt9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDFcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLlRyYW5zYWN0aW9uZmVlfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDJcIj5cclxuXHRcdFx0XHRcdFx0e3t0cmFuc0luZm9QYXNzLmZlZX19IHt7Y29pbi50eXBlfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZ290b1wiIEBjbGljaz1cImNvbmZpcm1Ub1wiPlxyXG5cdFx0XHRcdFx0e3tpMThuLkNvbmZpcm19fVxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx1LW1hc2sgei1pbmRleD1cIjEwXCIgOnNob3c9XCJzaG93XCIgQGNsaWNrPVwiY2FuY2VsQWxsXCI+PC91LW1hc2s+XHJcblx0XHQ8IS0tIDx1LW1hc2sgei1pbmRleD1cIjEwMDBcIiA6c2hvdz1cInNob3cyXCIgQGNsaWNrPVwic2hvdzIgPSBmYWxzZVwiPjwvdS1tYXNrPiAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiemhpd2VuX2NvblwiIHYtaWY9XCJzaG93RmluZ2VyXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGlhb1wiIEBjbGljaz1cImNhbmNlbFwiPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYmlndGl0bGVcIj5cclxuXHRcdFx0XHR7e2kxOG4uRmluZ2VycHJpbnRwYXNzd29yZH19XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b21fY29uXCI+XHJcblx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uLy4uLy4uL3N0YXRpYy90b25neW9uaC96aGl3ZW4ucG5nXCIgbW9kZT1cImFzcGVjdEZpdFwiIGNsYXNzPVwiaW1nMVwiPjwvaW1hZ2U+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0MVwiPlxyXG5cdFx0XHRcdFx0e3tpMThuLmZpbmdlcnByaW50c2Vuc29yfX1cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4IGNvblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dDFcIiBAY2xpY2s9XCJnb1Bhc3N3b3JkXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5Vc2VQYXNzd29yZH19XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHR0MlwiIEBjbGljaz1cImNhbmNlbFwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uQ2FuY2VsfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0XHQ8dmlldyBjbGFzcz1cInpoaXdlbl9jb25cIiB2LWlmPVwiZmluZ2VyRmFpbFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpYW9cIj5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJpZ3RpdGxlXCI+XHJcblx0XHRcdFx0e3tpMThuLkZpbmdlcnByaW50cGFzc3dvcmR9fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYm90dG9tX2NvblwiPlxyXG5cdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi8uLi8uLi9zdGF0aWMvdG9uZ3lvbmgvYWxlcnQtY2lyY2xlLnBuZ1wiIG1vZGU9XCJhc3BlY3RGaXRcIiBjbGFzcz1cImltZzFcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dDEgcmVkXCI+XHJcblx0XHRcdFx0XHR7e2kxOG4uRmluZ2VycHJpbnRyZWNvZ25pemVkfX08YnI+PHRleHQgQGNsaWNrPVwiY29uZmlybVRvKCd0cnknKVwiPnt7aTE4bi5UcnlhZ2Fpbn19PC90ZXh0PiAuXHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleCBjb25cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dHQxXCIgQGNsaWNrPVwiZ29QYXNzd29yZFwiPlxyXG5cdFx0XHRcdFx0XHR7e2kxOG4uVXNlUGFzc3dvcmR9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dDJcIiBAY2xpY2s9XCJjYW5jZWxGYWlsXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5DYW5jZWx9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHRcdDx2aWV3IGNsYXNzPVwiemhpd2VuX2NvblwiIHYtaWY9XCJmaW5nZXJTdWNjZXNzXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGlhb1wiPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYmlndGl0bGVcIj5cclxuXHRcdFx0XHR7e2kxOG4uZmluZ2VyUGFzc319XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJib3R0b21fY29uXCI+XHJcblx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uLy4uLy4uL3N0YXRpYy90b25neW9uaC94LWNpcmNsZS5wbmdcIiBtb2RlPVwiYXNwZWN0Rml0XCIgY2xhc3M9XCJpbWcxXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHQxIGdyZWVuXCI+XHJcblx0XHRcdFx0XHR7e2kxOG4uRmluZ2VycHJpbnRyZWNvZ25pemVkfX1cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4IGNvblwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0dDFcIj5cclxuXHRcdFx0XHRcdFx0e3tpMThuLlVzZVBhc3N3b3JkfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dHQyXCI+XHJcblx0XHRcdFx0XHRcdHt7aTE4bi5Db25maXJtfX1cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHJcblx0XHQ8dmlldyBjbGFzcz1cImJ0bl9jb25cIiBAY2xpY2s9XCJDb25maXJtXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYnRuXCI+XHJcblx0XHRcdFx0e3tpMThuLkNvbmZpcm19fVxyXG5cdFx0XHQ8L3ZpZXc+XHJcblxyXG5cdFx0PC92aWV3PlxyXG5cclxuXHJcblx0PC92aWV3PlxyXG5cclxuXHJcblxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgY29udCBmcm9tIFwiQC9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi52dWVcIlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y29pbjoge30sXHJcblx0XHRcdFx0ZmVlOiAwLFxyXG5cdFx0XHRcdHNob3c6IGZhbHNlLFxyXG5cdFx0XHRcdHNob3cyOiBmYWxzZSxcclxuXHRcdFx0XHRjdXJyZW5jeTonVVNEJyxcclxuXHRcdFx0XHRzaG93RmluZ2VyOiBmYWxzZSxcclxuXHRcdFx0XHRzaG93Qm90dG9tOiBmYWxzZSxcclxuXHRcdFx0XHRmaW5nZXJTdWNjZXNzOiBmYWxzZSxcclxuXHRcdFx0XHRmaW5nZXJGYWlsOiBmYWxzZSxcclxuXHRcdFx0XHQvLyDmmK/lkKbmmL7npLrkvb/nlKjlr4bnoIHvvIzmnInorr7nva7mjIfnurnlsLHkuI3mmL7npLpcclxuXHRcdFx0XHRwYXNzU2hvdzogZmFsc2UsXHJcblx0XHRcdFx0cHJpY2U6IDAsXHJcblx0XHRcdFx0Ly8g5LiN55So5oyH57q55Y675a+G56CB6aG16Z2i5a2Y55qE5L+h5oGvXHJcblx0XHRcdFx0dHJhbnNJbmZvUGFzczoge1xyXG5cdFx0XHRcdFx0ZnJvbUFkZHJlc3M6ICcnLFxyXG5cdFx0XHRcdFx0dG9BZGRyZXNzOiAnJyxcclxuXHRcdFx0XHRcdHByaXZhdGVLZXk6ICcnLFxyXG5cdFx0XHRcdFx0YW1vdW50OiAnJyxcclxuXHRcdFx0XHRcdHJlbWFyazogJycsXHJcblx0XHRcdFx0XHRjb250cmFjdEFkZHJlc3M6ICcnLFxyXG5cdFx0XHRcdFx0cGFzc3dvcmQ6ICcnLFxyXG5cdFx0XHRcdFx0YmFsYW5jZVByaWNlOiAwLFxyXG5cdFx0XHRcdFx0ZmVlOiAwXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR0cmFuc2FjdGlvbjoge30sXHJcblx0XHRcdFx0dGVlZTp0aGlzLiR0KCdpbmRleCcpLlBsZWFzZXJlY2lwaWVudGFkZHJlc3MsXHJcblx0XHRcdFx0dGVlZTI6dGhpcy4kdCgnaW5kZXgnKS5vZmZjaGFpbixcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdGkxOG4oKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuJHQoJ2luZGV4JylcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdHNlbmRUcmFuc2FjdGlvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29pbi50eXBlID09PSAnRVRIJykge1xyXG5cdFx0XHRcdFx0dGhpcy4kRXRoVXRpbC50cmFuc2FjdGlvbih0aGlzLnRyYW5zSW5mb1Bhc3MuZnJvbUFkZHJlc3MsIHRoaXMudHJhbnNJbmZvUGFzcy5wcml2YXRlS2V5LFxyXG5cdFx0XHRcdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzLCB0aGlzLnRyYW5zSW5mb1Bhc3MuYW1vdW50LCB0aGlzLnRyYW5zSW5mb1Bhc3MuY29udHJhY3RBZGRyZXNzLFxyXG5cdFx0XHRcdFx0XHRmdW5jdGlvbihoYXNoLCBlcnIpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIWVycikge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coMjIyMjIxMTExMSlcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0ZpbmdlciA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyU3VjY2VzcyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4JykuVHJhbnNmZXJzdWNjZWVkZWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJTdWNjZXNzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL21lbnUvd2FsbGV0L2luZGV4J1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0fSwgMTAwMClcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVyciwgJ2N1b3d1JylcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0ZpbmdlciA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5UcmFuc2ZlcmZhaWxlZGNvbmZpcm0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5jb2luLnR5cGUgPT09ICdUUlgnKSB7XHJcblx0XHRcdFx0XHR0aGlzLiRUcm9uVXRpbC50cmFuc2FjdGlvbih0aGlzLnRyYW5zYWN0aW9uLCB0aGlzLnRyYW5zSW5mb1Bhc3MucHJpdmF0ZUtleSwgdGhpcy50cmFuc0luZm9QYXNzXHJcblx0XHRcdFx0XHRcdFx0LmNvbnRyYWN0QWRkcmVzcylcclxuXHRcdFx0XHRcdFx0LnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKDEyMTIxMjEyMTIxMjEyMTIpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zaG93RmluZ2VyID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmZpbmdlclN1Y2Nlc3MgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4JykuVHJhbnNmZXJzdWNjZWVkZWQsXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmZpbmdlclN1Y2Nlc3MgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9tZW51L3dhbGxldC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0fSwgMTAwMClcclxuXHRcdFx0XHRcdFx0fSkuY2F0Y2goZXJyID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdjdW93dScpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zaG93RmluZ2VyID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLlRyYW5zZmVyZmFpbGVkY29uZmlybSxcclxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWxBbGwoKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNhbmNlbEZhaWwoKSB7XHJcblx0XHRcdFx0dGhpcy5wcmludENhbmNlbCgpXHJcblx0XHRcdFx0dGhpcy5maW5nZXJGYWlsID0gZmFsc2VcclxuXHRcdFx0XHR0aGlzLnNob3dCb3R0b20gPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuc2hvd0ZpbmdlciA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW5jZWwoKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93RmluZ2VyID0gZmFsc2VcclxuXHRcdFx0XHR0aGlzLnNob3dCb3R0b20gPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMucHJpbnRDYW5jZWwoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkuI3nlKjmjIfnurnljrvlr4bnoIHpobVcclxuXHRcdFx0Z29QYXNzd29yZCgpIHtcclxuXHRcdFx0XHR0aGlzLnByaW50Q2FuY2VsKCk7XHJcblx0XHRcdFx0dGhpcy5zaG93ID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coMTExKVxyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygndHJhbnNJbmZvUGFzcycsIHRoaXMudHJhbnNJbmZvUGFzcylcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvbWVudS9zZW5kVG9rZW4vZW5QYXNzd29yZC9pbmRleCdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDllKTotbfmjIfnurlcclxuXHRcdFx0Y29uZmlybVRvKHR5cGUpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMucGFzc1Nob3cpIHtcclxuXHRcdFx0XHRcdHRoaXMuZ29QYXNzd29yZCgpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn54K55Ye75o+Q5LqkJylcclxuXHRcdFx0XHRcdGlmICh0eXBlID09ICd0cnknKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZmluZ2VyRmFpbCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coMTIzMTIzMTMyMTMyMTMyKVxyXG5cdFx0XHRcdFx0dGhpcy5zaG93ID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhpcy5zaG93RmluZ2VyID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dGhpcy5zaG93Qm90dG9tID0gZmFsc2U7XHJcblxyXG5cclxuXHRcdFx0XHRcdHRoaXMuZmluZ2VycHJpbnQoKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0YmFjaygpIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0dXJsOiAnLi4vLi4vdG9rZW4vYnRjL2luZGV4J1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOeCueWHu+iOt+WPluaJgOaciemSsVxyXG5cdFx0XHRmb3JBbGwoKSB7XHJcblx0XHRcdFx0dGhpcy50cmFuc0luZm9QYXNzLmFtb3VudCA9IHRoaXMuY29pbi5iYWxhbmNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOehruiupOaPkOS6pFxyXG5cdFx0XHRDb25maXJtKCkge1xyXG5cdFx0XHRcdC8vIOWBmuWIpOaWrVxyXG5cdFx0XHRcdGlmICh0aGlzLnRyYW5zSW5mb1Bhc3MuYW1vdW50ID09ICcnKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4JykuZW50ZXJ0aGV0cmFuc2ZlcmFtb3VudCxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy50cmFuc0luZm9QYXNzLnRvQWRkcmVzcyA9PSAnJykge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLmVudGVydGhlcmVjZWl2aW5nYWRkcmVzcyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoTnVtYmVyKHRoaXMudHJhbnNJbmZvUGFzcy5hbW91bnQpID09ICcnIDwgMCkge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLmxlc3N0aGFuLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChOdW1iZXIodGhpcy50cmFuc0luZm9QYXNzLmFtb3VudCkgPiB0aGlzLmNvaW4uYmFsYW5jZSkge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLiR0KCdpbmRleCcpLnlvdXJjcmVkaXQsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHRoaXMuY29pbi50eXBlID09PSAnRVRIJykge1xyXG5cdFx0XHRcdFx0dGhpcy4kRXRoVXRpbC5nZXRHYXMoKS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVzLCAnRVRIJylcclxuXHRcdFx0XHRcdFx0dGhpcy4kRXRoVXRpbC5nZXRHYXMoKS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnRyYW5zSW5mb1Bhc3MuZmVlID0gcmVzICogNjEwMDAgLyBNYXRoLnBvdygxMCwgMTgpXHJcblx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnNob3cgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSlcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmNvaW4udHlwZSA9PT0gJ1RSWCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuJFRyb25VdGlsLmdldFRyYW5zYWN0aW9uKHRoaXMudHJhbnNJbmZvUGFzcy5mcm9tQWRkcmVzcyxcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzLCB0aGlzLnRyYW5zSW5mb1Bhc3MuYW1vdW50LCB0aGlzLnRyYW5zSW5mb1Bhc3MucmVtYXJrLCB0aGlzXHJcblx0XHRcdFx0XHRcdFx0LnRyYW5zSW5mb1Bhc3MuY29udHJhY3RBZGRyZXNzKVxyXG5cdFx0XHRcdFx0XHQudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC50cmFuc2FjdGlvbiA9IHJlcztcclxuXHRcdFx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3RyYW5zYWN0aW9uJywgdGhhdC50cmFuc2FjdGlvbilcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0aGF0LnRyYW5zYWN0aW9uKSlcclxuXHRcdFx0XHRcdFx0XHRsZXQgc2l6ZSA9IEpTT04uc3RyaW5naWZ5KHRoYXQudHJhbnNhY3Rpb24pLnJlcGxhY2UoL1teeDAwLXhGRl0vZywgJyoqJykubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHNpemUsIFwic2l6ZVwiKVxyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHNpemUudG9TdHJpbmcoKS5sZW5ndGgsIFwic2l6ZVwiKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQudHJhbnNJbmZvUGFzcy5mZWUgPSBOdW1iZXIoc2l6ZSkgKiAoc2l6ZS50b1N0cmluZygpLmxlbmd0aCArIDEpICogMTAwMCAvIE1hdGgucG93KDEwLFxyXG5cdFx0XHRcdFx0XHRcdFx0NilcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2hvd0JvdHRvbSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3cgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9KS5jYXRjaChlcnIgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycilcclxuXHRcdFx0XHRcdFx0XHR0aGF0LnNob3dGaW5nZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy4kdCgnaW5kZXgnKS5hZGRyZXNzZXJyb3IsXHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzY2FuQ29kZSgpIHtcclxuXHRcdFx0XHR2YXIgX3RoaXMgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnNjYW5Db2RlKHtcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5omr56CB5YaF5a65JywgcmVzLnJlc3VsdClcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdF90aGlzLnRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzID0gcmVzLnJlc3VsdDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8vIOWPlua2iOaMh+e6ueivhuWIq1xyXG5cdFx0XHRwcmludENhbmNlbCgpIHtcclxuXHRcdFx0XHR0aGlzLnNob3dGaW5nZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLnNob3dGaW5nZXIsIDQ0NDQpXHJcblx0XHRcdFx0Ly9wbHVzLmZpbmdlcnByaW50LmNhbmNlbCgpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuc2hvd0ZpbmdlciwgNDQ0NClcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGZpbmdlcnByaW50OiBmdW5jdGlvbihzZXR0KSB7XHJcblx0XHRcdFx0bGV0IGJsdHlwZSA9IHRydWU7XHJcblx0XHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXHJcblx0XHRcdFx0aWYgKCFwbHVzLmZpbmdlcnByaW50LmlzU3VwcG9ydCgpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4JykuZmluZ2VycHJpbnRpZGVudGlmaWNhdGlvbixcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC8vIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNLZXlndWFyZFNlY3VyZSgpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4Jykubm90ZXF1aXBwZWQsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdH0pXHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNFbnJvbGxlZEZpbmdlcnByaW50cygpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuJHQoJ2luZGV4Jykub25pbnRoZXNldHRpbmcsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy5yZXN1bHQgPSAn5q2k6K6+5aSH5pSv5oyB5oyH57q56K+G5YirJztcclxuXHRcdFx0XHRcdC8vIC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0XHRcdC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ1BsZWFzZSB1c2UgaXQgaW4gd2VjaGF0IHJlYWwgbWFjaGluZS4gVGhlIHNpbXVsYXRvciBkb2VzIG5vdCBzdXBwb3J0IGl0JyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdFx0Ly8gI2lmbmRlZiBBUFAtUExVUyB8fCBNUC1XRUlYSU5cclxuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ0ZpbmdlcnByaW50IGlkZW50aWZpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybScsXHJcblx0XHRcdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDAsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblxyXG5cclxuXHRcdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xyXG5cdFx0XHRcdFx0cGx1cy5maW5nZXJwcmludC5hdXRoZW50aWNhdGUoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuY2xvc2VXYWl0aW5nKCk7IC8v5YW85a65QW5kcm9pZOW5s+WPsOWFs+mXreetieW+heahhlxyXG5cclxuXHRcdFx0XHRcdFx0dGhhdC5zZW5kVHJhbnNhY3Rpb24oKVxyXG5cclxuXHRcdFx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0c3dpdGNoIChlLmNvZGUpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyDmjIfnurnor4bliKvlpLHotKXlkI7nmoTlkITnp43mg4XlhrVcclxuXHRcdFx0XHRcdFx0XHRjYXNlIGUuQVVUSEVOVElDQVRFX01JU01BVENIOlxyXG5cdFx0XHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS50b2FzdCh0aGF0LiR0KCdpbmRleCcpLkZpbmdlcnByaW50bWF0Y2hpbmdmYWlsZWQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNldFN0b3JhZ2VTeW5jKCdmaW5nZXJQYXNzJyxmYWxzZSlcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoYXQuc2hvd0ZpbmdlciwgNDU0NTQ1KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmZpbmdlckZhaWwgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93PWZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5maW5nZXJGYWlsLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHRjYXNlIGUuQVVUSEVOVElDQVRFX09WRVJMSU1JVDpcclxuXHRcdFx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuY2xvc2VXYWl0aW5nKCk7IC8v5YW85a65QW5kcm9pZOW5s+WPsOWFs+mXreetieW+heahhlxyXG5cdFx0XHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5hbGVydCh0aGF0LiR0KCdpbmRleCcpLlRoZW51bWJlcm9mZmluZ2VycHJpbnQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdW5pLnNldFN0b3JhZ2VTeW5jKCdmaW5nZXJQYXNzJyxmYWxzZSlcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoYXQuc2hvd0ZpbmdlciwgNDU0NTQ1KVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93Qm90dG9tID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmZpbmdlckZhaWwgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5zaG93PWZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5maW5nZXJGYWlsLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHRjYXNlIGUuQ0FOQ0VMOlxyXG5cdFx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkudG9hc3QodGhhdC4kdCgnaW5kZXgnKS5SZWNvZ25pdGlvbmNhbmNlbGxlZCk7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyB1bmkuc2V0U3RvcmFnZVN5bmMoJ2ZpbmdlclBhc3MnLGZhbHNlKVxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5zaG93RmluZ2VyLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyRmFpbCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3c9ZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LmZpbmdlckZhaWwsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLmNsb3NlV2FpdGluZygpOyAvL+WFvOWuuUFuZHJvaWTlubPlj7DlhbPpl63nrYnlvoXmoYZcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHVuaS5zZXRTdG9yYWdlU3luYygnZmluZ2VyUGFzcycsIGZhbHNlKVxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhhdC5zaG93RmluZ2VyLCA0NTQ1NDUpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3dCb3R0b20gPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyRmFpbCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNob3c9ZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGF0LmZpbmdlckZhaWwsIDQ1NDU0NSlcclxuXHRcdFx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuYWxlcnQodGhhdC4kdCgnaW5kZXgnKS5GaW5nZXJwcmludGlkZW50aWZpY2F0aW9uZmFpbGVkKTtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdC8vIEFuZHJvaWTlubPlj7DmiYvliqjlvLnlh7rnrYnlvoXmj5DnpLrmoYYgXHJcblx0XHRcdFx0XHRpZiAoJ0FuZHJvaWQnID09IHBsdXMub3MubmFtZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3cgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHQvKiBwbHVzLm5hdGl2ZVVJLnNob3dXYWl0aW5nKCfmjIfnurnor4bliKvkuK0uLi4nKS5vbmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0cGx1cy5maW5nZXJwcmludC5jYW5jZWwoKTtcclxuXHRcdFx0XHRcdFx0fSAqL1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGdvQWRkcmVzcyh0ZXh0KSB7XHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd0cmFuc0luZm9QYXNzJyx0aGlzLnRyYW5zSW5mb1Bhc3MpXHJcblx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdzb3VyY2VQYWdlJywgJy9wYWdlcy9tZW51L3NlbmRUb2tlbi90cmFuc2Zlci9pbmRleCcpO1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybDogJy4uL2FkZHJlc3MvaW5kZXg/aXRlbT10cmFuc2ZlcidcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKGEpIHtcclxuXHRcdFx0aWYoYS5pdGVtPT09J2FkZHJlc3MnKXtcclxuXHRcdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3M9dW5pLmdldFN0b3JhZ2VTeW5jKCd0cmFuc0luZm9QYXNzJyk7XHJcblx0XHRcdH1lbHNlIGlmKGEuaXRlbSA9PT0naW5kZXgnKXtcclxuXHRcdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzPXVuaS5nZXRTdG9yYWdlU3luYygnYWRkcmVzcycpO1xyXG5cdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHR1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnKVxyXG5cdFx0XHRcdHVuaS5yZW1vdmVTdG9yYWdlU3luYygnYWRkcmVzcycpXHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHRoaXMuY29pbiA9IHVuaS5nZXRTdG9yYWdlU3luYygnY29pbicpXHJcblx0XHRcdFxyXG5cdFx0XHRcclxuXHRcdFx0Ly8g5q+P5qyh6L+b5p2l5ou/57yT5a2Y6YeM5pyJ5rKh5pyJ5oyH57q5XHJcblx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy5mcm9tQWRkcmVzcyA9IHRoaXMuY29pbi5hZGRyZXNzO1xyXG5cdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MucHJpdmF0ZUtleSA9IHRoaXMuY29pbi5wcml2YXRlS2V5O1xyXG5cdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MucGFzc3dvcmQgPSB0aGlzLmNvaW4ucGFzc3dvcmQ7XHJcblx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy5jb250cmFjdEFkZHJlc3MgPSB0aGlzLmNvaW4uY29udHJhY3RBZGRyZXNzXHJcblx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy50eXBlID0gdGhpcy5jb2luLnR5cGU7XHJcblx0XHRcdGNvbnNvbGUubG9nKHRoaXMudHJhbnNJbmZvUGFzcywgJ+aMh+e6uScpXHJcblx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoJ2ZpbmdlclBhc3MnKSkge1xyXG5cdFx0XHRcdHRoaXMucGFzc1Nob3cgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2ZpbmdlclBhc3MnKVxyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBjdXJyZW5jeT11bmkuZ2V0U3RvcmFnZVN5bmMoJ2N1cnJlbmN5Jyk7XHJcblx0XHRcdGlmKGN1cnJlbmN5KXtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbmN5PWN1cnJlbmN5O1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKHRoaXMuY3VycmVuY3k9PT0nVVNEJyl7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29pbi5iYWxhbmNlUHJpY2UmJnRoaXMuY29pbi5iYWxhbmNlUHJpY2U+MCkge1xyXG5cdFx0XHRcdFx0dGhpcy5wcmljZSA9ICh0aGlzLmNvaW4uYmFsYW5jZVByaWNlIC8gdGhpcy5jb2luLmJhbGFuY2UpLnRvRml4ZWQoMilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdGlmICh0aGlzLmNvaW4uYmFsYW5jZUNueVByaWNlJiZ0aGlzLmNvaW4uYmFsYW5jZVByaWNlPjApIHtcclxuXHRcdFx0XHRcdHRoaXMucHJpY2UgPSAodGhpcy5jb2luLmJhbGFuY2VDbnlQcmljZSAvIHRoaXMuY29pbi5iYWxhbmNlKS50b0ZpeGVkKDIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdH07XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgc2NvcGVkPlxyXG5cdHBhZ2Uge1xyXG5cdFx0YmFja2dyb3VuZDogI0ZBRkFGQTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHR9XHJcbjwvc3R5bGU+XHJcblxyXG48c3R5bGU+XHJcblx0QGltcG9ydCAnLi9pbmRleC5jc3MnO1xyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///785\n"); /***/ }), /* 786 */ @@ -81566,7 +81566,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _C_P /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _navigation = _interopRequireDefault(__webpack_require__(/*! @/components/navigation/navigation.vue */ 523));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { password: '', password2: '', msg: '', msgLength: 0, fes: false, info: false, transInfoPass: {} };}, methods: { // 删除密码触发\n back: function back(e) {if (e.length < 6) {this.info = false;}}, transaction: function transaction() {if (this.transInfoPass.type === 'ETH') {\n this.$EthUtil.transaction(this.transInfoPass.fromAddress, this.transInfoPass.privateKey,\n this.transInfoPass.toAddress, this.transInfoPass.amount, this.transInfoPass.contractAddress,\n function (hash, err) {\n if (!err) {\n\n uni.showToast({\n title: 'Transfer succeeded',\n icon: 'none',\n duration: 1500 });\n\n setTimeout(function () {\n that.fingerSuccess = false;\n uni.reLaunch({\n url: '/pages/menu/wallet/index' });\n\n }, 1000);\n } else {\n\n __f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/enPassword/index.vue:68\");\n\n uni.showToast({\n title: 'Transfer failed, please confirm the information is correct',\n icon: 'none',\n duration: 1500 });\n\n }\n });\n } else if (this.transInfoPass.type === 'TRX') {\n this.$TronUtil.transaction(uni.getStorageSync('transaction'), this.transInfoPass.privateKey, this.transInfoPass.contractAddress).\n then(function (res) {\n\n uni.showToast({\n title: 'Transfer succeeded',\n icon: 'none',\n duration: 1500 });\n\n setTimeout(function () {\n\n uni.reLaunch({\n url: '/pages/menu/wallet/index' });\n\n }, 1000);\n }).catch(function (err) {\n __f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/enPassword/index.vue:93\");\n\n uni.showToast({\n title: 'Transfer failed, please confirm the information is correct',\n icon: 'none',\n duration: 1500 });\n\n });\n }\n\n },\n finish2: function finish2(e) {\n if (this.transInfoPass.password != e) {\n this.info = true;\n return;\n } else {\n this.info = false;\n this.transaction();\n }\n } },\n\n\n onLoad: function onLoad() {\n // 拿到转账信息\n this.transInfoPass = uni.getStorageSync('transInfoPass');\n uni.removeStorageSync('transInfoPass');\n __f__(\"log\", this.transInfoPass, 2222, \" at pages/menu/sendToken/enPassword/index.vue:119\");\n } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVudS9zZW5kVG9rZW4vZW5QYXNzd29yZC9pbmRleC52dWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLGlIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUNBLEVBQ0EsSUFEQSxrQkFDQSxDQUNBLFNBQ0EsWUFEQSxFQUVBLGFBRkEsRUFHQSxPQUhBLEVBSUEsWUFKQSxFQUtBLFVBTEEsRUFNQSxXQU5BLEVBT0EsaUJBUEEsR0FXQSxDQWJBLEVBZUEsV0FDQTtBQUNBLFFBRkEsZ0JBRUEsQ0FGQSxFQUVBLENBQ0EsbUJBQ0Esa0JBQ0EsQ0FDQSxDQU5BLEVBT0EsV0FQQSx5QkFPQSxDQUNBO0FBQ0E7QUFDQSxvQ0FEQSxFQUNBLHlCQURBLEVBQ0Esa0NBREE7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUNBREE7QUFFQSwwQkFGQTtBQUdBLDRCQUhBOztBQUtBO0FBQ0E7QUFDQTtBQUNBLCtDQURBOztBQUdBLGFBTEEsRUFLQSxJQUxBO0FBTUEsV0FiQSxNQWFBOztBQUVBOztBQUVBO0FBQ0EsaUZBREE7QUFFQSwwQkFGQTtBQUdBLDRCQUhBOztBQUtBO0FBQ0EsU0ExQkE7QUEyQkEsT0E1QkEsTUE0QkE7QUFDQTtBQUNBLFlBREEsQ0FDQTs7QUFFQTtBQUNBLHVDQURBO0FBRUEsd0JBRkE7QUFHQSwwQkFIQTs7QUFLQTs7QUFFQTtBQUNBLDZDQURBOztBQUdBLFdBTEEsRUFLQSxJQUxBO0FBTUEsU0FkQSxFQWNBLEtBZEEsQ0FjQTtBQUNBOztBQUVBO0FBQ0EsK0VBREE7QUFFQSx3QkFGQTtBQUdBLDBCQUhBOztBQUtBLFNBdEJBO0FBdUJBOztBQUVBLEtBOURBO0FBK0RBLFdBL0RBLG1CQStEQSxDQS9EQSxFQStEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBdkVBLEVBZkE7OztBQXlGQSxRQXpGQSxvQkF5RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBOUZBLEUiLCJmaWxlIjoiNzkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiXCI+XHJcblx0XHQ8bmF2aWdhdGlvbiA6c2hvd0JhY2s9XCJ0cnVlXCIgOmJnbnVtPVwiZmFsc2VcIj5cclxuXHRcdFx0PHRleHQgY2xhc3M9XCJiaWdfdGl0bGVcIj5cclxuXHRcdFx0XHRFbnRlciBQYXNzd29yZFxyXG5cdFx0XHQ8L3RleHQ+XHJcblx0XHQ8L25hdmlnYXRpb24+XHJcblx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJiaWdfdGl0bGUgYmlnX3RpdGxlMlwiPlxyXG5cdFx0XHRcdEVudGVyIFBhc3N3b3JkXHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHUtbWVzc2FnZS1pbnB1dCBAZmluaXNoPVwiZmluaXNoMlwiIDppbmFjdGl2ZS1jb2xvcj1cImluZm8/JyNGMTYwNjMnOicjRTBFNUYyJ1wiIGFjdGl2ZS1jb2xvcj1cIiM1QjUzRkZcIlxyXG5cdFx0XHRcdDp3aWR0aD1cIjk0XCIgOm1heGxlbmd0aD1cIjZcIiBtb2RlPVwiYm94XCIgOmZvY3VzPVwiZmVzXCIgOmRvdC1maWxsPVwidHJ1ZVwiIEBjaGFuZ2U9XCJiYWNrXCI+XHJcblx0XHRcdDwvdS1tZXNzYWdlLWlucHV0PlxyXG5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpbmZvVGV4dFwiIHYtaWY9XCJpbmZvXCI+XHJcblx0XHRcdFx0UGFzc3dvcmQgZGlzY3JlcGFuc2llc1xyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGNvbnQgZnJvbSBcIkAvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24udnVlXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHBhc3N3b3JkOiAnJyxcclxuXHRcdFx0XHRwYXNzd29yZDI6ICcnLFxyXG5cdFx0XHRcdG1zZzogJycsXHJcblx0XHRcdFx0bXNnTGVuZ3RoOiAwLFxyXG5cdFx0XHRcdGZlczogZmFsc2UsXHJcblx0XHRcdFx0aW5mbzogZmFsc2UsXHJcblx0XHRcdFx0dHJhbnNJbmZvUGFzczoge1xyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDliKDpmaTlr4bnoIHop6blj5FcclxuXHRcdFx0YmFjayhlKSB7XHJcblx0XHRcdFx0aWYgKGUubGVuZ3RoIDwgNikge1xyXG5cdFx0XHRcdFx0dGhpcy5pbmZvID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0cmFuc2FjdGlvbigpIHtcclxuXHRcdFx0XHRpZiAodGhpcy50cmFuc0luZm9QYXNzLnR5cGUgPT09ICdFVEgnKSB7XHJcblx0XHRcdFx0XHR0aGlzLiRFdGhVdGlsLnRyYW5zYWN0aW9uKHRoaXMudHJhbnNJbmZvUGFzcy5mcm9tQWRkcmVzcywgdGhpcy50cmFuc0luZm9QYXNzLnByaXZhdGVLZXksXHJcblx0XHRcdFx0XHRcdHRoaXMudHJhbnNJbmZvUGFzcy50b0FkZHJlc3MsIHRoaXMudHJhbnNJbmZvUGFzcy5hbW91bnQsIHRoaXMudHJhbnNJbmZvUGFzcy5jb250cmFjdEFkZHJlc3MsXHJcblx0XHRcdFx0XHRcdGZ1bmN0aW9uKGhhc2gsIGVycikge1xyXG5cdFx0XHRcdFx0XHRcdGlmICghZXJyKSB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICdUcmFuc2ZlciBzdWNjZWVkZWQnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuZmluZ2VyU3VjY2VzcyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9tZW51L3dhbGxldC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdjdW93dScpXHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICdUcmFuc2ZlciBmYWlsZWQsIHBsZWFzZSBjb25maXJtIHRoZSBpbmZvcm1hdGlvbiBpcyBjb3JyZWN0JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnRyYW5zSW5mb1Bhc3MudHlwZSA9PT0gJ1RSWCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuJFRyb25VdGlsLnRyYW5zYWN0aW9uKHVuaS5nZXRTdG9yYWdlU3luYygndHJhbnNhY3Rpb24nKSwgdGhpcy50cmFuc0luZm9QYXNzLnByaXZhdGVLZXksICB0aGlzLnRyYW5zSW5mb1Bhc3MuY29udHJhY3RBZGRyZXNzKVxyXG5cdFx0XHRcdFx0XHQudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ1RyYW5zZmVyIHN1Y2NlZWRlZCcsXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9tZW51L3dhbGxldC9pbmRleCdcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0fSwgMTAwMClcclxuXHRcdFx0XHRcdFx0fSkuY2F0Y2goZXJyID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdjdW93dScpXHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ1RyYW5zZmVyIGZhaWxlZCwgcGxlYXNlIGNvbmZpcm0gdGhlIGluZm9ybWF0aW9uIGlzIGNvcnJlY3QnLFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdH0sXHJcblx0XHRcdGZpbmlzaDIoZSkge1xyXG5cdFx0XHRcdGlmICh0aGlzLnRyYW5zSW5mb1Bhc3MucGFzc3dvcmQgIT0gZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pbmZvID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5pbmZvID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zYWN0aW9uKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdC8vIOaLv+WIsOi9rOi0puS/oeaBr1xyXG5cdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnKVxyXG5cdFx0XHR1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ3RyYW5zSW5mb1Bhc3MnKVxyXG5cdFx0XHRjb25zb2xlLmxvZyh0aGlzLnRyYW5zSW5mb1Bhc3MsIDIyMjIpXHJcblx0XHR9XHJcblx0fTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzY29wZWQ+XHJcblxyXG48L3N0eWxlPlxyXG5cclxuPHN0eWxlPlxyXG5cdEBpbXBvcnQgJy4vaW5kZXguY3NzJztcclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///790\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _navigation = _interopRequireDefault(__webpack_require__(/*! @/components/navigation/navigation.vue */ 523));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = { data: function data() {return { password: '', password2: '', msg: '', msgLength: 0, fes: false, info: false, transInfoPass: {} };}, methods: { // 删除密码触发\n back: function back(e) {if (e.length < 6) {this.info = false;}}, transaction: function transaction() {__f__(\"log\", this.transInfoPass.privateKey, \" at pages/menu/sendToken/enPassword/index.vue:49\");\n var that = this;\n if (this.transInfoPass.type === 'ETH') {\n this.$EthUtil.transaction(this.transInfoPass.fromAddress,\n this.transInfoPass.toAddress, this.transInfoPass.amount.toString(), this.transInfoPass.privateKey.substring(2, this.transInfoPass.privateKey.length), this.transInfoPass.contractAddress,\n function (hash, err) {\n if (!err) {\n\n uni.showToast({\n title: 'Transfer succeeded',\n icon: 'none',\n duration: 1500 });\n\n setTimeout(function () {\n that.fingerSuccess = false;\n uni.reLaunch({\n url: '/pages/menu/wallet/index' });\n\n }, 1000);\n } else {\n __f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/enPassword/index.vue:69\");\n\n uni.showToast({\n title: 'Transfer failed, please confirm the information is correct',\n icon: 'none',\n duration: 1500 });\n\n }\n });\n } else if (this.transInfoPass.type === 'TRX') {\n this.$TronUtil.transaction(uni.getStorageSync('transaction'), this.transInfoPass.privateKey, this.transInfoPass.contractAddress).\n then(function (res) {\n\n uni.showToast({\n title: 'Transfer succeeded',\n icon: 'none',\n duration: 1500 });\n\n setTimeout(function () {\n\n uni.reLaunch({\n url: '/pages/menu/wallet/index' });\n\n }, 1000);\n }).catch(function (err) {\n __f__(\"log\", err, 'cuowu', \" at pages/menu/sendToken/enPassword/index.vue:94\");\n\n uni.showToast({\n title: 'Transfer failed, please confirm the information is correct',\n icon: 'none',\n duration: 1500 });\n\n });\n }\n\n },\n finish2: function finish2(e) {\n if (this.transInfoPass.password != e) {\n this.info = true;\n return;\n } else {\n this.info = false;\n this.transaction();\n }\n } },\n\n\n onLoad: function onLoad() {\n // 拿到转账信息\n this.transInfoPass = uni.getStorageSync('transInfoPass');\n uni.removeStorageSync('transInfoPass');\n __f__(\"log\", this.transInfoPass, 2222, \" at pages/menu/sendToken/enPassword/index.vue:120\");\n } };exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbWVudS9zZW5kVG9rZW4vZW5QYXNzd29yZC9pbmRleC52dWUiXSwibmFtZXMiOlsiZGF0YSIsInBhc3N3b3JkIiwicGFzc3dvcmQyIiwibXNnIiwibXNnTGVuZ3RoIiwiZmVzIiwiaW5mbyIsInRyYW5zSW5mb1Bhc3MiLCJtZXRob2RzIiwiYmFjayIsImUiLCJsZW5ndGgiLCJ0cmFuc2FjdGlvbiIsInByaXZhdGVLZXkiLCJ0aGF0IiwidHlwZSIsIiRFdGhVdGlsIiwiZnJvbUFkZHJlc3MiLCJ0b0FkZHJlc3MiLCJhbW91bnQiLCJ0b1N0cmluZyIsInN1YnN0cmluZyIsImNvbnRyYWN0QWRkcmVzcyIsImhhc2giLCJlcnIiLCJ1bmkiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImljb24iLCJkdXJhdGlvbiIsInNldFRpbWVvdXQiLCJmaW5nZXJTdWNjZXNzIiwicmVMYXVuY2giLCJ1cmwiLCIkVHJvblV0aWwiLCJnZXRTdG9yYWdlU3luYyIsInRoZW4iLCJyZXMiLCJjYXRjaCIsImZpbmlzaDIiLCJvbkxvYWQiLCJyZW1vdmVTdG9yYWdlU3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLGlILDhGQXhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO2VBR2UsRUFDZEEsSUFEYyxrQkFDUCxDQUNOLE9BQU8sRUFDTkMsUUFBUSxFQUFFLEVBREosRUFFTkMsU0FBUyxFQUFFLEVBRkwsRUFHTkMsR0FBRyxFQUFFLEVBSEMsRUFJTkMsU0FBUyxFQUFFLENBSkwsRUFLTkMsR0FBRyxFQUFFLEtBTEMsRUFNTkMsSUFBSSxFQUFFLEtBTkEsRUFPTkMsYUFBYSxFQUFFLEVBUFQsRUFBUCxDQVdBLENBYmEsRUFlZEMsT0FBTyxFQUFFLEVBQ1I7QUFDQUMs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RUFmSzs7O0FBMEZkNEIsUUExRmMsb0JBMEZMO0FBQ1I7QUFDQSxTQUFLakMsYUFBTCxHQUFxQmtCLEdBQUcsQ0FBQ1UsY0FBSixDQUFtQixlQUFuQixDQUFyQjtBQUNBVixPQUFHLENBQUNnQixpQkFBSixDQUFzQixlQUF0QjtBQUNBLGlCQUFZLEtBQUtsQyxhQUFqQixFQUFnQyxJQUFoQztBQUNBLEdBL0ZhLEUiLCJmaWxlIjoiNzkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbmltcG9ydCBjb250IGZyb20gXCJAL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCB7XG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhc3N3b3JkOiAnJyxcblx0XHRcdHBhc3N3b3JkMjogJycsXG5cdFx0XHRtc2c6ICcnLFxuXHRcdFx0bXNnTGVuZ3RoOiAwLFxuXHRcdFx0ZmVzOiBmYWxzZSxcblx0XHRcdGluZm86IGZhbHNlLFxuXHRcdFx0dHJhbnNJbmZvUGFzczoge1xuXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdG1ldGhvZHM6IHtcblx0XHQvLyDliKDpmaTlr4bnoIHop6blj5Fcblx0XHRiYWNrKGUpIHtcblx0XHRcdGlmIChlLmxlbmd0aCA8IDYpIHtcblx0XHRcdFx0dGhpcy5pbmZvID0gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHR0cmFuc2FjdGlvbigpIHtcblx0XHRcdGNvbnNvbGUubG9nKHRoaXMudHJhbnNJbmZvUGFzcy5wcml2YXRlS2V5KVxuXHRcdFx0bGV0IHRoYXQ9dGhpc1xuXHRcdFx0aWYgKHRoaXMudHJhbnNJbmZvUGFzcy50eXBlID09PSAnRVRIJykge1xuXHRcdFx0XHR0aGlzLiRFdGhVdGlsLnRyYW5zYWN0aW9uKHRoaXMudHJhbnNJbmZvUGFzcy5mcm9tQWRkcmVzcyxcblx0XHRcdFx0XHR0aGlzLnRyYW5zSW5mb1Bhc3MudG9BZGRyZXNzLCB0aGlzLnRyYW5zSW5mb1Bhc3MuYW1vdW50LnRvU3RyaW5nKCksIHRoaXMudHJhbnNJbmZvUGFzcy5wcml2YXRlS2V5LnN1YnN0cmluZygyLHRoaXMudHJhbnNJbmZvUGFzcy5wcml2YXRlS2V5Lmxlbmd0aCksIHRoaXMudHJhbnNJbmZvUGFzcy5jb250cmFjdEFkZHJlc3MsXG5cdFx0XHRcdFx0ZnVuY3Rpb24oaGFzaCwgZXJyKSB7XG5cdFx0XHRcdFx0XHRpZiAoIWVycikge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAnVHJhbnNmZXIgc3VjY2VlZGVkJyxcblx0XHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDE1MDBcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5maW5nZXJTdWNjZXNzID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0dW5pLnJlTGF1bmNoKHtcblx0XHRcdFx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9tZW51L3dhbGxldC9pbmRleCdcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9LCAxMDAwKVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZXJyLCAnY3Vvd3UnKVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAnVHJhbnNmZXIgZmFpbGVkLCBwbGVhc2UgY29uZmlybSB0aGUgaW5mb3JtYXRpb24gaXMgY29ycmVjdCcsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdH0gZWxzZSBpZiAodGhpcy50cmFuc0luZm9QYXNzLnR5cGUgPT09ICdUUlgnKSB7XG5cdFx0XHRcdHRoaXMuJFRyb25VdGlsLnRyYW5zYWN0aW9uKHVuaS5nZXRTdG9yYWdlU3luYygndHJhbnNhY3Rpb24nKSwgdGhpcy50cmFuc0luZm9QYXNzLnByaXZhdGVLZXksICB0aGlzLnRyYW5zSW5mb1Bhc3MuY29udHJhY3RBZGRyZXNzKVxuXHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiAnVHJhbnNmZXIgc3VjY2VlZGVkJyxcblx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnLFxuXHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dW5pLnJlTGF1bmNoKHtcblx0XHRcdFx0XHRcdFx0XHR1cmw6ICcvcGFnZXMvbWVudS93YWxsZXQvaW5kZXgnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9LCAxMDAwKVxuXHRcdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsICdjdW93dScpXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogJ1RyYW5zZmVyIGZhaWxlZCwgcGxlYXNlIGNvbmZpcm0gdGhlIGluZm9ybWF0aW9uIGlzIGNvcnJlY3QnLFxuXHRcdFx0XHRcdFx0XHRpY29uOiAnbm9uZScsXG5cdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdH0pXG5cdFx0XHR9XG5cdFx0XG5cdFx0fSxcblx0XHRmaW5pc2gyKGUpIHtcblx0XHRcdGlmICh0aGlzLnRyYW5zSW5mb1Bhc3MucGFzc3dvcmQgIT0gZSkge1xuXHRcdFx0XHR0aGlzLmluZm8gPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmluZm8gPSBmYWxzZTtcblx0XHRcdFx0dGhpcy50cmFuc2FjdGlvbigpO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0fSxcblx0b25Mb2FkKCkge1xuXHRcdC8vIOaLv+WIsOi9rOi0puS/oeaBr1xuXHRcdHRoaXMudHJhbnNJbmZvUGFzcyA9IHVuaS5nZXRTdG9yYWdlU3luYygndHJhbnNJbmZvUGFzcycpXG5cdFx0dW5pLnJlbW92ZVN0b3JhZ2VTeW5jKCd0cmFuc0luZm9QYXNzJylcblx0XHRjb25zb2xlLmxvZyh0aGlzLnRyYW5zSW5mb1Bhc3MsIDIyMjIpXG5cdH1cbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///790\n"); /***/ }), /* 791 */ @@ -91307,7 +91307,7 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var isTest = true;\n\nvar constant = isTest ? {\n //服务端连接\n serverUrl: 'http://wallet-api.weirui0755.com',\n coinTickerWs: 'ws://wallet-quartz.weirui0755.com/websocket',\n ethNode: 'http://47.245.25.82:8545' } :\n{\n //服务端连接\n serverUrl: 'http://wallet-api.weirui0755.com',\n coinTickerWs: 'ws://wallet-quartz.weirui0755.com/websocket',\n ethNode: 'http://47.245.25.82:8545' };var _default =\n\n\n{\n constant: constant };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvU3lzdGVtQ29uZmlndXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpc1Rlc3QiLCJjb25zdGFudCIsInNlcnZlclVybCIsImNvaW5UaWNrZXJXcyIsImV0aE5vZGUiXSwibWFwcGluZ3MiOiJ1RkFBQSxJQUFJQSxNQUFNLEdBQUcsSUFBYjs7QUFFQSxJQUFNQyxRQUFRLEdBQUdELE1BQU0sR0FBRztBQUN6QjtBQUNBRSxXQUFTLEVBQUUsa0NBRmM7QUFHekJDLGNBQVksRUFBQyw2Q0FIWTtBQUl6QkMsU0FBTyxFQUFDLDBCQUppQixFQUFIO0FBS25CO0FBQ0g7QUFDQUYsV0FBUyxFQUFFLGtDQUZSO0FBR0hDLGNBQVksRUFBQyw2Q0FIVjtBQUlIQyxTQUFPLEVBQUMsMEJBSkwsRUFMSixDOzs7QUFZZTtBQUNkSCxVQUFRLEVBQVJBLFFBRGMsRSIsImZpbGUiOiI5NjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgaXNUZXN0ID0gdHJ1ZTtcclxuXHJcbmNvbnN0IGNvbnN0YW50ID0gaXNUZXN0ID8ge1xyXG5cdC8v5pyN5Yqh56uv6L+e5o6lXHJcblx0c2VydmVyVXJsOiAnaHR0cDovL3dhbGxldC1hcGkud2VpcnVpMDc1NS5jb20nLFxyXG5cdGNvaW5UaWNrZXJXczond3M6Ly93YWxsZXQtcXVhcnR6LndlaXJ1aTA3NTUuY29tL3dlYnNvY2tldCcsXHJcblx0ZXRoTm9kZTonaHR0cDovLzQ3LjI0NS4yNS44Mjo4NTQ1JyxcclxufSA6IHtcclxuXHQvL+acjeWKoeerr+i/nuaOpVxyXG5cdHNlcnZlclVybDogJ2h0dHA6Ly93YWxsZXQtYXBpLndlaXJ1aTA3NTUuY29tJyxcclxuXHRjb2luVGlja2VyV3M6J3dzOi8vd2FsbGV0LXF1YXJ0ei53ZWlydWkwNzU1LmNvbS93ZWJzb2NrZXQnLFxyXG5cdGV0aE5vZGU6J2h0dHA6Ly80Ny4yNDUuMjUuODI6ODU0NScsXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRjb25zdGFudFxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///961\n"); +eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var isTest = true;\n\nvar constant = isTest ? {\n //服务端连接\n serverUrl: 'http://wallet-api.weirui0755.com',\n coinTickerWs: 'ws://wallet-quartz.weirui0755.com/websocket',\n ethNode: 'http://47.245.25.82:8545',\n ethChainId: 1 } :\n{\n //服务端连接\n serverUrl: 'http://wallet-api.weirui0755.com',\n coinTickerWs: 'ws://wallet-quartz.weirui0755.com/websocket',\n ethNode: 'http://47.245.25.82:8545',\n ethChainId: 3 };var _default =\n\n\n{\n constant: constant };exports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvU3lzdGVtQ29uZmlndXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpc1Rlc3QiLCJjb25zdGFudCIsInNlcnZlclVybCIsImNvaW5UaWNrZXJXcyIsImV0aE5vZGUiLCJldGhDaGFpbklkIl0sIm1hcHBpbmdzIjoidUZBQUEsSUFBSUEsTUFBTSxHQUFHLElBQWI7O0FBRUEsSUFBTUMsUUFBUSxHQUFHRCxNQUFNLEdBQUc7QUFDekI7QUFDQUUsV0FBUyxFQUFFLGtDQUZjO0FBR3pCQyxjQUFZLEVBQUMsNkNBSFk7QUFJekJDLFNBQU8sRUFBQywwQkFKaUI7QUFLekJDLFlBQVUsRUFBQyxDQUxjLEVBQUg7QUFNbkI7QUFDSDtBQUNBSCxXQUFTLEVBQUUsa0NBRlI7QUFHSEMsY0FBWSxFQUFDLDZDQUhWO0FBSUhDLFNBQU8sRUFBQywwQkFKTDtBQUtIQyxZQUFVLEVBQUMsQ0FMUixFQU5KLEM7OztBQWNlO0FBQ2RKLFVBQVEsRUFBUkEsUUFEYyxFIiwiZmlsZSI6Ijk2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBpc1Rlc3QgPSB0cnVlO1xyXG5cclxuY29uc3QgY29uc3RhbnQgPSBpc1Rlc3QgPyB7XHJcblx0Ly/mnI3liqHnq6/ov57mjqVcclxuXHRzZXJ2ZXJVcmw6ICdodHRwOi8vd2FsbGV0LWFwaS53ZWlydWkwNzU1LmNvbScsXHJcblx0Y29pblRpY2tlcldzOid3czovL3dhbGxldC1xdWFydHoud2VpcnVpMDc1NS5jb20vd2Vic29ja2V0JyxcclxuXHRldGhOb2RlOidodHRwOi8vNDcuMjQ1LjI1LjgyOjg1NDUnLFxyXG5cdGV0aENoYWluSWQ6MVxyXG59IDoge1xyXG5cdC8v5pyN5Yqh56uv6L+e5o6lXHJcblx0c2VydmVyVXJsOiAnaHR0cDovL3dhbGxldC1hcGkud2VpcnVpMDc1NS5jb20nLFxyXG5cdGNvaW5UaWNrZXJXczond3M6Ly93YWxsZXQtcXVhcnR6LndlaXJ1aTA3NTUuY29tL3dlYnNvY2tldCcsXHJcblx0ZXRoTm9kZTonaHR0cDovLzQ3LjI0NS4yNS44Mjo4NTQ1JyxcclxuXHRldGhDaGFpbklkOjNcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdGNvbnN0YW50XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///961\n"); /***/ }), /* 962 */ @@ -91318,7 +91318,7 @@ eval("Object.defineProperty(exports, \"__esModule\", { value: true });exports.de /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 44));var _TokenUtil = _interopRequireDefault(__webpack_require__(/*! ./TokenUtil.js */ 38));\nvar _BtcUtil = _interopRequireDefault(__webpack_require__(/*! ./BtcUtil.js */ 963));\nvar _TronUtil = _interopRequireDefault(__webpack_require__(/*! ./TronUtil.js */ 964));\nvar _EthUtil = _interopRequireDefault(__webpack_require__(/*! ./EthUtil.js */ 965));\nvar _api = _interopRequireDefault(__webpack_require__(/*! ./api.js */ 582));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}\n\nvar fullWallet = {\n \"BTC\": [{\n balance: 0,\n name: \"BTC\",\n type: 'BTC',\n coinList: [{\n name: \"BTC\",\n xname: 'Bitcoin',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/bye.png */ 518) }] }],\n\n\n \"ETH\": [{\n balance: 0,\n name: \"ETH\",\n type: 'ETH',\n coinList: [{\n name: \"ETH\",\n xname: 'Ethereum',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) },\n\n {\n name: \"USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: __webpack_require__(/*! @/static/tongyonh/img500.png */ 520) }] }],\n\n\n\n \"TRX\": [{\n balance: 0,\n name: \"TRX\",\n type: 'TRX',\n coinList: [{\n name: \"TRX\",\n xname: 'TRON',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/tron1.png */ 521) },\n\n {\n name: \"USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',\n icon: __webpack_require__(/*! @/static/tongyonh/tether_usd.png */ 522) }] }] };\n\n\n\n\n\nvar WalletUtil = {\n //初次创建钱包\n initialWallet: function initialWallet(mnemonic, password) {\n __f__(\"log\", password, 'password', \" at utils/WalletUtil.js:62\");\n var walletInfo = fullWallet;\n var btc = _TokenUtil.default.generateBtc(mnemonic);\n walletInfo.BTC[0].password = password;\n walletInfo.BTC[0].mnemonic = mnemonic;\n walletInfo.BTC[0].privateKey = btc.privateKey;\n walletInfo.BTC[0].address = btc.address;\n walletInfo.BTC[0].ellipsisAddress = walletInfo.BTC[0].address.substring(0, 6) + '...' + walletInfo.BTC[\n 0].address.substring(walletInfo.BTC[0].address.length - 6,\n walletInfo.BTC[0].address.length);\n var eth = _TokenUtil.default.generateEth(mnemonic);\n walletInfo.ETH[0].password = password;\n walletInfo.ETH[0].mnemonic = mnemonic;\n walletInfo.ETH[0].privateKey = eth.privateKey;\n walletInfo.ETH[0].address = eth.address;\n var tron = _TokenUtil.default.generateTron(mnemonic);\n walletInfo.TRX[0].mnemonic = mnemonic;\n walletInfo.TRX[0].password = password;\n walletInfo.TRX[0].privateKey = tron.privateKey;\n walletInfo.TRX[0].address = tron.address;\n var wallet = walletInfo.BTC[0];\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n this.updateBalance();\n },\n //修改钱包名称\n updateWalletName: function updateWalletName(type, address, name) {\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = walletInfo[type];\n var wallet = uni.getStorageSync('wallet');\n for (var k = 0, length = walletList.length; k < length; k++) {\n if (walletList[k].address === address) {\n walletList[k].name = name;\n if (wallet.address == walletList[k].address) {\n wallet.name = name;\n uni.setStorageSync('wallet', wallet);\n }\n break;\n }\n }\n uni.setStorageSync('walletInfo', walletInfo);\n },\n //助记词新建\n mnemonicEstablishWallet: function mnemonicEstablishWallet(type, mnemonic, password) {\n var walletInfo = uni.getStorageSync('walletInfo');\n __f__(\"log\", password, 'password', type, \" at utils/WalletUtil.js:107\");\n var walletdec;\n switch (type) {\n case 'BTC':\n walletdec = _TokenUtil.default.generateBtc(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;\n case 'ETH':\n walletdec = _TokenUtil.default.generateEth(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;\n case 'TRX':\n\n walletdec = _TokenUtil.default.generateTron(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;}\n\n var wallet = fullWallet[type][0];\n wallet.password = password;\n wallet.privateKey = walletdec.privateKey;\n wallet.mnemonic = mnemonic;\n wallet.address = walletdec.address;\n __f__(\"log\", wallet, \" at utils/WalletUtil.js:138\");\n walletInfo[type].push(wallet);\n __f__(\"log\", walletInfo, 1111111, \" at utils/WalletUtil.js:140\");\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n uni.setStorageSync('walleti', wallet.address);\n\n },\n //私钥新建\n privateKeyEstablishWallet: function privateKeyEstablishWallet(type, privateKey, password) {\n var walletInfo = uni.getStorageSync('walletInfo');\n __f__(\"log\", type, \" at utils/WalletUtil.js:149\");\n __f__(\"log\", password, 'password', \" at utils/WalletUtil.js:150\");\n var walletdec;\n switch (type) {\n case 'BTC':\n walletdec = _TokenUtil.default.importBtcPrivateKey(privateKey);\n break;\n case 'ETH':\n walletdec = _TokenUtil.default.importEthPrivateKey(privateKey);\n break;\n case 'TRX':\n walletdec = _TokenUtil.default.importTronPrivateKey(privateKey);\n break;}\n\n var wallet = fullWallet[type][0];\n wallet.password = password;\n wallet.privateKey = walletdec.privateKey;\n wallet.address = walletdec.address;\n wallet.ellipsisAddress = wallet.address.substring(0, 6) + '...' + wallet.address.substring(\n wallet.address.length - 6,\n wallet.address.length);\n walletInfo[type].push(wallet);\n __f__(\"log\", walletInfo, '当前私钥建的', \" at utils/WalletUtil.js:171\");\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n uni.setStorageSync('walleti', wallet.address);\n },\n //获取钱包列表\n getWalletList: function getWalletList(type) {\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = [];\n if (type) {\n walletList = walletInfo[type];\n for (var k = 0, length = walletList.length; k < length; k++) {\n var address = walletList[k].address;\n walletList[k].ellipsisAddress = address.substring(0, 6) + '...' + address.substring(address.length - 6,\n address.length);\n }\n } else {\n for (var obj in walletInfo) {\n for (var k = 0, length = walletInfo[obj].length; k < length; k++) {\n var _address = walletInfo[obj][k].address;\n\n walletInfo[obj][k].ellipsisAddress = _address.substring(0, 6) + '...' + _address.substring(\n _address.length - 6,\n _address.length);\n walletInfo[obj][k].type = obj;\n walletList.push(walletInfo[obj][k]);\n }\n }\n }\n return walletList;\n },\n selectWallet: function selectWallet(type, address) {\n __f__(\"log\", '选择钱包', \" at utils/WalletUtil.js:203\");\n uni.setStorageSync('walleti', address);\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = walletInfo[type];\n __f__(\"log\", \" at utils/WalletUtil.js:207\");\n for (var k = 0, length = walletList.length; k < length; k++) {\n if (walletList[k].address == address) {\n walletList[k].ellipsisAddress = address.substring(0, 6) + '...' + address.substring(address.length - 6,\n address.length);\n uni.setStorageSync('wallet', walletList[k]);\n break;\n }\n\n }\n },\n updateBalance: function () {var _updateBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(success) {var wallet, params, mainCoinP, usdtU, i, tronCoin, newList, _i, coin, walletInfo, k, length;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n uni.setStorageSync('isWallet', true);\n wallet = uni.getStorageSync('wallet');\n params = {\n coinName: wallet.type };_context.next = 5;return (\n\n _api.default.getCoinRate(params));case 5:mainCoinP = _context.sent;\n params.coinName = 'USDT';_context.next = 9;return (\n _api.default.getCoinRate(params));case 9:usdtU = _context.sent;\n wallet.totalBalancePrice = 0;\n wallet.totalBalanceCnyPrice = 0;\n __f__(\"log\", usdtU, 8888, \" at utils/WalletUtil.js:229\");_context.t0 =\n wallet.type;_context.next = _context.t0 ===\n 'BTC' ? 16 : _context.t0 ===\n\n\n\n 'ETH' ? 21 : _context.t0 ===\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n 'TRX' ? 40 : 55;break;case 16:__f__(\"log\", \"进来BTC\", \" at utils/WalletUtil.js:232\");_context.next = 19;return _BtcUtil.default.getBalance(wallet.address);case 19:wallet.balance = _context.sent;return _context.abrupt(\"break\", 55);case 21:__f__(\"log\", \"进来ETH\", wallet.balance, \" at utils/WalletUtil.js:236\");_context.next = 24;return _EthUtil.default.getBalance(wallet.address);case 24:wallet.balance = _context.sent;__f__(\"log\", \"进来ETH\", wallet.balance, \" at utils/WalletUtil.js:238\");i = 1;case 27:if (!(i < wallet.coinList.length)) {_context.next = 35;break;}_context.next = 30;return _EthUtil.default.getTokenBalance(wallet.address, wallet.coinList[i].contractAddress);case 30:wallet.coinList[i].balance = _context.sent;__f__(\"log\", \"进来ETH\", wallet.coinList[i].balance, \" at utils/WalletUtil.js:241\");case 32:i++;_context.next = 27;break;case 35:wallet.totalBalancePrice = wallet.coinList[1].balancePrice ? wallet.coinList[1].balancePrice : 0;wallet.totalBalanceCnyPrice = wallet.coinList[1].balanceCnyPrice ? wallet.coinList[1].balanceCnyPrice : 0;wallet.coinList[1].balancePrice = (wallet.coinList[1].balance * usdtU.data.priceInUsd).toFixed(2);wallet.coinList[1].balanceCnyPrice = (wallet.coinList[1].balance * usdtU.data.priceCny).toFixed(2);return _context.abrupt(\"break\", 55);case 40:\n __f__(\"log\", \"进来TRX\", \" at utils/WalletUtil.js:252\");_context.next = 43;return (\n _TronUtil.default.getTronBalance(wallet.address));case 43:wallet.balance = _context.sent;\n params.address = wallet.address;\n params.chainName = wallet.type;_context.next = 48;return (\n _api.default.getBalance(params));case 48:tronCoin = _context.sent;\n newList = [];\n newList.push(wallet.coinList[0]);\n newList.push(wallet.coinList[1]);\n for (_i = 1; _i < tronCoin.data.length; _i++) {\n if (tronCoin.data[_i].tokenAbbr === 'USDT') {\n newList[1].balance = Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.\n data[_i].tokenDecimal);\n newList[1].balanceCnyPrice = (newList[1].balance * usdtU.data.priceCny).toFixed(2);\n newList[1].balancePrice = (newList[1].balance * usdtU.data.priceInUsd).toFixed(2);\n wallet.totalBalancePrice = newList[1].balancePrice;\n wallet.totalBalanceCnyPrice = newList[1].balanceCnyPrice;\n } else {\n __f__(\"log\", Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.data[_i].\n tokenDecimal), \" at utils/WalletUtil.js:269\");\n coin = {\n name: tronCoin.data[_i].tokenAbbr,\n xname: tronCoin.data[_i].tokenName,\n balance: Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.data[_i].\n tokenDecimal),\n icon: tronCoin.data[_i].tokenLogo };\n\n\n if (tronCoin.data[_i].tokenType === 'trc20') {\n coin.contractAddress = tronCoin.data[_i].tokenId;\n } else {\n coin.contractAddress = tronCoin.data[_i].owner_address;\n }\n newList.push(coin);\n }\n\n\n }\n wallet.coinList = newList;return _context.abrupt(\"break\", 55);case 55:\n\n\n\n\n wallet.ellipsisAddress = wallet.address.substring(0, 6) + '...' + wallet.address.substring(\n wallet.address.length - 6,\n wallet.address.length);\n wallet.balancePrice = (wallet.balance * mainCoinP.data.priceInUsd).toFixed(2);\n wallet.balanceCnyPrice = (wallet.balance * mainCoinP.data.priceCny).toFixed(2);\n wallet.totalBalancePrice = (Number(wallet.totalBalancePrice) + Number(wallet.balancePrice)).toFixed(2);\n wallet.totalBalanceCnyPrice = (Number(wallet.totalBalanceCnyPrice) + Number(wallet.balanceCnyPrice)).toFixed(2);\n __f__(\"log\", \"wallet.balancePrice\", Number(wallet.totalBalancePrice), \" at utils/WalletUtil.js:301\");\n __f__(\"log\", \"wallet.balanceCnyPrice\", wallet.totalBalancePrice, \" at utils/WalletUtil.js:302\");\n wallet.coinList[0].balance = wallet.balance;\n wallet.coinList[0].balancePrice = wallet.balancePrice;\n wallet.coinList[0].balanceCnyPrice = wallet.balanceCnyPrice;\n uni.setStorageSync('wallet', wallet);\n walletInfo = uni.getStorageSync('walletInfo');\n k = 0, length = walletInfo[wallet.type].length;case 68:if (!(k < length)) {_context.next = 75;break;}if (!(\n walletInfo[wallet.type][k].address === wallet.address)) {_context.next = 72;break;}\n walletInfo[wallet.type][k] = wallet;return _context.abrupt(\"break\", 75);case 72:k++;_context.next = 68;break;case 75:\n\n\n\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('isWallet', false);return _context.abrupt(\"return\",\n wallet);case 78:case \"end\":return _context.stop();}}}, _callee);}));function updateBalance(_x) {return _updateBalance.apply(this, arguments);}return updateBalance;}(),\n\n\n // 封装地址方法\n updateAddress: function updateAddress(type, value, bigAddress, addressName) {\n var that = this;\n switch (wallet.type) {\n case 'BTC':\n\n break;\n case 'ETH':\n\n\n break;\n case 'TRX':\n if (value == 'ETH') {\n var gai = uni.getStorageSync('ETHAddressInfo');\n var gai2 = uni.getStorageSync('TRXAddressInfo');\n var index = uni.getStorageSync('editIndex');\n var eth = new Object();\n eth.address = bigAddress;\n eth.name = addressName;\n eth.coinList = [{\n name: \"ETH\",\n name2: \"ETH\",\n xname: 'Ethereum',\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) }];\n\n gai2.splice(index, 1);\n uni.setStorageSync('TRXAddressInfo', gai2);\n gai.push(eth);\n uni.setStorageSync('ETHAddressInfo', gai);\n uni.showToast({\n title: 'Successfully',\n icon: 'success',\n duration: 1500 });\n\n uni.navigateTo({\n url: '../address/index' });\n\n }\n\n break;}\n\n\n\n },\n // 指纹识别\n finger: function finger() {\n\n if (!plus.fingerprint.isSupport()) {\n this.result = '此设备不支持指纹识别';\n this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n this.result = '此设备未设置密码锁屏,无法使用指纹识别';\n this.disabled = true;\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n this.result = '此设备未录入指纹,请到设置中开启';\n this.disabled = true;\n } else {\n this.result = '此设备支持指纹识别';\n this.disabled = false;\n }\n\n\n\n\n\n\n\n\n },\n\n fingerprint: function fingerprint(sett) {\n var bltype = true;\n\n if (!plus.fingerprint.isSupport()) {\n uni.showToast({\n title: 'This device does not support fingerprint identification',\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n uni.showToast({\n title: 'This device is not equipped with a password lock screen and cannot use fingerprint identification',\n icon: 'none',\n duration: 1500 });\n\n\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n uni.showToast({\n title: 'There is no fingerprint entered in this device. Please turn it on in the setting',\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else {\n // this.result = '此设备支持指纹识别';\n // // this.disabled = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n var that = this;\n var forSett = true;\n\n plus.fingerprint.authenticate(function () {\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\t\n // uni.showToast({\n // \ttitle: 'Fingerprint identification succeeded',\n // \ticon: 'none',\n // \tduration: 1500,\n // \t\t})\n // 存储设置里开启指纹后的状态,隐藏使用密码\n __f__(\"log\", forSett, 12121, \" at utils/WalletUtil.js:444\");\n if (sett) {\n uni.setStorageSync('fingerPass', true);\n __f__(\"log\", forSett, 12121, \" at utils/WalletUtil.js:447\");\n\n }\n //plus.nativeUI.alert('Fingerprint identification succeeded');\n }, function (e) {\n switch (e.code) {\n case e.AUTHENTICATE_MISMATCH:\n plus.nativeUI.toast('Fingerprint matching failed, please re-enter');\n break;\n case e.AUTHENTICATE_OVERLIMIT:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert(\n 'The number of fingerprint identification failures exceeds the limit. Please use other methods for authentication');\n\n break;\n case e.CANCEL:\n plus.nativeUI.toast('Recognition has been cancelled');\n break;\n default:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert('Fingerprint identification failed, please try again');\n break;}\n\n });\n // Android平台手动弹出等待提示框 \n if ('Android' == plus.os.name) {\n this.show = true;\n /* plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {\r\n \tplus.fingerprint.cancel();\r\n } */\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n }\n\n\n\n },\n printCancel: function printCancel() {\n plus.fingerprint.cancel();\n // this.result=\"停止指纹识别\"\n } };var _default =\n\nWalletUtil;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvV2FsbGV0VXRpbC5qcyJdLCJuYW1lcyI6WyJmdWxsV2FsbGV0IiwiYmFsYW5jZSIsIm5hbWUiLCJ0eXBlIiwiY29pbkxpc3QiLCJ4bmFtZSIsImljb24iLCJyZXF1aXJlIiwiY29udHJhY3RBZGRyZXNzIiwiV2FsbGV0VXRpbCIsImluaXRpYWxXYWxsZXQiLCJtbmVtb25pYyIsInBhc3N3b3JkIiwid2FsbGV0SW5mbyIsImJ0YyIsIlRva2VuVXRpbCIsImdlbmVyYXRlQnRjIiwiQlRDIiwicHJpdmF0ZUtleSIsImFkZHJlc3MiLCJlbGxpcHNpc0FkZHJlc3MiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJldGgiLCJnZW5lcmF0ZUV0aCIsIkVUSCIsInRyb24iLCJnZW5lcmF0ZVRyb24iLCJUUlgiLCJ3YWxsZXQiLCJ1bmkiLCJzZXRTdG9yYWdlU3luYyIsInVwZGF0ZUJhbGFuY2UiLCJ1cGRhdGVXYWxsZXROYW1lIiwiZ2V0U3RvcmFnZVN5bmMiLCJ3YWxsZXRMaXN0IiwiayIsIm1uZW1vbmljRXN0YWJsaXNoV2FsbGV0Iiwid2FsbGV0ZGVjIiwicHVzaCIsInByaXZhdGVLZXlFc3RhYmxpc2hXYWxsZXQiLCJpbXBvcnRCdGNQcml2YXRlS2V5IiwiaW1wb3J0RXRoUHJpdmF0ZUtleSIsImltcG9ydFRyb25Qcml2YXRlS2V5IiwiZ2V0V2FsbGV0TGlzdCIsIm9iaiIsInNlbGVjdFdhbGxldCIsInN1Y2Nlc3MiLCJwYXJhbXMiLCJjb2luTmFtZSIsImFwaSIsImdldENvaW5SYXRlIiwibWFpbkNvaW5QIiwidXNkdFUiLCJ0b3RhbEJhbGFuY2VQcmljZSIsInRvdGFsQmFsYW5jZUNueVByaWNlIiwiQnRjVXRpbCIsImdldEJhbGFuY2UiLCJFdGhVdGlsIiwiaSIsImdldFRva2VuQmFsYW5jZSIsImJhbGFuY2VQcmljZSIsImJhbGFuY2VDbnlQcmljZSIsImRhdGEiLCJwcmljZUluVXNkIiwidG9GaXhlZCIsInByaWNlQ255IiwiVHJvblV0aWwiLCJnZXRUcm9uQmFsYW5jZSIsImNoYWluTmFtZSIsInRyb25Db2luIiwibmV3TGlzdCIsInRva2VuQWJiciIsIk51bWJlciIsIk1hdGgiLCJwb3ciLCJ0b2tlbkRlY2ltYWwiLCJjb2luIiwidG9rZW5OYW1lIiwidG9rZW5Mb2dvIiwidG9rZW5UeXBlIiwidG9rZW5JZCIsIm93bmVyX2FkZHJlc3MiLCJ1cGRhdGVBZGRyZXNzIiwidmFsdWUiLCJiaWdBZGRyZXNzIiwiYWRkcmVzc05hbWUiLCJ0aGF0IiwiZ2FpIiwiZ2FpMiIsImluZGV4IiwiT2JqZWN0IiwibmFtZTIiLCJzcGxpY2UiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwibmF2aWdhdGVUbyIsInVybCIsImZpbmdlciIsInBsdXMiLCJmaW5nZXJwcmludCIsImlzU3VwcG9ydCIsInJlc3VsdCIsImRpc2FibGVkIiwiaXNLZXlndWFyZFNlY3VyZSIsImlzRW5yb2xsZWRGaW5nZXJwcmludHMiLCJzZXR0IiwiYmx0eXBlIiwiZm9yU2V0dCIsImF1dGhlbnRpY2F0ZSIsIm5hdGl2ZVVJIiwiY2xvc2VXYWl0aW5nIiwiZSIsImNvZGUiLCJBVVRIRU5USUNBVEVfTUlTTUFUQ0giLCJ0b2FzdCIsIkFVVEhFTlRJQ0FURV9PVkVSTElNSVQiLCJhbGVydCIsIkNBTkNFTCIsIm9zIiwic2hvdyIsInByaW50Q2FuY2VsIiwiY2FuY2VsIl0sIm1hcHBpbmdzIjoid1BBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RTs7QUFFQSxJQUFJQSxVQUFVLEdBQUc7QUFDaEIsU0FBTyxDQUFDO0FBQ1BDLFdBQU8sRUFBRSxDQURGO0FBRVBDLFFBQUksRUFBRSxLQUZDO0FBR1BDLFFBQUksRUFBRSxLQUhDO0FBSVBDLFlBQVEsRUFBRSxDQUFDO0FBQ1ZGLFVBQUksRUFBRSxLQURJO0FBRVZHLFdBQUssRUFBRSxTQUZHO0FBR1ZKLGFBQU8sRUFBRSxDQUhDO0FBSVZLLFVBQUksRUFBRUMsbUJBQU8sQ0FBQyxvQ0FBRCxDQUpILEVBQUQsQ0FKSCxF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QUFkLENBQW9CLDhDQUFwQjtBQUNBO0FBQ0QsZUFBS0gsQ0FBQyxDQUFDSSxzQkFBUDtBQUNDakIsZ0JBQUksQ0FBQ1csUUFBTCxDQUFjQyxZQUFkLEdBREQsQ0FDK0I7QUFDOUJaLGdCQUFJLENBQUNXLFFBQUwsQ0FBY08sS0FBZDtBQUNDLDhIQUREOztBQUdBO0FBQ0QsZUFBS0wsQ0FBQyxDQUFDTSxNQUFQO0FBQ0NuQixnQkFBSSxDQUFDVyxRQUFMLENBQWNLLEtBQWQsQ0FBb0IsZ0NBQXBCO0FBQ0E7QUFDRDtBQUNDaEIsZ0JBQUksQ0FBQ1csUUFBTCxDQUFjQyxZQUFkLEdBREQsQ0FDK0I7QUFDOUJaLGdCQUFJLENBQUNXLFFBQUwsQ0FBY08sS0FBZCxDQUFvQixxREFBcEI7QUFDQSxrQkFoQkY7O0FBa0JBLE9BbENEO0FBbUNBO0FBQ0EsVUFBSSxhQUFhbEIsSUFBSSxDQUFDb0IsRUFBTCxDQUFRdEgsSUFBekIsRUFBK0I7QUFDOUIsYUFBS3VILElBQUwsR0FBWSxJQUFaO0FBQ0E7OztBQUdBOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCRDs7OztBQUlELEdBdmJlO0FBd2JoQkMsYUFBVyxFQUFFLHVCQUFXO0FBQ3ZCdEIsUUFBSSxDQUFDQyxXQUFMLENBQWlCc0IsTUFBakI7QUFDQTtBQUNBLEdBM2JlLEVBQWpCLEM7O0FBNmJlbEgsVSIsImZpbGUiOiI5NjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9rZW5VdGlsIGZyb20gJy4vVG9rZW5VdGlsLmpzJ1xyXG5pbXBvcnQgQnRjVXRpbCBmcm9tICcuL0J0Y1V0aWwuanMnXHJcbmltcG9ydCBUcm9uVXRpbCBmcm9tICcuL1Ryb25VdGlsLmpzJ1xyXG5pbXBvcnQgRXRoVXRpbCBmcm9tICcuL0V0aFV0aWwuanMnXHJcbmltcG9ydCBhcGkgZnJvbSAnLi9hcGkuanMnXHJcblxyXG5sZXQgZnVsbFdhbGxldCA9IHtcclxuXHRcIkJUQ1wiOiBbe1xyXG5cdFx0YmFsYW5jZTogMCxcclxuXHRcdG5hbWU6IFwiQlRDXCIsXHJcblx0XHR0eXBlOiAnQlRDJyxcclxuXHRcdGNvaW5MaXN0OiBbe1xyXG5cdFx0XHRuYW1lOiBcIkJUQ1wiLFxyXG5cdFx0XHR4bmFtZTogJ0JpdGNvaW4nLFxyXG5cdFx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC9ieWUucG5nJylcclxuXHRcdH1dXHJcblx0fV0sXHJcblx0XCJFVEhcIjogW3tcclxuXHRcdGJhbGFuY2U6IDAsXHJcblx0XHRuYW1lOiBcIkVUSFwiLFxyXG5cdFx0dHlwZTogJ0VUSCcsXHJcblx0XHRjb2luTGlzdDogW3tcclxuXHRcdFx0XHRuYW1lOiBcIkVUSFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnRXRoZXJldW0nLFxyXG5cdFx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvRnJhbWUzMjk5LnBuZycpXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcIlVTRFRcIixcclxuXHRcdFx0XHR4bmFtZTogJ1RldGhlciBVU0QnLFxyXG5cdFx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdFx0Y29udHJhY3RBZGRyZXNzOiAnMHhkYWMxN2Y5NThkMmVlNTIzYTIyMDYyMDY5OTQ1OTdjMTNkODMxZWM3JyxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC9pbWc1MDAucG5nJylcclxuXHRcdFx0fVxyXG5cdFx0XVxyXG5cdH1dLFxyXG5cdFwiVFJYXCI6IFt7XHJcblx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0bmFtZTogXCJUUlhcIixcclxuXHRcdHR5cGU6ICdUUlgnLFxyXG5cdFx0Y29pbkxpc3Q6IFt7XHJcblx0XHRcdFx0bmFtZTogXCJUUlhcIixcclxuXHRcdFx0XHR4bmFtZTogJ1RST04nLFxyXG5cdFx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdFx0aWNvbjogcmVxdWlyZSgnQC9zdGF0aWMvdG9uZ3lvbmgvdHJvbjEucG5nJylcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG5hbWU6IFwiVVNEVFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVGV0aGVyIFVTRCcsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRjb250cmFjdEFkZHJlc3M6ICdUUjdOSHFqZUtReEdUQ2k4cThaWTRwTDhvdFN6Z2pMajZ0JyxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90ZXRoZXJfdXNkLnBuZycpXHJcblx0XHRcdH1cclxuXHRcdF1cclxuXHR9XVxyXG59XHJcblxyXG5sZXQgV2FsbGV0VXRpbCA9IHtcclxuXHQvL+WIneasoeWIm+W7uumSseWMhVxyXG5cdGluaXRpYWxXYWxsZXQ6IGZ1bmN0aW9uKG1uZW1vbmljLCBwYXNzd29yZCkge1xyXG5cdFx0Y29uc29sZS5sb2cocGFzc3dvcmQsICdwYXNzd29yZCcpXHJcblx0XHRsZXQgd2FsbGV0SW5mbyA9IGZ1bGxXYWxsZXQ7XHJcblx0XHRsZXQgYnRjID0gVG9rZW5VdGlsLmdlbmVyYXRlQnRjKG1uZW1vbmljKTtcclxuXHRcdHdhbGxldEluZm8uQlRDWzBdLnBhc3N3b3JkID0gcGFzc3dvcmQ7XHJcblx0XHR3YWxsZXRJbmZvLkJUQ1swXS5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0d2FsbGV0SW5mby5CVENbMF0ucHJpdmF0ZUtleSA9IGJ0Yy5wcml2YXRlS2V5O1xyXG5cdFx0d2FsbGV0SW5mby5CVENbMF0uYWRkcmVzcyA9IGJ0Yy5hZGRyZXNzO1xyXG5cdFx0d2FsbGV0SW5mby5CVENbMF0uZWxsaXBzaXNBZGRyZXNzID0gd2FsbGV0SW5mby5CVENbMF0uYWRkcmVzcy5zdWJzdHJpbmcoMCwgNikgKyAnLi4uJyArIHdhbGxldEluZm8uQlRDW1xyXG5cdFx0XHQwXS5hZGRyZXNzLnN1YnN0cmluZyh3YWxsZXRJbmZvLkJUQ1swXS5hZGRyZXNzLmxlbmd0aC02LFxyXG5cdFx0XHR3YWxsZXRJbmZvLkJUQ1swXS5hZGRyZXNzLmxlbmd0aClcclxuXHRcdGxldCBldGggPSBUb2tlblV0aWwuZ2VuZXJhdGVFdGgobW5lbW9uaWMpXHJcblx0XHR3YWxsZXRJbmZvLkVUSFswXS5wYXNzd29yZCA9IHBhc3N3b3JkO1xyXG5cdFx0d2FsbGV0SW5mby5FVEhbMF0ubW5lbW9uaWMgPSBtbmVtb25pYztcclxuXHRcdHdhbGxldEluZm8uRVRIWzBdLnByaXZhdGVLZXkgPSBldGgucHJpdmF0ZUtleTtcclxuXHRcdHdhbGxldEluZm8uRVRIWzBdLmFkZHJlc3MgPSBldGguYWRkcmVzcztcclxuXHRcdGxldCB0cm9uID0gVG9rZW5VdGlsLmdlbmVyYXRlVHJvbihtbmVtb25pYyk7XHJcblx0XHR3YWxsZXRJbmZvLlRSWFswXS5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0d2FsbGV0SW5mby5UUlhbMF0ucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHdhbGxldEluZm8uVFJYWzBdLnByaXZhdGVLZXkgPSB0cm9uLnByaXZhdGVLZXk7XHJcblx0XHR3YWxsZXRJbmZvLlRSWFswXS5hZGRyZXNzID0gdHJvbi5hZGRyZXNzO1xyXG5cdFx0bGV0IHdhbGxldCA9IHdhbGxldEluZm8uQlRDWzBdO1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJywgd2FsbGV0SW5mbyk7XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcsIHdhbGxldCk7XHJcblx0XHR0aGlzLnVwZGF0ZUJhbGFuY2UoKTtcclxuXHR9LFxyXG5cdC8v5L+u5pS56ZKx5YyF5ZCN56ewXHJcblx0dXBkYXRlV2FsbGV0TmFtZTogZnVuY3Rpb24odHlwZSwgYWRkcmVzcywgbmFtZSkge1xyXG5cdFx0bGV0IHdhbGxldEluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKTtcclxuXHRcdGxldCB3YWxsZXRMaXN0ID0gd2FsbGV0SW5mb1t0eXBlXTtcclxuXHRcdGxldCB3YWxsZXQgPXVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0Jyk7XHJcblx0XHRmb3IgKHZhciBrID0gMCwgbGVuZ3RoID0gd2FsbGV0TGlzdC5sZW5ndGg7IGsgPCBsZW5ndGg7IGsrKykge1xyXG5cdFx0XHRpZiAod2FsbGV0TGlzdFtrXS5hZGRyZXNzID09PSBhZGRyZXNzKSB7XHJcblx0XHRcdFx0d2FsbGV0TGlzdFtrXS5uYW1lID0gbmFtZVxyXG5cdFx0XHRcdCBpZih3YWxsZXQuYWRkcmVzcz09d2FsbGV0TGlzdFtrXS5hZGRyZXNzKXtcclxuXHRcdFx0XHRcdCB3YWxsZXQubmFtZT1uYW1lXHJcblx0XHRcdFx0XHQgdW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXQnLHdhbGxldCk7XHJcblx0XHRcdFx0IH1cclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJywgd2FsbGV0SW5mbyk7XHJcblx0fSxcclxuXHQvL+WKqeiusOivjeaWsOW7ulxyXG5cdG1uZW1vbmljRXN0YWJsaXNoV2FsbGV0OiBmdW5jdGlvbih0eXBlLCBtbmVtb25pYywgcGFzc3dvcmQpIHtcclxuXHRcdGxldCB3YWxsZXRJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJyk7XHJcblx0XHRjb25zb2xlLmxvZyhwYXNzd29yZCwgJ3Bhc3N3b3JkJywgdHlwZSlcclxuXHRcdGxldCB3YWxsZXRkZWM7XHJcblx0XHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdFx0Y2FzZSAnQlRDJzpcclxuXHRcdFx0XHR3YWxsZXRkZWMgPSBUb2tlblV0aWwuZ2VuZXJhdGVCdGMobW5lbW9uaWMpO1xyXG5cdFx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKSkge1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRpJywgd2FsbGV0ZGVjLmFkZHJlc3MpXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnRVRIJzpcclxuXHRcdFx0XHR3YWxsZXRkZWMgPSBUb2tlblV0aWwuZ2VuZXJhdGVFdGgobW5lbW9uaWMpO1xyXG5cdFx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKSkge1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRpJywgd2FsbGV0ZGVjLmFkZHJlc3MpXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnVFJYJzpcclxuXHJcblx0XHRcdFx0d2FsbGV0ZGVjID0gVG9rZW5VdGlsLmdlbmVyYXRlVHJvbihtbmVtb25pYyk7XHJcblx0XHRcdFx0aWYgKHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldGknLCB3YWxsZXRkZWMuYWRkcmVzcylcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHdhbGxldCA9IGZ1bGxXYWxsZXRbdHlwZV1bMF07XHJcblx0XHR3YWxsZXQucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHdhbGxldC5wcml2YXRlS2V5ID0gd2FsbGV0ZGVjLnByaXZhdGVLZXk7XHJcblx0XHR3YWxsZXQubW5lbW9uaWMgPSBtbmVtb25pYztcclxuXHRcdHdhbGxldC5hZGRyZXNzID0gd2FsbGV0ZGVjLmFkZHJlc3M7XHJcblx0XHRjb25zb2xlLmxvZyh3YWxsZXQpXHJcblx0XHR3YWxsZXRJbmZvW3R5cGVdLnB1c2god2FsbGV0KTtcclxuXHRcdGNvbnNvbGUubG9nKHdhbGxldEluZm8sIDExMTExMTEpXHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nLCB3YWxsZXRJbmZvKTtcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0Jywgd2FsbGV0KTtcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0aScsIHdhbGxldC5hZGRyZXNzKTtcclxuXHJcblx0fSxcclxuXHQvL+engemSpeaWsOW7ulxyXG5cdHByaXZhdGVLZXlFc3RhYmxpc2hXYWxsZXQ6IGZ1bmN0aW9uKHR5cGUsIHByaXZhdGVLZXksIHBhc3N3b3JkKSB7XHJcblx0XHRsZXQgd2FsbGV0SW5mbyA9IHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpO1xyXG5cdFx0Y29uc29sZS5sb2codHlwZSlcclxuXHRcdGNvbnNvbGUubG9nKHBhc3N3b3JkLCAncGFzc3dvcmQnKVxyXG5cdFx0bGV0IHdhbGxldGRlYztcclxuXHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRjYXNlICdCVEMnOlxyXG5cdFx0XHRcdHdhbGxldGRlYyA9IFRva2VuVXRpbC5pbXBvcnRCdGNQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdFVEgnOlxyXG5cdFx0XHRcdHdhbGxldGRlYyA9IFRva2VuVXRpbC5pbXBvcnRFdGhQcml2YXRlS2V5KHByaXZhdGVLZXkpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdUUlgnOlxyXG5cdFx0XHRcdHdhbGxldGRlYyA9IFRva2VuVXRpbC5pbXBvcnRUcm9uUHJpdmF0ZUtleShwcml2YXRlS2V5KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHRcdGxldCB3YWxsZXQgPSBmdWxsV2FsbGV0W3R5cGVdWzBdO1xyXG5cdFx0d2FsbGV0LnBhc3N3b3JkID0gcGFzc3dvcmQ7XHJcblx0XHR3YWxsZXQucHJpdmF0ZUtleSA9IHdhbGxldGRlYy5wcml2YXRlS2V5O1xyXG5cdFx0d2FsbGV0LmFkZHJlc3MgPSB3YWxsZXRkZWMuYWRkcmVzcztcclxuXHRcdFx0d2FsbGV0LmVsbGlwc2lzQWRkcmVzcyA9IHdhbGxldC5hZGRyZXNzLnN1YnN0cmluZygwLCA2KSArICcuLi4nICsgd2FsbGV0LmFkZHJlc3Muc3Vic3RyaW5nKFxyXG5cdFx0XHR3YWxsZXQuYWRkcmVzcy5sZW5ndGggLSA2LFxyXG5cdFx0XHR3YWxsZXQuYWRkcmVzcy5sZW5ndGgpO1xyXG5cdFx0d2FsbGV0SW5mb1t0eXBlXS5wdXNoKHdhbGxldCk7XHJcblx0XHRjb25zb2xlLmxvZyh3YWxsZXRJbmZvLCAn5b2T5YmN56eB6ZKl5bu655qEJylcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycsIHdhbGxldEluZm8pO1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXQnLCB3YWxsZXQpO1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRpJywgd2FsbGV0LmFkZHJlc3MpO1xyXG5cdH0sXHJcblx0Ly/ojrflj5bpkrHljIXliJfooahcclxuXHRnZXRXYWxsZXRMaXN0OiBmdW5jdGlvbih0eXBlKSB7XHJcblx0XHRsZXQgd2FsbGV0SW5mbyA9IHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpO1xyXG5cdFx0bGV0IHdhbGxldExpc3QgPSBbXTtcclxuXHRcdGlmICh0eXBlKSB7XHJcblx0XHRcdHdhbGxldExpc3QgPSB3YWxsZXRJbmZvW3R5cGVdXHJcblx0XHRcdGZvciAodmFyIGsgPSAwLCBsZW5ndGggPSB3YWxsZXRMaXN0Lmxlbmd0aDsgayA8IGxlbmd0aDsgaysrKSB7XHJcblx0XHRcdFx0bGV0IGFkZHJlc3MgPSB3YWxsZXRMaXN0W2tdLmFkZHJlc3M7XHJcblx0XHRcdFx0d2FsbGV0TGlzdFtrXS5lbGxpcHNpc0FkZHJlc3MgPSBhZGRyZXNzLnN1YnN0cmluZygwLCA2KSArICcuLi4nICsgYWRkcmVzcy5zdWJzdHJpbmcoYWRkcmVzcy5sZW5ndGggLSA2LFxyXG5cdFx0XHRcdFx0YWRkcmVzcy5sZW5ndGgpXHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZvciAobGV0IG9iaiBpbiB3YWxsZXRJbmZvKSB7XHJcblx0XHRcdFx0Zm9yICh2YXIgayA9IDAsIGxlbmd0aCA9IHdhbGxldEluZm9bb2JqXS5sZW5ndGg7IGsgPCBsZW5ndGg7IGsrKykge1xyXG5cdFx0XHRcdFx0bGV0IGFkZHJlc3MgPSB3YWxsZXRJbmZvW29ial1ba10uYWRkcmVzcztcclxuXHJcblx0XHRcdFx0XHR3YWxsZXRJbmZvW29ial1ba10uZWxsaXBzaXNBZGRyZXNzID0gYWRkcmVzcy5zdWJzdHJpbmcoMCwgNikgKyAnLi4uJyArIGFkZHJlc3Muc3Vic3RyaW5nKFxyXG5cdFx0XHRcdFx0XHRhZGRyZXNzLmxlbmd0aCAtIDYsXHJcblx0XHRcdFx0XHRcdGFkZHJlc3MubGVuZ3RoKTtcclxuXHRcdFx0XHRcdHdhbGxldEluZm9bb2JqXVtrXS50eXBlID0gb2JqO1xyXG5cdFx0XHRcdFx0d2FsbGV0TGlzdC5wdXNoKHdhbGxldEluZm9bb2JqXVtrXSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gd2FsbGV0TGlzdDtcclxuXHR9LFxyXG5cdHNlbGVjdFdhbGxldDogZnVuY3Rpb24odHlwZSwgYWRkcmVzcykge1xyXG5cdFx0Y29uc29sZS5sb2coJ+mAieaLqemSseWMhScpXHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldGknLCBhZGRyZXNzKTtcclxuXHRcdGxldCB3YWxsZXRJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJyk7XHJcblx0XHRsZXQgd2FsbGV0TGlzdCA9IHdhbGxldEluZm9bdHlwZV07XHJcblx0XHRjb25zb2xlLmxvZygpXHJcblx0XHRmb3IgKHZhciBrID0gMCwgbGVuZ3RoID0gd2FsbGV0TGlzdC5sZW5ndGg7IGsgPCBsZW5ndGg7IGsrKykge1xyXG5cdFx0XHRpZiAod2FsbGV0TGlzdFtrXS5hZGRyZXNzID09IGFkZHJlc3MpIHtcclxuXHRcdFx0XHR3YWxsZXRMaXN0W2tdLmVsbGlwc2lzQWRkcmVzcyA9IGFkZHJlc3Muc3Vic3RyaW5nKDAsIDYpICsgJy4uLicgKyBhZGRyZXNzLnN1YnN0cmluZyhhZGRyZXNzLmxlbmd0aCAtIDYsXHJcblx0XHRcdFx0XHRhZGRyZXNzLmxlbmd0aClcclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcsIHdhbGxldExpc3Rba10pO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdH0sXHJcblx0dXBkYXRlQmFsYW5jZTogYXN5bmMgZnVuY3Rpb24oc3VjY2Vzcykge1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdpc1dhbGxldCcsIHRydWUpO1xyXG5cdFx0Y29uc3Qgd2FsbGV0ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXQnKTtcclxuXHRcdGxldCBwYXJhbXMgPSB7XHJcblx0XHRcdGNvaW5OYW1lOiB3YWxsZXQudHlwZVxyXG5cdFx0fVxyXG5cdFx0Y29uc3QgbWFpbkNvaW5QID0gYXdhaXQgYXBpLmdldENvaW5SYXRlKHBhcmFtcyk7XHJcblx0XHRwYXJhbXMuY29pbk5hbWUgPSAnVVNEVCc7XHJcblx0XHRjb25zdCB1c2R0VSA9IGF3YWl0IGFwaS5nZXRDb2luUmF0ZShwYXJhbXMpO1xyXG5cdFx0d2FsbGV0LnRvdGFsQmFsYW5jZVByaWNlID0gMFxyXG5cdFx0d2FsbGV0LnRvdGFsQmFsYW5jZUNueVByaWNlPTBcclxuXHRcdGNvbnNvbGUubG9nKHVzZHRVLCA4ODg4KVxyXG5cdFx0c3dpdGNoICh3YWxsZXQudHlwZSkge1xyXG5cdFx0XHRjYXNlICdCVEMnOlxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6L+b5p2lQlRDXCIpXHJcblx0XHRcdFx0d2FsbGV0LmJhbGFuY2UgPSBhd2FpdCBCdGNVdGlsLmdldEJhbGFuY2Uod2FsbGV0LmFkZHJlc3MpXHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ0VUSCc6XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLov5vmnaVFVEhcIix3YWxsZXQuYmFsYW5jZSApXHJcblx0XHRcdFx0d2FsbGV0LmJhbGFuY2UgPSBhd2FpdCBFdGhVdGlsLmdldEJhbGFuY2Uod2FsbGV0LmFkZHJlc3MpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6L+b5p2lRVRIXCIsd2FsbGV0LmJhbGFuY2UgKVxyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAxOyBpIDwgd2FsbGV0LmNvaW5MaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHR3YWxsZXQuY29pbkxpc3RbaV0uYmFsYW5jZSA9IGF3YWl0IEV0aFV0aWwuZ2V0VG9rZW5CYWxhbmNlKHdhbGxldC5hZGRyZXNzLCB3YWxsZXQuY29pbkxpc3RbaV0uY29udHJhY3RBZGRyZXNzKTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLov5vmnaVFVEhcIix3YWxsZXQuY29pbkxpc3RbaV0uYmFsYW5jZSlcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHdhbGxldC50b3RhbEJhbGFuY2VQcmljZSA9IHdhbGxldC5jb2luTGlzdFsxXS5iYWxhbmNlUHJpY2U/d2FsbGV0LmNvaW5MaXN0WzFdLmJhbGFuY2VQcmljZTowO1xyXG5cdFx0XHRcdHdhbGxldC50b3RhbEJhbGFuY2VDbnlQcmljZT13YWxsZXQuY29pbkxpc3RbMV0uYmFsYW5jZUNueVByaWNlP3dhbGxldC5jb2luTGlzdFsxXS5iYWxhbmNlQ255UHJpY2U6MDtcclxuXHRcdFx0XHR3YWxsZXQuY29pbkxpc3RbMV0uYmFsYW5jZVByaWNlID0gKHdhbGxldFxyXG5cdFx0XHRcdFx0LmNvaW5MaXN0WzFdLmJhbGFuY2UgKiB1c2R0VS5kYXRhLnByaWNlSW5Vc2QpLnRvRml4ZWQoMik7XHJcblx0XHRcdFx0d2FsbGV0LmNvaW5MaXN0WzFdLmJhbGFuY2VDbnlQcmljZSA9ICh3YWxsZXRcclxuXHRcdFx0XHRcdC5jb2luTGlzdFsxXS5iYWxhbmNlICogdXNkdFUuZGF0YS5wcmljZUNueSkudG9GaXhlZCgyKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnVFJYJzpcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIui/m+adpVRSWFwiKVxyXG5cdFx0XHRcdHdhbGxldC5iYWxhbmNlID0gYXdhaXQgVHJvblV0aWwuZ2V0VHJvbkJhbGFuY2Uod2FsbGV0LmFkZHJlc3MpO1xyXG5cdFx0XHRcdHBhcmFtcy5hZGRyZXNzID0gd2FsbGV0LmFkZHJlc3M7XHJcblx0XHRcdFx0cGFyYW1zLmNoYWluTmFtZSA9IHdhbGxldC50eXBlO1xyXG5cdFx0XHRcdGNvbnN0IHRyb25Db2luID0gYXdhaXQgYXBpLmdldEJhbGFuY2UocGFyYW1zKTtcclxuXHRcdFx0XHR2YXIgbmV3TGlzdD1bXTtcclxuXHRcdFx0XHRuZXdMaXN0LnB1c2god2FsbGV0LmNvaW5MaXN0WzBdKVxyXG5cdFx0XHRcdG5ld0xpc3QucHVzaCh3YWxsZXQuY29pbkxpc3RbMV0pXHJcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCB0cm9uQ29pbi5kYXRhLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRpZiAodHJvbkNvaW4uZGF0YVtpXS50b2tlbkFiYnIgPT09ICdVU0RUJykge1xyXG5cdFx0XHRcdFx0XHRuZXdMaXN0WzFdLmJhbGFuY2UgPSAoTnVtYmVyKHRyb25Db2luLmRhdGFbaV0uYmFsYW5jZSkgLyBNYXRoLnBvdygxMCwgdHJvbkNvaW5cclxuXHRcdFx0XHRcdFx0XHQuZGF0YVtpXS50b2tlbkRlY2ltYWwpKTtcclxuXHRcdFx0XHRcdFx0bmV3TGlzdFsxXS5iYWxhbmNlQ255UHJpY2UgPSAobmV3TGlzdFsxXS5iYWxhbmNlICogdXNkdFUuZGF0YS5wcmljZUNueSkudG9GaXhlZCgyKTtcclxuXHRcdFx0XHRcdFx0bmV3TGlzdFsxXS5iYWxhbmNlUHJpY2UgPSAobmV3TGlzdFsxXS5iYWxhbmNlICogdXNkdFUuZGF0YS5wcmljZUluVXNkKS50b0ZpeGVkKDIpO1xyXG5cdFx0XHRcdFx0XHR3YWxsZXQudG90YWxCYWxhbmNlUHJpY2UgPSBuZXdMaXN0WzFdLmJhbGFuY2VQcmljZVxyXG5cdFx0XHRcdFx0XHR3YWxsZXQudG90YWxCYWxhbmNlQ255UHJpY2U9bmV3TGlzdFsxXS5iYWxhbmNlQ255UHJpY2VcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKE51bWJlcih0cm9uQ29pbi5kYXRhW2ldLmJhbGFuY2UpIC8gTWF0aC5wb3coMTAsIHRyb25Db2luLmRhdGFbaV1cclxuXHRcdFx0XHRcdFx0XHQudG9rZW5EZWNpbWFsKSlcclxuXHRcdFx0XHRcdFx0dmFyIGNvaW4gPSB7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogdHJvbkNvaW4uZGF0YVtpXS50b2tlbkFiYnIsXHJcblx0XHRcdFx0XHRcdFx0eG5hbWU6IHRyb25Db2luLmRhdGFbaV0udG9rZW5OYW1lLFxyXG5cdFx0XHRcdFx0XHRcdGJhbGFuY2U6IChOdW1iZXIodHJvbkNvaW4uZGF0YVtpXS5iYWxhbmNlKSAvIE1hdGgucG93KDEwLCB0cm9uQ29pbi5kYXRhW2ldXHJcblx0XHRcdFx0XHRcdFx0XHQudG9rZW5EZWNpbWFsKSksXHJcblx0XHRcdFx0XHRcdFx0aWNvbjogdHJvbkNvaW4uZGF0YVtpXS50b2tlbkxvZ28sXHJcblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh0cm9uQ29pbi5kYXRhW2ldLnRva2VuVHlwZSA9PT0gJ3RyYzIwJykge1xyXG5cdFx0XHRcdFx0XHRcdGNvaW4uY29udHJhY3RBZGRyZXNzID0gdHJvbkNvaW4uZGF0YVtpXS50b2tlbklkXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Y29pbi5jb250cmFjdEFkZHJlc3MgPSB0cm9uQ29pbi5kYXRhW2ldLm93bmVyX2FkZHJlc3NcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRuZXdMaXN0LnB1c2goY29pbilcclxuXHRcdFx0XHRcdH1cclxuXHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR3YWxsZXQuY29pbkxpc3Q9bmV3TGlzdDtcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0d2FsbGV0LmVsbGlwc2lzQWRkcmVzcz13YWxsZXQuYWRkcmVzcy5zdWJzdHJpbmcoMCwgNikgKyAnLi4uJyArIHdhbGxldC5hZGRyZXNzLnN1YnN0cmluZyhcclxuXHRcdFx0XHRcdFx0d2FsbGV0LmFkZHJlc3MubGVuZ3RoIC0gNixcclxuXHRcdFx0XHRcdFx0d2FsbGV0LmFkZHJlc3MubGVuZ3RoKTtcclxuXHRcdHdhbGxldC5iYWxhbmNlUHJpY2UgPSAod2FsbGV0LmJhbGFuY2UgKiBtYWluQ29pblAuZGF0YS5wcmljZUluVXNkKS50b0ZpeGVkKDIpO1xyXG5cdFx0d2FsbGV0LmJhbGFuY2VDbnlQcmljZSA9ICh3YWxsZXQuYmFsYW5jZSAqIG1haW5Db2luUC5kYXRhLnByaWNlQ255KS50b0ZpeGVkKDIpO1xyXG5cdFx0d2FsbGV0LnRvdGFsQmFsYW5jZVByaWNlPShOdW1iZXIod2FsbGV0LnRvdGFsQmFsYW5jZVByaWNlKStOdW1iZXIod2FsbGV0LmJhbGFuY2VQcmljZSkpLnRvRml4ZWQoMik7XHJcblx0XHR3YWxsZXQudG90YWxCYWxhbmNlQ255UHJpY2U9KE51bWJlcih3YWxsZXQudG90YWxCYWxhbmNlQ255UHJpY2UpK051bWJlcih3YWxsZXQuYmFsYW5jZUNueVByaWNlKSkudG9GaXhlZCgyKTtcclxuXHRcdGNvbnNvbGUubG9nKFwid2FsbGV0LmJhbGFuY2VQcmljZVwiLE51bWJlcih3YWxsZXQudG90YWxCYWxhbmNlUHJpY2UpKVxyXG5cdFx0Y29uc29sZS5sb2coXCJ3YWxsZXQuYmFsYW5jZUNueVByaWNlXCIsd2FsbGV0LnRvdGFsQmFsYW5jZVByaWNlKVxyXG5cdFx0d2FsbGV0LmNvaW5MaXN0WzBdLmJhbGFuY2UgPSB3YWxsZXQuYmFsYW5jZVxyXG5cdFx0d2FsbGV0LmNvaW5MaXN0WzBdLmJhbGFuY2VQcmljZSA9IHdhbGxldC5iYWxhbmNlUHJpY2VcclxuXHRcdHdhbGxldC5jb2luTGlzdFswXS5iYWxhbmNlQ255UHJpY2UgPSB3YWxsZXQuYmFsYW5jZUNueVByaWNlXHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcsd2FsbGV0KTtcclxuXHRcdGNvbnN0IHdhbGxldEluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKTtcclxuXHRcdGZvciAodmFyIGsgPSAwLCBsZW5ndGggPSB3YWxsZXRJbmZvW3dhbGxldC50eXBlXS5sZW5ndGg7IGsgPCBsZW5ndGg7IGsrKykge1xyXG5cdFx0XHRpZiAod2FsbGV0SW5mb1t3YWxsZXQudHlwZV1ba10uYWRkcmVzcyA9PT0gd2FsbGV0LmFkZHJlc3MpIHtcclxuXHRcdFx0XHR3YWxsZXRJbmZvW3dhbGxldC50eXBlXVtrXSA9IHdhbGxldDtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJywgd2FsbGV0SW5mbyk7XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2lzV2FsbGV0JywgZmFsc2UpO1xyXG5cdFx0cmV0dXJuIHdhbGxldDtcclxuXHR9LFxyXG5cclxuXHQvLyDlsIHoo4XlnLDlnYDmlrnms5VcclxuXHR1cGRhdGVBZGRyZXNzOiBmdW5jdGlvbih0eXBlLCB2YWx1ZSwgYmlnQWRkcmVzcywgYWRkcmVzc05hbWUpIHtcclxuXHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0c3dpdGNoICh3YWxsZXQudHlwZSkge1xyXG5cdFx0XHRjYXNlICdCVEMnOlxyXG5cclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnRVRIJzpcclxuXHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdUUlgnOlxyXG5cdFx0XHRcdGlmICh2YWx1ZSA9PSAnRVRIJykge1xyXG5cdFx0XHRcdFx0Y29uc3QgZ2FpID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdFVEhBZGRyZXNzSW5mbycpXHJcblx0XHRcdFx0XHRjb25zdCBnYWkyID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdUUlhBZGRyZXNzSW5mbycpXHJcblx0XHRcdFx0XHRjb25zdCBpbmRleCA9IHVuaS5nZXRTdG9yYWdlU3luYygnZWRpdEluZGV4JylcclxuXHRcdFx0XHRcdGxldCBldGggPSBuZXcgT2JqZWN0O1xyXG5cdFx0XHRcdFx0ZXRoLmFkZHJlc3MgPSBiaWdBZGRyZXNzO1xyXG5cdFx0XHRcdFx0ZXRoLm5hbWUgPSBhZGRyZXNzTmFtZVxyXG5cdFx0XHRcdFx0ZXRoLmNvaW5MaXN0ID0gW3tcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJFVEhcIixcclxuXHRcdFx0XHRcdFx0bmFtZTI6IFwiRVRIXCIsXHJcblx0XHRcdFx0XHRcdHhuYW1lOiAnRXRoZXJldW0nLFxyXG5cdFx0XHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC9GcmFtZTMyOTkucG5nJylcclxuXHRcdFx0XHRcdH1dO1xyXG5cdFx0XHRcdFx0Z2FpMi5zcGxpY2UoaW5kZXgsIDEpXHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ1RSWEFkZHJlc3NJbmZvJywgZ2FpMilcclxuXHRcdFx0XHRcdGdhaS5wdXNoKGV0aCk7XHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ0VUSEFkZHJlc3NJbmZvJywgZ2FpKVxyXG5cdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAnU3VjY2Vzc2Z1bGx5JyxcclxuXHRcdFx0XHRcdFx0aWNvbjogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdFx0dXJsOiAnLi4vYWRkcmVzcy9pbmRleCdcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHR9XHJcblxyXG5cdH0sXHJcblx0Ly8g5oyH57q56K+G5YirXHJcblx0ZmluZ2VyKCkge1xyXG5cclxuXHRcdGlmICghcGx1cy5maW5nZXJwcmludC5pc1N1cHBvcnQoKSkge1xyXG5cdFx0XHR0aGlzLnJlc3VsdCA9ICfmraTorr7lpIfkuI3mlK/mjIHmjIfnurnor4bliKsnO1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH0gZWxzZSBpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNLZXlndWFyZFNlY3VyZSgpKSB7XHJcblx0XHRcdHRoaXMucmVzdWx0ID0gJ+atpOiuvuWkh+acquiuvue9ruWvhueggemUgeWxj++8jOaXoOazleS9v+eUqOaMh+e6ueivhuWIqyc7XHJcblx0XHRcdHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fSBlbHNlIGlmICghcGx1cy5maW5nZXJwcmludC5pc0Vucm9sbGVkRmluZ2VycHJpbnRzKCkpIHtcclxuXHRcdFx0dGhpcy5yZXN1bHQgPSAn5q2k6K6+5aSH5pyq5b2V5YWl5oyH57q577yM6K+35Yiw6K6+572u5Lit5byA5ZCvJztcclxuXHRcdFx0dGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlc3VsdCA9ICfmraTorr7lpIfmlK/mjIHmjIfnurnor4bliKsnO1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHR9LFxyXG5cclxuXHRmaW5nZXJwcmludDogZnVuY3Rpb24oc2V0dCkge1xyXG5cdFx0bGV0IGJsdHlwZSA9IHRydWU7XHJcblxyXG5cdFx0aWYgKCFwbHVzLmZpbmdlcnByaW50LmlzU3VwcG9ydCgpKSB7XHJcblx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdHRpdGxlOiAnVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBmaW5nZXJwcmludCBpZGVudGlmaWNhdGlvbicsXHJcblx0XHRcdFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdH0pXHJcblx0XHRcdC8vIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fSBlbHNlIGlmICghcGx1cy5maW5nZXJwcmludC5pc0tleWd1YXJkU2VjdXJlKCkpIHtcclxuXHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0dGl0bGU6ICdUaGlzIGRldmljZSBpcyBub3QgZXF1aXBwZWQgd2l0aCBhIHBhc3N3b3JkIGxvY2sgc2NyZWVuIGFuZCBjYW5ub3QgdXNlIGZpbmdlcnByaW50IGlkZW50aWZpY2F0aW9uJyxcclxuXHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0fSlcclxuXHJcblx0XHR9IGVsc2UgaWYgKCFwbHVzLmZpbmdlcnByaW50LmlzRW5yb2xsZWRGaW5nZXJwcmludHMoKSkge1xyXG5cdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHR0aXRsZTogJ1RoZXJlIGlzIG5vIGZpbmdlcnByaW50IGVudGVyZWQgaW4gdGhpcyBkZXZpY2UuIFBsZWFzZSB0dXJuIGl0IG9uIGluIHRoZSBzZXR0aW5nJyxcclxuXHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0fSlcclxuXHRcdFx0Ly8gdGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyB0aGlzLnJlc3VsdCA9ICfmraTorr7lpIfmlK/mjIHmjIfnurnor4bliKsnO1xyXG5cdFx0XHQvLyAvLyB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRsZXQgZm9yU2V0dCA9IHRydWU7XHJcblxyXG5cdFx0XHRwbHVzLmZpbmdlcnByaW50LmF1dGhlbnRpY2F0ZShmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRwbHVzLm5hdGl2ZVVJLmNsb3NlV2FpdGluZygpOyAvL+WFvOWuuUFuZHJvaWTlubPlj7DlhbPpl63nrYnlvoXmoYZcdFxyXG5cdFx0XHRcdC8vIHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdC8vIFx0dGl0bGU6ICdGaW5nZXJwcmludCBpZGVudGlmaWNhdGlvbiBzdWNjZWVkZWQnLFxyXG5cdFx0XHRcdC8vIFx0aWNvbjogJ25vbmUnLFxyXG5cdFx0XHRcdC8vIFx0ZHVyYXRpb246IDE1MDAsXHJcblx0XHRcdFx0Ly8gXHRcdH0pXHJcblx0XHRcdFx0Ly8g5a2Y5YKo6K6+572u6YeM5byA5ZCv5oyH57q55ZCO55qE54q25oCB77yM6ZqQ6JeP5L2/55So5a+G56CBXHJcblx0XHRcdFx0Y29uc29sZS5sb2coZm9yU2V0dCwgMTIxMjEpXHJcblx0XHRcdFx0aWYgKHNldHQpIHtcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnZmluZ2VyUGFzcycsIHRydWUpXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhmb3JTZXR0LCAxMjEyMSlcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC8vcGx1cy5uYXRpdmVVSS5hbGVydCgnRmluZ2VycHJpbnQgaWRlbnRpZmljYXRpb24gc3VjY2VlZGVkJyk7XHJcblx0XHRcdH0sIGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRzd2l0Y2ggKGUuY29kZSkge1xyXG5cdFx0XHRcdFx0Y2FzZSBlLkFVVEhFTlRJQ0FURV9NSVNNQVRDSDpcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS50b2FzdCgnRmluZ2VycHJpbnQgbWF0Y2hpbmcgZmFpbGVkLCBwbGVhc2UgcmUtZW50ZXInKTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIGUuQVVUSEVOVElDQVRFX09WRVJMSU1JVDpcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5jbG9zZVdhaXRpbmcoKTsgLy/lhbzlrrlBbmRyb2lk5bmz5Y+w5YWz6Zet562J5b6F5qGGXHJcblx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuYWxlcnQoXHJcblx0XHRcdFx0XHRcdFx0J1RoZSBudW1iZXIgb2YgZmluZ2VycHJpbnQgaWRlbnRpZmljYXRpb24gZmFpbHVyZXMgZXhjZWVkcyB0aGUgbGltaXQuIFBsZWFzZSB1c2Ugb3RoZXIgbWV0aG9kcyBmb3IgYXV0aGVudGljYXRpb24nXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBlLkNBTkNFTDpcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS50b2FzdCgnUmVjb2duaXRpb24gaGFzIGJlZW4gY2FuY2VsbGVkJyk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5jbG9zZVdhaXRpbmcoKTsgLy/lhbzlrrlBbmRyb2lk5bmz5Y+w5YWz6Zet562J5b6F5qGGXHJcblx0XHRcdFx0XHRcdHBsdXMubmF0aXZlVUkuYWxlcnQoJ0ZpbmdlcnByaW50IGlkZW50aWZpY2F0aW9uIGZhaWxlZCwgcGxlYXNlIHRyeSBhZ2FpbicpO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0XHQvLyBBbmRyb2lk5bmz5Y+w5omL5Yqo5by55Ye6562J5b6F5o+Q56S65qGGIFxyXG5cdFx0XHRpZiAoJ0FuZHJvaWQnID09IHBsdXMub3MubmFtZSkge1xyXG5cdFx0XHRcdHRoaXMuc2hvdyA9IHRydWU7XHJcblx0XHRcdFx0LyogcGx1cy5uYXRpdmVVSS5zaG93V2FpdGluZygn5oyH57q56K+G5Yir5LitLi4uJykub25jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0cGx1cy5maW5nZXJwcmludC5jYW5jZWwoKTtcclxuXHRcdFx0XHR9ICovXHJcblx0XHRcdH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHJcblx0fSxcclxuXHRwcmludENhbmNlbDogZnVuY3Rpb24oKSB7XHJcblx0XHRwbHVzLmZpbmdlcnByaW50LmNhbmNlbCgpO1xyXG5cdFx0Ly8gdGhpcy5yZXN1bHQ9XCLlgZzmraLmjIfnurnor4bliKtcIlxyXG5cdH0sXHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgV2FsbGV0VXRpbFxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///962\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 44));var _TokenUtil = _interopRequireDefault(__webpack_require__(/*! ./TokenUtil.js */ 38));\nvar _BtcUtil = _interopRequireDefault(__webpack_require__(/*! ./BtcUtil.js */ 963));\nvar _TronUtil = _interopRequireDefault(__webpack_require__(/*! ./TronUtil.js */ 964));\nvar _EthUtil = _interopRequireDefault(__webpack_require__(/*! ./EthUtil.js */ 965));\nvar _api = _interopRequireDefault(__webpack_require__(/*! ./api.js */ 582));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}\n\nvar fullWallet = {\n \"BTC\": [{\n balance: 0,\n name: \"BTC\",\n type: 'BTC',\n coinList: [{\n name: \"BTC\",\n xname: 'Bitcoin',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/bye.png */ 518) }] }],\n\n\n \"ETH\": [{\n balance: 0,\n name: \"ETH\",\n type: 'ETH',\n coinList: [{\n name: \"ETH\",\n xname: 'Ethereum',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) },\n\n {\n name: \"USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: __webpack_require__(/*! @/static/tongyonh/img500.png */ 520) }] }],\n\n\n\n \"TRX\": [{\n balance: 0,\n name: \"TRX\",\n type: 'TRX',\n coinList: [{\n name: \"TRX\",\n xname: 'TRON',\n balance: 0,\n icon: __webpack_require__(/*! @/static/tongyonh/tron1.png */ 521) },\n\n {\n name: \"USDT\",\n xname: 'Tether USD',\n balance: 0,\n contractAddress: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',\n icon: __webpack_require__(/*! @/static/tongyonh/tether_usd.png */ 522) }] }] };\n\n\n\n\n\nvar WalletUtil = {\n //初次创建钱包\n initialWallet: function initialWallet(mnemonic, password) {\n __f__(\"log\", password, 'password', \" at utils/WalletUtil.js:62\");\n var walletInfo = fullWallet;\n var btc = _TokenUtil.default.generateBtc(mnemonic);\n walletInfo.BTC[0].password = password;\n walletInfo.BTC[0].mnemonic = mnemonic;\n walletInfo.BTC[0].privateKey = btc.privateKey;\n walletInfo.BTC[0].address = btc.address;\n walletInfo.BTC[0].ellipsisAddress = walletInfo.BTC[0].address.substring(0, 6) + '...' + walletInfo.BTC[\n 0].address.substring(walletInfo.BTC[0].address.length - 6,\n walletInfo.BTC[0].address.length);\n var eth = _TokenUtil.default.generateEth(mnemonic);\n walletInfo.ETH[0].password = password;\n walletInfo.ETH[0].mnemonic = mnemonic;\n walletInfo.ETH[0].privateKey = eth.privateKey;\n walletInfo.ETH[0].address = eth.address;\n var tron = _TokenUtil.default.generateTron(mnemonic);\n walletInfo.TRX[0].mnemonic = mnemonic;\n walletInfo.TRX[0].password = password;\n walletInfo.TRX[0].privateKey = tron.privateKey;\n walletInfo.TRX[0].address = tron.address;\n var wallet = walletInfo.BTC[0];\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n this.updateBalance();\n },\n //修改钱包名称\n updateWalletName: function updateWalletName(type, address, name) {\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = walletInfo[type];\n var wallet = uni.getStorageSync('wallet');\n for (var k = 0, length = walletList.length; k < length; k++) {\n if (walletList[k].address === address) {\n walletList[k].name = name;\n if (wallet.address == walletList[k].address) {\n wallet.name = name;\n uni.setStorageSync('wallet', wallet);\n }\n break;\n }\n }\n uni.setStorageSync('walletInfo', walletInfo);\n },\n //助记词新建\n mnemonicEstablishWallet: function mnemonicEstablishWallet(type, mnemonic, password) {\n var walletInfo = uni.getStorageSync('walletInfo');\n __f__(\"log\", password, 'password', type, \" at utils/WalletUtil.js:107\");\n var walletdec;\n switch (type) {\n case 'BTC':\n walletdec = _TokenUtil.default.generateBtc(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;\n case 'ETH':\n walletdec = _TokenUtil.default.generateEth(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;\n case 'TRX':\n\n walletdec = _TokenUtil.default.generateTron(mnemonic);\n if (uni.getStorageSync('walletInfo')) {\n uni.setStorageSync('walleti', walletdec.address);\n }\n\n break;}\n\n var wallet = fullWallet[type][0];\n wallet.password = password;\n wallet.privateKey = walletdec.privateKey;\n wallet.mnemonic = mnemonic;\n wallet.address = walletdec.address;\n __f__(\"log\", wallet, \" at utils/WalletUtil.js:138\");\n walletInfo[type].push(wallet);\n __f__(\"log\", walletInfo, 1111111, \" at utils/WalletUtil.js:140\");\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n uni.setStorageSync('walleti', wallet.address);\n\n },\n //私钥新建\n privateKeyEstablishWallet: function privateKeyEstablishWallet(type, privateKey, password) {\n var walletInfo = uni.getStorageSync('walletInfo');\n __f__(\"log\", type, \" at utils/WalletUtil.js:149\");\n __f__(\"log\", password, 'password', \" at utils/WalletUtil.js:150\");\n var walletdec;\n switch (type) {\n case 'BTC':\n walletdec = _TokenUtil.default.importBtcPrivateKey(privateKey);\n break;\n case 'ETH':\n walletdec = _TokenUtil.default.importEthPrivateKey(privateKey);\n break;\n case 'TRX':\n walletdec = _TokenUtil.default.importTronPrivateKey(privateKey);\n break;}\n\n var wallet = fullWallet[type][0];\n wallet.password = password;\n wallet.privateKey = walletdec.privateKey;\n wallet.address = walletdec.address;\n wallet.ellipsisAddress = wallet.address.substring(0, 6) + '...' + wallet.address.substring(\n wallet.address.length - 6,\n wallet.address.length);\n walletInfo[type].push(wallet);\n __f__(\"log\", walletInfo, '当前私钥建的', \" at utils/WalletUtil.js:171\");\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('wallet', wallet);\n uni.setStorageSync('walleti', wallet.address);\n },\n //获取钱包列表\n getWalletList: function getWalletList(type) {\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = [];\n if (type) {\n walletList = walletInfo[type];\n for (var k = 0, length = walletList.length; k < length; k++) {\n var address = walletList[k].address;\n walletList[k].ellipsisAddress = address.substring(0, 6) + '...' + address.substring(address.length - 6,\n address.length);\n }\n } else {\n for (var obj in walletInfo) {\n for (var k = 0, length = walletInfo[obj].length; k < length; k++) {\n var _address = walletInfo[obj][k].address;\n\n walletInfo[obj][k].ellipsisAddress = _address.substring(0, 6) + '...' + _address.substring(\n _address.length - 6,\n _address.length);\n walletInfo[obj][k].type = obj;\n walletList.push(walletInfo[obj][k]);\n }\n }\n }\n return walletList;\n },\n selectWallet: function selectWallet(type, address) {\n __f__(\"log\", '选择钱包', \" at utils/WalletUtil.js:203\");\n uni.setStorageSync('walleti', address);\n var walletInfo = uni.getStorageSync('walletInfo');\n var walletList = walletInfo[type];\n __f__(\"log\", \" at utils/WalletUtil.js:207\");\n for (var k = 0, length = walletList.length; k < length; k++) {\n if (walletList[k].address == address) {\n walletList[k].ellipsisAddress = address.substring(0, 6) + '...' + address.substring(address.length - 6,\n address.length);\n uni.setStorageSync('wallet', walletList[k]);\n break;\n }\n\n }\n },\n updateBalance: function () {var _updateBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(success) {var wallet, params, mainCoinP, usdtU, i, tronCoin, newList, _i, coin, walletInfo, k, length;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n uni.setStorageSync('isWallet', true);\n wallet = uni.getStorageSync('wallet');\n params = {\n coinName: wallet.type };_context.next = 5;return (\n\n _api.default.getCoinRate(params));case 5:mainCoinP = _context.sent;\n params.coinName = 'USDT';_context.next = 9;return (\n _api.default.getCoinRate(params));case 9:usdtU = _context.sent;\n wallet.totalBalancePrice = 0;\n wallet.totalBalanceCnyPrice = 0;\n __f__(\"log\", usdtU, 8888, \" at utils/WalletUtil.js:229\");_context.t0 =\n wallet.type;_context.next = _context.t0 ===\n 'BTC' ? 16 : _context.t0 ===\n\n\n\n 'ETH' ? 21 : _context.t0 ===\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n 'TRX' ? 41 : 56;break;case 16:__f__(\"log\", \"进来BTC\", \" at utils/WalletUtil.js:232\");_context.next = 19;return _BtcUtil.default.getBalance(wallet.address);case 19:wallet.balance = _context.sent;return _context.abrupt(\"break\", 56);case 21:__f__(\"log\", \"进来ETH\", wallet.balance, \" at utils/WalletUtil.js:236\");_context.next = 24;return _EthUtil.default.getBalance(wallet.address);case 24:wallet.balance = _context.sent;wallet.balance = wallet.balance > 0 ? wallet.balance.toFixed(6) : wallet.balance;__f__(\"log\", \"进来ETH\", wallet.balance, \" at utils/WalletUtil.js:239\");i = 1;case 28:if (!(i < wallet.coinList.length)) {_context.next = 36;break;}_context.next = 31;return _EthUtil.default.getTokenBalance(wallet.address, wallet.coinList[i].contractAddress);case 31:wallet.coinList[i].balance = _context.sent;__f__(\"log\", \"进来ETH\", wallet.coinList[i].balance, \" at utils/WalletUtil.js:242\");case 33:i++;_context.next = 28;break;case 36:wallet.totalBalancePrice = wallet.coinList[1].balancePrice ? wallet.coinList[1].balancePrice : 0;wallet.totalBalanceCnyPrice = wallet.coinList[1].balanceCnyPrice ? wallet.coinList[1].balanceCnyPrice : 0;wallet.coinList[1].balancePrice = (wallet.coinList[1].balance * usdtU.data.priceInUsd).toFixed(2);wallet.coinList[1].balanceCnyPrice = (wallet.coinList[1].balance * usdtU.data.priceCny).toFixed(2);return _context.abrupt(\"break\", 56);case 41:\n __f__(\"log\", \"进来TRX\", \" at utils/WalletUtil.js:253\");_context.next = 44;return (\n _TronUtil.default.getTronBalance(wallet.address));case 44:wallet.balance = _context.sent;\n params.address = wallet.address;\n params.chainName = wallet.type;_context.next = 49;return (\n _api.default.getBalance(params));case 49:tronCoin = _context.sent;\n newList = [];\n newList.push(wallet.coinList[0]);\n newList.push(wallet.coinList[1]);\n for (_i = 1; _i < tronCoin.data.length; _i++) {\n if (tronCoin.data[_i].tokenAbbr === 'USDT') {\n newList[1].balance = Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.\n data[_i].tokenDecimal);\n newList[1].balanceCnyPrice = (newList[1].balance * usdtU.data.priceCny).toFixed(2);\n newList[1].balancePrice = (newList[1].balance * usdtU.data.priceInUsd).toFixed(2);\n wallet.totalBalancePrice = newList[1].balancePrice;\n wallet.totalBalanceCnyPrice = newList[1].balanceCnyPrice;\n } else {\n __f__(\"log\", Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.data[_i].\n tokenDecimal), \" at utils/WalletUtil.js:270\");\n coin = {\n name: tronCoin.data[_i].tokenAbbr,\n xname: tronCoin.data[_i].tokenName,\n balance: Number(tronCoin.data[_i].balance) / Math.pow(10, tronCoin.data[_i].\n tokenDecimal),\n icon: tronCoin.data[_i].tokenLogo };\n\n\n if (tronCoin.data[_i].tokenType === 'trc20') {\n coin.contractAddress = tronCoin.data[_i].tokenId;\n } else {\n coin.contractAddress = tronCoin.data[_i].owner_address;\n }\n newList.push(coin);\n }\n\n\n }\n wallet.coinList = newList;return _context.abrupt(\"break\", 56);case 56:\n\n\n\n\n wallet.ellipsisAddress = wallet.address.substring(0, 6) + '...' + wallet.address.substring(\n wallet.address.length - 6,\n wallet.address.length);\n wallet.balancePrice = (wallet.balance * mainCoinP.data.priceInUsd).toFixed(2);\n wallet.balanceCnyPrice = (wallet.balance * mainCoinP.data.priceCny).toFixed(2);\n wallet.totalBalancePrice = (Number(wallet.totalBalancePrice) + Number(wallet.balancePrice)).toFixed(2);\n wallet.totalBalanceCnyPrice = (Number(wallet.totalBalanceCnyPrice) + Number(wallet.balanceCnyPrice)).toFixed(2);\n __f__(\"log\", \"wallet.balancePrice\", Number(wallet.totalBalancePrice), \" at utils/WalletUtil.js:302\");\n __f__(\"log\", \"wallet.balanceCnyPrice\", wallet.totalBalancePrice, \" at utils/WalletUtil.js:303\");\n wallet.coinList[0].balance = wallet.balance;\n wallet.coinList[0].balancePrice = wallet.balancePrice;\n wallet.coinList[0].balanceCnyPrice = wallet.balanceCnyPrice;\n uni.setStorageSync('wallet', wallet);\n walletInfo = uni.getStorageSync('walletInfo');\n k = 0, length = walletInfo[wallet.type].length;case 69:if (!(k < length)) {_context.next = 76;break;}if (!(\n walletInfo[wallet.type][k].address === wallet.address)) {_context.next = 73;break;}\n walletInfo[wallet.type][k] = wallet;return _context.abrupt(\"break\", 76);case 73:k++;_context.next = 69;break;case 76:\n\n\n\n uni.setStorageSync('walletInfo', walletInfo);\n uni.setStorageSync('isWallet', false);return _context.abrupt(\"return\",\n wallet);case 79:case \"end\":return _context.stop();}}}, _callee);}));function updateBalance(_x) {return _updateBalance.apply(this, arguments);}return updateBalance;}(),\n\n\n // 封装地址方法\n updateAddress: function updateAddress(type, value, bigAddress, addressName) {\n var that = this;\n switch (wallet.type) {\n case 'BTC':\n\n break;\n case 'ETH':\n\n\n break;\n case 'TRX':\n if (value == 'ETH') {\n var gai = uni.getStorageSync('ETHAddressInfo');\n var gai2 = uni.getStorageSync('TRXAddressInfo');\n var index = uni.getStorageSync('editIndex');\n var eth = new Object();\n eth.address = bigAddress;\n eth.name = addressName;\n eth.coinList = [{\n name: \"ETH\",\n name2: \"ETH\",\n xname: 'Ethereum',\n icon: __webpack_require__(/*! @/static/tongyonh/Frame3299.png */ 519) }];\n\n gai2.splice(index, 1);\n uni.setStorageSync('TRXAddressInfo', gai2);\n gai.push(eth);\n uni.setStorageSync('ETHAddressInfo', gai);\n uni.showToast({\n title: 'Successfully',\n icon: 'success',\n duration: 1500 });\n\n uni.navigateTo({\n url: '../address/index' });\n\n }\n\n break;}\n\n\n\n },\n // 指纹识别\n finger: function finger() {\n\n if (!plus.fingerprint.isSupport()) {\n this.result = '此设备不支持指纹识别';\n this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n this.result = '此设备未设置密码锁屏,无法使用指纹识别';\n this.disabled = true;\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n this.result = '此设备未录入指纹,请到设置中开启';\n this.disabled = true;\n } else {\n this.result = '此设备支持指纹识别';\n this.disabled = false;\n }\n\n\n\n\n\n\n\n\n },\n\n fingerprint: function fingerprint(sett) {\n var bltype = true;\n\n if (!plus.fingerprint.isSupport()) {\n uni.showToast({\n title: 'This device does not support fingerprint identification',\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else if (!plus.fingerprint.isKeyguardSecure()) {\n uni.showToast({\n title: 'This device is not equipped with a password lock screen and cannot use fingerprint identification',\n icon: 'none',\n duration: 1500 });\n\n\n } else if (!plus.fingerprint.isEnrolledFingerprints()) {\n uni.showToast({\n title: 'There is no fingerprint entered in this device. Please turn it on in the setting',\n icon: 'none',\n duration: 1500 });\n\n // this.disabled = true;\n } else {\n // this.result = '此设备支持指纹识别';\n // // this.disabled = false;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n var that = this;\n var forSett = true;\n\n plus.fingerprint.authenticate(function () {\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\t\n // uni.showToast({\n // \ttitle: 'Fingerprint identification succeeded',\n // \ticon: 'none',\n // \tduration: 1500,\n // \t\t})\n // 存储设置里开启指纹后的状态,隐藏使用密码\n __f__(\"log\", forSett, 12121, \" at utils/WalletUtil.js:445\");\n if (sett) {\n uni.setStorageSync('fingerPass', true);\n __f__(\"log\", forSett, 12121, \" at utils/WalletUtil.js:448\");\n\n }\n //plus.nativeUI.alert('Fingerprint identification succeeded');\n }, function (e) {\n switch (e.code) {\n case e.AUTHENTICATE_MISMATCH:\n plus.nativeUI.toast('Fingerprint matching failed, please re-enter');\n break;\n case e.AUTHENTICATE_OVERLIMIT:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert(\n 'The number of fingerprint identification failures exceeds the limit. Please use other methods for authentication');\n\n break;\n case e.CANCEL:\n plus.nativeUI.toast('Recognition has been cancelled');\n break;\n default:\n plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框\n plus.nativeUI.alert('Fingerprint identification failed, please try again');\n break;}\n\n });\n // Android平台手动弹出等待提示框 \n if ('Android' == plus.os.name) {\n this.show = true;\n /* plus.nativeUI.showWaiting('指纹识别中...').onclose = function() {\r\n \tplus.fingerprint.cancel();\r\n } */\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n }\n\n\n\n },\n printCancel: function printCancel() {\n plus.fingerprint.cancel();\n // this.result=\"停止指纹识别\"\n } };var _default =\n\nWalletUtil;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvV2FsbGV0VXRpbC5qcyJdLCJuYW1lcyI6WyJmdWxsV2FsbGV0IiwiYmFsYW5jZSIsIm5hbWUiLCJ0eXBlIiwiY29pbkxpc3QiLCJ4bmFtZSIsImljb24iLCJyZXF1aXJlIiwiY29udHJhY3RBZGRyZXNzIiwiV2FsbGV0VXRpbCIsImluaXRpYWxXYWxsZXQiLCJtbmVtb25pYyIsInBhc3N3b3JkIiwid2FsbGV0SW5mbyIsImJ0YyIsIlRva2VuVXRpbCIsImdlbmVyYXRlQnRjIiwiQlRDIiwicHJpdmF0ZUtleSIsImFkZHJlc3MiLCJlbGxpcHNpc0FkZHJlc3MiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJldGgiLCJnZW5lcmF0ZUV0aCIsIkVUSCIsInRyb24iLCJnZW5lcmF0ZVRyb24iLCJUUlgiLCJ3YWxsZXQiLCJ1bmkiLCJzZXRTdG9yYWdlU3luYyIsInVwZGF0ZUJhbGFuY2UiLCJ1cGRhdGVXYWxsZXROYW1lIiwiZ2V0U3RvcmFnZVN5bmMiLCJ3YWxsZXRMaXN0IiwiayIsIm1uZW1vbmljRXN0YWJsaXNoV2FsbGV0Iiwid2FsbGV0ZGVjIiwicHVzaCIsInByaXZhdGVLZXlFc3RhYmxpc2hXYWxsZXQiLCJpbXBvcnRCdGNQcml2YXRlS2V5IiwiaW1wb3J0RXRoUHJpdmF0ZUtleSIsImltcG9ydFRyb25Qcml2YXRlS2V5IiwiZ2V0V2FsbGV0TGlzdCIsIm9iaiIsInNlbGVjdFdhbGxldCIsInN1Y2Nlc3MiLCJwYXJhbXMiLCJjb2luTmFtZSIsImFwaSIsImdldENvaW5SYXRlIiwibWFpbkNvaW5QIiwidXNkdFUiLCJ0b3RhbEJhbGFuY2VQcmljZSIsInRvdGFsQmFsYW5jZUNueVByaWNlIiwiQnRjVXRpbCIsImdldEJhbGFuY2UiLCJFdGhVdGlsIiwidG9GaXhlZCIsImkiLCJnZXRUb2tlbkJhbGFuY2UiLCJiYWxhbmNlUHJpY2UiLCJiYWxhbmNlQ255UHJpY2UiLCJkYXRhIiwicHJpY2VJblVzZCIsInByaWNlQ255IiwiVHJvblV0aWwiLCJnZXRUcm9uQmFsYW5jZSIsImNoYWluTmFtZSIsInRyb25Db2luIiwibmV3TGlzdCIsInRva2VuQWJiciIsIk51bWJlciIsIk1hdGgiLCJwb3ciLCJ0b2tlbkRlY2ltYWwiLCJjb2luIiwidG9rZW5OYW1lIiwidG9rZW5Mb2dvIiwidG9rZW5UeXBlIiwidG9rZW5JZCIsIm93bmVyX2FkZHJlc3MiLCJ1cGRhdGVBZGRyZXNzIiwidmFsdWUiLCJiaWdBZGRyZXNzIiwiYWRkcmVzc05hbWUiLCJ0aGF0IiwiZ2FpIiwiZ2FpMiIsImluZGV4IiwiT2JqZWN0IiwibmFtZTIiLCJzcGxpY2UiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwibmF2aWdhdGVUbyIsInVybCIsImZpbmdlciIsInBsdXMiLCJmaW5nZXJwcmludCIsImlzU3VwcG9ydCIsInJlc3VsdCIsImRpc2FibGVkIiwiaXNLZXlndWFyZFNlY3VyZSIsImlzRW5yb2xsZWRGaW5nZXJwcmludHMiLCJzZXR0IiwiYmx0eXBlIiwiZm9yU2V0dCIsImF1dGhlbnRpY2F0ZSIsIm5hdGl2ZVVJIiwiY2xvc2VXYWl0aW5nIiwiZSIsImNvZGUiLCJBVVRIRU5USUNBVEVfTUlTTUFUQ0giLCJ0b2FzdCIsIkFVVEhFTlRJQ0FURV9PVkVSTElNSVQiLCJhbGVydCIsIkNBTkNFTCIsIm9zIiwic2hvdyIsInByaW50Q2FuY2VsIiwiY2FuY2VsIl0sIm1hcHBpbmdzIjoid1BBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RTs7QUFFQSxJQUFJQSxVQUFVLEdBQUc7QUFDaEIsU0FBTyxDQUFDO0FBQ1BDLFdBQU8sRUFBRSxDQURGO0FBRVBDLFFBQUksRUFBRSxLQUZDO0FBR1BDLFFBQUksRUFBRSxLQUhDO0FBSVBDLFlBQVEsRUFBRSxDQUFDO0FBQ1ZGLFVBQUksRUFBRSxLQURJO0FBRVZHLFdBQUssRUFBRSxTQUZHO0FBR1ZKLGFBQU8sRUFBRSxDQUhDO0FBSVZLLFVBQUksRUFBRUMsbUJBQU8sQ0FBQyxvQ0FBRCxDQUpILEVBQUQsQ0FKSCxF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RUFBcUIsS0FBckI7O0FBRUE7QUFDRDtBQUNBLE9BZkQsRUFlRyxVQUFTSSxDQUFULEVBQVk7QUFDZCxnQkFBUUEsQ0FBQyxDQUFDQyxJQUFWO0FBQ0MsZUFBS0QsQ0FBQyxDQUFDRSxxQkFBUDtBQUNDZixnQkFBSSxDQUFDVyxRQUFMLENBQWNLLEtBQWQsQ0FBb0IsOENBQXBCO0FBQ0E7QUFDRCxlQUFLSCxDQUFDLENBQUNJLHNCQUFQO0FBQ0NqQixnQkFBSSxDQUFDVyxRQUFMLENBQWNDLFlBQWQsR0FERCxDQUMrQjtBQUM5QlosZ0JBQUksQ0FBQ1csUUFBTCxDQUFjTyxLQUFkO0FBQ0MsOEhBREQ7O0FBR0E7QUFDRCxlQUFLTCxDQUFDLENBQUNNLE1BQVA7QUFDQ25CLGdCQUFJLENBQUNXLFFBQUwsQ0FBY0ssS0FBZCxDQUFvQixnQ0FBcEI7QUFDQTtBQUNEO0FBQ0NoQixnQkFBSSxDQUFDVyxRQUFMLENBQWNDLFlBQWQsR0FERCxDQUMrQjtBQUM5QlosZ0JBQUksQ0FBQ1csUUFBTCxDQUFjTyxLQUFkLENBQW9CLHFEQUFwQjtBQUNBLGtCQWhCRjs7QUFrQkEsT0FsQ0Q7QUFtQ0E7QUFDQSxVQUFJLGFBQWFsQixJQUFJLENBQUNvQixFQUFMLENBQVF0SCxJQUF6QixFQUErQjtBQUM5QixhQUFLdUgsSUFBTCxHQUFZLElBQVo7QUFDQTs7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJEOzs7O0FBSUQsR0F4YmU7QUF5YmhCQyxhQUFXLEVBQUUsdUJBQVc7QUFDdkJ0QixRQUFJLENBQUNDLFdBQUwsQ0FBaUJzQixNQUFqQjtBQUNBO0FBQ0EsR0E1YmUsRUFBakIsQzs7QUE4YmVsSCxVIiwiZmlsZSI6Ijk2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb2tlblV0aWwgZnJvbSAnLi9Ub2tlblV0aWwuanMnXHJcbmltcG9ydCBCdGNVdGlsIGZyb20gJy4vQnRjVXRpbC5qcydcclxuaW1wb3J0IFRyb25VdGlsIGZyb20gJy4vVHJvblV0aWwuanMnXHJcbmltcG9ydCBFdGhVdGlsIGZyb20gJy4vRXRoVXRpbC5qcydcclxuaW1wb3J0IGFwaSBmcm9tICcuL2FwaS5qcydcclxuXHJcbmxldCBmdWxsV2FsbGV0ID0ge1xyXG5cdFwiQlRDXCI6IFt7XHJcblx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0bmFtZTogXCJCVENcIixcclxuXHRcdHR5cGU6ICdCVEMnLFxyXG5cdFx0Y29pbkxpc3Q6IFt7XHJcblx0XHRcdG5hbWU6IFwiQlRDXCIsXHJcblx0XHRcdHhuYW1lOiAnQml0Y29pbicsXHJcblx0XHRcdGJhbGFuY2U6IDAsXHJcblx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL2J5ZS5wbmcnKVxyXG5cdFx0fV1cclxuXHR9XSxcclxuXHRcIkVUSFwiOiBbe1xyXG5cdFx0YmFsYW5jZTogMCxcclxuXHRcdG5hbWU6IFwiRVRIXCIsXHJcblx0XHR0eXBlOiAnRVRIJyxcclxuXHRcdGNvaW5MaXN0OiBbe1xyXG5cdFx0XHRcdG5hbWU6IFwiRVRIXCIsXHJcblx0XHRcdFx0eG5hbWU6ICdFdGhlcmV1bScsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC9GcmFtZTMyOTkucG5nJylcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG5hbWU6IFwiVVNEVFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVGV0aGVyIFVTRCcsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRjb250cmFjdEFkZHJlc3M6ICcweGRhYzE3Zjk1OGQyZWU1MjNhMjIwNjIwNjk5NDU5N2MxM2Q4MzFlYzcnLFxyXG5cdFx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL2ltZzUwMC5wbmcnKVxyXG5cdFx0XHR9XHJcblx0XHRdXHJcblx0fV0sXHJcblx0XCJUUlhcIjogW3tcclxuXHRcdGJhbGFuY2U6IDAsXHJcblx0XHRuYW1lOiBcIlRSWFwiLFxyXG5cdFx0dHlwZTogJ1RSWCcsXHJcblx0XHRjb2luTGlzdDogW3tcclxuXHRcdFx0XHRuYW1lOiBcIlRSWFwiLFxyXG5cdFx0XHRcdHhuYW1lOiAnVFJPTicsXHJcblx0XHRcdFx0YmFsYW5jZTogMCxcclxuXHRcdFx0XHRpY29uOiByZXF1aXJlKCdAL3N0YXRpYy90b25neW9uaC90cm9uMS5wbmcnKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0bmFtZTogXCJVU0RUXCIsXHJcblx0XHRcdFx0eG5hbWU6ICdUZXRoZXIgVVNEJyxcclxuXHRcdFx0XHRiYWxhbmNlOiAwLFxyXG5cdFx0XHRcdGNvbnRyYWN0QWRkcmVzczogJ1RSN05IcWplS1F4R1RDaThxOFpZNHBMOG90U3pnakxqNnQnLFxyXG5cdFx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL3RldGhlcl91c2QucG5nJylcclxuXHRcdFx0fVxyXG5cdFx0XVxyXG5cdH1dXHJcbn1cclxuXHJcbmxldCBXYWxsZXRVdGlsID0ge1xyXG5cdC8v5Yid5qyh5Yib5bu66ZKx5YyFXHJcblx0aW5pdGlhbFdhbGxldDogZnVuY3Rpb24obW5lbW9uaWMsIHBhc3N3b3JkKSB7XHJcblx0XHRjb25zb2xlLmxvZyhwYXNzd29yZCwgJ3Bhc3N3b3JkJylcclxuXHRcdGxldCB3YWxsZXRJbmZvID0gZnVsbFdhbGxldDtcclxuXHRcdGxldCBidGMgPSBUb2tlblV0aWwuZ2VuZXJhdGVCdGMobW5lbW9uaWMpO1xyXG5cdFx0d2FsbGV0SW5mby5CVENbMF0ucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHdhbGxldEluZm8uQlRDWzBdLm1uZW1vbmljID0gbW5lbW9uaWM7XHJcblx0XHR3YWxsZXRJbmZvLkJUQ1swXS5wcml2YXRlS2V5ID0gYnRjLnByaXZhdGVLZXk7XHJcblx0XHR3YWxsZXRJbmZvLkJUQ1swXS5hZGRyZXNzID0gYnRjLmFkZHJlc3M7XHJcblx0XHR3YWxsZXRJbmZvLkJUQ1swXS5lbGxpcHNpc0FkZHJlc3MgPSB3YWxsZXRJbmZvLkJUQ1swXS5hZGRyZXNzLnN1YnN0cmluZygwLCA2KSArICcuLi4nICsgd2FsbGV0SW5mby5CVENbXHJcblx0XHRcdDBdLmFkZHJlc3Muc3Vic3RyaW5nKHdhbGxldEluZm8uQlRDWzBdLmFkZHJlc3MubGVuZ3RoLTYsXHJcblx0XHRcdHdhbGxldEluZm8uQlRDWzBdLmFkZHJlc3MubGVuZ3RoKVxyXG5cdFx0bGV0IGV0aCA9IFRva2VuVXRpbC5nZW5lcmF0ZUV0aChtbmVtb25pYylcclxuXHRcdHdhbGxldEluZm8uRVRIWzBdLnBhc3N3b3JkID0gcGFzc3dvcmQ7XHJcblx0XHR3YWxsZXRJbmZvLkVUSFswXS5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0d2FsbGV0SW5mby5FVEhbMF0ucHJpdmF0ZUtleSA9IGV0aC5wcml2YXRlS2V5O1xyXG5cdFx0d2FsbGV0SW5mby5FVEhbMF0uYWRkcmVzcyA9IGV0aC5hZGRyZXNzO1xyXG5cdFx0bGV0IHRyb24gPSBUb2tlblV0aWwuZ2VuZXJhdGVUcm9uKG1uZW1vbmljKTtcclxuXHRcdHdhbGxldEluZm8uVFJYWzBdLm1uZW1vbmljID0gbW5lbW9uaWM7XHJcblx0XHR3YWxsZXRJbmZvLlRSWFswXS5wYXNzd29yZCA9IHBhc3N3b3JkO1xyXG5cdFx0d2FsbGV0SW5mby5UUlhbMF0ucHJpdmF0ZUtleSA9IHRyb24ucHJpdmF0ZUtleTtcclxuXHRcdHdhbGxldEluZm8uVFJYWzBdLmFkZHJlc3MgPSB0cm9uLmFkZHJlc3M7XHJcblx0XHRsZXQgd2FsbGV0ID0gd2FsbGV0SW5mby5CVENbMF07XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nLCB3YWxsZXRJbmZvKTtcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0Jywgd2FsbGV0KTtcclxuXHRcdHRoaXMudXBkYXRlQmFsYW5jZSgpO1xyXG5cdH0sXHJcblx0Ly/kv67mlLnpkrHljIXlkI3np7BcclxuXHR1cGRhdGVXYWxsZXROYW1lOiBmdW5jdGlvbih0eXBlLCBhZGRyZXNzLCBuYW1lKSB7XHJcblx0XHRsZXQgd2FsbGV0SW5mbyA9IHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpO1xyXG5cdFx0bGV0IHdhbGxldExpc3QgPSB3YWxsZXRJbmZvW3R5cGVdO1xyXG5cdFx0bGV0IHdhbGxldCA9dW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXQnKTtcclxuXHRcdGZvciAodmFyIGsgPSAwLCBsZW5ndGggPSB3YWxsZXRMaXN0Lmxlbmd0aDsgayA8IGxlbmd0aDsgaysrKSB7XHJcblx0XHRcdGlmICh3YWxsZXRMaXN0W2tdLmFkZHJlc3MgPT09IGFkZHJlc3MpIHtcclxuXHRcdFx0XHR3YWxsZXRMaXN0W2tdLm5hbWUgPSBuYW1lXHJcblx0XHRcdFx0IGlmKHdhbGxldC5hZGRyZXNzPT13YWxsZXRMaXN0W2tdLmFkZHJlc3Mpe1xyXG5cdFx0XHRcdFx0IHdhbGxldC5uYW1lPW5hbWVcclxuXHRcdFx0XHRcdCB1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcsd2FsbGV0KTtcclxuXHRcdFx0XHQgfVxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nLCB3YWxsZXRJbmZvKTtcclxuXHR9LFxyXG5cdC8v5Yqp6K6w6K+N5paw5bu6XHJcblx0bW5lbW9uaWNFc3RhYmxpc2hXYWxsZXQ6IGZ1bmN0aW9uKHR5cGUsIG1uZW1vbmljLCBwYXNzd29yZCkge1xyXG5cdFx0bGV0IHdhbGxldEluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKTtcclxuXHRcdGNvbnNvbGUubG9nKHBhc3N3b3JkLCAncGFzc3dvcmQnLCB0eXBlKVxyXG5cdFx0bGV0IHdhbGxldGRlYztcclxuXHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRjYXNlICdCVEMnOlxyXG5cdFx0XHRcdHdhbGxldGRlYyA9IFRva2VuVXRpbC5nZW5lcmF0ZUJ0YyhtbmVtb25pYyk7XHJcblx0XHRcdFx0aWYgKHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldGknLCB3YWxsZXRkZWMuYWRkcmVzcylcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdFVEgnOlxyXG5cdFx0XHRcdHdhbGxldGRlYyA9IFRva2VuVXRpbC5nZW5lcmF0ZUV0aChtbmVtb25pYyk7XHJcblx0XHRcdFx0aWYgKHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpKSB7XHJcblx0XHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldGknLCB3YWxsZXRkZWMuYWRkcmVzcylcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdUUlgnOlxyXG5cclxuXHRcdFx0XHR3YWxsZXRkZWMgPSBUb2tlblV0aWwuZ2VuZXJhdGVUcm9uKG1uZW1vbmljKTtcclxuXHRcdFx0XHRpZiAodW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJykpIHtcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0aScsIHdhbGxldGRlYy5hZGRyZXNzKVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0XHRsZXQgd2FsbGV0ID0gZnVsbFdhbGxldFt0eXBlXVswXTtcclxuXHRcdHdhbGxldC5wYXNzd29yZCA9IHBhc3N3b3JkO1xyXG5cdFx0d2FsbGV0LnByaXZhdGVLZXkgPSB3YWxsZXRkZWMucHJpdmF0ZUtleTtcclxuXHRcdHdhbGxldC5tbmVtb25pYyA9IG1uZW1vbmljO1xyXG5cdFx0d2FsbGV0LmFkZHJlc3MgPSB3YWxsZXRkZWMuYWRkcmVzcztcclxuXHRcdGNvbnNvbGUubG9nKHdhbGxldClcclxuXHRcdHdhbGxldEluZm9bdHlwZV0ucHVzaCh3YWxsZXQpO1xyXG5cdFx0Y29uc29sZS5sb2cod2FsbGV0SW5mbywgMTExMTExMSlcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycsIHdhbGxldEluZm8pO1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXQnLCB3YWxsZXQpO1xyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRpJywgd2FsbGV0LmFkZHJlc3MpO1xyXG5cclxuXHR9LFxyXG5cdC8v56eB6ZKl5paw5bu6XHJcblx0cHJpdmF0ZUtleUVzdGFibGlzaFdhbGxldDogZnVuY3Rpb24odHlwZSwgcHJpdmF0ZUtleSwgcGFzc3dvcmQpIHtcclxuXHRcdGxldCB3YWxsZXRJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJyk7XHJcblx0XHRjb25zb2xlLmxvZyh0eXBlKVxyXG5cdFx0Y29uc29sZS5sb2cocGFzc3dvcmQsICdwYXNzd29yZCcpXHJcblx0XHRsZXQgd2FsbGV0ZGVjO1xyXG5cdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdGNhc2UgJ0JUQyc6XHJcblx0XHRcdFx0d2FsbGV0ZGVjID0gVG9rZW5VdGlsLmltcG9ydEJ0Y1ByaXZhdGVLZXkocHJpdmF0ZUtleSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ0VUSCc6XHJcblx0XHRcdFx0d2FsbGV0ZGVjID0gVG9rZW5VdGlsLmltcG9ydEV0aFByaXZhdGVLZXkocHJpdmF0ZUtleSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ1RSWCc6XHJcblx0XHRcdFx0d2FsbGV0ZGVjID0gVG9rZW5VdGlsLmltcG9ydFRyb25Qcml2YXRlS2V5KHByaXZhdGVLZXkpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHdhbGxldCA9IGZ1bGxXYWxsZXRbdHlwZV1bMF07XHJcblx0XHR3YWxsZXQucGFzc3dvcmQgPSBwYXNzd29yZDtcclxuXHRcdHdhbGxldC5wcml2YXRlS2V5ID0gd2FsbGV0ZGVjLnByaXZhdGVLZXk7XHJcblx0XHR3YWxsZXQuYWRkcmVzcyA9IHdhbGxldGRlYy5hZGRyZXNzO1xyXG5cdFx0XHR3YWxsZXQuZWxsaXBzaXNBZGRyZXNzID0gd2FsbGV0LmFkZHJlc3Muc3Vic3RyaW5nKDAsIDYpICsgJy4uLicgKyB3YWxsZXQuYWRkcmVzcy5zdWJzdHJpbmcoXHJcblx0XHRcdHdhbGxldC5hZGRyZXNzLmxlbmd0aCAtIDYsXHJcblx0XHRcdHdhbGxldC5hZGRyZXNzLmxlbmd0aCk7XHJcblx0XHR3YWxsZXRJbmZvW3R5cGVdLnB1c2god2FsbGV0KTtcclxuXHRcdGNvbnNvbGUubG9nKHdhbGxldEluZm8sICflvZPliY3np4HpkqXlu7rnmoQnKVxyXG5cdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJywgd2FsbGV0SW5mbyk7XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcsIHdhbGxldCk7XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldGknLCB3YWxsZXQuYWRkcmVzcyk7XHJcblx0fSxcclxuXHQvL+iOt+WPlumSseWMheWIl+ihqFxyXG5cdGdldFdhbGxldExpc3Q6IGZ1bmN0aW9uKHR5cGUpIHtcclxuXHRcdGxldCB3YWxsZXRJbmZvID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd3YWxsZXRJbmZvJyk7XHJcblx0XHRsZXQgd2FsbGV0TGlzdCA9IFtdO1xyXG5cdFx0aWYgKHR5cGUpIHtcclxuXHRcdFx0d2FsbGV0TGlzdCA9IHdhbGxldEluZm9bdHlwZV1cclxuXHRcdFx0Zm9yICh2YXIgayA9IDAsIGxlbmd0aCA9IHdhbGxldExpc3QubGVuZ3RoOyBrIDwgbGVuZ3RoOyBrKyspIHtcclxuXHRcdFx0XHRsZXQgYWRkcmVzcyA9IHdhbGxldExpc3Rba10uYWRkcmVzcztcclxuXHRcdFx0XHR3YWxsZXRMaXN0W2tdLmVsbGlwc2lzQWRkcmVzcyA9IGFkZHJlc3Muc3Vic3RyaW5nKDAsIDYpICsgJy4uLicgKyBhZGRyZXNzLnN1YnN0cmluZyhhZGRyZXNzLmxlbmd0aCAtIDYsXHJcblx0XHRcdFx0XHRhZGRyZXNzLmxlbmd0aClcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Zm9yIChsZXQgb2JqIGluIHdhbGxldEluZm8pIHtcclxuXHRcdFx0XHRmb3IgKHZhciBrID0gMCwgbGVuZ3RoID0gd2FsbGV0SW5mb1tvYmpdLmxlbmd0aDsgayA8IGxlbmd0aDsgaysrKSB7XHJcblx0XHRcdFx0XHRsZXQgYWRkcmVzcyA9IHdhbGxldEluZm9bb2JqXVtrXS5hZGRyZXNzO1xyXG5cclxuXHRcdFx0XHRcdHdhbGxldEluZm9bb2JqXVtrXS5lbGxpcHNpc0FkZHJlc3MgPSBhZGRyZXNzLnN1YnN0cmluZygwLCA2KSArICcuLi4nICsgYWRkcmVzcy5zdWJzdHJpbmcoXHJcblx0XHRcdFx0XHRcdGFkZHJlc3MubGVuZ3RoIC0gNixcclxuXHRcdFx0XHRcdFx0YWRkcmVzcy5sZW5ndGgpO1xyXG5cdFx0XHRcdFx0d2FsbGV0SW5mb1tvYmpdW2tdLnR5cGUgPSBvYmo7XHJcblx0XHRcdFx0XHR3YWxsZXRMaXN0LnB1c2god2FsbGV0SW5mb1tvYmpdW2tdKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiB3YWxsZXRMaXN0O1xyXG5cdH0sXHJcblx0c2VsZWN0V2FsbGV0OiBmdW5jdGlvbih0eXBlLCBhZGRyZXNzKSB7XHJcblx0XHRjb25zb2xlLmxvZygn6YCJ5oup6ZKx5YyFJylcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0aScsIGFkZHJlc3MpO1xyXG5cdFx0bGV0IHdhbGxldEluZm8gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nKTtcclxuXHRcdGxldCB3YWxsZXRMaXN0ID0gd2FsbGV0SW5mb1t0eXBlXTtcclxuXHRcdGNvbnNvbGUubG9nKClcclxuXHRcdGZvciAodmFyIGsgPSAwLCBsZW5ndGggPSB3YWxsZXRMaXN0Lmxlbmd0aDsgayA8IGxlbmd0aDsgaysrKSB7XHJcblx0XHRcdGlmICh3YWxsZXRMaXN0W2tdLmFkZHJlc3MgPT0gYWRkcmVzcykge1xyXG5cdFx0XHRcdHdhbGxldExpc3Rba10uZWxsaXBzaXNBZGRyZXNzID0gYWRkcmVzcy5zdWJzdHJpbmcoMCwgNikgKyAnLi4uJyArIGFkZHJlc3Muc3Vic3RyaW5nKGFkZHJlc3MubGVuZ3RoIC0gNixcclxuXHRcdFx0XHRcdGFkZHJlc3MubGVuZ3RoKVxyXG5cdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0Jywgd2FsbGV0TGlzdFtrXSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblx0fSxcclxuXHR1cGRhdGVCYWxhbmNlOiBhc3luYyBmdW5jdGlvbihzdWNjZXNzKSB7XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ2lzV2FsbGV0JywgdHJ1ZSk7XHJcblx0XHRjb25zdCB3YWxsZXQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3dhbGxldCcpO1xyXG5cdFx0bGV0IHBhcmFtcyA9IHtcclxuXHRcdFx0Y29pbk5hbWU6IHdhbGxldC50eXBlXHJcblx0XHR9XHJcblx0XHRjb25zdCBtYWluQ29pblAgPSBhd2FpdCBhcGkuZ2V0Q29pblJhdGUocGFyYW1zKTtcclxuXHRcdHBhcmFtcy5jb2luTmFtZSA9ICdVU0RUJztcclxuXHRcdGNvbnN0IHVzZHRVID0gYXdhaXQgYXBpLmdldENvaW5SYXRlKHBhcmFtcyk7XHJcblx0XHR3YWxsZXQudG90YWxCYWxhbmNlUHJpY2UgPSAwXHJcblx0XHR3YWxsZXQudG90YWxCYWxhbmNlQ255UHJpY2U9MFxyXG5cdFx0Y29uc29sZS5sb2codXNkdFUsIDg4ODgpXHJcblx0XHRzd2l0Y2ggKHdhbGxldC50eXBlKSB7XHJcblx0XHRcdGNhc2UgJ0JUQyc6XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLov5vmnaVCVENcIilcclxuXHRcdFx0XHR3YWxsZXQuYmFsYW5jZSA9IGF3YWl0IEJ0Y1V0aWwuZ2V0QmFsYW5jZSh3YWxsZXQuYWRkcmVzcylcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnRVRIJzpcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIui/m+adpUVUSFwiLHdhbGxldC5iYWxhbmNlIClcclxuXHRcdFx0XHR3YWxsZXQuYmFsYW5jZSA9IGF3YWl0IEV0aFV0aWwuZ2V0QmFsYW5jZSh3YWxsZXQuYWRkcmVzcyk7XHJcblx0XHRcdFx0d2FsbGV0LmJhbGFuY2U9d2FsbGV0LmJhbGFuY2U+MD93YWxsZXQuYmFsYW5jZS50b0ZpeGVkKDYpOndhbGxldC5iYWxhbmNlXHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLov5vmnaVFVEhcIix3YWxsZXQuYmFsYW5jZSApXHJcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCB3YWxsZXQuY29pbkxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdHdhbGxldC5jb2luTGlzdFtpXS5iYWxhbmNlID0gYXdhaXQgRXRoVXRpbC5nZXRUb2tlbkJhbGFuY2Uod2FsbGV0LmFkZHJlc3MsIHdhbGxldC5jb2luTGlzdFtpXS5jb250cmFjdEFkZHJlc3MpO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIui/m+adpUVUSFwiLHdhbGxldC5jb2luTGlzdFtpXS5iYWxhbmNlKVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0d2FsbGV0LnRvdGFsQmFsYW5jZVByaWNlID0gd2FsbGV0LmNvaW5MaXN0WzFdLmJhbGFuY2VQcmljZT93YWxsZXQuY29pbkxpc3RbMV0uYmFsYW5jZVByaWNlOjA7XHJcblx0XHRcdFx0d2FsbGV0LnRvdGFsQmFsYW5jZUNueVByaWNlPXdhbGxldC5jb2luTGlzdFsxXS5iYWxhbmNlQ255UHJpY2U/d2FsbGV0LmNvaW5MaXN0WzFdLmJhbGFuY2VDbnlQcmljZTowO1xyXG5cdFx0XHRcdHdhbGxldC5jb2luTGlzdFsxXS5iYWxhbmNlUHJpY2UgPSAod2FsbGV0XHJcblx0XHRcdFx0XHQuY29pbkxpc3RbMV0uYmFsYW5jZSAqIHVzZHRVLmRhdGEucHJpY2VJblVzZCkudG9GaXhlZCgyKTtcclxuXHRcdFx0XHR3YWxsZXQuY29pbkxpc3RbMV0uYmFsYW5jZUNueVByaWNlID0gKHdhbGxldFxyXG5cdFx0XHRcdFx0LmNvaW5MaXN0WzFdLmJhbGFuY2UgKiB1c2R0VS5kYXRhLnByaWNlQ255KS50b0ZpeGVkKDIpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdUUlgnOlxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6L+b5p2lVFJYXCIpXHJcblx0XHRcdFx0d2FsbGV0LmJhbGFuY2UgPSBhd2FpdCBUcm9uVXRpbC5nZXRUcm9uQmFsYW5jZSh3YWxsZXQuYWRkcmVzcyk7XHJcblx0XHRcdFx0cGFyYW1zLmFkZHJlc3MgPSB3YWxsZXQuYWRkcmVzcztcclxuXHRcdFx0XHRwYXJhbXMuY2hhaW5OYW1lID0gd2FsbGV0LnR5cGU7XHJcblx0XHRcdFx0Y29uc3QgdHJvbkNvaW4gPSBhd2FpdCBhcGkuZ2V0QmFsYW5jZShwYXJhbXMpO1xyXG5cdFx0XHRcdHZhciBuZXdMaXN0PVtdO1xyXG5cdFx0XHRcdG5ld0xpc3QucHVzaCh3YWxsZXQuY29pbkxpc3RbMF0pXHJcblx0XHRcdFx0bmV3TGlzdC5wdXNoKHdhbGxldC5jb2luTGlzdFsxXSlcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMTsgaSA8IHRyb25Db2luLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGlmICh0cm9uQ29pbi5kYXRhW2ldLnRva2VuQWJiciA9PT0gJ1VTRFQnKSB7XHJcblx0XHRcdFx0XHRcdG5ld0xpc3RbMV0uYmFsYW5jZSA9IChOdW1iZXIodHJvbkNvaW4uZGF0YVtpXS5iYWxhbmNlKSAvIE1hdGgucG93KDEwLCB0cm9uQ29pblxyXG5cdFx0XHRcdFx0XHRcdC5kYXRhW2ldLnRva2VuRGVjaW1hbCkpO1xyXG5cdFx0XHRcdFx0XHRuZXdMaXN0WzFdLmJhbGFuY2VDbnlQcmljZSA9IChuZXdMaXN0WzFdLmJhbGFuY2UgKiB1c2R0VS5kYXRhLnByaWNlQ255KS50b0ZpeGVkKDIpO1xyXG5cdFx0XHRcdFx0XHRuZXdMaXN0WzFdLmJhbGFuY2VQcmljZSA9IChuZXdMaXN0WzFdLmJhbGFuY2UgKiB1c2R0VS5kYXRhLnByaWNlSW5Vc2QpLnRvRml4ZWQoMik7XHJcblx0XHRcdFx0XHRcdHdhbGxldC50b3RhbEJhbGFuY2VQcmljZSA9IG5ld0xpc3RbMV0uYmFsYW5jZVByaWNlXHJcblx0XHRcdFx0XHRcdHdhbGxldC50b3RhbEJhbGFuY2VDbnlQcmljZT1uZXdMaXN0WzFdLmJhbGFuY2VDbnlQcmljZVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coTnVtYmVyKHRyb25Db2luLmRhdGFbaV0uYmFsYW5jZSkgLyBNYXRoLnBvdygxMCwgdHJvbkNvaW4uZGF0YVtpXVxyXG5cdFx0XHRcdFx0XHRcdC50b2tlbkRlY2ltYWwpKVxyXG5cdFx0XHRcdFx0XHR2YXIgY29pbiA9IHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiB0cm9uQ29pbi5kYXRhW2ldLnRva2VuQWJicixcclxuXHRcdFx0XHRcdFx0XHR4bmFtZTogdHJvbkNvaW4uZGF0YVtpXS50b2tlbk5hbWUsXHJcblx0XHRcdFx0XHRcdFx0YmFsYW5jZTogKE51bWJlcih0cm9uQ29pbi5kYXRhW2ldLmJhbGFuY2UpIC8gTWF0aC5wb3coMTAsIHRyb25Db2luLmRhdGFbaV1cclxuXHRcdFx0XHRcdFx0XHRcdC50b2tlbkRlY2ltYWwpKSxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiB0cm9uQ29pbi5kYXRhW2ldLnRva2VuTG9nbyxcclxuXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKHRyb25Db2luLmRhdGFbaV0udG9rZW5UeXBlID09PSAndHJjMjAnKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29pbi5jb250cmFjdEFkZHJlc3MgPSB0cm9uQ29pbi5kYXRhW2ldLnRva2VuSWRcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRjb2luLmNvbnRyYWN0QWRkcmVzcyA9IHRyb25Db2luLmRhdGFbaV0ub3duZXJfYWRkcmVzc1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdG5ld0xpc3QucHVzaChjb2luKVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHdhbGxldC5jb2luTGlzdD1uZXdMaXN0O1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHR3YWxsZXQuZWxsaXBzaXNBZGRyZXNzPXdhbGxldC5hZGRyZXNzLnN1YnN0cmluZygwLCA2KSArICcuLi4nICsgd2FsbGV0LmFkZHJlc3Muc3Vic3RyaW5nKFxyXG5cdFx0XHRcdFx0XHR3YWxsZXQuYWRkcmVzcy5sZW5ndGggLSA2LFxyXG5cdFx0XHRcdFx0XHR3YWxsZXQuYWRkcmVzcy5sZW5ndGgpO1xyXG5cdFx0d2FsbGV0LmJhbGFuY2VQcmljZSA9ICh3YWxsZXQuYmFsYW5jZSAqIG1haW5Db2luUC5kYXRhLnByaWNlSW5Vc2QpLnRvRml4ZWQoMik7XHJcblx0XHR3YWxsZXQuYmFsYW5jZUNueVByaWNlID0gKHdhbGxldC5iYWxhbmNlICogbWFpbkNvaW5QLmRhdGEucHJpY2VDbnkpLnRvRml4ZWQoMik7XHJcblx0XHR3YWxsZXQudG90YWxCYWxhbmNlUHJpY2U9KE51bWJlcih3YWxsZXQudG90YWxCYWxhbmNlUHJpY2UpK051bWJlcih3YWxsZXQuYmFsYW5jZVByaWNlKSkudG9GaXhlZCgyKTtcclxuXHRcdHdhbGxldC50b3RhbEJhbGFuY2VDbnlQcmljZT0oTnVtYmVyKHdhbGxldC50b3RhbEJhbGFuY2VDbnlQcmljZSkrTnVtYmVyKHdhbGxldC5iYWxhbmNlQ255UHJpY2UpKS50b0ZpeGVkKDIpO1xyXG5cdFx0Y29uc29sZS5sb2coXCJ3YWxsZXQuYmFsYW5jZVByaWNlXCIsTnVtYmVyKHdhbGxldC50b3RhbEJhbGFuY2VQcmljZSkpXHJcblx0XHRjb25zb2xlLmxvZyhcIndhbGxldC5iYWxhbmNlQ255UHJpY2VcIix3YWxsZXQudG90YWxCYWxhbmNlUHJpY2UpXHJcblx0XHR3YWxsZXQuY29pbkxpc3RbMF0uYmFsYW5jZSA9IHdhbGxldC5iYWxhbmNlXHJcblx0XHR3YWxsZXQuY29pbkxpc3RbMF0uYmFsYW5jZVByaWNlID0gd2FsbGV0LmJhbGFuY2VQcmljZVxyXG5cdFx0d2FsbGV0LmNvaW5MaXN0WzBdLmJhbGFuY2VDbnlQcmljZSA9IHdhbGxldC5iYWxhbmNlQ255UHJpY2VcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnd2FsbGV0Jyx3YWxsZXQpO1xyXG5cdFx0Y29uc3Qgd2FsbGV0SW5mbyA9IHVuaS5nZXRTdG9yYWdlU3luYygnd2FsbGV0SW5mbycpO1xyXG5cdFx0Zm9yICh2YXIgayA9IDAsIGxlbmd0aCA9IHdhbGxldEluZm9bd2FsbGV0LnR5cGVdLmxlbmd0aDsgayA8IGxlbmd0aDsgaysrKSB7XHJcblx0XHRcdGlmICh3YWxsZXRJbmZvW3dhbGxldC50eXBlXVtrXS5hZGRyZXNzID09PSB3YWxsZXQuYWRkcmVzcykge1xyXG5cdFx0XHRcdHdhbGxldEluZm9bd2FsbGV0LnR5cGVdW2tdID0gd2FsbGV0O1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoJ3dhbGxldEluZm8nLCB3YWxsZXRJbmZvKTtcclxuXHRcdHVuaS5zZXRTdG9yYWdlU3luYygnaXNXYWxsZXQnLCBmYWxzZSk7XHJcblx0XHRyZXR1cm4gd2FsbGV0O1xyXG5cdH0sXHJcblxyXG5cdC8vIOWwgeijheWcsOWdgOaWueazlVxyXG5cdHVwZGF0ZUFkZHJlc3M6IGZ1bmN0aW9uKHR5cGUsIHZhbHVlLCBiaWdBZGRyZXNzLCBhZGRyZXNzTmFtZSkge1xyXG5cdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRzd2l0Y2ggKHdhbGxldC50eXBlKSB7XHJcblx0XHRcdGNhc2UgJ0JUQyc6XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdFVEgnOlxyXG5cclxuXHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ1RSWCc6XHJcblx0XHRcdFx0aWYgKHZhbHVlID09ICdFVEgnKSB7XHJcblx0XHRcdFx0XHRjb25zdCBnYWkgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ0VUSEFkZHJlc3NJbmZvJylcclxuXHRcdFx0XHRcdGNvbnN0IGdhaTIgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ1RSWEFkZHJlc3NJbmZvJylcclxuXHRcdFx0XHRcdGNvbnN0IGluZGV4ID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdlZGl0SW5kZXgnKVxyXG5cdFx0XHRcdFx0bGV0IGV0aCA9IG5ldyBPYmplY3Q7XHJcblx0XHRcdFx0XHRldGguYWRkcmVzcyA9IGJpZ0FkZHJlc3M7XHJcblx0XHRcdFx0XHRldGgubmFtZSA9IGFkZHJlc3NOYW1lXHJcblx0XHRcdFx0XHRldGguY29pbkxpc3QgPSBbe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBcIkVUSFwiLFxyXG5cdFx0XHRcdFx0XHRuYW1lMjogXCJFVEhcIixcclxuXHRcdFx0XHRcdFx0eG5hbWU6ICdFdGhlcmV1bScsXHJcblx0XHRcdFx0XHRcdGljb246IHJlcXVpcmUoJ0Avc3RhdGljL3Rvbmd5b25oL0ZyYW1lMzI5OS5wbmcnKVxyXG5cdFx0XHRcdFx0fV07XHJcblx0XHRcdFx0XHRnYWkyLnNwbGljZShpbmRleCwgMSlcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnVFJYQWRkcmVzc0luZm8nLCBnYWkyKVxyXG5cdFx0XHRcdFx0Z2FpLnB1c2goZXRoKTtcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnRVRIQWRkcmVzc0luZm8nLCBnYWkpXHJcblx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0dGl0bGU6ICdTdWNjZXNzZnVsbHknLFxyXG5cdFx0XHRcdFx0XHRpY29uOiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAxNTAwXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0XHR1cmw6ICcuLi9hZGRyZXNzL2luZGV4J1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fSxcclxuXHQvLyDmjIfnurnor4bliKtcclxuXHRmaW5nZXIoKSB7XHJcblxyXG5cdFx0aWYgKCFwbHVzLmZpbmdlcnByaW50LmlzU3VwcG9ydCgpKSB7XHJcblx0XHRcdHRoaXMucmVzdWx0ID0gJ+atpOiuvuWkh+S4jeaUr+aMgeaMh+e6ueivhuWIqyc7XHJcblx0XHRcdHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fSBlbHNlIGlmICghcGx1cy5maW5nZXJwcmludC5pc0tleWd1YXJkU2VjdXJlKCkpIHtcclxuXHRcdFx0dGhpcy5yZXN1bHQgPSAn5q2k6K6+5aSH5pyq6K6+572u5a+G56CB6ZSB5bGP77yM5peg5rOV5L2/55So5oyH57q56K+G5YirJztcclxuXHRcdFx0dGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHR9IGVsc2UgaWYgKCFwbHVzLmZpbmdlcnByaW50LmlzRW5yb2xsZWRGaW5nZXJwcmludHMoKSkge1xyXG5cdFx0XHR0aGlzLnJlc3VsdCA9ICfmraTorr7lpIfmnKrlvZXlhaXmjIfnurnvvIzor7fliLDorr7nva7kuK3lvIDlkK8nO1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMucmVzdWx0ID0gJ+atpOiuvuWkh+aUr+aMgeaMh+e6ueivhuWIqyc7XHJcblx0XHRcdHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRcdH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdH0sXHJcblxyXG5cdGZpbmdlcnByaW50OiBmdW5jdGlvbihzZXR0KSB7XHJcblx0XHRsZXQgYmx0eXBlID0gdHJ1ZTtcclxuXHJcblx0XHRpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNTdXBwb3J0KCkpIHtcclxuXHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0dGl0bGU6ICdUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGZpbmdlcnByaW50IGlkZW50aWZpY2F0aW9uJyxcclxuXHRcdFx0XHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0ZHVyYXRpb246IDE1MDBcclxuXHRcdFx0fSlcclxuXHRcdFx0Ly8gdGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHR9IGVsc2UgaWYgKCFwbHVzLmZpbmdlcnByaW50LmlzS2V5Z3VhcmRTZWN1cmUoKSkge1xyXG5cdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHR0aXRsZTogJ1RoaXMgZGV2aWNlIGlzIG5vdCBlcXVpcHBlZCB3aXRoIGEgcGFzc3dvcmQgbG9jayBzY3JlZW4gYW5kIGNhbm5vdCB1c2UgZmluZ2VycHJpbnQgaWRlbnRpZmljYXRpb24nLFxyXG5cdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHR9KVxyXG5cclxuXHRcdH0gZWxzZSBpZiAoIXBsdXMuZmluZ2VycHJpbnQuaXNFbnJvbGxlZEZpbmdlcnByaW50cygpKSB7XHJcblx0XHRcdHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0XHRcdHRpdGxlOiAnVGhlcmUgaXMgbm8gZmluZ2VycHJpbnQgZW50ZXJlZCBpbiB0aGlzIGRldmljZS4gUGxlYXNlIHR1cm4gaXQgb24gaW4gdGhlIHNldHRpbmcnLFxyXG5cdFx0XHRcdGljb246ICdub25lJyxcclxuXHRcdFx0XHRkdXJhdGlvbjogMTUwMFxyXG5cdFx0XHR9KVxyXG5cdFx0XHQvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIHRoaXMucmVzdWx0ID0gJ+atpOiuvuWkh+aUr+aMgeaMh+e6ueivhuWIqyc7XHJcblx0XHRcdC8vIC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdGxldCBmb3JTZXR0ID0gdHJ1ZTtcclxuXHJcblx0XHRcdHBsdXMuZmluZ2VycHJpbnQuYXV0aGVudGljYXRlKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHBsdXMubmF0aXZlVUkuY2xvc2VXYWl0aW5nKCk7IC8v5YW85a65QW5kcm9pZOW5s+WPsOWFs+mXreetieW+heahhlx0XHJcblx0XHRcdFx0Ly8gdW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0Ly8gXHR0aXRsZTogJ0ZpbmdlcnByaW50IGlkZW50aWZpY2F0aW9uIHN1Y2NlZWRlZCcsXHJcblx0XHRcdFx0Ly8gXHRpY29uOiAnbm9uZScsXHJcblx0XHRcdFx0Ly8gXHRkdXJhdGlvbjogMTUwMCxcclxuXHRcdFx0XHQvLyBcdFx0fSlcclxuXHRcdFx0XHQvLyDlrZjlgqjorr7nva7ph4zlvIDlkK/mjIfnurnlkI7nmoTnirbmgIHvvIzpmpDol4/kvb/nlKjlr4bnoIFcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhmb3JTZXR0LCAxMjEyMSlcclxuXHRcdFx0XHRpZiAoc2V0dCkge1xyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdmaW5nZXJQYXNzJywgdHJ1ZSlcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGZvclNldHQsIDEyMTIxKVxyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly9wbHVzLm5hdGl2ZVVJLmFsZXJ0KCdGaW5nZXJwcmludCBpZGVudGlmaWNhdGlvbiBzdWNjZWVkZWQnKTtcclxuXHRcdFx0fSwgZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdHN3aXRjaCAoZS5jb2RlKSB7XHJcblx0XHRcdFx0XHRjYXNlIGUuQVVUSEVOVElDQVRFX01JU01BVENIOlxyXG5cdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLnRvYXN0KCdGaW5nZXJwcmludCBtYXRjaGluZyBmYWlsZWQsIHBsZWFzZSByZS1lbnRlcicpO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgZS5BVVRIRU5USUNBVEVfT1ZFUkxJTUlUOlxyXG5cdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLmNsb3NlV2FpdGluZygpOyAvL+WFvOWuuUFuZHJvaWTlubPlj7DlhbPpl63nrYnlvoXmoYZcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5hbGVydChcclxuXHRcdFx0XHRcdFx0XHQnVGhlIG51bWJlciBvZiBmaW5nZXJwcmludCBpZGVudGlmaWNhdGlvbiBmYWlsdXJlcyBleGNlZWRzIHRoZSBsaW1pdC4gUGxlYXNlIHVzZSBvdGhlciBtZXRob2RzIGZvciBhdXRoZW50aWNhdGlvbidcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIGUuQ0FOQ0VMOlxyXG5cdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLnRvYXN0KCdSZWNvZ25pdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQnKTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdFx0XHRwbHVzLm5hdGl2ZVVJLmNsb3NlV2FpdGluZygpOyAvL+WFvOWuuUFuZHJvaWTlubPlj7DlhbPpl63nrYnlvoXmoYZcclxuXHRcdFx0XHRcdFx0cGx1cy5uYXRpdmVVSS5hbGVydCgnRmluZ2VycHJpbnQgaWRlbnRpZmljYXRpb24gZmFpbGVkLCBwbGVhc2UgdHJ5IGFnYWluJyk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdC8vIEFuZHJvaWTlubPlj7DmiYvliqjlvLnlh7rnrYnlvoXmj5DnpLrmoYYgXHJcblx0XHRcdGlmICgnQW5kcm9pZCcgPT0gcGx1cy5vcy5uYW1lKSB7XHJcblx0XHRcdFx0dGhpcy5zaG93ID0gdHJ1ZTtcclxuXHRcdFx0XHQvKiBwbHVzLm5hdGl2ZVVJLnNob3dXYWl0aW5nKCfmjIfnurnor4bliKvkuK0uLi4nKS5vbmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRwbHVzLmZpbmdlcnByaW50LmNhbmNlbCgpO1xyXG5cdFx0XHRcdH0gKi9cclxuXHRcdFx0fVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cclxuXHR9LFxyXG5cdHByaW50Q2FuY2VsOiBmdW5jdGlvbigpIHtcclxuXHRcdHBsdXMuZmluZ2VycHJpbnQuY2FuY2VsKCk7XHJcblx0XHQvLyB0aGlzLnJlc3VsdD1cIuWBnOatouaMh+e6ueivhuWIq1wiXHJcblx0fSxcclxufVxyXG5leHBvcnQgZGVmYXVsdCBXYWxsZXRVdGlsXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///962\n"); /***/ }), /* 963 */ @@ -91351,7 +91351,7 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__, Buffer) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 44));var _EthAbi = _interopRequireDefault(__webpack_require__(/*! utils/EthAbi.js */ 966));\nvar _SystemConfiguration = _interopRequireDefault(__webpack_require__(/*! utils/SystemConfiguration.js */ 961));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}\nvar Web3 = __webpack_require__(/*! web3 */ 967);\nvar Tx = __webpack_require__(/*! ethereumjs-tx */ 516);\nvar web3;\n// let tx;\nif (typeof web3 !== 'undefined') {\n web3 = new Web3(web3.currentProvider);\n} else {\n web3 = new Web3(new Web3.providers.HttpProvider(_SystemConfiguration.default.constant.ethNode));\n}\n\n\nvar eth = {\n //获取主币eth余额\n getBalance: function () {var _getBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee(address) {var balance;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n __f__(\"log\", \"查询余额:\", address, \" at utils/EthUtil.js:17\");_context.next = 3;return (\n web3.eth.getBalance(address));case 3:balance = _context.sent;\n __f__(\"log\", \"余额:\", balance, \" at utils/EthUtil.js:19\");return _context.abrupt(\"return\",\n Number(balance) / Math.pow(10, 18));case 6:case \"end\":return _context.stop();}}}, _callee);}));function getBalance(_x) {return _getBalance.apply(this, arguments);}return getBalance;}(),\n\n // //获取eth代币币余额\n // getTokenBalance: async function(address, contract) {\n // \tconsole.log(address, contract)\n // \tvar myContract = new web3.eth.Contract(abi, contract, {\n // \t\tfrom: address\n // \t});\n // \tvar decimals = await myContract.methods.decimals().call();\n // \tvar balance = await myContract.methods.balanceOf(address).call();\n\n // \treturn Number(balance) / Math.pow(10, decimals);\n // },\n getGas: function () {var _getGas = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2() {var gasPrice;return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:_context2.next = 2;return (\n web3.eth.getGasPrice().then(function (v) {\n return v;\n }));case 2:gasPrice = _context2.sent;\n __f__(\"log\", gasPrice, 'gasPrice', \" at utils/EthUtil.js:37\");return _context2.abrupt(\"return\",\n gasPrice);case 5:case \"end\":return _context2.stop();}}}, _callee2);}));function getGas() {return _getGas.apply(this, arguments);}return getGas;}(),\n\n\n // //获取主币eth余额\n // getBalance: async function(address) {\n // \tweb3 = new Web3();\n // \tconst data = {\n // \t\t'jsonrpc': '2.0',\n // \t\t'id': '1',\n // \t\t'method': 'eth_getBalance',\n // \t\t'params': [address, \"latest\"]\n // \t};\n // \tlet res = await uni.request({\n // \t\turl: systemConfiguration.constant.ethNode, //仅为示例,并非真实接口地址。\n // \t\tmethod: 'POST',\n // \t\tdata: data,\n // \t\tdataType: 'json'\n // \t});\n // \ttry {\n // \t\tlet balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18)\n // \t\treturn balance\n // \t} catch (e) {\n // \t\treturn 0;\n // \t}\n // },\n addPreZero: function addPreZero(num) {\n var t = (num + '').length,\n s = '';\n for (var i = 0; i < 64 - t; i++) {\n s += '0';\n }\n return s + num;\n },\n // 获取bms,bmdt,usdt/erc余额\n getTokenBalance: function () {var _getTokenBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(address, contract, success) {var data, res, resData, balance;return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:\n web3 = new Web3();\n data = {\n 'jsonrpc': '2.0',\n 'id': '1',\n 'method': 'eth_call',\n 'params': [{\n \"data\": '0x70a08231' + this.addPreZero(address.replace('0x', '')),\n \"to\": contract },\n \"latest\"] };_context3.next = 4;return (\n\n\n\n uni.request({\n url: _SystemConfiguration.default.constant.ethNode, //仅为示例,并非真实接口地址。\n method: 'POST',\n data: data,\n dataType: 'json' }));case 4:res = _context3.sent;\n\n resData = res[res.length - 1];\n __f__(\"log\", resData, 5555555555, \" at utils/EthUtil.js:92\");\n balance = Number(web3.utils.hexToNumberString(resData.data.result)) / Math.pow(10, 18);\n __f__(\"log\", balance, 'balance', \" at utils/EthUtil.js:94\");return _context3.abrupt(\"return\",\n balance);case 10:case \"end\":return _context3.stop();}}}, _callee3, this);}));function getTokenBalance(_x2, _x3, _x4) {return _getTokenBalance.apply(this, arguments);}return getTokenBalance;}(),\n\n\n\n\n sendTransaction: function () {var _sendTransaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4(fromAddress, toAddress, value, privateKey, success) {var nonce, gas, txData, tx, serializedTx;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:_context4.next = 2;return (\n\n web3.eth.getTransactionCount(fromAddress));case 2:nonce = _context4.sent;_context4.next = 5;return (\n web3.eth.estimateGas({\n from: fromAddress }));case 5:gas = _context4.sent;\n\n __f__(\"log\", 11111111111, \" at utils/EthUtil.js:106\");\n __f__(\"log\", nonce, \" at utils/EthUtil.js:107\");\n __f__(\"log\", fromAddress, toAddress, value, privateKey, \" at utils/EthUtil.js:108\");\n txData = {\n chainId: web3.utils.toHex(1899),\n // nonce每次++,以免覆盖之前pending中的交易\n nonce: web3.utils.toHex(nonce++),\n // 设置gasLimit和gasPrice\n gas: web3.utils.toHex(gas),\n gasPrice: web3.utils.toHex(web3.eth.getGasPrice()),\n // 要转账的哪个账号 \n to: toAddress,\n // 从哪个账号转\n from: fromAddress,\n // 0.001 以太币\n value: web3.utils.toHex(web3.utils.toWei(value, 'ether')) };\n\n\n\n\n // 引入私钥,并转换为16进制\n\n // 用私钥签署交易\n __f__(\"log\", Buffer.from(privateKey).toString('hex'), \" at utils/EthUtil.js:129\");\n tx = new Tx(txData);\n tx.sign(Buffer.from(privateKey, 'hex'));\n\n // 序列化\n serializedTx = tx.serialize().toString('hex');\n\n web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'), function (err,\n hash) {\n __f__(\"log\", 'hash' + hash, \" at utils/EthUtil.js:138\");\n if (!err) {\n success(hash, undefined);\n } else {\n __f__(\"log\", err, 789798, \" at utils/EthUtil.js:142\");\n success(undefined, err);\n }\n });\n // 获取交易数据\n case 15:case \"end\":return _context4.stop();}}}, _callee4);}));function sendTransaction(_x5, _x6, _x7, _x8, _x9) {return _sendTransaction.apply(this, arguments);}return sendTransaction;}(),\n\n\n\n\n sendTokenTransaction: function () {var _sendTokenTransaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5(fromAddress, toAddress, value, privateKey, contract, success) {var nonce, gas, myContract;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_context5.next = 2;return (\n\n web3.eth.getTransactionCount(fromAddress));case 2:nonce = _context5.sent;_context5.next = 5;return (\n web3.eth.estimateGas({\n from: fromAddress }));case 5:gas = _context5.sent;\n\n\n __f__(\"log\", 'nonce' + nonce, \" at utils/EthUtil.js:159\");\n myContract = new web3.eth.Contract(_EthAbi.default, contract);\n myContract.methods.decimals().call().\n then(function (decimals) {\n\n // 获取交易数据\n __f__(\"log\", Number(value) * Math.pow(10, decimals), \" at utils/EthUtil.js:165\");\n var txData = {\n chainId: web3.utils.toHex(128),\n // nonce每次++,以免覆盖之前pending中的交易\n nonce: web3.utils.toHex(nonce++),\n // 设置gasLimit和gasPrice\n gas: web3.utils.toHex(gas),\n gasPrice: web3.utils.toHex(web3.eth.getGasPrice()),\n // 要转账的哪个账号 \n to: contract,\n // 从哪个账号转\n from: fromAddress,\n // 0.001 以太币\n value: \"0x00\",\n data: myContract.methods.transfer(\n toAddress, web3.utils.toWei(value, 'ether')).encodeABI() };\n\n\n\n // 引入私钥,并转换为16进制\n\n // 用私钥签署交易\n\n var tx = new Tx(txData, {\n 'chain': 'ropsten' });\n\n tx.sign(Buffer.from(privateKey, 'hex'));\n __f__(\"log\", Buffer.from(privateKey).toString('hex'), \" at utils/EthUtil.js:192\");\n // 序列化\n var serializedTx = tx.serialize().toString('hex');\n\n web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'), function (\n err,\n hash) {\n if (!err) {\n success(hash, undefined);\n } else {\n success(undefined, err);\n }\n });\n\n });case 9:case \"end\":return _context5.stop();}}}, _callee5);}));function sendTokenTransaction(_x10, _x11, _x12, _x13, _x14, _x15) {return _sendTokenTransaction.apply(this, arguments);}return sendTokenTransaction;}(),\n\n\n\n\n\n transaction: function () {var _transaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6(fromAddress, toAddress, value, privateKey, contract, success) {return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:if (!\n contract) {_context6.next = 5;break;}_context6.next = 3;return (\n this.sendTokenTransaction(fromAddress, toAddress, value, privateKey, contract, success));case 3:_context6.next = 7;break;case 5:_context6.next = 7;return (\n\n this.sendTransaction(fromAddress, toAddress, value, privateKey, success));case 7:case \"end\":return _context6.stop();}}}, _callee6, this);}));function transaction(_x16, _x17, _x18, _x19, _x20, _x21) {return _transaction.apply(this, arguments);}return transaction;}() };var _default =\n\n\n\n\neth;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"], __webpack_require__(/*! ./node_modules/buffer/index.js */ 40).Buffer))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvRXRoVXRpbC5qcyJdLCJuYW1lcyI6WyJXZWIzIiwicmVxdWlyZSIsIlR4Iiwid2ViMyIsImN1cnJlbnRQcm92aWRlciIsInByb3ZpZGVycyIsIkh0dHBQcm92aWRlciIsInN5c3RlbUNvbmZpZ3VyYXRpb24iLCJjb25zdGFudCIsImV0aE5vZGUiLCJldGgiLCJnZXRCYWxhbmNlIiwiYWRkcmVzcyIsImJhbGFuY2UiLCJOdW1iZXIiLCJNYXRoIiwicG93IiwiZ2V0R2FzIiwiZ2V0R2FzUHJpY2UiLCJ0aGVuIiwidiIsImdhc1ByaWNlIiwiYWRkUHJlWmVybyIsIm51bSIsInQiLCJsZW5ndGgiLCJzIiwiaSIsImdldFRva2VuQmFsYW5jZSIsImNvbnRyYWN0Iiwic3VjY2VzcyIsImRhdGEiLCJyZXBsYWNlIiwidW5pIiwicmVxdWVzdCIsInVybCIsIm1ldGhvZCIsImRhdGFUeXBlIiwicmVzIiwicmVzRGF0YSIsInV0aWxzIiwiaGV4VG9OdW1iZXJTdHJpbmciLCJyZXN1bHQiLCJzZW5kVHJhbnNhY3Rpb24iLCJmcm9tQWRkcmVzcyIsInRvQWRkcmVzcyIsInZhbHVlIiwicHJpdmF0ZUtleSIsImdldFRyYW5zYWN0aW9uQ291bnQiLCJub25jZSIsImVzdGltYXRlR2FzIiwiZnJvbSIsImdhcyIsInR4RGF0YSIsImNoYWluSWQiLCJ0b0hleCIsInRvIiwidG9XZWkiLCJCdWZmZXIiLCJ0b1N0cmluZyIsInR4Iiwic2lnbiIsInNlcmlhbGl6ZWRUeCIsInNlcmlhbGl6ZSIsInNlbmRTaWduZWRUcmFuc2FjdGlvbiIsImVyciIsImhhc2giLCJ1bmRlZmluZWQiLCJzZW5kVG9rZW5UcmFuc2FjdGlvbiIsIm15Q29udHJhY3QiLCJDb250cmFjdCIsImFiaSIsIm1ldGhvZHMiLCJkZWNpbWFscyIsImNhbGwiLCJ0cmFuc2ZlciIsImVuY29kZUFCSSIsInRyYW5zYWN0aW9uIl0sIm1hcHBpbmdzIjoiZ1FBQUE7QUFDQSxnSDtBQUNBLElB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VUFBekQsRUFBcUVsQixRQUFyRSxFQUErRUMsT0FBL0UsQ0FGSzs7QUFJTCxxQkFBS2EsZUFBTCxDQUFxQkMsV0FBckIsRUFBa0NDLFNBQWxDLEVBQTZDQyxLQUE3QyxFQUFvREMsVUFBcEQsRUFBZ0VqQixPQUFoRSxDQUpLLGtFQUFGLCtIQXRNRixFQUFWLEM7Ozs7O0FBK01lcEIsRyIsImZpbGUiOiI5NjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYWJpIGZyb20gJ3V0aWxzL0V0aEFiaS5qcydcclxuaW1wb3J0IHN5c3RlbUNvbmZpZ3VyYXRpb24gZnJvbSAndXRpbHMvU3lzdGVtQ29uZmlndXJhdGlvbi5qcydcclxuY29uc3QgV2ViMyA9IHJlcXVpcmUoJ3dlYjMnKTtcclxuY29uc3QgVHggPSByZXF1aXJlKCdldGhlcmV1bWpzLXR4Jyk7XHJcbmxldCB3ZWIzO1xyXG4vLyBsZXQgdHg7XHJcbmlmICh0eXBlb2Ygd2ViMyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHR3ZWIzID0gbmV3IFdlYjMod2ViMy5jdXJyZW50UHJvdmlkZXIpO1xyXG59IGVsc2Uge1xyXG5cdHdlYjMgPSBuZXcgV2ViMyhuZXcgV2ViMy5wcm92aWRlcnMuSHR0cFByb3ZpZGVyKHN5c3RlbUNvbmZpZ3VyYXRpb24uY29uc3RhbnQuZXRoTm9kZSkpO1xyXG59XHJcblxyXG5cclxubGV0IGV0aCA9IHtcclxuXHQvL+iOt+WPluS4u+W4gWV0aOS9meminVxyXG5cdGdldEJhbGFuY2U6IGFzeW5jIGZ1bmN0aW9uKGFkZHJlc3MpIHtcclxuXHRcdGNvbnNvbGUubG9nKFwi5p+l6K+i5L2Z6aKd77yaXCIsYWRkcmVzcylcclxuXHRcdGxldCBiYWxhbmNlID0gYXdhaXQgd2ViMy5ldGguZ2V0QmFsYW5jZShhZGRyZXNzKTtcclxuXHRcdGNvbnNvbGUubG9nKFwi5L2Z6aKd77yaXCIsYmFsYW5jZSlcclxuXHRcdHJldHVybiBOdW1iZXIoYmFsYW5jZSkgLyBNYXRoLnBvdygxMCwgMTgpO1xyXG5cdH0sXHJcblx0Ly8gLy/ojrflj5ZldGjku6PluIHluIHkvZnpop1cclxuXHQvLyBnZXRUb2tlbkJhbGFuY2U6IGFzeW5jIGZ1bmN0aW9uKGFkZHJlc3MsIGNvbnRyYWN0KSB7XHJcblx0Ly8gXHRjb25zb2xlLmxvZyhhZGRyZXNzLCBjb250cmFjdClcclxuXHQvLyBcdHZhciBteUNvbnRyYWN0ID0gbmV3IHdlYjMuZXRoLkNvbnRyYWN0KGFiaSwgY29udHJhY3QsIHtcclxuXHQvLyBcdFx0ZnJvbTogYWRkcmVzc1xyXG5cdC8vIFx0fSk7XHJcblx0Ly8gXHR2YXIgZGVjaW1hbHMgPSBhd2FpdCBteUNvbnRyYWN0Lm1ldGhvZHMuZGVjaW1hbHMoKS5jYWxsKCk7XHJcblx0Ly8gXHR2YXIgYmFsYW5jZSA9IGF3YWl0IG15Q29udHJhY3QubWV0aG9kcy5iYWxhbmNlT2YoYWRkcmVzcykuY2FsbCgpO1xyXG5cclxuXHQvLyBcdHJldHVybiBOdW1iZXIoYmFsYW5jZSkgLyBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG5cdC8vIH0sXHJcblx0Z2V0R2FzOiBhc3luYyBmdW5jdGlvbigpIHtcclxuXHRcdGNvbnN0IGdhc1ByaWNlID0gYXdhaXQgd2ViMy5ldGguZ2V0R2FzUHJpY2UoKS50aGVuKCh2KSA9PiB7XHJcblx0XHRcdHJldHVybiB2XHJcblx0XHR9KTtcclxuXHRcdGNvbnNvbGUubG9nKGdhc1ByaWNlLCAnZ2FzUHJpY2UnKVxyXG5cdFx0cmV0dXJuIGdhc1ByaWNlO1xyXG5cdH0sXHJcblxyXG5cdC8vIC8v6I635Y+W5Li75biBZXRo5L2Z6aKdXHJcblx0Ly8gZ2V0QmFsYW5jZTogYXN5bmMgZnVuY3Rpb24oYWRkcmVzcykge1xyXG5cdC8vIFx0d2ViMyA9IG5ldyBXZWIzKCk7XHJcblx0Ly8gXHRjb25zdCBkYXRhID0ge1xyXG5cdC8vIFx0XHQnanNvbnJwYyc6ICcyLjAnLFxyXG5cdC8vIFx0XHQnaWQnOiAnMScsXHJcblx0Ly8gXHRcdCdtZXRob2QnOiAnZXRoX2dldEJhbGFuY2UnLFxyXG5cdC8vIFx0XHQncGFyYW1zJzogW2FkZHJlc3MsIFwibGF0ZXN0XCJdXHJcblx0Ly8gXHR9O1xyXG5cdC8vIFx0bGV0IHJlcyA9IGF3YWl0IHVuaS5yZXF1ZXN0KHtcclxuXHQvLyBcdFx0dXJsOiBzeXN0ZW1Db25maWd1cmF0aW9uLmNvbnN0YW50LmV0aE5vZGUsIC8v5LuF5Li656S65L6L77yM5bm26Z2e55yf5a6e5o6l5Y+j5Zyw5Z2A44CCXHJcblx0Ly8gXHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdC8vIFx0XHRkYXRhOiBkYXRhLFxyXG5cdC8vIFx0XHRkYXRhVHlwZTogJ2pzb24nXHJcblx0Ly8gXHR9KTtcclxuXHQvLyBcdHRyeSB7XHJcblx0Ly8gXHRcdGxldCBiYWxhbmNlID0gTnVtYmVyKHdlYjMudXRpbHMuaGV4VG9OdW1iZXJTdHJpbmcocmVzWzFdLmRhdGEucmVzdWx0KSkgLyBNYXRoLnBvdygxMCwgMTgpXHJcblx0Ly8gXHRcdHJldHVybiBiYWxhbmNlXHJcblx0Ly8gXHR9IGNhdGNoIChlKSB7XHJcblx0Ly8gXHRcdHJldHVybiAwO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH0sXHJcblx0YWRkUHJlWmVybzogZnVuY3Rpb24obnVtKSB7XHJcblx0XHRsZXQgdCA9IChudW0gKyAnJykubGVuZ3RoLFxyXG5cdFx0XHRzID0gJyc7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IDY0IC0gdDsgaSsrKSB7XHJcblx0XHRcdHMgKz0gJzAnO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHMgKyBudW07XHJcblx0fSxcclxuXHQvLyDojrflj5ZibXMsYm1kdCx1c2R0L2VyY+S9meminVxyXG5cdGdldFRva2VuQmFsYW5jZTogYXN5bmMgZnVuY3Rpb24oYWRkcmVzcywgY29udHJhY3QsIHN1Y2Nlc3MpIHtcclxuXHRcdHdlYjMgPSBuZXcgV2ViMygpO1xyXG5cdFx0Y29uc3QgZGF0YSA9IHtcclxuXHRcdFx0J2pzb25ycGMnOiAnMi4wJyxcclxuXHRcdFx0J2lkJzogJzEnLFxyXG5cdFx0XHQnbWV0aG9kJzogJ2V0aF9jYWxsJyxcclxuXHRcdFx0J3BhcmFtcyc6IFt7XHJcblx0XHRcdFx0XCJkYXRhXCI6ICcweDcwYTA4MjMxJyArIHRoaXMuYWRkUHJlWmVybyhhZGRyZXNzLnJlcGxhY2UoJzB4JywgJycpKSxcclxuXHRcdFx0XHRcInRvXCI6IGNvbnRyYWN0LFxyXG5cdFx0XHR9LCBcImxhdGVzdFwiXVxyXG5cdFx0fTtcclxuXHJcblxyXG5cdFx0bGV0IHJlcyA9IGF3YWl0IHVuaS5yZXF1ZXN0KHtcclxuXHRcdFx0dXJsOiBzeXN0ZW1Db25maWd1cmF0aW9uLmNvbnN0YW50LmV0aE5vZGUsIC8v5LuF5Li656S65L6L77yM5bm26Z2e55yf5a6e5o6l5Y+j5Zyw5Z2A44CCXHJcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0XHRkYXRhOiBkYXRhLFxyXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nXHJcblx0XHR9KTtcclxuXHRcdGxldCByZXNEYXRhID0gcmVzW3Jlcy5sZW5ndGggLSAxXTtcclxuXHRcdGNvbnNvbGUubG9nKHJlc0RhdGEsIDU1NTU1NTU1NTUpXHJcblx0XHRsZXQgYmFsYW5jZSA9IE51bWJlcih3ZWIzLnV0aWxzLmhleFRvTnVtYmVyU3RyaW5nKHJlc0RhdGEuZGF0YS5yZXN1bHQpKSAvIE1hdGgucG93KDEwLCAxOClcclxuXHRcdGNvbnNvbGUubG9nKGJhbGFuY2UsICdiYWxhbmNlJylcclxuXHRcdHJldHVybiBiYWxhbmNlO1xyXG5cdH0sXHJcblxyXG5cclxuXHJcblx0c2VuZFRyYW5zYWN0aW9uOiBhc3luYyBmdW5jdGlvbihmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCB2YWx1ZSwgcHJpdmF0ZUtleSwgc3VjY2Vzcykge1xyXG5cclxuXHRcdHZhciBub25jZSA9IGF3YWl0IHdlYjMuZXRoLmdldFRyYW5zYWN0aW9uQ291bnQoZnJvbUFkZHJlc3MpO1xyXG5cdFx0dmFyIGdhcyA9IGF3YWl0IHdlYjMuZXRoLmVzdGltYXRlR2FzKHtcclxuXHRcdFx0ZnJvbTogZnJvbUFkZHJlc3NcclxuXHRcdH0pO1xyXG5cdFx0Y29uc29sZS5sb2coMTExMTExMTExMTEpXHJcblx0XHRjb25zb2xlLmxvZyhub25jZSlcclxuXHRcdGNvbnNvbGUubG9nKGZyb21BZGRyZXNzLCB0b0FkZHJlc3MsIHZhbHVlLCBwcml2YXRlS2V5KVxyXG5cdFx0dmFyIHR4RGF0YSA9IHtcclxuXHRcdFx0Y2hhaW5JZDogd2ViMy51dGlscy50b0hleCgxODk5KSxcclxuXHRcdFx0Ly8gbm9uY2Xmr4/mrKErK++8jOS7peWFjeimhuebluS5i+WJjXBlbmRpbmfkuK3nmoTkuqTmmJNcclxuXHRcdFx0bm9uY2U6IHdlYjMudXRpbHMudG9IZXgobm9uY2UrKyksXHJcblx0XHRcdC8vIOiuvue9rmdhc0xpbWl05ZKMZ2FzUHJpY2VcclxuXHRcdFx0Z2FzOiB3ZWIzLnV0aWxzLnRvSGV4KGdhcyksXHJcblx0XHRcdGdhc1ByaWNlOiB3ZWIzLnV0aWxzLnRvSGV4KHdlYjMuZXRoLmdldEdhc1ByaWNlKCkpLFxyXG5cdFx0XHQvLyDopoHovazotKbnmoTlk6rkuKrotKblj7cgIFxyXG5cdFx0XHR0bzogdG9BZGRyZXNzLFxyXG5cdFx0XHQvLyDku47lk6rkuKrotKblj7fovaxcclxuXHRcdFx0ZnJvbTogZnJvbUFkZHJlc3MsXHJcblx0XHRcdC8vIDAuMDAxIOS7peWkquW4gVxyXG5cdFx0XHR2YWx1ZTogd2ViMy51dGlscy50b0hleCh3ZWIzLnV0aWxzLnRvV2VpKHZhbHVlLCAnZXRoZXInKSlcclxuXHRcdH1cclxuXHJcblxyXG5cclxuXHRcdC8vIOW8leWFpeengemSpe+8jOW5tui9rOaNouS4ujE26L+b5Yi2XHJcblxyXG5cdFx0Ly8g55So56eB6ZKl562+572y5Lqk5piTXHJcblx0XHRjb25zb2xlLmxvZyhCdWZmZXIuZnJvbShwcml2YXRlS2V5KS50b1N0cmluZygnaGV4JykpXHJcblx0XHRjb25zdCB0eCA9IG5ldyBUeCh0eERhdGEpO1xyXG5cdFx0dHguc2lnbihCdWZmZXIuZnJvbShwcml2YXRlS2V5LCAnaGV4JykpO1xyXG5cclxuXHRcdC8vIOW6j+WIl+WMllxyXG5cdFx0dmFyIHNlcmlhbGl6ZWRUeCA9IHR4LnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKTtcclxuXHJcblx0XHR3ZWIzLmV0aC5zZW5kU2lnbmVkVHJhbnNhY3Rpb24oJzB4JyArIHNlcmlhbGl6ZWRUeC50b1N0cmluZygnaGV4JyksIGZ1bmN0aW9uKGVycixcclxuXHRcdFx0aGFzaCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygnaGFzaCcgKyBoYXNoKVxyXG5cdFx0XHRpZiAoIWVycikge1xyXG5cdFx0XHRcdHN1Y2Nlc3MoaGFzaCwgdW5kZWZpbmVkKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhlcnIsIDc4OTc5OClcclxuXHRcdFx0XHRzdWNjZXNzKHVuZGVmaW5lZCwgZXJyKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHQvLyDojrflj5bkuqTmmJPmlbDmja5cclxuXHJcblxyXG5cclxuXHJcblx0fSxcclxuXHRzZW5kVG9rZW5UcmFuc2FjdGlvbjogYXN5bmMgZnVuY3Rpb24oZnJvbUFkZHJlc3MsIHRvQWRkcmVzcywgdmFsdWUsIHByaXZhdGVLZXksIGNvbnRyYWN0LCBzdWNjZXNzKSB7XHJcblxyXG5cdFx0dmFyIG5vbmNlID0gYXdhaXQgd2ViMy5ldGguZ2V0VHJhbnNhY3Rpb25Db3VudChmcm9tQWRkcmVzcyk7XHJcblx0XHR2YXIgZ2FzID0gYXdhaXQgd2ViMy5ldGguZXN0aW1hdGVHYXMoe1xyXG5cdFx0XHRmcm9tOiBmcm9tQWRkcmVzc1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Y29uc29sZS5sb2coJ25vbmNlJyArIG5vbmNlKVxyXG5cdFx0dmFyIG15Q29udHJhY3QgPSBuZXcgd2ViMy5ldGguQ29udHJhY3QoYWJpLCBjb250cmFjdClcclxuXHRcdG15Q29udHJhY3QubWV0aG9kcy5kZWNpbWFscygpLmNhbGwoKVxyXG5cdFx0XHQudGhlbihmdW5jdGlvbihkZWNpbWFscykge1xyXG5cclxuXHRcdFx0XHQvLyDojrflj5bkuqTmmJPmlbDmja5cclxuXHRcdFx0XHRjb25zb2xlLmxvZyhOdW1iZXIodmFsdWUpICogTWF0aC5wb3coMTAsIGRlY2ltYWxzKSlcclxuXHRcdFx0XHR2YXIgdHhEYXRhID0ge1xyXG5cdFx0XHRcdFx0Y2hhaW5JZDogd2ViMy51dGlscy50b0hleCgxMjgpLFxyXG5cdFx0XHRcdFx0Ly8gbm9uY2Xmr4/mrKErK++8jOS7peWFjeimhuebluS5i+WJjXBlbmRpbmfkuK3nmoTkuqTmmJNcclxuXHRcdFx0XHRcdG5vbmNlOiB3ZWIzLnV0aWxzLnRvSGV4KG5vbmNlKyspLFxyXG5cdFx0XHRcdFx0Ly8g6K6+572uZ2FzTGltaXTlkoxnYXNQcmljZVxyXG5cdFx0XHRcdFx0Z2FzOiB3ZWIzLnV0aWxzLnRvSGV4KGdhcyksXHJcblx0XHRcdFx0XHRnYXNQcmljZTogd2ViMy51dGlscy50b0hleCh3ZWIzLmV0aC5nZXRHYXNQcmljZSgpKSxcclxuXHRcdFx0XHRcdC8vIOimgei9rOi0pueahOWTquS4qui0puWPtyAgXHJcblx0XHRcdFx0XHR0bzogY29udHJhY3QsXHJcblx0XHRcdFx0XHQvLyDku47lk6rkuKrotKblj7fovaxcclxuXHRcdFx0XHRcdGZyb206IGZyb21BZGRyZXNzLFxyXG5cdFx0XHRcdFx0Ly8gMC4wMDEg5Lul5aSq5biBXHJcblx0XHRcdFx0XHR2YWx1ZTogXCIweDAwXCIsXHJcblx0XHRcdFx0XHRkYXRhOiBteUNvbnRyYWN0Lm1ldGhvZHMudHJhbnNmZXIoXHJcblx0XHRcdFx0XHRcdHRvQWRkcmVzcywgd2ViMy51dGlscy50b1dlaSh2YWx1ZSwgJ2V0aGVyJykpLmVuY29kZUFCSSgpXHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0Ly8g5byV5YWl56eB6ZKl77yM5bm26L2s5o2i5Li6MTbov5vliLZcclxuXHJcblx0XHRcdFx0Ly8g55So56eB6ZKl562+572y5Lqk5piTXHJcblxyXG5cdFx0XHRcdGNvbnN0IHR4ID0gbmV3IFR4KHR4RGF0YSwge1xyXG5cdFx0XHRcdFx0J2NoYWluJzogJ3JvcHN0ZW4nXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dHguc2lnbihCdWZmZXIuZnJvbShwcml2YXRlS2V5LCAnaGV4JykpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKEJ1ZmZlci5mcm9tKHByaXZhdGVLZXkpLnRvU3RyaW5nKCdoZXgnKSlcclxuXHRcdFx0XHQvLyDluo/liJfljJZcclxuXHRcdFx0XHR2YXIgc2VyaWFsaXplZFR4ID0gdHguc2VyaWFsaXplKCkudG9TdHJpbmcoJ2hleCcpO1xyXG5cclxuXHRcdFx0XHR3ZWIzLmV0aC5zZW5kU2lnbmVkVHJhbnNhY3Rpb24oJzB4JyArIHNlcmlhbGl6ZWRUeC50b1N0cmluZygnaGV4JyksIGZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0ZXJyLFxyXG5cdFx0XHRcdFx0aGFzaCkge1xyXG5cdFx0XHRcdFx0aWYgKCFlcnIpIHtcclxuXHRcdFx0XHRcdFx0c3VjY2VzcyhoYXNoLCB1bmRlZmluZWQpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0c3VjY2Vzcyh1bmRlZmluZWQsIGVycik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9KTtcclxuXHJcblxyXG5cclxuXHJcblx0fSxcclxuXHR0cmFuc2FjdGlvbjogYXN5bmMgZnVuY3Rpb24oZnJvbUFkZHJlc3MsIHRvQWRkcmVzcywgdmFsdWUsIHByaXZhdGVLZXksIGNvbnRyYWN0LCBzdWNjZXNzKSB7XHJcblx0XHRpZiAoY29udHJhY3QpIHtcclxuXHRcdFx0YXdhaXQgdGhpcy5zZW5kVG9rZW5UcmFuc2FjdGlvbihmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCB2YWx1ZSwgcHJpdmF0ZUtleSwgY29udHJhY3QsIHN1Y2Nlc3MpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0YXdhaXQgdGhpcy5zZW5kVHJhbnNhY3Rpb24oZnJvbUFkZHJlc3MsIHRvQWRkcmVzcywgdmFsdWUsIHByaXZhdGVLZXksIHN1Y2Nlc3MpXHJcblxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBldGg7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///965\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__, Buffer) {Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = void 0;var _regenerator = _interopRequireDefault(__webpack_require__(/*! ./node_modules/@babel/runtime/regenerator */ 44));var _EthAbi = _interopRequireDefault(__webpack_require__(/*! utils/EthAbi.js */ 966));\nvar _SystemConfiguration = _interopRequireDefault(__webpack_require__(/*! utils/SystemConfiguration.js */ 961));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);}_next(undefined);});};}\nvar Web3 = __webpack_require__(/*! web3 */ 967);\nvar Tx = __webpack_require__(/*! ethereumjs-tx */ 516);\nvar web3;\n// let tx;\nif (typeof web3 !== 'undefined') {\n web3 = new Web3(web3.currentProvider);\n} else {\n web3 = new Web3(new Web3.providers.HttpProvider(_SystemConfiguration.default.constant.ethNode));\n}\n\n\nvar eth = {\n //获取主币eth余额\n // getBalance: async function(address) {\n // \tconsole.log(\"查询余额:\",address)\n // \tlet balance = 0;\n // \ttry{\n // \t\tweb3 = new Web3(new Web3.providers.HttpProvider(systemConfiguration.constant.ethNode));\n // \t\tbalance = await web3.eth.getBalance(address);\n // \t\tconsole.log(\"余额:\",balance,9999999999999)\n // \t}catch(e){\n // \t\tconsole.log(\"余额:\",e,9999999999999)\n // \t}\n // \treturn Number(balance) / Math.pow(10, 18);\n // },\n // //获取eth代币币余额\n // getTokenBalance: async function(address, contract) {\n // \tconsole.log(address, contract)\n // \tvar myContract = new web3.eth.Contract(abi, contract, {\n // \t\tfrom: address\n // \t});\n // \tvar decimals = await myContract.methods.decimals().call();\n // \tvar balance = await myContract.methods.balanceOf(address).call();\n\n // \treturn Number(balance) / Math.pow(10, decimals);\n // },\n getGas: function () {var _getGas = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee() {var gasPrice;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:\n web3 = new Web3(new Web3.providers.HttpProvider(_SystemConfiguration.default.constant.ethNode));_context.next = 3;return (\n web3.eth.getGasPrice().then(function (v) {\n return v;\n }));case 3:gasPrice = _context.sent;\n __f__(\"log\", gasPrice, 'gasPrice', \" at utils/EthUtil.js:44\");return _context.abrupt(\"return\",\n gasPrice);case 6:case \"end\":return _context.stop();}}}, _callee);}));function getGas() {return _getGas.apply(this, arguments);}return getGas;}(),\n\n\n //获取主币eth余额\n getBalance: function () {var _getBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee2(address) {var data, res, balance;return _regenerator.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:\n web3 = new Web3();\n data = {\n 'jsonrpc': '2.0',\n 'id': '1',\n 'method': 'eth_getBalance',\n 'params': [address, \"latest\"] };_context2.next = 4;return (\n\n uni.request({\n url: _SystemConfiguration.default.constant.ethNode, //仅为示例,并非真实接口地址。\n method: 'POST',\n data: data,\n dataType: 'json' }));case 4:res = _context2.sent;_context2.prev = 5;\n\n\n balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18);return _context2.abrupt(\"return\",\n balance);case 10:_context2.prev = 10;_context2.t0 = _context2[\"catch\"](5);return _context2.abrupt(\"return\",\n\n 0);case 13:case \"end\":return _context2.stop();}}}, _callee2, null, [[5, 10]]);}));function getBalance(_x) {return _getBalance.apply(this, arguments);}return getBalance;}(),\n\n\n addPreZero: function addPreZero(num) {\n var t = (num + '').length,\n s = '';\n for (var i = 0; i < 64 - t; i++) {\n s += '0';\n }\n return s + num;\n },\n // 获取bms,bmdt,usdt/erc余额\n getTokenBalance: function () {var _getTokenBalance = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee3(address, contract, success) {var data, res, resData, balance;return _regenerator.default.wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:\n web3 = new Web3();\n data = {\n 'jsonrpc': '2.0',\n 'id': '1',\n 'method': 'eth_call',\n 'params': [{\n \"data\": '0x70a08231' + this.addPreZero(address.replace('0x', '')),\n \"to\": contract },\n \"latest\"] };_context3.next = 4;return (\n\n\n\n uni.request({\n url: _SystemConfiguration.default.constant.ethNode, //仅为示例,并非真实接口地址。\n method: 'POST',\n data: data,\n dataType: 'json' }));case 4:res = _context3.sent;\n\n resData = res[res.length - 1];\n __f__(\"log\", resData, 5555555555, \" at utils/EthUtil.js:99\");\n balance = Number(web3.utils.hexToNumberString(resData.data.result)) / Math.pow(10, 18);\n __f__(\"log\", balance, 'balance', \" at utils/EthUtil.js:101\");return _context3.abrupt(\"return\",\n balance);case 10:case \"end\":return _context3.stop();}}}, _callee3, this);}));function getTokenBalance(_x2, _x3, _x4) {return _getTokenBalance.apply(this, arguments);}return getTokenBalance;}(),\n\n\n\n\n sendTransaction: function () {var _sendTransaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee4(fromAddress, toAddress, value, privateKey, success) {var nonce, gas, txData, tx, serializedTx;return _regenerator.default.wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:_context4.next = 2;return (\n\n web3.eth.getTransactionCount(fromAddress));case 2:nonce = _context4.sent;_context4.next = 5;return (\n\n web3.eth.estimateGas({\n from: fromAddress }));case 5:gas = _context4.sent;\n\n __f__(\"log\", 11111111111, \" at utils/EthUtil.js:114\");\n __f__(\"log\", nonce, \" at utils/EthUtil.js:115\");\n __f__(\"log\", fromAddress, toAddress, value, privateKey, web3.eth.getGasPrice(), \" at utils/EthUtil.js:116\");\n txData = {\n // nonce每次++,以免覆盖之前pending中的交易\n nonce: web3.utils.toHex(nonce++),\n // 设置gasLimit和gasPrice\n gasLimit: web3.utils.toHex(600000),\n gasPrice: web3.utils.toHex(web3.eth.getGasPrice()),\n // 要转账的哪个账号 \n to: toAddress,\n // 从哪个账号转\n from: fromAddress,\n // 0.001 以太币\n value: web3.utils.toHex(web3.utils.toWei(value, 'ether')),\n chainId: _SystemConfiguration.default.constant.ethChainId };\n\n\n\n\n // 引入私钥,并转换为16进制\n\n // 用私钥签署交易\n __f__(\"log\", txData, 55555, \" at utils/EthUtil.js:137\");\n __f__(\"log\", Buffer.from(privateKey).toString('hex'), \" at utils/EthUtil.js:138\");\n tx = new Tx(txData);\n tx.sign(Buffer.from(privateKey, 'hex'));\n\n // 序列化\n serializedTx = tx.serialize().toString('hex');\n\n web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'), function (err,\n hash) {\n __f__(\"log\", 'hash' + hash, \" at utils/EthUtil.js:147\");\n if (!err) {\n success(hash, undefined);\n } else {\n __f__(\"log\", err, 789798, \" at utils/EthUtil.js:151\");\n success(undefined, err);\n }\n });\n // 获取交易数据\n case 16:case \"end\":return _context4.stop();}}}, _callee4);}));function sendTransaction(_x5, _x6, _x7, _x8, _x9) {return _sendTransaction.apply(this, arguments);}return sendTransaction;}(),\n\n\n\n\n sendTokenTransaction: function () {var _sendTokenTransaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee5(fromAddress, toAddress, value, privateKey, contract, success) {var nonce, gas, myContract;return _regenerator.default.wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_context5.next = 2;return (\n\n web3.eth.getTransactionCount(fromAddress));case 2:nonce = _context5.sent;_context5.next = 5;return (\n web3.eth.estimateGas({\n from: fromAddress }));case 5:gas = _context5.sent;\n\n\n __f__(\"log\", 'nonce' + nonce, \" at utils/EthUtil.js:168\");\n myContract = new web3.eth.Contract(_EthAbi.default, contract);\n myContract.methods.decimals().call().\n then(function (decimals) {\n\n // 获取交易数据\n __f__(\"log\", Number(value) * Math.pow(10, decimals), \" at utils/EthUtil.js:174\");\n var txData = {\n chainId: web3.utils.toHex(128),\n // nonce每次++,以免覆盖之前pending中的交易\n nonce: web3.utils.toHex(nonce++),\n // 设置gasLimit和gasPrice\n gas: web3.utils.toHex(gas),\n gasPrice: web3.utils.toHex(web3.eth.getGasPrice()),\n // 要转账的哪个账号 \n to: contract,\n // 从哪个账号转\n from: fromAddress,\n // 0.001 以太币\n value: \"0x00\",\n data: myContract.methods.transfer(\n toAddress, web3.utils.toWei(value, 'ether')).encodeABI() };\n\n\n\n // 引入私钥,并转换为16进制\n\n // 用私钥签署交易\n\n var tx = new Tx(txData, {\n 'chain': 'ropsten' });\n\n tx.sign(Buffer.from(privateKey, 'hex'));\n __f__(\"log\", Buffer.from(privateKey).toString('hex'), \" at utils/EthUtil.js:201\");\n // 序列化\n var serializedTx = tx.serialize().toString('hex');\n\n web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'), function (\n err,\n hash) {\n if (!err) {\n success(hash, undefined);\n } else {\n success(undefined, err);\n }\n });\n\n });case 9:case \"end\":return _context5.stop();}}}, _callee5);}));function sendTokenTransaction(_x10, _x11, _x12, _x13, _x14, _x15) {return _sendTokenTransaction.apply(this, arguments);}return sendTokenTransaction;}(),\n\n\n\n\n\n transaction: function () {var _transaction = _asyncToGenerator( /*#__PURE__*/_regenerator.default.mark(function _callee6(fromAddress, toAddress, value, privateKey, contract, success) {return _regenerator.default.wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:if (!\n contract) {_context6.next = 5;break;}_context6.next = 3;return (\n this.sendTokenTransaction(fromAddress, toAddress, value, privateKey, contract, success));case 3:_context6.next = 7;break;case 5:_context6.next = 7;return (\n\n this.sendTransaction(fromAddress, toAddress, value, privateKey, success));case 7:case \"end\":return _context6.stop();}}}, _callee6, this);}));function transaction(_x16, _x17, _x18, _x19, _x20, _x21) {return _transaction.apply(this, arguments);}return transaction;}() };var _default =\n\n\n\n\neth;exports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 28)[\"default\"], __webpack_require__(/*! ./node_modules/buffer/index.js */ 40).Buffer))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdXRpbHMvRXRoVXRpbC5qcyJdLCJuYW1lcyI6WyJXZWIzIiwicmVxdWlyZSIsIlR4Iiwid2ViMyIsImN1cnJlbnRQcm92aWRlciIsInByb3ZpZGVycyIsIkh0dHBQcm92aWRlciIsInN5c3RlbUNvbmZpZ3VyYXRpb24iLCJjb25zdGFudCIsImV0aE5vZGUiLCJldGgiLCJnZXRHYXMiLCJnZXRHYXNQcmljZSIsInRoZW4iLCJ2IiwiZ2FzUHJpY2UiLCJnZXRCYWxhbmNlIiwiYWRkcmVzcyIsImRhdGEiLCJ1bmkiLCJyZXF1ZXN0IiwidXJsIiwibWV0aG9kIiwiZGF0YVR5cGUiLCJyZXMiLCJiYWxhbmNlIiwiTnVtYmVyIiwidXRpbHMiLCJoZXhUb051bWJlclN0cmluZyIsInJlc3VsdCIsIk1hdGgiLCJwb3ciLCJhZGRQcmVaZXJvIiwibnVtIiwidCIsImxlbmd0aCIsInMiLCJpIiwiZ2V0VG9rZW5CYWxhbmNlIiwiY29udHJhY3QiLCJzdWNjZXNzIiwicmVwbGFjZSIsInJlc0RhdGEiLCJzZW5kVHJhbnNhY3Rpb24iLCJmcm9tQWRkcmVzcyIsInRvQWRkcmVzcyIsInZhbHVlIiwicHJpdmF0ZUtleSIsImdldFRyYW5zYWN0aW9uQ291bnQiLCJub25jZSIsImVzdGltYXRlR2FzIiwiZnJvbSIsImdhcyIsInR4RGF0YSIsInRvSGV4IiwiZ2FzTGltaXQiLCJ0byIsInRvV2VpIiwiY2hhaW5JZCIsImV0aENoYWluSWQiLCJCdWZmZXIiLCJ0b1N0cmluZyIsInR4Iiwic2lnbiIsInNlcmlhbGl6ZWRUeCIsInNlcmlhbGl6ZSIsInNlbmRTaWduZWRUcmFuc2FjdGlvbiIsImVyciIsImhhc2giLCJ1bmRlZmluZWQiLCJzZW5kVG9rZW5UcmFuc2FjdGlvbiIsIm15Q29udHJhY3QiLCJDb250cmFjdCIsImFiaSIsIm1ldGhvZHMiLCJkZWNpbWFscyIsImNhbGwiLCJ0cmFuc2ZlciIsImVuY29kZUFCSSIsInRyYW5zYWN0aW9uIl0sIm1hcHBpbmdz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LENBQUNPLEdBQUwsQ0FBU3dELHFCQUFULENBQStCLE9BQU9GLFlBQVksQ0FBQ0gsUUFBYixDQUFzQixLQUF0QixDQUF0QyxFQUFvRTtBQUNuRU0sbUJBRG1FO0FBRW5FQyxvQkFGbUUsRUFFN0Q7QUFDTixzQkFBSSxDQUFDRCxHQUFMLEVBQVU7QUFDVDNCLDJCQUFPLENBQUM0QixJQUFELEVBQU9DLFNBQVAsQ0FBUDtBQUNBLG1CQUZELE1BRU87QUFDTjdCLDJCQUFPLENBQUM2QixTQUFELEVBQVlGLEdBQVosQ0FBUDtBQUNBO0FBQ0QsaUJBUkQ7O0FBVUEsZUE3Q0YsRUFUcUIsMERBQUYsMEpBbkpYOzs7Ozs7QUErTVRZLGFBQVcsNEZBQUUsa0JBQWVuQyxXQUFmLEVBQTRCQyxTQUE1QixFQUF1Q0MsS0FBdkMsRUFBOENDLFVBQTlDLEVBQTBEUixRQUExRCxFQUFvRUMsT0FBcEU7QUFDUkQsc0JBRFE7QUFFTCxxQkFBSytCLG9CQUFMLENBQTBCMUIsV0FBMUIsRUFBdUNDLFNBQXZDLEVBQWtEQyxLQUFsRCxFQUF5REMsVUFBekQsRUFBcUVSLFFBQXJFLEVBQStFQyxPQUEvRSxDQUZLOztBQUlMLHFCQUFLRyxlQUFMLENBQXFCQyxXQUFyQixFQUFrQ0MsU0FBbEMsRUFBNkNDLEtBQTdDLEVBQW9EQyxVQUFwRCxFQUFnRVAsT0FBaEUsQ0FKSyxrRUFBRiwrSEEvTUYsRUFBVixDOzs7OztBQXdOZTlCLEciLCJmaWxlIjoiOTY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFiaSBmcm9tICd1dGlscy9FdGhBYmkuanMnXHJcbmltcG9ydCBzeXN0ZW1Db25maWd1cmF0aW9uIGZyb20gJ3V0aWxzL1N5c3RlbUNvbmZpZ3VyYXRpb24uanMnXHJcbmNvbnN0IFdlYjMgPSByZXF1aXJlKCd3ZWIzJyk7XHJcbmNvbnN0IFR4ID0gcmVxdWlyZSgnZXRoZXJldW1qcy10eCcpO1xyXG5sZXQgd2ViMztcclxuLy8gbGV0IHR4O1xyXG5pZiAodHlwZW9mIHdlYjMgIT09ICd1bmRlZmluZWQnKSB7XHJcblx0d2ViMyA9IG5ldyBXZWIzKHdlYjMuY3VycmVudFByb3ZpZGVyKTtcclxufSBlbHNlIHtcclxuXHR3ZWIzID0gbmV3IFdlYjMobmV3IFdlYjMucHJvdmlkZXJzLkh0dHBQcm92aWRlcihzeXN0ZW1Db25maWd1cmF0aW9uLmNvbnN0YW50LmV0aE5vZGUpKTtcclxufVxyXG5cclxuXHJcbmxldCBldGggPSB7XHJcblx0Ly/ojrflj5bkuLvluIFldGjkvZnpop1cclxuXHQvLyBnZXRCYWxhbmNlOiBhc3luYyBmdW5jdGlvbihhZGRyZXNzKSB7XHJcblx0Ly8gXHRjb25zb2xlLmxvZyhcIuafpeivouS9memine+8mlwiLGFkZHJlc3MpXHJcblx0Ly8gXHRsZXQgYmFsYW5jZSA9IDA7XHJcblx0Ly8gXHR0cnl7XHJcblx0Ly8gXHRcdHdlYjMgPSBuZXcgV2ViMyhuZXcgV2ViMy5wcm92aWRlcnMuSHR0cFByb3ZpZGVyKHN5c3RlbUNvbmZpZ3VyYXRpb24uY29uc3RhbnQuZXRoTm9kZSkpO1xyXG5cdC8vIFx0XHRiYWxhbmNlID0gYXdhaXQgd2ViMy5ldGguZ2V0QmFsYW5jZShhZGRyZXNzKTtcclxuXHQvLyBcdFx0Y29uc29sZS5sb2coXCLkvZnpop3vvJpcIixiYWxhbmNlLDk5OTk5OTk5OTk5OTkpXHJcblx0Ly8gXHR9Y2F0Y2goZSl7XHJcblx0Ly8gXHRcdGNvbnNvbGUubG9nKFwi5L2Z6aKd77yaXCIsZSw5OTk5OTk5OTk5OTk5KVxyXG5cdC8vIFx0fVxyXG5cdC8vIFx0cmV0dXJuIE51bWJlcihiYWxhbmNlKSAvIE1hdGgucG93KDEwLCAxOCk7XHJcblx0Ly8gfSxcclxuXHQvLyAvL+iOt+WPlmV0aOS7o+W4geW4geS9meminVxyXG5cdC8vIGdldFRva2VuQmFsYW5jZTogYXN5bmMgZnVuY3Rpb24oYWRkcmVzcywgY29udHJhY3QpIHtcclxuXHQvLyBcdGNvbnNvbGUubG9nKGFkZHJlc3MsIGNvbnRyYWN0KVxyXG5cdC8vIFx0dmFyIG15Q29udHJhY3QgPSBuZXcgd2ViMy5ldGguQ29udHJhY3QoYWJpLCBjb250cmFjdCwge1xyXG5cdC8vIFx0XHRmcm9tOiBhZGRyZXNzXHJcblx0Ly8gXHR9KTtcclxuXHQvLyBcdHZhciBkZWNpbWFscyA9IGF3YWl0IG15Q29udHJhY3QubWV0aG9kcy5kZWNpbWFscygpLmNhbGwoKTtcclxuXHQvLyBcdHZhciBiYWxhbmNlID0gYXdhaXQgbXlDb250cmFjdC5tZXRob2RzLmJhbGFuY2VPZihhZGRyZXNzKS5jYWxsKCk7XHJcblxyXG5cdC8vIFx0cmV0dXJuIE51bWJlcihiYWxhbmNlKSAvIE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcblx0Ly8gfSxcclxuXHRnZXRHYXM6IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG5cdFx0d2ViMyA9IG5ldyBXZWIzKG5ldyBXZWIzLnByb3ZpZGVycy5IdHRwUHJvdmlkZXIoc3lzdGVtQ29uZmlndXJhdGlvbi5jb25zdGFudC5ldGhOb2RlKSk7XHJcblx0XHRjb25zdCBnYXNQcmljZSA9IGF3YWl0IHdlYjMuZXRoLmdldEdhc1ByaWNlKCkudGhlbigodikgPT4ge1xyXG5cdFx0XHRyZXR1cm4gdlxyXG5cdFx0fSk7XHJcblx0XHRjb25zb2xlLmxvZyhnYXNQcmljZSwgJ2dhc1ByaWNlJylcclxuXHRcdHJldHVybiBnYXNQcmljZTtcclxuXHR9LFxyXG5cclxuXHQvL+iOt+WPluS4u+W4gWV0aOS9meminVxyXG5cdGdldEJhbGFuY2U6IGFzeW5jIGZ1bmN0aW9uKGFkZHJlc3MpIHtcclxuXHRcdHdlYjMgPSBuZXcgV2ViMygpO1xyXG5cdFx0Y29uc3QgZGF0YSA9IHtcclxuXHRcdFx0J2pzb25ycGMnOiAnMi4wJyxcclxuXHRcdFx0J2lkJzogJzEnLFxyXG5cdFx0XHQnbWV0aG9kJzogJ2V0aF9nZXRCYWxhbmNlJyxcclxuXHRcdFx0J3BhcmFtcyc6IFthZGRyZXNzLCBcImxhdGVzdFwiXVxyXG5cdFx0fTtcclxuXHRcdGxldCByZXMgPSBhd2FpdCB1bmkucmVxdWVzdCh7XHJcblx0XHRcdHVybDogc3lzdGVtQ29uZmlndXJhdGlvbi5jb25zdGFudC5ldGhOb2RlLCAvL+S7heS4uuekuuS+i++8jOW5tumdnuecn+WunuaOpeWPo+WcsOWdgOOAglxyXG5cdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJ1xyXG5cdFx0fSk7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgYmFsYW5jZSA9IE51bWJlcih3ZWIzLnV0aWxzLmhleFRvTnVtYmVyU3RyaW5nKHJlc1sxXS5kYXRhLnJlc3VsdCkpIC8gTWF0aC5wb3coMTAsIDE4KVxyXG5cdFx0XHRyZXR1cm4gYmFsYW5jZVxyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gMDtcclxuXHRcdH1cclxuXHR9LFxyXG5cdGFkZFByZVplcm86IGZ1bmN0aW9uKG51bSkge1xyXG5cdFx0bGV0IHQgPSAobnVtICsgJycpLmxlbmd0aCxcclxuXHRcdFx0cyA9ICcnO1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCA2NCAtIHQ7IGkrKykge1xyXG5cdFx0XHRzICs9ICcwJztcclxuXHRcdH1cclxuXHRcdHJldHVybiBzICsgbnVtO1xyXG5cdH0sXHJcblx0Ly8g6I635Y+WYm1zLGJtZHQsdXNkdC9lcmPkvZnpop1cclxuXHRnZXRUb2tlbkJhbGFuY2U6IGFzeW5jIGZ1bmN0aW9uKGFkZHJlc3MsIGNvbnRyYWN0LCBzdWNjZXNzKSB7XHJcblx0XHR3ZWIzID0gbmV3IFdlYjMoKTtcclxuXHRcdGNvbnN0IGRhdGEgPSB7XHJcblx0XHRcdCdqc29ucnBjJzogJzIuMCcsXHJcblx0XHRcdCdpZCc6ICcxJyxcclxuXHRcdFx0J21ldGhvZCc6ICdldGhfY2FsbCcsXHJcblx0XHRcdCdwYXJhbXMnOiBbe1xyXG5cdFx0XHRcdFwiZGF0YVwiOiAnMHg3MGEwODIzMScgKyB0aGlzLmFkZFByZVplcm8oYWRkcmVzcy5yZXBsYWNlKCcweCcsICcnKSksXHJcblx0XHRcdFx0XCJ0b1wiOiBjb250cmFjdCxcclxuXHRcdFx0fSwgXCJsYXRlc3RcIl1cclxuXHRcdH07XHJcblxyXG5cclxuXHRcdGxldCByZXMgPSBhd2FpdCB1bmkucmVxdWVzdCh7XHJcblx0XHRcdHVybDogc3lzdGVtQ29uZmlndXJhdGlvbi5jb25zdGFudC5ldGhOb2RlLCAvL+S7heS4uuekuuS+i++8jOW5tumdnuecn+WunuaOpeWPo+WcsOWdgOOAglxyXG5cdFx0XHRtZXRob2Q6ICdQT1NUJyxcclxuXHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0ZGF0YVR5cGU6ICdqc29uJ1xyXG5cdFx0fSk7XHJcblx0XHRsZXQgcmVzRGF0YSA9IHJlc1tyZXMubGVuZ3RoIC0gMV07XHJcblx0XHRjb25zb2xlLmxvZyhyZXNEYXRhLCA1NTU1NTU1NTU1KVxyXG5cdFx0bGV0IGJhbGFuY2UgPSBOdW1iZXIod2ViMy51dGlscy5oZXhUb051bWJlclN0cmluZyhyZXNEYXRhLmRhdGEucmVzdWx0KSkgLyBNYXRoLnBvdygxMCwgMTgpXHJcblx0XHRjb25zb2xlLmxvZyhiYWxhbmNlLCAnYmFsYW5jZScpXHJcblx0XHRyZXR1cm4gYmFsYW5jZTtcclxuXHR9LFxyXG5cclxuXHJcblxyXG5cdHNlbmRUcmFuc2FjdGlvbjogYXN5bmMgZnVuY3Rpb24oZnJvbUFkZHJlc3MsIHRvQWRkcmVzcywgdmFsdWUsIHByaXZhdGVLZXksIHN1Y2Nlc3MpIHtcclxuXHJcblx0XHR2YXIgbm9uY2UgPSBhd2FpdCB3ZWIzLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50KGZyb21BZGRyZXNzKTtcclxuXHRcdFxyXG5cdFx0dmFyIGdhcyA9IGF3YWl0IHdlYjMuZXRoLmVzdGltYXRlR2FzKHtcclxuXHRcdFx0ZnJvbTogZnJvbUFkZHJlc3NcclxuXHRcdH0pO1xyXG5cdFx0Y29uc29sZS5sb2coMTExMTExMTExMTEpXHJcblx0XHRjb25zb2xlLmxvZyhub25jZSlcclxuXHRcdGNvbnNvbGUubG9nKGZyb21BZGRyZXNzLCB0b0FkZHJlc3MsIHZhbHVlLCBwcml2YXRlS2V5LHdlYjMuZXRoLmdldEdhc1ByaWNlKCkpXHJcblx0XHR2YXIgdHhEYXRhID0ge1xyXG5cdFx0XHQvLyBub25jZeavj+asoSsr77yM5Lul5YWN6KaG55uW5LmL5YmNcGVuZGluZ+S4reeahOS6pOaYk1xyXG5cdFx0XHRub25jZTogd2ViMy51dGlscy50b0hleChub25jZSsrKSxcclxuXHRcdFx0Ly8g6K6+572uZ2FzTGltaXTlkoxnYXNQcmljZVxyXG5cdFx0XHRnYXNMaW1pdDogd2ViMy51dGlscy50b0hleCg2MDAwMDApLFxyXG5cdFx0XHRnYXNQcmljZTogd2ViMy51dGlscy50b0hleCh3ZWIzLmV0aC5nZXRHYXNQcmljZSgpKSxcclxuXHRcdFx0Ly8g6KaB6L2s6LSm55qE5ZOq5Liq6LSm5Y+3ICBcclxuXHRcdFx0dG86IHRvQWRkcmVzcyxcclxuXHRcdFx0Ly8g5LuO5ZOq5Liq6LSm5Y+36L2sXHJcblx0XHRcdGZyb206IGZyb21BZGRyZXNzLFxyXG5cdFx0XHQvLyAwLjAwMSDku6XlpKrluIFcclxuXHRcdFx0dmFsdWU6IHdlYjMudXRpbHMudG9IZXgod2ViMy51dGlscy50b1dlaSh2YWx1ZSwgJ2V0aGVyJykpLFxyXG5cdFx0XHRjaGFpbklkOnN5c3RlbUNvbmZpZ3VyYXRpb24uY29uc3RhbnQuZXRoQ2hhaW5JZFxyXG5cdFx0fVxyXG5cclxuXHJcblxyXG5cdFx0Ly8g5byV5YWl56eB6ZKl77yM5bm26L2s5o2i5Li6MTbov5vliLZcclxuXHJcblx0XHQvLyDnlKjnp4HpkqXnrb7nvbLkuqTmmJNcclxuXHRcdGNvbnNvbGUubG9nKHR4RGF0YSw1NTU1NSlcclxuXHRcdGNvbnNvbGUubG9nKEJ1ZmZlci5mcm9tKHByaXZhdGVLZXkpLnRvU3RyaW5nKCdoZXgnKSlcclxuXHRcdGNvbnN0IHR4ID0gbmV3IFR4KHR4RGF0YSk7XHJcblx0XHR0eC5zaWduKEJ1ZmZlci5mcm9tKHByaXZhdGVLZXksICdoZXgnKSk7XHJcblxyXG5cdFx0Ly8g5bqP5YiX5YyWXHJcblx0XHR2YXIgc2VyaWFsaXplZFR4ID0gdHguc2VyaWFsaXplKCkudG9TdHJpbmcoJ2hleCcpO1xyXG5cclxuXHRcdHdlYjMuZXRoLnNlbmRTaWduZWRUcmFuc2FjdGlvbignMHgnICsgc2VyaWFsaXplZFR4LnRvU3RyaW5nKCdoZXgnKSwgZnVuY3Rpb24oZXJyLFxyXG5cdFx0XHRoYXNoKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdoYXNoJyArIGhhc2gpXHJcblx0XHRcdGlmICghZXJyKSB7XHJcblx0XHRcdFx0c3VjY2VzcyhoYXNoLCB1bmRlZmluZWQpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGVyciwgNzg5Nzk4KVxyXG5cdFx0XHRcdHN1Y2Nlc3ModW5kZWZpbmVkLCBlcnIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdC8vIOiOt+WPluS6pOaYk+aVsOaNrlxyXG5cclxuXHJcblxyXG5cclxuXHR9LFxyXG5cdHNlbmRUb2tlblRyYW5zYWN0aW9uOiBhc3luYyBmdW5jdGlvbihmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCB2YWx1ZSwgcHJpdmF0ZUtleSwgY29udHJhY3QsIHN1Y2Nlc3MpIHtcclxuXHJcblx0XHR2YXIgbm9uY2UgPSBhd2FpdCB3ZWIzLmV0aC5nZXRUcmFuc2FjdGlvbkNvdW50KGZyb21BZGRyZXNzKTtcclxuXHRcdHZhciBnYXMgPSBhd2FpdCB3ZWIzLmV0aC5lc3RpbWF0ZUdhcyh7XHJcblx0XHRcdGZyb206IGZyb21BZGRyZXNzXHJcblx0XHR9KTtcclxuXHJcblx0XHRjb25zb2xlLmxvZygnbm9uY2UnICsgbm9uY2UpXHJcblx0XHR2YXIgbXlDb250cmFjdCA9IG5ldyB3ZWIzLmV0aC5Db250cmFjdChhYmksIGNvbnRyYWN0KVxyXG5cdFx0bXlDb250cmFjdC5tZXRob2RzLmRlY2ltYWxzKCkuY2FsbCgpXHJcblx0XHRcdC50aGVuKGZ1bmN0aW9uKGRlY2ltYWxzKSB7XHJcblxyXG5cdFx0XHRcdC8vIOiOt+WPluS6pOaYk+aVsOaNrlxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKE51bWJlcih2YWx1ZSkgKiBNYXRoLnBvdygxMCwgZGVjaW1hbHMpKVxyXG5cdFx0XHRcdHZhciB0eERhdGEgPSB7XHJcblx0XHRcdFx0XHRjaGFpbklkOiB3ZWIzLnV0aWxzLnRvSGV4KDEyOCksXHJcblx0XHRcdFx0XHQvLyBub25jZeavj+asoSsr77yM5Lul5YWN6KaG55uW5LmL5YmNcGVuZGluZ+S4reeahOS6pOaYk1xyXG5cdFx0XHRcdFx0bm9uY2U6IHdlYjMudXRpbHMudG9IZXgobm9uY2UrKyksXHJcblx0XHRcdFx0XHQvLyDorr7nva5nYXNMaW1pdOWSjGdhc1ByaWNlXHJcblx0XHRcdFx0XHRnYXM6IHdlYjMudXRpbHMudG9IZXgoZ2FzKSxcclxuXHRcdFx0XHRcdGdhc1ByaWNlOiB3ZWIzLnV0aWxzLnRvSGV4KHdlYjMuZXRoLmdldEdhc1ByaWNlKCkpLFxyXG5cdFx0XHRcdFx0Ly8g6KaB6L2s6LSm55qE5ZOq5Liq6LSm5Y+3ICBcclxuXHRcdFx0XHRcdHRvOiBjb250cmFjdCxcclxuXHRcdFx0XHRcdC8vIOS7juWTquS4qui0puWPt+i9rFxyXG5cdFx0XHRcdFx0ZnJvbTogZnJvbUFkZHJlc3MsXHJcblx0XHRcdFx0XHQvLyAwLjAwMSDku6XlpKrluIFcclxuXHRcdFx0XHRcdHZhbHVlOiBcIjB4MDBcIixcclxuXHRcdFx0XHRcdGRhdGE6IG15Q29udHJhY3QubWV0aG9kcy50cmFuc2ZlcihcclxuXHRcdFx0XHRcdFx0dG9BZGRyZXNzLCB3ZWIzLnV0aWxzLnRvV2VpKHZhbHVlLCAnZXRoZXInKSkuZW5jb2RlQUJJKClcclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHQvLyDlvJXlhaXnp4HpkqXvvIzlubbovazmjaLkuLoxNui/m+WItlxyXG5cclxuXHRcdFx0XHQvLyDnlKjnp4HpkqXnrb7nvbLkuqTmmJNcclxuXHJcblx0XHRcdFx0Y29uc3QgdHggPSBuZXcgVHgodHhEYXRhLCB7XHJcblx0XHRcdFx0XHQnY2hhaW4nOiAncm9wc3RlbidcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0eC5zaWduKEJ1ZmZlci5mcm9tKHByaXZhdGVLZXksICdoZXgnKSk7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coQnVmZmVyLmZyb20ocHJpdmF0ZUtleSkudG9TdHJpbmcoJ2hleCcpKVxyXG5cdFx0XHRcdC8vIOW6j+WIl+WMllxyXG5cdFx0XHRcdHZhciBzZXJpYWxpemVkVHggPSB0eC5zZXJpYWxpemUoKS50b1N0cmluZygnaGV4Jyk7XHJcblxyXG5cdFx0XHRcdHdlYjMuZXRoLnNlbmRTaWduZWRUcmFuc2FjdGlvbignMHgnICsgc2VyaWFsaXplZFR4LnRvU3RyaW5nKCdoZXgnKSwgZnVuY3Rpb24oXHJcblx0XHRcdFx0XHRlcnIsXHJcblx0XHRcdFx0XHRoYXNoKSB7XHJcblx0XHRcdFx0XHRpZiAoIWVycikge1xyXG5cdFx0XHRcdFx0XHRzdWNjZXNzKGhhc2gsIHVuZGVmaW5lZCk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRzdWNjZXNzKHVuZGVmaW5lZCwgZXJyKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdH0pO1xyXG5cclxuXHJcblxyXG5cclxuXHR9LFxyXG5cdHRyYW5zYWN0aW9uOiBhc3luYyBmdW5jdGlvbihmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCB2YWx1ZSwgcHJpdmF0ZUtleSwgY29udHJhY3QsIHN1Y2Nlc3MpIHtcclxuXHRcdGlmIChjb250cmFjdCkge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnNlbmRUb2tlblRyYW5zYWN0aW9uKGZyb21BZGRyZXNzLCB0b0FkZHJlc3MsIHZhbHVlLCBwcml2YXRlS2V5LCBjb250cmFjdCwgc3VjY2Vzcyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnNlbmRUcmFuc2FjdGlvbihmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCB2YWx1ZSwgcHJpdmF0ZUtleSwgc3VjY2VzcylcclxuXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGV0aDtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///965\n"); /***/ }), /* 966 */ diff --git a/utils/EthUtil.js b/utils/EthUtil.js index e637148..a742c24 100644 --- a/utils/EthUtil.js +++ b/utils/EthUtil.js @@ -13,12 +13,18 @@ if (typeof web3 !== 'undefined') { let eth = { //获取主币eth余额 - getBalance: async function(address) { - console.log("查询余额:",address) - let balance = await web3.eth.getBalance(address); - console.log("余额:",balance) - return Number(balance) / Math.pow(10, 18); - }, + // getBalance: async function(address) { + // console.log("查询余额:",address) + // let balance = 0; + // try{ + // web3 = new Web3(new Web3.providers.HttpProvider(systemConfiguration.constant.ethNode)); + // balance = await web3.eth.getBalance(address); + // console.log("余额:",balance,9999999999999) + // }catch(e){ + // console.log("余额:",e,9999999999999) + // } + // return Number(balance) / Math.pow(10, 18); + // }, // //获取eth代币币余额 // getTokenBalance: async function(address, contract) { // console.log(address, contract) @@ -31,6 +37,7 @@ let eth = { // return Number(balance) / Math.pow(10, decimals); // }, getGas: async function() { + web3 = new Web3(new Web3.providers.HttpProvider(systemConfiguration.constant.ethNode)); const gasPrice = await web3.eth.getGasPrice().then((v) => { return v }); @@ -38,28 +45,28 @@ let eth = { return gasPrice; }, - // //获取主币eth余额 - // getBalance: async function(address) { - // web3 = new Web3(); - // const data = { - // 'jsonrpc': '2.0', - // 'id': '1', - // 'method': 'eth_getBalance', - // 'params': [address, "latest"] - // }; - // let res = await uni.request({ - // url: systemConfiguration.constant.ethNode, //仅为示例,并非真实接口地址。 - // method: 'POST', - // data: data, - // dataType: 'json' - // }); - // try { - // let balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18) - // return balance - // } catch (e) { - // return 0; - // } - // }, + //获取主币eth余额 + getBalance: async function(address) { + web3 = new Web3(); + const data = { + 'jsonrpc': '2.0', + 'id': '1', + 'method': 'eth_getBalance', + 'params': [address, "latest"] + }; + let res = await uni.request({ + url: systemConfiguration.constant.ethNode, //仅为示例,并非真实接口地址。 + method: 'POST', + data: data, + dataType: 'json' + }); + try { + let balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18) + return balance + } catch (e) { + return 0; + } + }, addPreZero: function(num) { let t = (num + '').length, s = ''; @@ -100,25 +107,26 @@ let eth = { sendTransaction: async function(fromAddress, toAddress, value, privateKey, success) { var nonce = await web3.eth.getTransactionCount(fromAddress); + var gas = await web3.eth.estimateGas({ from: fromAddress }); console.log(11111111111) console.log(nonce) - console.log(fromAddress, toAddress, value, privateKey) + console.log(fromAddress, toAddress, value, privateKey,web3.eth.getGasPrice()) var txData = { - chainId: web3.utils.toHex(1899), // nonce每次++,以免覆盖之前pending中的交易 nonce: web3.utils.toHex(nonce++), // 设置gasLimit和gasPrice - gas: web3.utils.toHex(gas), + gasLimit: web3.utils.toHex(600000), gasPrice: web3.utils.toHex(web3.eth.getGasPrice()), // 要转账的哪个账号 to: toAddress, // 从哪个账号转 from: fromAddress, // 0.001 以太币 - value: web3.utils.toHex(web3.utils.toWei(value, 'ether')) + value: web3.utils.toHex(web3.utils.toWei(value, 'ether')), + chainId:systemConfiguration.constant.ethChainId } @@ -126,6 +134,7 @@ let eth = { // 引入私钥,并转换为16进制 // 用私钥签署交易 + console.log(txData,55555) console.log(Buffer.from(privateKey).toString('hex')) const tx = new Tx(txData); tx.sign(Buffer.from(privateKey, 'hex')); diff --git a/utils/SystemConfiguration.js b/utils/SystemConfiguration.js index 1b0485c..3c364f6 100644 --- a/utils/SystemConfiguration.js +++ b/utils/SystemConfiguration.js @@ -5,11 +5,13 @@ const constant = isTest ? { serverUrl: 'http://wallet-api.weirui0755.com', coinTickerWs:'ws://wallet-quartz.weirui0755.com/websocket', ethNode:'http://47.245.25.82:8545', + ethChainId:1 } : { //服务端连接 serverUrl: 'http://wallet-api.weirui0755.com', coinTickerWs:'ws://wallet-quartz.weirui0755.com/websocket', ethNode:'http://47.245.25.82:8545', + ethChainId:3 } export default { diff --git a/utils/TokenUtil.js b/utils/TokenUtil.js index f247f3d..7e3f224 100644 --- a/utils/TokenUtil.js +++ b/utils/TokenUtil.js @@ -92,7 +92,7 @@ let token = { let wallet = new ethers.Wallet(privateKey); let address = wallet.address; return { - 'privateKey': privateKey, + 'privateKey': wallet.privateKey, 'address': address }; }, diff --git a/utils/WalletUtil.js b/utils/WalletUtil.js index 11a11b1..ae2f684 100644 --- a/utils/WalletUtil.js +++ b/utils/WalletUtil.js @@ -235,6 +235,7 @@ let WalletUtil = { case 'ETH': console.log("进来ETH",wallet.balance ) wallet.balance = await EthUtil.getBalance(wallet.address); + wallet.balance=wallet.balance>0?wallet.balance.toFixed(6):wallet.balance console.log("进来ETH",wallet.balance ) for (let i = 1; i < wallet.coinList.length; i++) { wallet.coinList[i].balance = await EthUtil.getTokenBalance(wallet.address, wallet.coinList[i].contractAddress);