**Describe the bug** - multiple pages of cancelled open orders in the Activity Tab - Clicking any cancelled order tab is void of info: account, order placed, asset - Clicking the Block number (after clicking the cancelled order tab) opens a blue "go to block" field. - Clicking the Block number on Cryptofresh or other Explorers yields the same results. - Multiple assets are not populating either in Portfolio balance: BEOS, Cryptobridge, etc **To Reproduce** Steps to reproduce the behavior: 1. Go to the Activity tab in the Dashboard 2. Click on a cancelled order 3. Scroll down to your transaction if you can find it 4. Click on the Block number 5. See error of blue "go to block" 6. find the same cancelled order on a Explorer; click the block number 7. See error void of transaction information **Expected behavior** 1. A clear and concise description of the cancelled order, transaction, and block number. 2. More information regarding cancelled orders in the Activity Tab without having to click the cancelled order tab. Clicking the cancelled order tab can still redirect to the block number, but it would be nice to simply have that information displayed, same as other transactions. **Screenshots** ![oo3](https://user-images.githubusercontent.com/18186497/64869385-eadcd680-d606-11e9-8a7c-6c38e8b438f5.JPG) ![oo5](https://user-images.githubusercontent.com/18186497/64869391-ee705d80-d606-11e9-845a-daecee9f87a4.JPG) **Desktop (please complete the following information):** - OS: Windows 8.1 - Version bitshares 3.1.190618-rc1-rc1 **Additional context** `!function(e) { function t(t) { for (var a, n, s = t[0], l = t[1], c = t[2], u = 0, p = []; u < s.length; u++) n = s[u], i[n] && p.push(i[n][0]), i[n] = 0; for (a in l) Object.prototype.hasOwnProperty.call(l, a) && (e[a] = l[a]); for (d && d(t); p.length; ) p.shift()(); return o.push.apply(o, c || []), r() } function r() { for (var e, t = 0; t < o.length; t++) { for (var r = o[t], a = !0, n = 1; n < r.length; n++) { var l = r[n]; 0 !== i[l] && (a = !1) } a && (o.splice(t--, 1), e = s(s.s = r[0])) } return e } var a = {} , n = { 7: 0 } , i = { 7: 0 } , o = []; function s(t) { if (a[t]) return a[t].exports; var r = a[t] = { i: t, l: !1, exports: {} }; return e[t].call(r.exports, r, r.exports, s), r.l = !0, r.exports } s.e = function(e) { var t = []; n[e] ? t.push(n[e]) : 0 !== n[e] && { 0: 1, 1: 1, 10: 1, 15: 1, 20: 1 }[e] && t.push(n[e] = new Promise(function(t, r) { for (var a = ({ 0: "account~dashboard-accounts~deposit-withdraw~transfer", 1: "existing-account", 2: "vendors~account~exchange~explorer", 3: "vendors~deposit-withdraw~exchange~explorer", 4: "wallet", 5: "vendors~exchange~explorer", 6: "account~settings", 9: "exchange", 10: "explorer", 11: "account", 12: "transfer", 13: "deposit-withdraw", 14: "news", 15: "settings", 16: "help", 17: "asset", 18: "block", 19: "dashboard-accounts", 20: "dashboard", 21: "create-worker", 23: "vendors~deposit-withdraw", 24: "vendors~exchange", 25: "vendors~account", 26: "vendors~news", 27: "vendors~transfer" }[e] || e) + "." + { 0: "cbd0ee53fe8c94e9a452", 1: "c678f08f16fd6f6a8cf8", 2: "31d6cfe0d16ae931b73c", 3: "31d6cfe0d16ae931b73c", 4: "31d6cfe0d16ae931b73c", 5: "31d6cfe0d16ae931b73c", 6: "31d6cfe0d16ae931b73c", 8: "31d6cfe0d16ae931b73c", 9: "31d6cfe0d16ae931b73c", 10: "4b005b9ac73124a58b5c", 11: "31d6cfe0d16ae931b73c", 12: "31d6cfe0d16ae931b73c", 13: "31d6cfe0d16ae931b73c", 14: "31d6cfe0d16ae931b73c", 15: "78ea325ca95294a9f9fa", 16: "31d6cfe0d16ae931b73c", 17: "31d6cfe0d16ae931b73c", 18: "31d6cfe0d16ae931b73c", 19: "31d6cfe0d16ae931b73c", 20: "cbd0ee53fe8c94e9a452", 21: "31d6cfe0d16ae931b73c", 23: "31d6cfe0d16ae931b73c", 24: "31d6cfe0d16ae931b73c", 25: "31d6cfe0d16ae931b73c", 26: "31d6cfe0d16ae931b73c", 27: "31d6cfe0d16ae931b73c", 28: "31d6cfe0d16ae931b73c" }[e] + ".css", n = s.p + a, i = document.getElementsByTagName("link"), o = 0; o < i.length; o++) { var l = (u = i[o]).getAttribute("data-href") || u.getAttribute("href"); if ("stylesheet" === u.rel && (l === a || l === n)) return t() } var c = document.getElementsByTagName("style"); for (o = 0; o < c.length; o++) { var u; if ((l = (u = c[o]).getAttribute("data-href")) === a || l === n) return t() } var d = document.createElement("link"); d.rel = "stylesheet", d.type = "text/css", d.onload = t, d.onerror = function(t) { var a = t && t.target && t.target.src || n , i = new Error("Loading CSS chunk " + e + " failed.\n(" + a + ")"); i.request = a, r(i) } , d.href = n, document.getElementsByTagName("head")[0].appendChild(d) } ).then(function() { n[e] = 0 })); var r = i[e]; if (0 !== r) if (r) t.push(r[2]); else { var a = new Promise(function(t, a) { r = i[e] = [t, a] } ); t.push(r[2] = a); var o, l = document.getElementsByTagName("head")[0], c = document.createElement("script"); c.charset = "utf-8", c.timeout = 120, s.nc && c.setAttribute("nonce", s.nc), c.src = function(e) { return s.p + "" + ({ 0: "account~dashboard-accounts~deposit-withdraw~transfer", 1: "existing-account", 2: "vendors~account~exchange~explorer", 3: "vendors~deposit-withdraw~exchange~explorer", 4: "wallet", 5: "vendors~exchange~explorer", 6: "account~settings", 9: "exchange", 10: "explorer", 11: "account", 12: "transfer", 13: "deposit-withdraw", 14: "news", 15: "settings", 16: "help", 17: "asset", 18: "block", 19: "dashboard-accounts", 20: "dashboard", 21: "create-worker", 23: "vendors~deposit-withdraw", 24: "vendors~exchange", 25: "vendors~account", 26: "vendors~news", 27: "vendors~transfer" }[e] || e) + "." + { 0: "85d542548d2786364dac", 1: "24234c0650e8d4ad5a96", 2: "65dcb48d37232464f1a7", 3: "12b6607a14b78ff946fa", 4: "29482c59bf660f984f2b", 5: "60794ce98e4a1b613326", 6: "895ae3dc094eadd22202", 8: "86c339141aa45b1880c8", 9: "9151c1c019e3cd884de3", 10: "33db300ef0a5a3f098c6", 11: "4cd209696513ac219e04", 12: "dc23651ee248e61933ce", 13: "d14887a92b80ebe63100", 14: "cd86f7662e742f965959", 15: "440755a2f5c1484bfaa6", 16: "6c44bf1f6dc84c1a8ad7", 17: "acbdb1c9491dd6dc73ac", 18: "3f7eb801cfce0a736ce0", 19: "100e0b373e2f7034affe", 20: "8ec7e943256431c3f079", 21: "8b5b45444e82f5b4d40d", 23: "9a1439d6e23aef023d95", 24: "990c9577bbcaae77a016", 25: "529eece2d876efed8792", 26: "ec1ecb30e2826b048c3e", 27: "e5b7ce52d20f99176ef3", 28: "08251f07a98c14eba5fa" }[e] + ".js" }(e), o = function(t) { c.onerror = c.onload = null, clearTimeout(u); var r = i[e]; if (0 !== r) { if (r) { var a = t && ("load" === t.type ? "missing" : t.type) , n = t && t.target && t.target.src , o = new Error("Loading chunk " + e + " failed.\n(" + a + ": " + n + ")"); o.type = a, o.request = n, r[1](o) } i[e] = void 0 } } ; var u = setTimeout(function() { o({ type: "timeout", target: c }) }, 12e4); c.onerror = c.onload = o, l.appendChild(c) } return Promise.all(t) } , s.m = e, s.c = a, s.d = function(e, t, r) { s.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) } , s.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) } , s.t = function(e, t) { if (1 & t && (e = s(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var r = Object.create(null); if (s.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var a in e) s.d(r, a, function(t) { return e[t] } .bind(null, a)); return r } , s.n = function(e) { var t = e && e.__esModule ? function() { return e.default } : function() { return e } ; return s.d(t, "a", t), t } , s.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } , s.p = "", s.oe = function(e) { throw console.error(e), e } ; var l = window.webpackJsonp = window.webpackJsonp || [] , c = l.push.bind(l); l.push = t, l = l.slice(); for (var u = 0; u < l.length; u++) t(l[u]); var d = c; o.push([869, 22]), r() }([, , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(107) , n = r(5) , i = r(42) , o = r(1262) , s = /\b\d+\.\d+\.(\d+)\b/ , l = n.ChainTypes.object_type , c = { is_object_id: function(e) { return "string" == typeof e && (null !== s.exec(e) && 3 === e.split(".").length) }, is_object_type: function(e, t) { var r = l[t]; return r && e ? (r = "1." + r.toString(), e.substring(0, r.length) === r) : null }, get_asset_precision: function(e) { return e = e.toJS ? e.get("precision") : e, Math.pow(10, e) }, get_asset_amount: function(e, t) { return 0 === e ? e : e ? e / this.get_asset_precision(t.toJS ? t.get("precision") : t.precision) : null }, convert_satoshi_to_typed: function(e, t) { return 0 === e ? e : e ? e / this.get_asset_precision(t.toJS ? t.get("precision") : t.precision) : null }, convert_typed_to_satoshi: function(e, t) { return e * this.get_asset_precision(t.toJS ? t.get("precision") : t.precision) }, get_asset_price: function(e, t, r, a) { var n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; if (!t || !a) return 1; var i = this.get_asset_amount(e, t) / this.get_asset_amount(r, a); return n ? 1 / i : i }, format_volume: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 3; return e < 1e4 ? this.format_number(e, t) : e < 1e6 ? (Math.round(e / 10) / 100).toFixed(2) + "k" : (Math.round(e / 1e4) / 100).toFixed(2) + "M" }, format_number: function(e, t) { var r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; if (isNaN(e) || !isFinite(e) || void 0 === e || null === e) return ""; for (var a = ".", n = 0; n < t; n++) a += "0"; var i = o(e).format("0,0" + a); return i.indexOf(".") > 0 && !r ? i.replace(/0+$/, "").replace(/\.$/, "") : i }, format_asset: function(e, t, r) { var a = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3] , n = void 0 , i = 0; if (void 0 !== t) { "symbol"in t ? (n = t.symbol, i = t.precision) : (n = t.get("symbol"), i = t.get("precision")); var o = this.get_asset_precision(i); return this.format_number(e / o, i, a) + (r ? "" : " " + n) } }, price_text: function(e, t, r) { var a = r.toJS ? r.get("id") : r.id , n = r.toJS ? r.get("precision") : r.precision , i = t.toJS ? t.get("id") : t.id , o = t.toJS ? t.get("precision") : t.precision , s = { "1.3.113": 5, "1.3.121": 5 }; return "1.3.0" === a ? this.format_number(e, n) : "1.3.0" === i ? this.format_number(e, Math.min(8, n + 2)) : s[a] ? this.format_number(e, s[a]) : this.format_number(e, Math.min(8, Math.max(n + o, 2))) }, price_to_text: function(e, t, r) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null; if ("number" == typeof e && t && r) { e === 1 / 0 && (e = 0); var n = void 0 , i = (n = a ? this.format_number(e, a) : this.price_text(e, t, r)).split(".") , o = i[0] , s = i[1] , l = void 0 , c = 0; if (s) if (e > 1) { for (l = s.length - 1; l >= 0 && "0" === s[l]; l--) c++ } else { var u = s.length; for (l = 0; l < u; l++) { if ("0" !== s[l]) { l--; break } c++ } } var d = c ? s.substr(Math.max(0, l + 1), s.length) : null; return d && (d.length === s.length ? s = null : d.length && (s = s.substr(0, l + 1))), { text: n, int: o, dec: s, trailing: d, full: e } } }, check_market_stats: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { close: {} } , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : { close: {} }; return e.volumeBase !== t.volumeBase || !this.are_equal_shallow(e.close && e.close.base, t.close && t.close.base) || !this.are_equal_shallow(e.close && e.close.quote, t.close && t.close.quote) }, are_equal_shallow: function(e, t) { if (!e && t || e && !t) return !1; if (Array.isArray(e) && Array.isArray(e) && e.length > t.length) return !1; if ("string" == typeof e && "string" == typeof t) return e === t; if ("string" == typeof e && "string" != typeof t || "string" != typeof e && "string" == typeof t) return !1; if (e && e.toJS && t && t.toJS) return e === t; for (var r in e) if (e.hasOwnProperty(r) && !(r in t) || e[r] !== t[r]) return !1; for (var r in t) if (t.hasOwnProperty(r) && !(r in e) || e[r] !== t[r]) return !1; return !0 }, makeISODateString: function(e) { return "string" != typeof e || /Z$/.test(e) || (e += "Z"), e }, format_date: function(e) { return e = this.makeISODateString(e), new Date(e).toLocaleDateString() }, format_time: function(e) { return e = this.makeISODateString(e), new Date(e).toLocaleString() }, limitByPrecision: function(e, t) { var r = e.toString() , a = r.split("."); return 1 === a.length || 2 === a.length && a[1].length <= t ? r : a[0] + "." + a[1].substr(0, t) }, convertPrice: function(e, t, r, n) { if (!e || !t) return null; e.toJS && this.is_object_type(e.get("id"), "asset") && (r = e.get("id"), e = e.get("bitasset") ? a.a.extractRawFeedPrice(e).toJS() : e.getIn(["options", "core_exchange_rate"]).toJS()), t.toJS && this.is_object_type(t.get("id"), "asset") && (n = t.get("id"), t = t.get("bitasset") ? a.a.extractRawFeedPrice(t).toJS() : t.getIn(["options", "core_exchange_rate"]).toJS()); var i = e.quote.asset_id , o = t.quote.asset_id , s = void 0 , l = void 0; i === r ? (s = e.quote.amount, l = e.base.amount) : (s = e.base.amount, l = e.quote.amount); var c = void 0 , u = void 0; o === n ? (c = t.quote.amount, u = t.base.amount) : (c = t.base.amount, u = t.quote.amount); var d = void 0 , p = void 0; return u > l ? (d = s * (u / l), p = c) : (d = s, p = c * (l / u)), { quote: { amount: d, asset_id: n }, base: { amount: p, asset_id: r } } }, convertValue: function(e, t, r, a) { e = e.toJS ? e.toJS() : e; var n = this.get_asset_precision(r.get("precision")) , i = this.get_asset_precision(a.get("precision")) , o = this.get_asset_price(e.quote.amount, r, e.base.amount, a) , s = r.get("id") !== a.get("id") ? i * (t / n) / o : t; return isNaN(s) || !isFinite(s) ? null : s }, sortText: function(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; return e > t ? r ? 1 : -1 : e < t ? r ? -1 : 1 : 0 }, sortID: function(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , a = parseInt(e.split(".")[2], 10) , n = parseInt(t.split(".")[2], 10); return r ? n - a : a - n }, calc_block_time: function(e, t, r) { var a = null , n = null , i = null; return arguments.length > 3 && void 0 !== arguments[3] && arguments[3] || t && r ? (a = t ? t.get("parameters").get("block_interval") : 3, r ? (n = r.get("head_block_number"), i = new Date(r.get("time") + "Z")) : (n = 37025190, i = new Date("2019-04-30T07:55:24Z")), new Date(i - 1e3 * ((n - e) * a))) : null }, get_translation_parts: function(e) { return e.split(/{(.*?)}/g) }, get_percentage: function(e, t) { return Math.round(e / t * 100) + "%" }, replaceName: function(e) { if (!e) return { name: "", prefix: null, isBitAsset: !1 }; var t = e.get("symbol") , r = e.get("bitasset") && !e.getIn(["bitasset", "is_prediction_market"]) && "1.2.0" === e.get("issuer") , a = Object(i.d)() , n = void 0; for (n = 0; n < a.length; n++) if (-1 !== t.indexOf(a[n])) { t = t.replace(a[n], "") + ""; break } var o = r ? "bit" : a[n] , s = null; return Object(i.c)().find(function(e) { return -1 !== e.indexOf(o) }) || (s = o ? o.toLowerCase() : null), { name: t, prefix: s, isBitAsset: !!r } } }; t.a = c } , , , , function(e, t, r) { "use strict"; (function(e) { var a = r(587) , n = r(30) , i = r(99) , o = r(50) , s = r(97) , l = r(103) , c = r(26) , u = r(199) , d = r(164) , p = r(44) , h = r(162) , m = r(39) , f = r(5) , g = r(14) , _ = r(215) , b = r(25) , y = r(7) , v = r(4) , w = r.n(v) , k = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var x = null , S = null , A = void 0 , E = void 0; E = r(1576), A = r(586); var T = function(t) { function r() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, r); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this)); return e.state = { wallet: null, saving_keys: !1 }, e.confirm_transactions = !0, f.ChainStore.subscribe(e.checkNextGeneratedKey.bind(e)), e.generateNextKey_pubcache = [], e._export("checkNextGeneratedKey", "getWallet", "onLock", "isLocked", "decryptTcomb_PrivateKey", "getPrivateKey", "process_transaction", "transaction_update", "transaction_update_keys", "getBrainKey", "getBrainKeyPrivate", "onCreateWallet", "validatePassword", "changePassword", "generateNextKey", "incrementBrainKeySequence", "saveKeys", "saveKey", "setWalletModified", "setBackupDate", "setBrainkeyBackupDate", "_updateWallet", "loadDbData", "importKeysWorker", "resetBrainKeySequence", "decrementBrainKeySequence", "generateKeyFromPassword"), e.generatingKey = !1, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(r, i["a"]), k(r, [{ key: "checkNextGeneratedKey", value: function() { if (this.state.wallet && x && this.state.wallet.encrypted_brainkey && this.chainstore_account_ids_by_key !== f.ChainStore.account_ids_by_key) { this.chainstore_account_ids_by_key = f.ChainStore.account_ids_by_key; try { this.generateNextKey(!1) } catch (e) { console.error(e) } } } }, { key: "getWallet", value: function() { return this.state.wallet } }, { key: "onLock", value: function() { S = null, x = null } }, { key: "isLocked", value: function() { return !(x || S) } }, { key: "decryptTcomb_PrivateKey", value: function(t) { if (!t) return null; if (this.isLocked()) throw new Error("wallet locked"); if (S && S[t.pubkey]) return S[t.pubkey]; var r = x.decryptHex(t.encrypted_key); return f.PrivateKey.fromBuffer(new e(r,"hex")) } }, { key: "getPrivateKey", value: function(e) { if (S) return S[e]; if (!e) return null; e.Q && (e = e.toPublicKeyString()); var t = l.a.getTcomb_byPubkey(e); return t ? this.decryptTcomb_PrivateKey(t) : null } }, { key: "process_transaction", value: function(e, t, r) { var a = this , n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : []; return c.a.getState().settings.get("passwordLogin") || g.Apis.instance().chain_id === this.state.wallet.chain_id ? p.a.unlock().then(function() { return m.a.tryToSetCurrentAccount(), Promise.all([e.set_required_fees(), e.update_head_block()]).then(function() { var i = {}; if (t) { var o = l.a.getPubkeys_having_PrivateKey(t); if (!o.length) throw new Error("Missing signing key"); var s = !0 , c = !1 , u = void 0; try { for (var p, h = o[Symbol.iterator](); !(s = (p = h.next()).done); s = !0) { var m = p.value , f = a.getPrivateKey(m); e.add_signer(f, m), i[m] = !0 } } catch (e) { c = !0, u = e } finally { try { !s && h.return && h.return() } finally { if (c) throw u } } } return e.get_potential_signatures().then(function(t) { var r = t.pubkeys , o = t.addys , s = l.a.getPubkeys_having_PrivateKey(r.concat(n), o); return e.get_required_signatures(s).then(function(t) { var r = !0 , n = !1 , o = void 0; try { for (var s, l = t[Symbol.iterator](); !(r = (s = l.next()).done); r = !0) { var c = s.value; if (!i[c]) { var u = a.getPrivateKey(c); if (!u) throw new Error("Missing signing key for " + c); e.add_signer(u, c) } } } catch (e) { n = !0, o = e } finally { try { !r && l.return && l.return() } finally { if (n) throw o } } }) }).then(function() { return r ? a.confirm_transactions ? new Promise(function(t, r) { d.a.confirm(e, t, r) } ) : e.broadcast() : e.serialize() }) }) }).catch(function() {}) : Promise.reject("Mismatched chain_id; expecting " + this.state.wallet.chain_id + ", but got " + g.Apis.instance().chain_id) } }, { key: "transaction_update", value: function() { return o.a.instance().db().transaction(["wallet"], "readwrite") } }, { key: "transaction_update_keys", value: function() { return o.a.instance().db().transaction(["wallet", "private_keys"], "readwrite") } }, { key: "getBrainKey", value: function() { var e = this.state.wallet; if (!e.encrypted_brainkey) throw new Error("missing brainkey"); if (!x) throw new Error("wallet locked"); return x.decryptHexToText(e.encrypted_brainkey) } }, { key: "getBrainKeyPrivate", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.getBrainKey(); if (!e) throw new Error("missing brainkey"); return f.PrivateKey.fromSeed(f.key.normalize_brainKey(e)) } }, { key: "onCreateWallet", value: function(e, t) { var r = this , a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "default"; return function(i) { return new Promise(function(o, l) { if ("string" != typeof e) throw new Error("password string is required"); var c = void 0; if (t) { if ("string" != typeof t) throw new Error("Brainkey must be a string"); if ("" === t.trim()) throw new Error("Brainkey can not be an empty string"); if (t.length < 50) throw new Error("Brainkey must be at least 50 characters long"); c = new Date } var d = f.Aes.fromSeed(e) , h = f.key.get_random_key().toBuffer() , m = d.encryptToHex(h) , _ = f.Aes.fromSeed(h); t = t ? f.key.normalize_brainKey(t) : f.key.suggest_brain_key(i.en); var b = r.getBrainKeyPrivate(t).toPublicKey().toPublicKeyString() , y = _.encryptToHex(t) , v = f.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString() , w = { public_name: n, password_pubkey: v, encryption_key: m, encrypted_brainkey: y, brainkey_pubkey: b, brainkey_sequence: 0, brainkey_backup_date: c, created: new Date, last_modified: new Date, chain_id: g.Apis.instance().chain_id }; Object(u.b)(w); var k = r.transaction_update() , S = s.a.add(k.objectStore("wallet"), w) , A = s.a.on_transaction_end(k).then(function() { r.state.wallet = w, r.setState({ wallet: w }), a && (x = _, p.a.unlock().catch(function() {})) }); Promise.all([S, A]).then(function() { o() }).catch(function(e) { l(e) }) } ) }(A) } }, { key: "generateKeyFromPassword", value: function(e, t, r) { var a = e + t + r , n = f.PrivateKey.fromSeed(a); return { privKey: n, pubKey: n.toPublicKey().toString() } } }, { key: "validatePassword", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , r = this , a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null , n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ["active", "owner", "memo"]; if (a) { var i = function(e, t, r) { S || (S = {}), S[r] = t, o++, l.a.setPasswordLoginKey({ pubkey: r, import_account_names: [a], encrypted_key: null, id: o, brainkey_sequence: null }) } , o = 0 , s = void 0; try { s = f.PrivateKey.fromWif(e) } catch (e) {} var c = f.ChainStore.getAccount(a, !1) , u = void 0; if (s && (u = { privKey: s, pubKey: s.toPublicKey().toString() }), n.forEach(function(t) { s || (u = r.generateKeyFromPassword(a, t, e)); var n = !1; if (c) if ("memo" === t) c.getIn(["options", "memo_key"]) === u.pubKey && (i(0, u.privKey, u.pubKey), n = !0); else if (c.getIn([t, "key_auths"]).forEach(function(e) { if (e.get(0) === u.pubKey) return i(0, u.privKey, u.pubKey), n = !0, !1 }), !n) { var o = "active" === t ? "owner" : "active"; c.getIn([o, "key_auths"]).forEach(function(e) { if (e.get(0) === u.pubKey) return i(0, u.privKey, u.pubKey), n = !0, !1 }) } }), !S && this.state.wallet) { var d = this.validatePassword(e, !0) , p = d.success , h = d.cloudMode; if (p && !h) return y.Notification.success({ message: w.a.translate("wallet.local_switch") }), b.a.changeSetting({ setting: "passwordLogin", value: !1 }), { success: !0, cloudMode: !1 } } return { success: !!S, cloudMode: !0 } } var m = this.state.wallet; try { var g = f.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString(); if (m.password_pubkey !== g) return !1; if (t) { var _ = f.Aes.fromSeed(e).decryptHexToBuffer(m.encryption_key); x = f.Aes.fromSeed(_) } return { success: !0, cloudMode: !1 } } catch (e) { return console.error(e), { success: !1, cloudMode: !1 } } } }, { key: "changePassword", value: function(e, t) { var r = this , a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; return new Promise(function(n) { var i = r.state.wallet; if (!r.validatePassword(e).success) throw new Error("wrong password"); var o = f.Aes.fromSeed(e) , s = f.Aes.fromSeed(t); if (!i.encryption_key) throw new Error("This wallet does not support the change password feature."); var l = o.decryptHexToBuffer(i.encryption_key); i.encryption_key = s.encryptToHex(l); var c = f.PrivateKey.fromSeed(t); i.password_pubkey = c.toPublicKey().toPublicKeyString(), x = a ? f.Aes.fromSeed(l) : null, n(r.setWalletModified()) } ) } }, { key: "generateNextKey", value: function() { var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; if (!this.generatingKey) { this.generatingKey = !0; var t = this.getBrainKey() , r = this.state.wallet , a = Math.max(r.brainkey_sequence, 0) , n = null; this.brainkey_look_ahead = Math.min(10, (this.brainkey_look_ahead || 0) + 1); for (var i = a ? a + this.brainkey_look_ahead : Math.max(a + this.brainkey_look_ahead, 10), o = a; o < i; o++) { var s = f.key.get_brainPrivateKey(t, o) , l = this.generateNextKey_pubcache[o] ? this.generateNextKey_pubcache[o] : this.generateNextKey_pubcache[o] = s.toPublicKey().toPublicKeyString() , c = f.ChainStore.getAccountRefsOfKey(l); c && c.size && (n = o, console.log("WARN: Private key sequence " + n + " in-use. I am saving the private key and will go onto the next one."), this.saveKey(s, n)) } null !== n && (r.brainkey_sequence = n + 1, this._updateWallet()), a = Math.max(r.brainkey_sequence, 0); var u = f.key.get_brainPrivateKey(t, a); return e && u && (this.saveKey(u, a), this.incrementBrainKeySequence()), this.generatingKey = !1, { private_key: u, sequence: a } } } }, { key: "incrementBrainKeySequence", value: function(e) { return this.state.wallet.brainkey_sequence++, this._updateWallet(e) } }, { key: "decrementBrainKeySequence", value: function() { var e = this.state.wallet; return e.brainkey_sequence = Math.max(0, e.brainkey_sequence - 1), this._updateWallet() } }, { key: "resetBrainKeySequence", value: function() { var e = this.state.wallet; return e.brainkey_sequence = 0, console.log("reset sequence", e.brainkey_sequence), this._updateWallet() } }, { key: "importKeysWorker", value: function(e) { var t = this; return new Promise(function(r, a) { var n = [] , i = !0 , o = !1 , c = void 0; try { for (var u, d = e[Symbol.iterator](); !(i = (u = d.next()).done); i = !0) { var p = u.value; n.push(p.public_key_string) } } catch (e) { o = !0, c = e } finally { try { !i && d.return && d.return() } finally { if (o) throw c } } var h = _.a.addAll(n) , m = [] , b = !0 , y = !1 , v = void 0; try { for (var w, k = e[Symbol.iterator](); !(b = (w = k.next()).done); b = !0) { var S = w.value; m.push(S.private_plainhex) } } catch (e) { y = !0, v = e } finally { try { !b && k.return && k.return() } finally { if (y) throw v } } var A = new E; A.postMessage({ private_plainhex_array: m, key: x.key, iv: x.iv }); var T = t; t.setState({ saving_keys: !0 }), A.onmessage = function(t) { try { console.log("Preparing for private keys save"); for (var n = t.data, i = [], o = 0; o < e.length; o++) { var c = e[o] , u = c.import_account_names , d = c.public_key_string , p = c.private_plainhex , m = n[o]; if (d) { if (0 != d.indexOf(g.ChainConfig.address_prefix)) throw new Error("Public Key should start with " + g.ChainConfig.address_prefix) } else d = f.PrivateKey.fromHex(p).toPublicKey().toPublicKeyString(); var _ = { import_account_names: u, encrypted_key: m, pubkey: d }; i.push(_) } console.log("Saving private keys", (new Date).toString()); var b = T.transaction_update_keys() , y = s.a.on_transaction_end(b); try { var v = l.a.addPrivateKeys_noindex(i, b); e.length != v && T.setWalletModified(b), T.setState({ saving_keys: !1 }), r(Promise.all([y, h]).then(function() { console.log("Done saving keys", (new Date).toString()) })) } catch (e) { b.abort(), console.error(e), a(e) } } catch (e) { console.error("AesWorker.encrypt", e) } } } ) } }, { key: "saveKeys", value: function(e, t, r) { var a = [] , n = !0 , i = !1 , o = void 0; try { for (var s, l = e[Symbol.iterator](); !(n = (s = l.next()).done); n = !0) { var c = s.value; a.push(this.saveKey(c.private_key, c.sequence, null, r, t)) } } catch (e) { i = !0, o = e } finally { try { !n && l.return && l.return() } finally { if (i) throw o } } return Promise.all(a) } }, { key: "saveKey", value: function(e, t, r, a) { var n = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : this.transaction_update_keys() , i = x.encryptToHex(e.toBuffer()); this.state.wallet; if (a) { if (0 != a.indexOf(g.ChainConfig.address_prefix)) throw new Error("Public Key should start with " + g.ChainConfig.address_prefix) } else a = e.toPublicKey().toPublicKeyString(); var o = { import_account_names: r, encrypted_key: i, pubkey: a, brainkey_sequence: t }; return h.a.addKey(o, n).then(function(e) { return e }) } }, { key: "setWalletModified", value: function(e) { return this._updateWallet(e) } }, { key: "setBackupDate", value: function() { return this.state.wallet.backup_date = new Date, this._updateWallet() } }, { key: "setBrainkeyBackupDate", value: function() { return this.state.wallet.brainkey_backup_date = new Date, this._updateWallet() } }, { key: "_updateWallet", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.transaction_update() , r = this.state.wallet; if (r) { var n = Object(a.a)(r); n.last_modified = new Date, Object(u.b)(n); var i = t.objectStore("wallet") , o = s.a.on_request_end(i.put(n)) , l = s.a.on_transaction_end(t).then(function() { e.state.wallet = n, e.setState({ wallet: n }) }); return Promise.all([o, l]) } !function(e) { throw console.error("----- WalletDb reject error -----", e), new Error(e) }("missing wallet") } }, { key: "loadDbData", value: function() { var e = this; return s.a.cursor("wallet", function(t) { if (!t) return !1; var r = t.value; r.created = new Date(r.created), r.last_modified = new Date(r.last_modified), r.backup_date = r.backup_date ? new Date(r.backup_date) : null, r.brainkey_backup_date = r.brainkey_backup_date ? new Date(r.brainkey_backup_date) : null; try { Object(u.b)(r) } catch (e) { console.log("WalletDb format error", e) } return e.state.wallet = r, e.setState({ wallet: r }), !1 }) } }]), r }() , C = n.a.createStore(T, "WalletDb"); t.a = C } ).call(this, r(126).Buffer) } , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(4) , o = r.n(i) , s = r(1) , l = r.n(s) , c = {} , u = !0 , d = !1 , p = void 0; try { for (var h, m = ["photo-camera", "adjust", "alarm", "assets", "autolock", "barter", "borrow", "checkmark-circle", "chevron-down", "clippy", "clock", "cog", "cogs", "coming_soon", "connected", "connect", "cross-circle", "dashboard", "deposit", "disconnected", "direct_debit", "dollar-green", "dollar", "download", "excel", "eye", "eye-striked", "fi-star", "folder", "grouping", "hamburger-x", "hamburger", "htlc", "hourglass", "key", "list", "locked", "minus-circle", "news", "plus-circle", "power", "question-circle", "server", "settle", "share", "showcases", "shuffle", "text", "thumb-tack", "thumb-untack", "thumbs-up", "times", "trade", "transfer", "unlocked", "user", "voting", "warning", "withdraw", "filter", "info-circle-o", "zoom", "people", "fire", "question-in-circle", "attention", "checkmark", "paperclip", "wallet"][Symbol.iterator](); !(u = (h = m.next()).done); u = !0) { var f = h.value; c[f] = r(1578)("./" + f + ".svg") } } catch (e) { d = !0, p = e } finally { try { !u && m.return && m.return() } finally { if (d) throw p } } var g = c , _ = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); r(1648); var b = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), _(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.className !== this.props.className || e.name !== this.props.name || e.title !== this.props.title || e.size !== this.props.size } }, { key: "render", value: function() { var e = "icon " + this.props.name; if (this.props.size && (e += " icon-" + this.props.size), this.props.className && (e += " " + this.props.className), null != this.props.title) { var t = this.props.title; return "string" == typeof t && t.indexOf(".") > 0 && (t = o.a.translate(t)), n.a.createElement("span", { title: t, className: e, style: this.props.style || {}, dangerouslySetInnerHTML: { __html: g[this.props.name] }, onClick: this.props.onClick }) } return n.a.createElement("span", { className: e, style: this.props.style || {}, dangerouslySetInnerHTML: { __html: g[this.props.name] }, onClick: this.props.onClick }) } }]), t }(); b.propTypes = { name: l.a.string.isRequired, title: l.a.string, size: l.a.oneOf(["1x", "1_5x", "2x", "3x", "4x", "5x", "10x"]), inverse: l.a.bool, className: l.a.string }, b.defaultProps = { title: null }; t.a = b } , , function(e, t, r) { "use strict"; var a = r(99) , n = r(11) , i = r.n(n) , o = r(30) , s = r(39) , l = r(25) , c = r(64) , u = r(50) , d = r(103) , p = r(5) , h = r(14) , m = r(291) , f = r(215) , g = r(55) , _ = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var b = new g.a("__graphene__") , y = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); e.bindListeners({ onSetCurrentAccount: s.a.setCurrentAccount, onCreateAccount: s.a.createAccount, onAccountSearch: s.a.accountSearch, tryToSetCurrentAccount: s.a.tryToSetCurrentAccount, onSetPasswordAccount: s.a.setPasswordAccount, onChangeSetting: l.a.changeSetting, onSetWallet: c.a.setWallet, onAddStarAccount: s.a.addStarAccount, onRemoveStarAccount: s.a.removeStarAccount, onAddAccountContact: s.a.addAccountContact, onRemoveAccountContact: s.a.removeAccountContact, onToggleHideAccount: s.a.toggleHideAccount }), e._export("loadDbData", "tryToSetCurrentAccount", "onCreateAccount", "getMyAccounts", "isMyAccount", "getMyAuthorityForAccount", "isMyKey", "reset", "setWallet"); var r = b.get("settings_v4", {}); void 0 === r.passwordLogin && (r.passwordLogin = !0); var a = e._checkReferrer(); return e.state = { subbed: !1, myActiveAccounts: i.a.Set(), myHiddenAccounts: i.a.Set(), currentAccount: null, passwordAccount: null, starredAccounts: i.a.Map(), searchAccounts: i.a.Map(), accountContacts: i.a.Set(), linkedAccounts: i.a.Set(), referralAccount: a, passwordLogin: r.passwordLogin }, e.getMyAccounts = e.getMyAccounts.bind(e), e.chainStoreUpdate = e.chainStoreUpdate.bind(e), e._getStorageKey = e._getStorageKey.bind(e), e.setWallet = e.setWallet.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["a"]), _(t, [{ key: "_migrateUnfollowedAccounts", value: function(e) { try { var t = b.get("unfollowed_accounts", []) , r = b.get(this._getStorageKey("hiddenAccounts", e), []); t.length && !r.length && (b.set(this._getStorageKey("hiddenAccounts", e), t), b.remove("unfollowed_accounts"), this.setState({ myHiddenAccounts: i.a.Set(t) })) } catch (e) { console.error(e) } } }, { key: "_checkReferrer", value: function() { var e = ""; if (window) for (var t = function(e) { var t = window.location.search.match(new RegExp("(\\?|&)" + e + "(\\[\\])?=([^&]*)")); return !!t && decodeURIComponent(t[3]) }, r = ["r", "ref", "referrer", "referral"], a = 0; a < r.length && !(e = t(r[a])); a++) ; return e ? b.set("referralAccount", e) : b.remove("referralAccount"), e && console.log("referralAccount", e), e } }, { key: "reset", value: function() { this.state.subbed && p.ChainStore.unsubscribe(this.chainStoreUpdate), this.setState(this._getInitialState()) } }, { key: "onSetWallet", value: function(e) { var t = e.wallet_name; this.setWallet(t) } }, { key: "setWallet", value: function(e) { e !== this.state.wallet_name && (this.setState({ wallet_name: e, passwordAccount: b.get(this._getStorageKey("passwordAccount", { wallet_name: e }), null), starredAccounts: i.a.Map(b.get(this._getStorageKey("starredAccounts", { wallet_name: e }))), myActiveAccounts: i.a.Set(), accountContacts: i.a.Set(b.get(this._getStorageKey("accountContacts", { wallet_name: e }), [])), myHiddenAccounts: i.a.Set(b.get(this._getStorageKey("hiddenAccounts", { wallet_name: e }), [])) }), this.tryToSetCurrentAccount(), this._migrateUnfollowedAccounts({ wallet_name: e })) } }, { key: "_getInitialState", value: function() { this.account_refs = null, this.initial_account_refs_load = !0; var e = this.state.wallet_name || "" , t = i.a.Map(b.get(this._getStorageKey("starredAccounts", { wallet_name: e }))) , r = i.a.Set(b.get(this._getStorageKey("accountContacts", { wallet_name: e }), [])); return { neverShowBrowsingModeNotice: !1, update: !1, subbed: !1, accountsLoaded: !1, refsLoaded: !1, currentAccount: null, referralAccount: b.get("referralAccount", ""), passwordAccount: b.get(this._getStorageKey("passwordAccount", { wallet_name: e }), ""), myActiveAccounts: i.a.Set(), myHiddenAccounts: i.a.Set(b.get(this._getStorageKey("hiddenAccounts", { wallet_name: e }), [])), searchAccounts: i.a.Map(), searchTerm: "", wallet_name: e, starredAccounts: t, accountContacts: r } } }, { key: "onAddStarAccount", value: function(e) { if (this.state.starredAccounts.has(e)) return !1; var t = this.state.starredAccounts.set(e, { name: e }); this.setState({ starredAccounts: t }), b.set(this._getStorageKey("starredAccounts"), t.toJS()) } }, { key: "onRemoveStarAccount", value: function(e) { var t = this.state.starredAccounts.delete(e); this.setState({ starredAccounts: t }), b.set(this._getStorageKey("starredAccounts"), t.toJS()) } }, { key: "onSetPasswordAccount", value: function(e) { var t = this._getStorageKey("passwordAccount"); e ? b.set(t, e) : b.remove(t), this.state.passwordAccount !== e && this.setState({ passwordAccount: e }) } }, { key: "onToggleHideAccount", value: function(e) { var t = e.account , r = e.hide , a = this.state , n = a.myHiddenAccounts , i = a.myActiveAccounts; r && !n.has(t) ? (n = n.add(t), i = i.delete(t)) : n.has(t) && (n = n.delete(t), i = i.add(t)), this.setState({ myHiddenAccounts: n, myActiveAccounts: i }) } }, { key: "loadDbData", value: function() { var e = this , t = i.a.Set().asMutable() , r = h.Apis.instance().chain_id; return new Promise(function(a, n) { u.a.load_data("linked_accounts").then(function(o) { e.state.linkedAccounts = i.a.fromJS(o || []).toSet(); var s = e.state.passwordLogin && e.state.passwordAccount ? [Object(p.FetchChain)("getAccount", e.state.passwordAccount)] : e.state.passwordLogin ? [] : o.filter(function(e) { return !e.chainId || e.chainId === r }).map(function(e) { return Object(p.FetchChain)("getAccount", e.name) }); Promise.all(s).then(function(r) { r.forEach(function(r) { r && e.isMyAccount(r) && !e.state.myHiddenAccounts.has(r.get("name")) ? t.add(r.get("name")) : r && !e.isMyAccount(r) && e._unlinkAccount(r.get("name")) }); var n = t.asImmutable(); e.state.myActiveAccounts !== n && e.setState({ myActiveAccounts: t.asImmutable() }), !1 === e.state.accountsLoaded && e.setState({ accountsLoaded: !0 }), e.state.subbed || p.ChainStore.subscribe(e.chainStoreUpdate), e.state.subbed = !0, e.emitChange(), e.chainStoreUpdate(), a() }).catch(function(t) { e.state.subbed || p.ChainStore.subscribe(e.chainStoreUpdate), e.state.subbed = !0, e.emitChange(), e.chainStoreUpdate(), n(t) }) }).catch(function(e) { n(e) }) } ) } }, { key: "chainStoreUpdate", value: function() { this.addAccountRefs() } }, { key: "addAccountRefs", value: function() { var e = this , t = m.a.getAccountRefs(); if (this.initial_account_refs_load || this.account_refs !== t) { this.account_refs = t; var r = !1; if (!this.addAccountRefsInProgress) { this.addAccountRefsInProgress = !0; var a = this.state.myActiveAccounts.withMutations(function(a) { t.forEach(function(t) { var n = p.ChainStore.getAccount(t); if (void 0 !== n) { var i = n.get("name") , o = h.Apis.instance().chain_id , s = e.state.linkedAccounts.find(function(e) { return e.get("name") === i && e.get("chainId") === o }) , l = e.state.linkedAccounts.findKey(function(e) { return e.get("name") === i && !e.has("chainId") }); l && (e.state.linkedAccounts = e.state.linkedAccounts.delete(l), e._unlinkAccount(n.get("name")), s = !1), n && e.isMyAccount(n) && !s && e._linkAccount(n.get("name")), !n || a.includes(n.get("name")) || e.state.myHiddenAccounts.has(n.get("name")) || a.add(n.get("name")) } else r = !0 }) }); this.state.passwordLogin && (a = i.a.Set(this.state.passwordAccount ? [this.state.passwordAccount] : [])), a !== this.state.myActiveAccounts && this.setState({ myActiveAccounts: a }), this.initial_account_refs_load = r, this.tryToSetCurrentAccount(), this.addAccountRefsInProgress = !1 } } else !1 === this.state.refsLoaded && this.setState({ refsLoaded: !0 }) } }, { key: "getMyAccounts", value: function() { if (!this.state.subbed) return []; var e = [] , t = !0 , r = !1 , a = void 0; try { for (var n, i = this.state.myActiveAccounts[Symbol.iterator](); !(t = (n = i.next()).done); t = !0) { var o = n.value , s = p.ChainStore.getAccount(o); if (void 0 !== s) if (null != s) { var l = this.getMyAuthorityForAccount(s); void 0 !== l && ("full" !== l && "partial" !== l || e.push(o)) } else console.log("WARN: non-chain account name in myActiveAccounts", o) } } catch (e) { r = !0, a = e } finally { try { !t && i.return && i.return() } finally { if (r) throw a } } return this.state.passwordLogin ? this.state.passwordAccount ? [this.state.passwordAccount] : [] : e.sort() } }, { key: "getMyAuthorityForAccount", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1; if (e) { var r = e.get("owner") , a = e.get("active") , n = v(r); if ("full" == n) return "full"; var i = v(a); if ("full" == i) return "full"; var o = w(r); if ("full" == o) return "full"; var s = w(a); if ("full" == s) return "full"; var l = void 0 , c = void 0; if (t < 3) { if (void 0 === (l = this._accountThreshold(r, t))) return; if ("full" == l) return "full"; if (void 0 === (c = this._accountThreshold(a, t))) return; if ("full" == c) return "full" } return "partial" === n || "partial" === i || "partial" === o || "partial" === s || "partial" === l || "partial" === c ? "partial" : "none" } } }, { key: "_accountThreshold", value: function(e, t) { var r = this , a = e.get("account_auths"); if (!a.size) return "none"; var n = a.map(function(e) { var a = p.ChainStore.getAccount(e.get(0), !1); if (void 0 !== a) return r.getMyAuthorityForAccount(a, ++t) }).reduce(function(e, t) { return e.set(t, !0) }, i.a.Map()); return n.get("full") && 1 === n.size ? "full" : n.get("partial") && 1 === n.size ? "partial" : n.get("none") && 1 === n.size ? "none" : n.get("full") || n.get("partial") ? "partial" : void 0 } }, { key: "isMyAccount", value: function(e) { var t = this.getMyAuthorityForAccount(e); if (void 0 !== t) return "partial" === t || "full" === t } }, { key: "onAccountSearch", value: function(e) { var t = this; this.state.searchTerm = e.searchTerm, this.state.searchAccounts = this.state.searchAccounts.clear(), e.accounts.forEach(function(e) { t.state.searchAccounts = t.state.searchAccounts.withMutations(function(t) { t.set(e[1], e[0]) }) }) } }, { key: "_getStorageKey", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "currentAccount" , t = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.state).wallet_name , r = h.Apis.instance().chain_id; return e + (r ? "_" + r.substr(0, 8) : "") + (t ? "_" + t : "") } }, { key: "tryToSetCurrentAccount", value: function() { var e = this._getStorageKey("passwordAccount") , t = this._getStorageKey("currentAccount"); if (b.has(e)) { var r = b.get(e, null); return this.state.passwordAccount !== r && this.setState({ passwordAccount: r }), this.setCurrentAccount(r) } if (b.has(t)) return this.setCurrentAccount(b.get(t, null)); var a = this.state.starredAccounts; return a.size ? this.setCurrentAccount(a.first().name) : this.state.myActiveAccounts.size ? this.setCurrentAccount(this.state.myActiveAccounts.first()) : void 0 } }, { key: "setCurrentAccount", value: function(e) { this.state.passwordAccount && (e = this.state.passwordAccount); var t = this._getStorageKey(); e || (e = null), this.state.currentAccount !== e && this.setState({ currentAccount: e }), b.set(t, e || null) } }, { key: "onSetCurrentAccount", value: function(e) { this.setCurrentAccount(e) } }, { key: "onCreateAccount", value: function(e) { var t = this , r = e; if ("string" == typeof r && (r = { name: r }), r.toJS && (r = r.toJS()), "" == r.name || this.state.myActiveAccounts.get(r.name)) return Promise.resolve(); if (!p.ChainValidation.is_account_name(r.name)) throw new Error("Invalid account name: " + r.name); return u.a.add_to_store("linked_accounts", { name: r.name, chainId: h.Apis.instance().chain_id }).then(function() { console.log("[AccountStore.js] ----- Added account to store: -----\x3e", r.name), t.state.myActiveAccounts = t.state.myActiveAccounts.add(r.name), 1 === t.state.myActiveAccounts.size && t.setCurrentAccount(r.name) }) } }, { key: "onAddAccountContact", value: function(e) { if (!p.ChainValidation.is_account_name(e, !0)) throw new Error("Invalid account name: " + e); if (!this.state.accountContacts.has(e)) { var t = this.state.accountContacts.add(e); b.set(this._getStorageKey("accountContacts"), t.toArray()), this.setState({ accountContacts: t }) } } }, { key: "onRemoveAccountContact", value: function(e) { if (!p.ChainValidation.is_account_name(e, !0)) throw new Error("Invalid account name: " + e); if (this.state.accountContacts.has(e)) { var t = this.state.accountContacts.remove(e); b.set(this._getStorageKey("accountContacts"), t), this.setState({ accountContacts: t }) } } }, { key: "_linkAccount", value: function(e) { if (!p.ChainValidation.is_account_name(e, !0)) throw new Error("Invalid account name: " + e); var t = { name: e, chainId: h.Apis.instance().chain_id }; try { u.a.add_to_store("linked_accounts", t), this.state.linkedAccounts = this.state.linkedAccounts.add(i.a.fromJS(t)), this.state.myHiddenAccounts.has(e) || (this.state.myActiveAccounts = this.state.myActiveAccounts.add(e)), 1 === this.state.myActiveAccounts.size && this.setCurrentAccount(e) } catch (e) { console.error(e) } } }, { key: "_unlinkAccount", value: function(e) { if (!p.ChainValidation.is_account_name(e, !0)) throw new Error("Invalid account name: " + e); u.a.remove_from_store("linked_accounts", e) } }, { key: "isMyKey", value: function(e) { return d.a.hasKey(e) } }, { key: "onChangeSetting", value: function(e) { "passwordLogin" === e.setting && (!1 === e.value ? (this.onSetPasswordAccount(null), b.remove(this._getStorageKey()), this.loadDbData()) : this.setState({ myActiveAccounts: i.a.Set() }), this.setState({ passwordLogin: e.value })) } }]), t }(); function v(e) { var t = 0 , r = e.get("weight_threshold") , a = e.get("key_auths") , n = !0 , i = !1 , o = void 0; try { for (var s, l = a[Symbol.iterator](); !(n = (s = l.next()).done); n = !0) { var c = s.value; if (d.a.hasKey(c.get(0)) && (t += c.get(1)), t >= r) break } } catch (e) { i = !0, o = e } finally { try { !n && l.return && l.return() } finally { if (i) throw o } } return t >= r ? "full" : t > 0 ? "partial" : "none" } function w(e) { var t = 0 , r = e.get("weight_threshold") , a = e.get("address_auths"); if (!a.size) return "none"; var n = f.a.getState().addresses , i = !0 , o = !1 , s = void 0; try { for (var l, c = a[Symbol.iterator](); !(i = (l = c.next()).done); i = !0) { var u = l.value , p = u.get(0) , h = n.get(p); if (d.a.hasKey(h) && (t += u.get(1)), t >= r) break } } catch (e) { o = !0, s = e } finally { try { !i && c.return && c.return() } finally { if (o) throw s } } return t >= r ? "full" : t > 0 ? "partial" : "none" } t.a = o.a.createStore(y, "AccountStore") } , function(e, t, r) { "use strict"; var a = r(30) , n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var i = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return n(e, [{ key: "changeSetting", value: function(e) { return e } }, { key: "changeViewSetting", value: function(e) { return e } }, { key: "changeMarketDirection", value: function(e) { return e } }, { key: "addStarMarket", value: function(e, t) { return { quote: e, base: t } } }, { key: "removeStarMarket", value: function(e, t) { return { quote: e, base: t } } }, { key: "clearStarredMarkets", value: function() { return !0 } }, { key: "setUserMarket", value: function(e, t, r) { return { quote: e, base: t, value: r } } }, { key: "addWS", value: function(e) { return e } }, { key: "removeWS", value: function(e) { return e } }, { key: "hideWS", value: function(e) { return e } }, { key: "showWS", value: function(e) { return e } }, { key: "hideAsset", value: function(e, t) { return { id: e, status: t } } }, { key: "hideMarket", value: function(e, t) { return { id: e, status: t } } }, { key: "clearSettings", value: function() { return function(e) { return new Promise(function(t) { e(t) } ) } } }, { key: "updateLatencies", value: function(e) { return e } }, { key: "setExchangeLastExpiration", value: function(e) { return e } }, { key: "setExchangeTutorialShown", value: function(e) { return e } }, { key: "modifyPreferedBases", value: function(e) { return e } }, { key: "updateUnits", value: function() { return !0 } }, { key: "setPriceAlert", value: function(e) { return e } }, { key: "hideNewsHeadline", value: function(e) { return e } }]), e }(); t.a = a.a.createActions(i) } , function(e, t, r) { "use strict"; var a = r(30) , n = r(25) , i = r(195) , o = r(11) , s = r.n(o) , l = r(55) , c = r(14) , u = r(49) , d = r(42) , p = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , h = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var m = new l.a("__graphene__") , f = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.exportPublicMethods({ init: this.init.bind(this), getSetting: this.getSetting.bind(this), getLastBudgetObject: this.getLastBudgetObject.bind(this), setLastBudgetObject: this.setLastBudgetObject.bind(this), hasAnyPriceAlert: this.hasAnyPriceAlert.bind(this) }), this.bindListeners({ onSetPriceAlert: n.a.setPriceAlert, onSetExchangeLastExpiration: n.a.setExchangeLastExpiration, onSetExchangeTutorialShown: n.a.setExchangeTutorialShown, onChangeSetting: n.a.changeSetting, onChangeViewSetting: n.a.changeViewSetting, onChangeMarketDirection: n.a.changeMarketDirection, onAddStarMarket: n.a.addStarMarket, onRemoveStarMarket: n.a.removeStarMarket, onClearStarredMarkets: n.a.clearStarredMarkets, onAddWS: n.a.addWS, onRemoveWS: n.a.removeWS, onShowWS: n.a.showWS, onHideWS: n.a.hideWS, onHideAsset: n.a.hideAsset, onHideMarket: n.a.hideMarket, onClearSettings: n.a.clearSettings, onSwitchLocale: i.a.switchLocale, onSetUserMarket: n.a.setUserMarket, onUpdateLatencies: n.a.updateLatencies, onModifyPreferedBases: n.a.modifyPreferedBases, onUpdateUnits: n.a.updateUnits, onHideNewsHeadline: n.a.hideNewsHeadline }), this.initDone = !1, this.settings = s.a.Map(this._getSetting()), this.defaultSettings = s.a.Map(this._getDefaultSetting()), this.defaults = this._getChoices(), this.viewSettings = s.a.Map(m.get("viewSettings_v1")), this.marketDirections = s.a.Map(m.get("marketDirections")), this.hiddenAssets = s.a.List(m.get("hiddenAssets", [])), this.hiddenMarkets = s.a.List(m.get("hiddenMarkets", [])), this.apiLatencies = m.get("apiLatencies", {}), this.mainnet_faucet = m.get("mainnet_faucet", u.i.DEFAULT_FAUCET), this.testnet_faucet = m.get("testnet_faucet", u.i.TESTNET_FAUCET), this.exchange = Object(o.fromJS)(m.get("exchange", {})), this.priceAlert = Object(o.fromJS)(m.get("priceAlert", [])), this.hiddenNewsHeadline = s.a.List(m.get("hiddenNewsHeadline", [])) } return h(e, [{ key: "_getDefaultSetting", value: function() { return { locale: "en", apiServer: u.i.DEFAULT_WS_NODE, faucet_address: u.i.DEFAULT_FAUCET, unit: "BTS", showSettles: !1, showAssetPercent: !1, walletLockTimeout: 600, themes: Object(d.f)(), passwordLogin: "password" == Object(d.e)(), browser_notifications: { allow: !0, additional: { transferToMe: !0 } }, rememberMe: !0, viewOnlyMode: !0 } } }, { key: "_getDefaultChoices", value: function() { return { locale: ["en", "zh", "fr", "ko", "de", "es", "it", "tr", "ru", "ja"], apiServer: u.i.WS_NODE_LIST.slice(0), unit: Object(d.l)(), showSettles: [{ translate: "yes" }, { translate: "no" }], showAssetPercent: [{ translate: "yes" }, { translate: "no" }], themes: ["darkTheme", "lightTheme", "midnightTheme"], passwordLogin: [{ translate: "cloud_login" }, { translate: "local_wallet" }], browser_notifications: { allow: [!0, !1], additional: { transferToMe: [!0, !1] } }, rememberMe: [!0, !1], viewOnlyMode: [{ translate: "show" }, { translate: "hide" }] } } }, { key: "_isEmpty", value: function(e) { var t = !0; return Object.keys(e).forEach(function(r) { e.hasOwnProperty(r) && null !== e[r] && (t = !1) }), t } }, { key: "_replaceDefaults", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "saving" , t = this , r = arguments[1] , a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null; null == a && (a = this._getDefaultSetting()); var n = ["activeNode"] , i = {}; return "saving" === e ? Object.keys(r).forEach(function(e) { if (!n.includes(e) && p(r[e]) === p(a[e])) if ("object" == p(r[e])) { var o = t._replaceDefaults("saving", r[e], a[e]); t._isEmpty(o) || (i[e] = o) } else r[e] !== a[e] && (i[e] = r[e]) }) : (Object.keys(a).forEach(function(e) { var n = !1; void 0 !== r[e] ? p(r[e]) !== p(a[e]) ? n = !0 : "object" == p(r[e]) ? i[e] = t._replaceDefaults("loading", r[e], a[e]) : i[e] = r[e] : n = !0, n && ("object" == p(r[e]) ? i[e] = JSON.parse(JSON.stringify(a[e])) : i[e] = a[e]) }), Object.keys(r).forEach(function(e) { void 0 == i[e] && (i[e] = JSON.parse(JSON.stringify(r[e]))) })), i } }, { key: "_getSetting", value: function() { var e = new Date("2018-10-20T00:00:00Z"); if (!m.has("settings_v4") && new Date < e) { var t = m.get("settings_v3"); t && "olDarkTheme" === t.themes && (t.themes = "midnightTheme"), this._saveSettings(t, this._getDefaultSetting()) } return this._loadSettings() } }, { key: "_injectApiConfiguration", value: function(e, t) { e.hidden = t.hidden } }, { key: "_saveSettings", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; null == e && (e = this.settings.toJS()), m.set("settings_v4", this._replaceDefaults("saving", e)) } }, { key: "_loadSettings", value: function() { var e = m.get("settings_v4"); return this._replaceDefaults("loading", e) } }, { key: "_getChoices", value: function() { var e = this._getDefaultChoices() , t = this._ensureBackwardsCompatibilityChoices(m.get("defaults_v1", { apiServer: [] })) , r = Object.assign({}, t); return Object.keys(e).forEach(function(t) { "apiServer" != t && (r[t] = e[t]) }), r.apiServer = this._getApiServerChoices(e, t), r } }, { key: "_getApiServerChoices", value: function(e, t) { var r = this , a = e.apiServer.slice(0); return t.apiServer.forEach(function(e) { var t = a.find(function(t) { return t.url == e.url }); t ? r._injectApiConfiguration(t, e) : e.default || a.push(e) }), a = a.map(function(t) { var r = e.apiServer.find(function(e) { return e.url == t.url }); return t.default = !!r, t.hidden = !!t.hidden, t }) } }, { key: "_ensureBackwardsCompatibilityChoices", value: function(e) { if (e && e.locale) { var t = e.locale.findIndex(function(e) { return "cn" === e }); -1 !== t && (e.locale[t] = "zh") } if (e && e.themes) { var r = e.themes.findIndex(function(e) { return "olDarkTheme" === e }); -1 !== r && (e.themes[r] = "midnightTheme") } return e && e.apiServer && (e.apiServer = e.apiServer.map(function(e) { return "string" == typeof e && (e = { url: e, location: null }), e })), e } }, { key: "init", value: function() { var e = this; return new Promise(function(t) { e.initDone && t(), e.starredKey = e._getChainKey("markets"), e.marketsKey = e._getChainKey("userMarkets"), e.basesKey = e._getChainKey("preferredBases"); var r = { markets_4018d784: Object(d.k)(), markets_39f5e2ed: ["PEG.FAKEUSD", "BTWTY"] } , a = { markets_4018d784: Object(d.j)(), markets_39f5e2ed: ["TEST"] } , n = { markets_4018d784: "BTS", markets_39f5e2ed: "TEST" }[e.starredKey] || "BTS"; e.onUpdateUnits(), e.defaults.unit[0] = n; var i = a[e.starredKey] || a.markets_4018d784 , o = m.get(e.basesKey, []); e.preferredBases = s.a.List(o.length ? o : i), e.chainMarkets = r[e.starredKey] || []; var l = e._getDefaultMarkets(); e.defaultMarkets = s.a.Map(l), e.starredMarkets = s.a.Map(m.get(e.starredKey, [])), e.userMarkets = s.a.Map(m.get(e.marketsKey, {})), e.initDone = !0, t() } ) } }, { key: "_getDefaultMarkets", value: function() { var e = this , t = []; return this.preferredBases.forEach(function(r) { !function(e, t, r) { r.filter(function(e) { return e !== t }).forEach(function(r) { e.push([r + "_" + t, { quote: r, base: t }]) }) }(t, r, e.chainMarkets) }), t } }, { key: "getSetting", value: function(e) { return this.settings.get(e) } }, { key: "onChangeSetting", value: function(e) { var t = !0; switch (e.setting) { case "faucet_address": -1 === e.value.indexOf("testnet") ? (this.mainnet_faucet = e.value, m.set("mainnet_faucet", e.value)) : (this.testnet_faucet = e.value, m.set("testnet_faucet", e.value)); break; case "walletLockTimeout": m.set("lockTimeout", e.value); break; case "activeNode": t = !0 } this.settings.get(e.setting) !== e.value && (this.settings = this.settings.set(e.setting, e.value), t && this._saveSettings()) } }, { key: "onChangeViewSetting", value: function(e) { for (var t in e) this.viewSettings = this.viewSettings.set(t, e[t]); m.set("viewSettings_v1", this.viewSettings.toJS()) } }, { key: "onChangeMarketDirection", value: function(e) { for (var t in e) e[t] ? this.marketDirections = this.marketDirections.set(t, e[t]) : this.marketDirections = this.marketDirections.delete(t); m.set("marketDirections", this.marketDirections.toJS()) } }, { key: "onHideAsset", value: function(e) { e.id && (e.status ? this.hiddenAssets = this.hiddenAssets.push(e.id) : this.hiddenAssets = this.hiddenAssets.delete(this.hiddenAssets.indexOf(e.id))), m.set("hiddenAssets", this.hiddenAssets.toJS()) } }, { key: "onHideMarket", value: function(e) { e.id && (e.status ? this.hiddenMarkets = this.hiddenMarkets.push(e.id) : this.hiddenMarkets = this.hiddenMarkets.delete(this.hiddenMarkets.indexOf(e.id))), m.set("hiddenMarkets", this.hiddenMarkets.toJS()) } }, { key: "onAddStarMarket", value: function(e) { var t = e.quote + "_" + e.base; if (this.starredMarkets.has(t)) return !1; this.starredMarkets = this.starredMarkets.set(t, { quote: e.quote, base: e.base }), m.set(this.starredKey, this.starredMarkets.toJS()) } }, { key: "onSetUserMarket", value: function(e) { var t = e.quote + "_" + e.base; e.value ? this.userMarkets = this.userMarkets.set(t, { quote: e.quote, base: e.base }) : this.userMarkets = this.userMarkets.delete(t), m.set(this.marketsKey, this.userMarkets.toJS()) } }, { key: "onRemoveStarMarket", value: function(e) { var t = e.quote + "_" + e.base; this.starredMarkets = this.starredMarkets.delete(t), m.set(this.starredKey, this.starredMarkets.toJS()) } }, { key: "onClearStarredMarkets", value: function() { this.starredMarkets = s.a.Map({}), m.set(this.starredKey, this.starredMarkets.toJS()) } }, { key: "onAddWS", value: function(e) { "string" == typeof e && (e = { url: e, location: null }), this.defaults.apiServer.push(e), m.set("defaults_v1", this.defaults) } }, { key: "onRemoveWS", value: function(e) { this.defaults.apiServer.splice(e, 1), m.set("defaults_v1", this.defaults) } }, { key: "onHideWS", value: function(e) { this.defaults.apiServer.find(function(t) { return t.url === e }).hidden = !0, m.set("defaults_v1", this.defaults) } }, { key: "onShowWS", value: function(e) { this.defaults.apiServer.find(function(t) { return t.url === e }).hidden = !1, m.set("defaults_v1", this.defaults) } }, { key: "onClearSettings", value: function(e) { m.remove("settings_v3"), m.remove("settings_v4"), this.settings = this.defaultSettings, this._saveSettings(), e && e() } }, { key: "onSwitchLocale", value: function(e) { var t = e.locale; this.onChangeSetting({ setting: "locale", value: t }) } }, { key: "_getChainId", value: function() { return (c.Apis.instance().chain_id || "4018d784").substr(0, 8) } }, { key: "_getChainKey", value: function(e) { var t = this._getChainId(); return e + (t ? "_" + t.substr(0, 8) : "") } }, { key: "onUpdateLatencies", value: function(e) { m.set("apiLatencies", e), this.apiLatencies = e } }, { key: "getLastBudgetObject", value: function() { return m.get(this._getChainKey("lastBudgetObject"), "2.13.1") } }, { key: "setLastBudgetObject", value: function(e) { m.set(this._getChainKey("lastBudgetObject"), e) } }, { key: "setExchangeSettings", value: function(e, t) { this.exchange = this.exchange.set(e, t), m.set("exchange", this.exchange.toJS()) } }, { key: "getPriceAlert", value: function() { return this.priceAlert.toJS() } }, { key: "onSetPriceAlert", value: function(e) { this.priceAlert = Object(o.fromJS)(e), m.set("priceAlert", e) } }, { key: "hasAnyPriceAlert", value: function(e, t) { return this.priceAlert.some(function(r) { return r.get("quoteAssetSymbol") === e && r.get("baseAssetSymbol") === t }) } }, { key: "getExchangeSettings", value: function(e) { return this.exchange.get(e) } }, { key: "onSetExchangeLastExpiration", value: function(e) { this.setExchangeSettings("lastExpiration", Object(o.fromJS)(e)) } }, { key: "onSetExchangeTutorialShown", value: function(e) { this.setExchangeSettings("tutorialShown", e) } }, { key: "getExhchangeLastExpiration", value: function() { return this.getExchangeSettings("lastExpiration") } }, { key: "onModifyPreferedBases", value: function(e) { if ("newIndex"in e && "oldIndex"in e) { var t = this.preferredBases.get(e.newIndex); this.preferredBases = this.preferredBases.set(e.newIndex, this.preferredBases.get(e.oldIndex)), this.preferredBases = this.preferredBases.set(e.oldIndex, t) } else if ("remove"in e) { this.preferredBases = this.preferredBases.delete(e.remove); var r = this._getDefaultMarkets(); this.defaultMarkets = s.a.Map(r) } else if ("add"in e) { this.preferredBases = this.preferredBases.push(e.add); var a = this._getDefaultMarkets(); this.defaultMarkets = s.a.Map(a) } m.set(this.basesKey, this.preferredBases.toArray()) } }, { key: "onUpdateUnits", value: function() { this.defaults.unit = Object(d.l)(), -1 === this.defaults.unit.indexOf(this.settings.get("unit")) && (this.settings = this.settings.set("unit", this.defaults.unit[0])) } }, { key: "onHideNewsHeadline", value: function(e) { e && this.hiddenNewsHeadline.indexOf(e) && (this.hiddenNewsHeadline = this.hiddenNewsHeadline.push(e), m.set("hiddenNewsHeadline", this.hiddenNewsHeadline.toJS())) } }]), e }(); t.a = a.a.createStore(f, "SettingsStore") } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(4) , o = r.n(i) , s = r(15) , l = r(119) , c = r(177) , u = r(2238) , d = r(33) , p = r(127) , h = r(88) , m = r(2) , f = r.n(m) , g = r(22) , _ = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var b = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), _(t, [{ key: "shouldComponentUpdate", value: function(e) { return !s.a.are_equal_shallow(e.keys, this.props.keys) } }, { key: "linkToAccount", value: function(e) { var t = this.props.noLink; return e ? s.a.is_object_id(e) ? n.a.createElement(l.a, { account: e, noLink: t }) : t ? n.a.createElement("span", null, e) : n.a.createElement(u.a, { to: "/account/" + e + "/overview" }, e) : n.a.createElement("span", null, "-") } }, { key: "linkToAsset", value: function(e) { var t = this.props , r = t.noLink , a = t.noTip; return e ? s.a.is_object_id(e) ? n.a.createElement(c.a, { asset: e, noLink: r }) : r ? n.a.createElement(h.a, { name: e, dataPlace: "top", noTip: a }) : n.a.createElement(u.a, { to: "/asset/" + e }, n.a.createElement(h.a, { name: e, dataPlace: "top", noTip: a })) : n.a.createElement("span", null, "-") } }, { key: "render", value: function() { var e = this , t = this.props , r = t.string , a = t.params , i = t.keys , l = o.a.translate(r, a) , c = s.a.get_translation_parts(l); i.forEach(function(t) { if (c.indexOf(t.arg)) { var r = void 0; switch (t.type) { case "account": r = e.linkToAccount(t.value); break; case "amount": r = n.a.createElement("span", null, n.a.createElement(d.a, { amount: t.value.amount, asset: t.value.asset_id, decimalOffset: t.decimalOffset, hide_asset: !0 }), " ", e.linkToAsset(t.value.asset_id)); break; case "price": r = n.a.createElement(p.a, { base_asset: t.value.base.asset_id, base_amount: t.value.base.amount, quote_asset: t.value.quote.asset_id, quote_amount: t.value.quote.amount }); break; case "asset": r = e.linkToAsset(t.value); break; case "translate": r = n.a.createElement(f.a, { content: t.value }); break; case "link": r = n.a.createElement(u.a, { to: t.value, "data-intro": t.dataIntro ? t.dataIntro : null }, n.a.createElement(f.a, { content: t.translation })); break; case "icon": var a = name.replace("-", "_"); r = n.a.createElement(g.a, { className: t.className, name: t.value, title: a }); break; case "change": if (t.value && Object.keys(t.value).length > 0) { var i = t.value , s = i.votes , l = i.active , h = i.owner , m = i.memo , _ = s && n.a.createElement("div", null, n.a.createElement(f.a, { content: "proposal.votes" }), s.minus.length ? n.a.createElement("div", null, "- " + o.a.translate("proposal.remove") + " ", " ", s.minus.join(", ")) : null, s.plus.length ? n.a.createElement("div", null, "- " + o.a.translate("proposal.add") + " ", " ", s.plus.join(", ")) : null) , b = (l || h || m) && n.a.createElement("div", null, n.a.createElement(f.a, { content: "proposal.permission_changes" }), ", ", n.a.createElement(f.a, { style: { color: "red" }, content: "proposal.danger_operation" }), "!") , y = l && n.a.createElement(n.a.Fragment, null, n.a.createElement(f.a, { content: "proposal.changes_to_active" }), n.a.createElement("div", { style: { marginLeft: "0.5rem" } }, l.keys.plus.length > 0 || l.accounts.plus.length > 0 && n.a.createElement("div", null, "- " + o.a.translate("proposal.add") + " ", l.keys.plus.join(", "), " ", l.accounts.plus.map(function(t) { return n.a.createElement("span", { key: t }, e.linkToAccount(t)) })), l.keys.minus.length > 0 || l.accounts.minus.length > 0 && n.a.createElement("div", null, "- " + o.a.translate("proposal.remove") + " ", l.keys.minus.join(", "), " ", l.accounts.minus.map(function(t) { return n.a.createElement("span", { key: t }, e.linkToAccount(t)) })), l.weight_threshold && n.a.createElement("div", null, "- " + o.a.translate("proposal.set_threshold", { threshold: l.weight_threshold })))) , v = h && n.a.createElement(n.a.Fragment, null, n.a.createElement(f.a, { content: "proposal.changes_to_owner" }), n.a.createElement("div", { style: { marginLeft: "0.5rem" } }, h.keys.plus.length > 0 || h.accounts.plus.length > 0 && n.a.createElement("div", null, "- " + o.a.translate("proposal.add") + " ", h.keys.plus.join(", "), " ", h.accounts.plus.map(function(t) { return n.a.createElement("span", { key: t }, e.linkToAccount(t)) })), h.keys.minus.length > 0 || h.accounts.minus.length > 0 && n.a.createElement("div", null, "- " + o.a.translate("proposal.remove") + " ", h.keys.minus.join(", "), " ", h.accounts.minus.map(function(t) { return n.a.createElement("span", { key: t }, e.linkToAccount(t)) })), h.weight_threshold && n.a.createElement("div", null, "- " + o.a.translate("proposal.set_threshold", { threshold: h.weight_threshold })))) , w = m && (m.keys.plus.length > 0 || m.keys.minus.length > 0) && n.a.createElement("div", null, n.a.createElement(f.a, { content: "proposal.changes_to_memo" }), m.keys.plus.length > 0 && n.a.createElement("div", null, " ", "+ ", m.keys.plus.join(", ")), m.keys.minus.length > 0 && n.a.createElement("div", null, " ", "- ", m.keys.minus.join(", "))); r = n.a.createElement("div", { style: { marginLeft: "0.5rem", marginTop: "0.5rem" } }, b, _, y, v, w) } else r = ""; break; case "date": r = null === t.value ? "-" : o.a.localize(t.value, { type: "date", format: "full" }); break; default: r = t.value } c[c.indexOf(t.arg)] = r } }); var h = c.map(function(e, t) { return n.a.createElement("span", { key: t }, e) }); return n.a.createElement("span", null, h) } }]), t }(); t.a = b } , , , function(e, t, r) { "use strict"; var a = new (r(852).a); t.a = a } , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(108) , o = r(15) , s = r(107) , l = r(1) , c = r.n(l) , u = r(7) , d = r(568) , p = r(88) , h = r(441) , m = r(5) , f = r(140) , g = r(45) , _ = r(43) , b = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , v = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function w(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function k(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function x(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var S = function(e) { function t() { return w(this, t), k(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return x(t, n.a.Component), v(t, [{ key: "render", value: function() { var e = parseInt(this.props.do.get("current_supply"), 10) , t = o.a.format_number(this.props.amount / e * 100, 4); return n.a.createElement("span", { className: this.props.colorClass }, t, "%") } }]), t }(); S.propTypes = { do: _.a.ChainObject.isRequired }, S = Object(g.a)(S); var A = function(e) { function t(e) { w(this, t); var r = k(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isPopoverOpen: !1 }, r.togglePopover = r.togglePopover.bind(r), r.closePopover = r.closePopover.bind(r), r } return x(t, n.a.Component), v(t, [{ key: "togglePopover", value: function(e) { e.preventDefault(), this.setState({ isPopoverOpen: !this.state.isPopoverOpen }) } }, { key: "closePopover", value: function() { this.setState({ isPopoverOpen: !1 }) } }, { key: "render", value: function() { var e = this.props , t = e.amount , r = e.decimalOffset , a = e.color , l = e.asset , c = e.hide_asset , f = e.hide_amount , g = e.asPercentage , _ = e.pulsate; if (void 0 === t || null == t) return null; l && l.toJS && (l = l.toJS()); var v = a ? "facolor-" + a : "" , w = o.a.get_asset_precision(l.precision) , k = Math.max(0, l.precision - r); if (f && (v += " no-amount"), g) return n.a.createElement(S, { amount: t, colorClass: v, do: l.dynamic_asset_data_id }); var x = m.ChainStore.getObject(l.issuer, !1, !1) , A = x ? x.get("name") : "" , E = s.a.parseDescription(l.options.description) , T = !c && this.props.assetInfo && n.a.createElement("div", null, n.a.createElement(d.a, { path: "assets/Asset", section: "summary", symbol: l.symbol, description: E.short_name ? E.short_name : E.main, issuer: A }), this.props.assetInfo) , C = null; if (!f) { var z = this.props.exact_amount ? t : t / w; C = n.a.createElement(i.b, { value: z, minimumFractionDigits: Math.max(k, 0), maximumFractionDigits: Math.max(k, 0) }), _ && ("object" !== (void 0 === _ ? "undefined" : y(_)) && (_ = {}), C = n.a.createElement(h.a, b({ value: z }, _), C)) } return n.a.createElement("span", { className: v }, C, !c && (this.props.assetInfo ? n.a.createElement("span", null, " ", n.a.createElement(u.Popover, { trigger: "click", content: T, mouseEnterDelay: .5 }, n.a.createElement("span", { className: "currency click-for-help" }, n.a.createElement(p.a, { name: l.symbol })))) : n.a.createElement("span", { className: "currency" }, " ", n.a.createElement(p.a, { noTip: this.props.noTip, noPrefix: this.props.noPrefix, name: l.symbol, replace: this.props.replace })))) } }]), t }(); A.propTypes = { amount: c.a.any, exact_amount: c.a.bool, decimalOffset: c.a.number, color: c.a.string, hide_asset: c.a.bool, hide_amount: c.a.bool, asPercentage: c.a.bool, assetInfo: c.a.node }, A.defaultProps = { amount: null, decimalOffset: 0, hide_asset: !1, hide_amount: !1, asPercentage: !1, assetInfo: null, replace: !0 }, A = Object(f.a)(A), t.a = A } , , , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return h }), r.d(t, "i", function() { return m }), r.d(t, "d", function() { return f }), r.d(t, "h", function() { return g }), r.d(t, "g", function() { return _ }), r.d(t, "b", function() { return b }), r.d(t, "c", function() { return k }), r.d(t, "j", function() { return y }), r.d(t, "k", function() { return p }), r.d(t, "f", function() { return v }), r.d(t, "e", function() { return w }); var a = r(15) , n = r(161) , i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , o = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function s(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function l(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } function c(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function u(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 8; if ("number" != typeof t) throw new Error("Input must be a number"); var r = e.toString() , a = r.split("."); return 1 === a.length || 2 === a.length && a[1].length <= t ? parseFloat(r) : parseFloat(a[0] + "." + a[1].substr(0, t)) } function d(e) { if ("number" != typeof e) throw new Error("Input must be a number"); return Math.pow(10, e) } function p(e, t) { var r = t && t.size !== e.size; return r || (e.forEach(function(e, a) { var n = t.get(a); n ? e.market_base === n.market_base && (r = r || e.ne(n)) : r = !0 }), r) } var h = function() { function e() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , r = t.asset_id , a = void 0 === r ? "1.3.0" : r , n = t.amount , i = void 0 === n ? 0 : n , o = t.precision , s = void 0 === o ? 5 : o , l = t.real , u = void 0 === l ? null : l; c(this, e), this.satoshi = d(s), this.asset_id = a, this.setAmount({ sats: i, real: u }), this.precision = s } return o(e, [{ key: "hasAmount", value: function() { return this.amount > 0 } }, { key: "toSats", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1; return Math.round(e * this.satoshi) } }, { key: "setAmount", value: function(e) { var t = e.sats , r = e.real; if ("string" == typeof t && (t = parseInt(t, 10)), "string" == typeof r && (r = parseFloat(r)), "number" != typeof t && "number" != typeof r) throw new Error("Invalid arguments for setAmount"); if ("number" == typeof r) this.amount = this.toSats(r), this._clearCache(); else { if ("number" != typeof t) throw new Error("Invalid setAmount input"); this.amount = Math.floor(t), this._clearCache() } } }, { key: "_clearCache", value: function() { this._real_amount = null } }, { key: "getAmount", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).real; return void 0 !== e && e ? this._real_amount ? this._real_amount : this._real_amount = u(this.amount / this.toSats(), this.precision) : Math.floor(this.amount) } }, { key: "plus", value: function(e) { if (e.asset_id !== this.asset_id) throw new Error("Assets are not the same type"); this.amount += e.amount, this._clearCache() } }, { key: "minus", value: function(e) { if (e.asset_id !== this.asset_id) throw new Error("Assets are not the same type"); this.amount -= e.amount, this.amount = Math.max(0, this.amount), this._clearCache() } }, { key: "equals", value: function(e) { return this.asset_id === e.asset_id && this.getAmount() === e.getAmount() } }, { key: "ne", value: function(e) { return !this.equals(e) } }, { key: "gt", value: function(e) { return this.getAmount() > e.getAmount() } }, { key: "lt", value: function(e) { return this.getAmount() < e.getAmount() } }, { key: "times", value: function(t) { var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , a = void 0 , n = void 0; if (this.asset_id === t.base.asset_id) return a = this.amount * t.quote.amount / t.base.amount, n = Math.floor(a), r && a !== n && (n += 1), 0 === n && (n = 1), new e({ asset_id: t.quote.asset_id, amount: n, precision: t.quote.precision }); if (this.asset_id === t.quote.asset_id) return a = this.amount * t.base.amount / t.quote.amount, n = Math.floor(a), r && a !== n && (n += 1), 0 === n && (n = 1), new e({ asset_id: t.base.asset_id, amount: n, precision: t.base.precision }); throw new Error("Invalid asset types for price multiplication") } }, { key: "divide", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this; return new m({ base: t, quote: e }) } }, { key: "toObject", value: function() { return { asset_id: this.asset_id, amount: this.amount } } }, { key: "clone", value: function() { return new e({ amount: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.amount, asset_id: this.asset_id, precision: this.precision }) } }]), e }() , m = function() { function e() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , r = t.base , a = t.quote , n = t.real , i = void 0 !== n && n; if (c(this, e), !r || !a) throw new Error("Base and Quote assets must be defined"); if (r.asset_id === a.asset_id) throw new Error("Base and Quote assets must be different"); if (!(r.asset_id && "amount"in r && a.asset_id && "amount"in a)) throw new Error("Invalid Price inputs"); this.base = r.clone(), this.quote = a.clone(), this.setPriceFromReal(i) } return o(e, [{ key: "setPriceFromReal", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.base , r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.quote; if (e && "number" == typeof e) { e > 1e5 && (e = u(e, 5)); var a = new n.BigNumber(e.toString()).toFraction() , i = t.toSats() , o = r.toSats() , s = i / o , l = o / i; i >= o ? l = 1 : s = 1, t.setAmount({ sats: a[0] * s }), r.setAmount({ sats: a[1] * l }) } else 0 === e && (t.setAmount({ sats: 0 }), r.setAmount({ sats: 0 })) } }, { key: "getUnits", value: function() { return this.base.asset_id + "_" + this.quote.asset_id } }, { key: "isValid", value: function() { return 0 !== this.base.amount && 0 !== this.quote.amount && !isNaN(this.toReal()) && isFinite(this.toReal()) } }, { key: "toReal", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0] , t = e ? "_samebase_real" : "_not_samebase_real"; if (this[t]) return this[t]; var r = e ? this.quote.amount * this.base.toSats() / (this.base.amount * this.quote.toSats()) : this.base.amount * this.quote.toSats() / (this.quote.amount * this.base.toSats()); return this[t] = parseFloat(r.toFixed(8)) } }, { key: "invert", value: function() { return new e({ base: this.quote, quote: this.base }) } }, { key: "clone", value: function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; return new e({ base: this.base, quote: this.quote, real: t }) } }, { key: "equals", value: function(e) { return this.base.asset_id === e.base.asset_id && this.quote.asset_id === e.quote.asset_id && e.quote.amount * this.base.amount === this.quote.amount * e.base.amount } }, { key: "lt", value: function(e) { if (this.base.asset_id !== e.base.asset_id || this.quote.asset_id !== e.quote.asset_id) throw new Error("Cannot compare prices for different assets"); return e.quote.amount * this.base.amount < this.quote.amount * e.base.amount } }, { key: "lte", value: function(e) { return this.equals(e) || this.lt(e) } }, { key: "ne", value: function(e) { return !this.equals(e) } }, { key: "gt", value: function(e) { return !this.lte(e) } }, { key: "gte", value: function(e) { return !this.lt(e) } }, { key: "toObject", value: function() { return { base: this.base.toObject(), quote: this.quote.toObject() } } }, { key: "times", value: function(t) { var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "1.3.0" , a = t.base.asset_id === r && this.quote.asset_id === r || t.quote.asset_id === r && this.base.asset_id === r ? t.clone() : t.invert() , n = a.toReal() * this.toReal(); return new e({ base: a.base, quote: this.quote, real: n }) } }]), e }() , f = function(e) { function t(e) { var r = e.priceObject , a = e.assets , n = e.market_base , o = e.sqr , l = e.real , u = void 0 !== l && l; if (c(this, t), !(r && "object" === (void 0 === r ? "undefined" : i(r)) && n && a && o)) throw new Error("Invalid FeedPrice inputs"); r.toJS && (r = r.toJS()); var d = n === r.base.asset_id , p = new h({ asset_id: r.base.asset_id, amount: r.base.amount, precision: a[r.base.asset_id].precision }) , m = new h({ asset_id: r.quote.asset_id, amount: r.quote.amount, precision: a[r.quote.asset_id].precision }) , f = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, { base: d ? m : p, quote: d ? p : m, real: u })); return f.sqr = parseInt(o, 10) / 1e3, f.inverted = d, f } return l(t, m), o(t, [{ key: "getSqueezePrice", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).real , t = void 0 !== e && e; return this._squeeze_price || (this._squeeze_price = this.clone(), this.inverted ? (this._squeeze_price.base.amount = Math.floor(this._squeeze_price.base.amount * this.sqr * 1e3), this._squeeze_price.quote.amount *= 1e3) : this.inverted || (this._squeeze_price.quote.amount = Math.floor(this._squeeze_price.quote.amount * this.sqr * 1e3), this._squeeze_price.base.amount *= 1e3)), t ? this._squeeze_price.toReal() : this._squeeze_price } }]), t }() , g = function() { function e() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , r = t.for_sale , a = t.to_receive , n = t.seller , i = void 0 === n ? "" : n , o = t.expiration , s = void 0 === o ? new Date : o , l = t.fill_or_kill , u = void 0 !== l && l , d = t.fee , p = void 0 === d ? { amount: 0, asset_id: "1.3.0" } : d; if (c(this, e), !r || !a) throw new Error("Missing order amounts"); if (r.asset_id === a.asset_id) throw new Error("Order assets cannot be the same"); this.amount_for_sale = r, this.min_to_receive = a, this.setExpiration(s), this.fill_or_kill = u, this.seller = i, this.fee = p } return o(e, [{ key: "setExpiration", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; e || (e = new Date).setYear(e.getFullYear() + 5), this.expiration = e } }, { key: "getExpiration", value: function() { return this.expiration } }, { key: "toObject", value: function() { return { seller: this.seller, min_to_receive: this.min_to_receive.toObject(), amount_to_sell: this.amount_for_sale.toObject(), expiration: this.expiration, fill_or_kill: this.fill_or_kill, fee: this.fee } } }]), e }() , _ = function() { function e(t, r, n) { if (c(this, e), !n) throw new Error("LimitOrder requires a market_base id"); this.order = t, this.assets = r, this.market_base = n, this.id = t.id, this.sellers = [t.seller], this.expiration = t.expiration && new Date(a.a.makeISODateString(t.expiration)), this.seller = t.seller, this.for_sale = parseInt(t.for_sale, 10); var i = new h({ asset_id: t.sell_price.base.asset_id, amount: parseInt(t.sell_price.base.amount, 10), precision: r[t.sell_price.base.asset_id].precision }) , o = new h({ asset_id: t.sell_price.quote.asset_id, amount: parseInt(t.sell_price.quote.amount, 10), precision: r[t.sell_price.quote.asset_id].precision }); this.sell_price = new m({ base: i, quote: o }), this.fee = t.deferred_fee } return o(e, [{ key: "getPrice", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.sell_price; return this._real_price ? this._real_price : this._real_price = e.toReal(e.base.asset_id === this.market_base) } }, { key: "isBid", value: function() { return !(this.sell_price.base.asset_id === this.market_base) } }, { key: "isCall", value: function() { return !1 } }, { key: "sellPrice", value: function() { return this.sell_price } }, { key: "amountForSale", value: function() { return this._for_sale ? this._for_sale : this._for_sale = new h({ asset_id: this.sell_price.base.asset_id, amount: this.for_sale, precision: this.assets[this.sell_price.base.asset_id].precision }) } }, { key: "amountToReceive", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.isBid(); return this._to_receive ? this._to_receive : (this._to_receive = this.amountForSale().times(this.sell_price, e), this._to_receive) } }, { key: "sum", value: function(e) { var t = this.clone(); return -1 === t.sellers.indexOf(e.seller) && t.sellers.push(e.seller), t.for_sale += e.for_sale, t } }, { key: "isMine", value: function(e) { return -1 !== this.sellers.indexOf(e) } }, { key: "clone", value: function() { return new e(this.order,this.assets,this.market_base) } }, { key: "ne", value: function(e) { return this.sell_price.ne(e.sell_price) || this.for_sale !== e.for_sale } }, { key: "equals", value: function(e) { return !this.ne(e) } }, { key: "setTotalToReceive", value: function(e) { this.total_to_receive = e } }, { key: "setTotalForSale", value: function(e) { this.total_for_sale = e, this._total_to_receive = null } }, { key: "totalToReceive", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return void 0 !== e && e || !this._total_to_receive ? (this._total_to_receive = (this.total_to_receive || this.amountToReceive()).clone(), this._total_to_receive) : this._total_to_receive } }, { key: "totalForSale", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return !(void 0 !== e && e) && this._total_for_sale ? this._total_for_sale : this._total_for_sale = (this.total_for_sale || this.amountForSale()).clone() } }]), e }() , b = function() { function e(t, r, a, n, i) { var o = arguments.length > 5 && void 0 !== arguments[5] && arguments[5]; if (c(this, e), !(t && r && a && n && i)) throw new Error("CallOrder missing inputs"); this.mcr = i, this.isSum = !1, this.order = t, this.assets = r, this.market_base = a, this.is_prediction_market = o, this.inverted = a === t.call_price.base.asset_id, this.id = t.id, this.borrower = t.borrower, this.borrowers = [t.borrower], this.target_collateral_ratio = t.target_collateral_ratio ? t.target_collateral_ratio / 1e3 : null, this.collateral = parseInt(t.collateral, 10), this.collateral_id = t.call_price.base.asset_id, this.debt = parseInt(t.debt, 10), this.debt_id = t.call_price.quote.asset_id, this.precisionsRatio = d(r[this.debt_id].precision) / d(r[this.collateral_id].precision); var s = new h({ asset_id: this.collateral_id, amount: t.collateral, precision: r[this.collateral_id].precision }) , l = new h({ asset_id: this.debt_id, amount: t.debt * (i / 1e3), precision: r[this.debt_id].precision }); if (this.call_price = new m({ base: s, quote: l }), this.inverted && (this.call_price = this.call_price.invert()), n.base.asset_id !== this.call_price.base.asset_id) throw new Error("Feed price assets and call price assets must be the same"); this.feed_price = n, this.assignMaxDebtAndCollateral(), this.expiration = { toLocaleString: function() { return null } } } return o(e, [{ key: "clone", value: function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.feed_price; return new e(this.order,this.assets,this.market_base,t,this.mcr) } }, { key: "setFeed", value: function(e) { this.feed_price = e, this._clearCache() } }, { key: "getPrice", value: function() { var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0] , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.call_price; return e ? this.getSqueezePrice() : this._real_price ? this._real_price : this._real_price = t.toReal(t.base.asset_id === this.market_base) } }, { key: "getFeedPrice", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.feed_price; return this._feed_price ? this._feed_price : this._feed_price = e.toReal(e.base.asset_id === this.market_base) } }, { key: "getSqueezePrice", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.feed_price; return this._squeeze_price ? this._squeeze_price : this._squeeze_price = e.getSqueezePrice().toReal() } }, { key: "isMarginCalled", value: function() { return !this.is_prediction_market && (this.isBid() ? this.call_price.lt(this.feed_price) : this.call_price.gt(this.feed_price)) } }, { key: "isBid", value: function() { return !this.inverted } }, { key: "isCall", value: function() { return !0 } }, { key: "sellPrice", value: function() { return !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0] ? this.isBid() ? this.feed_price.getSqueezePrice() : this.feed_price.getSqueezePrice().invert() : this.call_price } }, { key: "getCollateral", value: function() { return this._collateral ? this._collateral : this._collateral = new h({ amount: this.collateral, asset_id: this.collateral_id, precision: this.assets[this.collateral_id].precision }) } }, { key: "_getMaxCollateralToSell", value: function() { if (this.target_collateral_ratio && this.getRatio() < this.target_collateral_ratio) { var e = this._getFeedPrice() , t = this._getMatchPrice(); return (this.debt * this.target_collateral_ratio - this.collateral * e) / (this.target_collateral_ratio * t - e) } return this.collateral } }, { key: "_getMaxDebtToCover", value: function() { return this._getMaxCollateralToSell() * this._getMatchPrice() } }, { key: "_getFeedPrice", value: function() { return (this.inverted ? this.getFeedPrice() : this.feed_price.invert().toReal()) * this.precisionsRatio } }, { key: "_getMatchPrice", value: function() { return (this.inverted ? this.getSqueezePrice() : parseFloat((1 / this.getSqueezePrice()).toFixed(8))) * this.precisionsRatio } }, { key: "assignMaxDebtAndCollateral", value: function() { if (this.target_collateral_ratio) { var e = this._getMatchPrice() , t = this._getMaxDebtToCover() , r = void 0; Math.round(t) !== t && (r = Math.floor(t) + 1); var a = Math.ceil(r / e); this.max_debt_to_cover = new h({ amount: r, asset_id: this.debt_id, precision: this.assets[this.debt_id].precision }), this.max_collateral_to_sell = new h({ amount: a, asset_id: this.collateral_id, precision: this.assets[this.collateral_id].precision }) } } }, { key: "amountForSale", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.isBid(); return this._for_sale ? this._for_sale : this._useTargetCR() || this.isSum ? this._for_sale = this.max_collateral_to_sell : this._for_sale = this.amountToReceive().times(this.feed_price.getSqueezePrice(), e) } }, { key: "_useTargetCR", value: function() { return !!this.target_collateral_ratio && this.getRatio() < this.target_collateral_ratio } }, { key: "amountToReceive", value: function() { return this._to_receive ? this._to_receive : this._useTargetCR() || this.isSum ? this._to_receive = this.max_debt_to_cover : this._to_receive = new h({ asset_id: this.debt_id, amount: this.debt, precision: this.assets[this.debt_id].precision }) } }, { key: "sum", value: function(e) { var t = this.clone(); -1 === t.borrowers.indexOf(e.borrower) && t.borrowers.push(e.borrower); var r = e._useTargetCR() , a = t._useTargetCR() , n = e.iSum ? e.debt : r ? e.max_debt_to_cover.getAmount() : e.amountToReceive().getAmount() , i = t.iSum ? t.debt : a ? t.max_debt_to_cover.getAmount() : t.amountToReceive().getAmount() , o = e.iSum ? e.collateral : r ? e.max_collateral_to_sell.getAmount() : e.amountForSale().getAmount() , s = t.iSum ? t.collateral : a ? t.max_collateral_to_sell.getAmount() : t.amountForSale().getAmount(); return t.debt = i + n, t.collateral = s + o, t._clearCache(), t.max_debt_to_cover = new h({ amount: t.debt, asset_id: this.debt_id, precision: this.assets[this.debt_id].precision }), t.max_collateral_to_sell = new h({ amount: t.collateral, asset_id: this.collateral_id, precision: this.assets[this.collateral_id].precision }), t.isSum = !0, t } }, { key: "_clearCache", value: function() { this._for_sale = null, this._to_receive = null, this._feed_price = null, this._squeeze_price = null, this._total_to_receive = null, this._total_for_sale = null } }, { key: "ne", value: function(e) { return this.call_price.ne(e.call_price) || this.feed_price.ne(e.feed_price) || this.debt !== e.debt || this.collateral !== e.collateral } }, { key: "equals", value: function(e) { return !this.ne(e) } }, { key: "setTotalToReceive", value: function(e) { this.total_to_receive = e } }, { key: "setTotalForSale", value: function(e) { this.total_for_sale = e } }, { key: "totalToReceive", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return void 0 !== e && e || !this._total_to_receive ? (this._total_to_receive = (this.total_to_receive || this.amountToReceive()).clone(), this._total_to_receive) : this._total_to_receive } }, { key: "totalForSale", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return !(void 0 !== e && e) && this._total_for_sale ? this._total_for_sale : this._total_for_sale = (this.total_for_sale || this.amountForSale()).clone() } }, { key: "getRatio", value: function() { return this.collateral / (this.debt / this._getFeedPrice()) } }, { key: "getStatus", value: function() { var e = this.assets[this.debt_id].bitasset.current_feed.maintenance_collateral_ratio / 1e3 , t = this.getRatio(); return isNaN(t) ? null : t < e ? "danger" : t < e + .5 ? "warning" : "" } }, { key: "isMine", value: function(e) { return -1 !== this.borrowers.indexOf(e) } }]), e }() , y = function(e) { function t(e, r, n, i, o) { if (c(this, t), !i || !o) throw new Error("SettleOrder needs feed_price and bitasset_options inputs"); e.sell_price = i.toObject(), e.seller = e.owner; var l = s(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e, r, n)); return l.offset_percent = o.force_settlement_offset_percent, l.settlement_date = new Date(a.a.makeISODateString(e.settlement_date)), l.for_sale = new h({ amount: e.balance.amount, asset_id: e.balance.asset_id, precision: r[e.balance.asset_id].precision }), l.inverted = l.for_sale.asset_id === n, l.feed_price = i[l.inverted ? "invert" : "clone"](), l } return l(t, _), o(t, [{ key: "isBefore", value: function(e) { return this.settlement_date < e.settlement_date } }, { key: "amountForSale", value: function() { return this.for_sale } }, { key: "amountToReceive", value: function() { var e = this.for_sale.times(this.feed_price, this.isBid()); return e.setAmount({ sats: e.getAmount() * ((1e4 - this.offset_percent) / 1e4) }), this._to_receive = e } }, { key: "isBid", value: function() { return !this.inverted } }]), t }() , v = function() { function e(t, r, a) { if (c(this, e), void 0 === a) throw new Error("GroupedOrder requires is_bid"); this.order = t, this.assets = r, this.is_bid = a, this.max_price = t.max_price, this.min_price = t.min_price, this.for_sale = parseInt(t.total_for_sale, 10), this._for_sale = null, this._to_receive = null; var n = this.is_bid ? new h({ asset_id: t.min_price.base.asset_id, amount: parseInt(t.min_price.base.amount, 10), precision: r[t.min_price.base.asset_id].precision }) : new h({ asset_id: t.max_price.base.asset_id, amount: parseInt(t.max_price.base.amount, 10), precision: r[t.max_price.base.asset_id].precision }) , i = this.is_bid ? new h({ asset_id: t.min_price.quote.asset_id, amount: parseInt(t.min_price.quote.amount, 10), precision: r[t.min_price.quote.asset_id].precision }) : new h({ asset_id: t.max_price.quote.asset_id, amount: parseInt(t.max_price.quote.amount, 10), precision: r[t.max_price.quote.asset_id].precision }); this.sell_price = new m({ base: n, quote: i }), this.base = n, this.quote = i, this.total_for_sale = this.amountForSale().getAmount({ real: !0 }), this.total_to_receive = this.amountToReceive().getAmount({ real: !0 }), this._total_for_sale = null, this._total_to_receive = null, this.market_base = this.is_bid ? this.base.asset_id : this.quote.asset_id } return o(e, [{ key: "isBid", value: function() { return this.is_bid } }, { key: "sellPrice", value: function() { return this.sell_price } }, { key: "getPrice", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.sell_price; return this._real_price ? this._real_price : this._real_price = e.toReal(e.base.asset_id !== this.market_base) } }, { key: "amountForSale", value: function() { return this._for_sale ? this._for_sale : this._for_sale = new h({ asset_id: this.sell_price.base.asset_id, amount: this.for_sale, precision: this.assets[this.sell_price.base.asset_id].precision }) } }, { key: "amountToReceive", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.isBid(); return this._to_receive ? this._to_receive : (this._to_receive = this.amountForSale().times(this.sell_price, e), this._to_receive) } }, { key: "clone", value: function() { return new e(this.order,this.assets,this.is_bid) } }, { key: "_clearCache", value: function() { this._for_sale = null, this._to_receive = null, this._total_to_receive = null, this._total_for_sale = null, this._real_price = null } }, { key: "ne", value: function(e) { return this.sell_price.ne(e.sell_price) || this.for_sale !== e.for_sale } }, { key: "equals", value: function(e) { return !this.ne(e) } }, { key: "setTotalToReceive", value: function(e) { this.total_to_receive = e } }, { key: "setTotalForSale", value: function(e) { this.total_for_sale = e, this._total_to_receive = null } }, { key: "totalToReceive", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return void 0 !== e && e || !this._total_to_receive ? (this._total_to_receive = (this.total_to_receive || this.amountToReceive()).clone(), this._total_to_receive) : this._total_to_receive } }, { key: "totalForSale", value: function() { var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).noCache; return void 0 !== e && e || !this._total_for_sale ? (this._total_for_sale = (this.total_for_sale || this.amountForSale()).clone(), this._total_for_sale) : this._total_for_sale } }]), e }() , w = function() { function e(t, r, n) { if (c(this, e), "virtual_op"in t && (t = { id: t.id, op: t.op[1], time: null, block: t.block_num }), !n) throw new Error("LimitOrder requires a market_base id"); this.op = t.op, this.assets = r, this.market_base = n, this.id = t.id, this.order_id = t.op.order_id, this.isCall = !!a.a.is_object_type(t.op.order_id, "call_order"), this.isBid = t.op.receives.asset_id === this.market_base, this.className = this.isCall ? "orderHistoryCall" : this.isBid ? "orderHistoryBid" : "orderHistoryAsk", this.time = t.time && new Date(a.a.makeISODateString(t.time)), this.block = t.block, this.account = t.op.account || t.op.account_id, this.is_maker = t.op.is_maker; var i = new h({ asset_id: t.op.pays.asset_id, amount: parseInt(t.op.pays.amount, 10), precision: r[t.op.pays.asset_id].precision }) , o = new h({ asset_id: t.op.receives.asset_id, amount: parseInt(t.op.receives.amount, 10), precision: r[t.op.receives.asset_id].precision }); this.pays = this.isBid ? i : o, this.receives = this.isBid ? o : i, t.op.fill_price && (this.fill_price = new m({ base: new h({ asset_id: t.op.fill_price.base.asset_id, amount: parseInt(t.op.fill_price.base.amount, 10), precision: r[t.op.fill_price.base.asset_id].precision }), quote: new h({ asset_id: t.op.fill_price.quote.asset_id, amount: parseInt(t.op.fill_price.quote.amount, 10), precision: r[t.op.fill_price.quote.asset_id].precision }) })), this.fee = new h({ asset_id: t.op.fee.asset_id, amount: parseInt(t.op.fee.amount, 10), precision: r[t.op.fee.asset_id].precision }) } return o(e, [{ key: "_calculatePrice", value: function() { return this._cached_price ? this._cached_price : this._cached_price = new m({ base: this.pays, quote: this.receives }).toReal(!1) } }, { key: "getPrice", value: function() { return this.fill_price ? this.fill_price.toReal(this.fill_price.base.asset_id === this.receives.asset_id) : this._calculatePrice() } }, { key: "amountToReceive", value: function() { var e = this.fill_price ? this.pays.times(this.fill_price).getAmount({ real: !0 }) : this.receives.getAmount({ real: !0 }); return a.a.format_number(e, this.receives.precision) } }, { key: "amountToPay", value: function() { return a.a.format_number(this.pays.getAmount({ real: !0 }), this.pays.precision) } }]), e }() , k = function() { function e(t, r, a, n) { if (c(this, e), !t || !r) throw new Error("Collateral Bid missing inputs"); this.market_base = a, this.inverted = a === t.inv_swan_price.base.asset_id, this.id = t.id, this.bidder = t.bidder, this.collateral = parseInt(t.inv_swan_price.base.amount, 10), this.debt = parseInt(t.inv_swan_price.quote.amount, 10), this.bid = new m({ base: new h({ asset_id: t.inv_swan_price.base.asset_id, amount: parseInt(t.inv_swan_price.base.amount, 10), precision: r[t.inv_swan_price.base.asset_id].precision }), quote: new h({ asset_id: t.inv_swan_price.quote.asset_id, amount: parseInt(t.inv_swan_price.quote.amount, 10), precision: r[t.inv_swan_price.quote.asset_id].precision }) }), this.precisionsRatio = d(r[t.inv_swan_price.base.asset_id].precision) / d(r[t.inv_swan_price.quote.asset_id].precision), this.inverted && (this.bid = this.bid.invert()), this.feed_price = n } return o(e, [{ key: "getFeedPrice", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.feed_price; return this._feed_price ? this._feed_price : this._feed_price = e.toReal(e.base.asset_id === this.market_base) } }, { key: "_getFeedPrice", value: function() { return (this.inverted ? this.getFeedPrice() : this.feed_price.invert().toReal()) * this.precisionsRatio } }, { key: "getRatio", value: function() { return this.collateral / (this.debt / this._getFeedPrice()) / 100 } }]), e }() } , , function(e, t, r) { "use strict"; var a = r(30) , n = r(80) , i = r(14) , o = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var s = new (function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return o(e, [{ key: "lookupAccounts", value: function(e, t) { return i.Apis.instance().db_api().exec("lookup_accounts", [e, t]) } }]), e }()) , l = r(94) , c = r(233) , u = r(19) , d = r(64) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = {} , m = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return p(e, [{ key: "accountSearch", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 50 , r = e + "_" + t + "}"; return function(a) { if (!h[r]) return h[r] = !0, s.lookupAccounts(e, t).then(function(t) { h[r] = !1, a({ accounts: t, searchTerm: e }) }) } } }, { key: "setCurrentAccount", value: function(e) { return e } }, { key: "tryToSetCurrentAccount", value: function() { return !0 } }, { key: "addStarAccount", value: function(e) { return e } }, { key: "removeStarAccount", value: function(e) { return e } }, { key: "toggleHideAccount", value: function(e, t) { return { account: e, hide: t } } }, { key: "transfer", value: function(e, t, r, a, i) { var o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null , s = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : "1.3.0"; s = n.a.getFinalFeeAsset(o || e, "transfer", s); try { return function(n) { return c.a.transfer({ from_account: e, to_account: t, amount: r, asset: a, memo: i, propose_account: o, fee_asset_id: s }).then(function(e) { n(e) }) } } catch (e) { return console.log("[AccountActions.js:90] ----- transfer error -----\x3e", e), new Promise(function(t, r) { r(e) } ) } } }, { key: "createAccount", value: function(e, t, r, a, n) { return function(i) { return d.a.createAccount(e, t, r, a, n).then(function() { return i(e), e }) } } }, { key: "createAccountWithPassword", value: function(e, t, r, a, n, i) { return function(o) { return d.a.createAccountWithPassword(e, t, r, a, n, i).then(function() { return o(e), e }) } } }, { key: "upgradeAccount", value: function(e, t) { var r = n.a.getFinalFeeAsset(e, "account_upgrade") , a = l.a.new_transaction(); return a.add_type_operation("account_upgrade", { fee: { amount: 0, asset_id: r }, account_to_upgrade: e, upgrade_to_lifetime_member: t }), u.a.process_transaction(a, null, !0) } }, { key: "addAccountContact", value: function(e) { return e } }, { key: "removeAccountContact", value: function(e) { return e } }, { key: "setPasswordAccount", value: function(e) { return e } }, { key: "createCommittee", value: function(e) { var t = e.url , r = e.account.get("id") , a = l.a.new_transaction(); return a.add_type_operation("committee_member_create", { fee: { amount: 0, asset_id: "1.3.0" }, committee_member_account: r, url: t }), function(e) { return u.a.process_transaction(a, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- Add Committee member error -----\x3e", t), e(!1) }) } } }, { key: "createWitness", value: function(e) { var t = e.url , r = e.account , a = e.signingKey , n = r.get("id") , i = l.a.new_transaction(); return i.add_type_operation("witness_create", { fee: { amount: 0, asset_id: "1.3.0" }, witness_account: n, url: t, block_signing_key: a }), function(e) { return u.a.process_transaction(i, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- Create witness error -----\x3e", t), e(!1) }) } } }]), e }(); t.a = a.a.createActions(m) } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var l = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { progress: 0 }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), s(t, [{ key: "render", value: function() { switch (this.props.type) { case "three-bounce": return n.a.createElement("div", { className: "three-bounce" }, n.a.createElement("div", { className: "bounce1" }), n.a.createElement("div", { className: "bounce2" }), n.a.createElement("div", { className: "bounce3" })); case "circle": return n.a.createElement("div", { className: "circle-wrapper" }, n.a.createElement("div", { className: "circle1 circle" }), n.a.createElement("div", { className: "circle2 circle" }), n.a.createElement("div", { className: "circle3 circle" }), n.a.createElement("div", { className: "circle4 circle" }), n.a.createElement("div", { className: "circle5 circle" }), n.a.createElement("div", { className: "circle6 circle" }), n.a.createElement("div", { className: "circle7 circle" }), n.a.createElement("div", { className: "circle8 circle" }), n.a.createElement("div", { className: "circle9 circle" }), n.a.createElement("div", { className: "circle10 circle" }), n.a.createElement("div", { className: "circle11 circle" }), n.a.createElement("div", { className: "circle12 circle" })); case "circle-small": return n.a.createElement("div", { className: "circle-wrapper", style: { height: "15px", minHeight: "15px" } }, n.a.createElement("div", { className: "circle1 circle" }), n.a.createElement("div", { className: "circle2 circle" }), n.a.createElement("div", { className: "circle3 circle" }), n.a.createElement("div", { className: "circle4 circle" }), n.a.createElement("div", { className: "circle5 circle" }), n.a.createElement("div", { className: "circle6 circle" }), n.a.createElement("div", { className: "circle7 circle" }), n.a.createElement("div", { className: "circle8 circle" }), n.a.createElement("div", { className: "circle9 circle" }), n.a.createElement("div", { className: "circle10 circle" }), n.a.createElement("div", { className: "circle11 circle" }), n.a.createElement("div", { className: "circle12 circle" })); default: var e = "loading-overlay"; return this.progress > 0 && (e += " with-progress"), n.a.createElement("div", { className: e }, n.a.createElement("div", { className: "loading-panel" }, this.props.loadingText && n.a.createElement("div", { className: "text-center", style: { paddingTop: "10px", color: "black" } }, this.props.loadingText), n.a.createElement("div", { className: "spinner" }, n.a.createElement("div", { className: "bounce1" }), n.a.createElement("div", { className: "bounce2" }), n.a.createElement("div", { className: "bounce3" })), n.a.createElement("div", { className: "progress-indicator" }, n.a.createElement("span", null, this.state.progress)))) } } }]), t }(); l.propTypes = { type: o.a.string, loadingText: o.a.string }, l.defaultProps = { type: null, loadingText: null }, t.a = l } , , function(e, t, r) { "use strict"; r.d(t, "m", function() { return i }), r.d(t, "n", function() { return o }), r.d(t, "g", function() { return s }), r.d(t, "i", function() { return l }), r.d(t, "f", function() { return c }), r.d(t, "e", function() { return u }), r.d(t, "l", function() { return d }), r.d(t, "j", function() { return p }), r.d(t, "k", function() { return h }), r.d(t, "d", function() { return m }), r.d(t, "c", function() { return f }), r.d(t, "a", function() { return g }), r.d(t, "b", function() { return _ }), r.d(t, "h", function() { return b }); var a = r(14); function n() { return "4018d784" !== (a.Apis.instance().chain_id || "4018d784").substr(0, 8) } function i() { return "BitShares" } function o() { return "https://wallet.bitshares.org" } function s() { return { url: "https://faucet.bitshares.eu/onboarding", show: !0, editable: !1 } } function l() { return r(1263) } function c() { return "darkTheme" } function u() { return "password" } function d() { return n() ? ["TEST"] : ["BTS", "USD", "CNY", "BTC", "EUR", "GBP"] } function p() { return ["BTC", "ETH", "BTS", "USD", "CNY"] } function h() { var e = { nativeTokens: ["BTC", "BTS", "CNY", "EUR", "GOLD", "KRW", "RUBLE", "SILVER", "USD"], bridgeTokens: ["BRIDGE.BCO", "BRIDGE.BTC", "BRIDGE.MONA", "BRIDGE.ZNY"], gdexTokens: ["GDEX.BTC", "GDEX.BTO", "GDEX.EOS", "GDEX.ETH", "GDEX.BTM", "GDEX.NEO", "GDEX.GAS", "GDEX.QTUM", "GDEX.BKBT", "GDEX.GXC", "GDEX.HPB", "GDEX.SEER", "GDEX.FOTA", "GDEX.JRC", "GDEX.EOSDAC", "GDEX.MTS", "GDEX.GUSD", "GDEX.IQ", "GDEX.NULS", "GDEX.USDT"], openledgerTokens: ["OBITS", "OPEN.BTC", "OPEN.DASH", "OPEN.DGD", "OPEN.DOGE", "OPEN.EOS", "OPEN.EOSDAC", "OPEN.ETH", "OPEN.EURT", "OPEN.GRC", "OPEN.INCNT", "OPEN.KRM", "OPEN.LISK", "OPEN.LTC", "OPEN.MAID", "OPEN.MKR", "OPEN.NEO", "OPEN.OMG", "OPEN.SBD", "OPEN.STEEM", "OPEN.TUSD", "OPEN.USDT", "OPEN.WAVES", "OPEN.XMR", "OPEN.ZEC", "OPEN.ZRX"], rudexTokens: ["PPY", "RUDEX.GBG", "RUDEX.GOLOS", "RUDEX.KRM", "RUDEX.SBD", "RUDEX.STEEM", "RUDEX.BTC", "RUDEX.ETH", "RUDEX.EOS", "RUDEX.WLS", "RUDEX.SMOKE", "RUDEX.GRC"], sparkTokens: ["ZEPH", "PEG.PHP", "SPARKDEX.ETH", "SPARKDEX.BTC", "SPARKDEX.HKD", "SPARKDEX.SGD", "SPARKDEX.AUD", "SPARKDEX.EUR", "SPARKDEX.GBP"], xbtsxTokens: ["XBTSX.STH", "XBTSX.POST", "XBTSX.DOGE", "XBTSX.BTC", "XBTSX.LTC", "XBTSX.DASH", "XBTSX.BTG", "XBTSX.XSPEC", "XBTSX.NVC", "XBTSX.UNI", "XBTSX.NMC", "XBTSX.WAVES", "XBTSX.COF", "XBTSX.XRUP", "XBTSX.P2P", "XBTSX.STEEP", "XBTSX.MDL", "XBTSX.ETH", "XBTSX.EXR", "XBTSX.LCRT"], otherTokens: ["BTWTY", "TWENTIX", "CVCOIN", "HERO", "OCT", "HERTZ", "ICOO", "SMOKE", "STEALTH", "YOYOW"] } , t = []; for (var r in e) t = t.concat(e[r]); return t } function m() { return ["OPEN.", "RUDEX.", "BRIDGE.", "GDEX.", "XBTSX.", "SPARKDEX.", "CITADEL."] } function f() { return [] } function g(e) { return ["OPEN", "RUDEX", "BRIDGE", "GDEX", "XBTSX", "SPARKDEX", "CITADEL"].indexOf(e) >= 0 } function _() { return ["password", "wallet"] } function b() { return n() ? ["NOTIFICATIONS"] : ["TEST"] } } , function(e, t, r) { "use strict"; var a = r(15) , n = r(11) , i = r.n(n) , o = r(5) , s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } ; o.ChainTypes.object_type; function l(e) { function t(t, r, a, n, i) { return n = n || ANONYMOUS, null == r[a] ? t ? new Error("Required " + i + " `" + a + "` was not specified in `" + n + "`.") : null : e(r, a, n, i) } var r = t.bind(null, !1); return r.isRequired = t.bind(null, !0), r } function c(e, t, r) { return r = r || "ANONYMOUS", e[t] ? "string" == typeof e[t] ? null : new Error(t + " in " + r + " should be a key string") : null } var u = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var n = e[t]; if ("string" == typeof n) return a.a.is_object_id(n) ? null : new Error(t + " in " + r + " should be an object id"); if ("object" !== (void 0 === n ? "undefined" : s(n))) return new Error(t + " in " + r + " should be an object id or object") } return null }) , d = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; if ("string" == typeof a) return null; if ("object" !== (void 0 === a ? "undefined" : s(a))) return new Error(t + " of " + a + " in " + r + " should be an account id"); if (a instanceof Map && a.get("name") && 1 == a.size) return null } return null }) , p = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; return o.ChainValidation.is_account_name(a) ? null : new Error(t + " value of " + a + " in " + r + " is not a valid account name") } return null }) , h = l(c) , m = l(c) , f = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; if ("string" == typeof a) return null; if ("object" !== (void 0 === a ? "undefined" : s(a))) return new Error(t + " of " + a + " in " + r + " should be an asset symbol or id") } return null }) , g = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; return i.a.List.isList(a) || i.a.Set.isSet(a) || a instanceof Object ? null : new Error(t + " in " + r + " should be Immutable.List") } return null }) , _ = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; return i.a.List.isList(a) || i.a.Set.isSet(a) || a instanceof Object ? null : new Error(t + " in " + r + " should be Immutable.List") } return null }) , b = l(function(e, t, r) { if (r = r || "ANONYMOUS", e[t]) { var a = e[t]; return i.a.List.isList(a) || i.a.Set.isSet(a) || a instanceof Object ? null : new Error(t + " in " + r + " should be Immutable.List") } return null }); t.a = { ChainObject: u, ChainAccount: d, ChainAccountName: p, ChainKeyRefs: h, ChainAddressBalances: m, ChainAsset: f, ChainObjectsList: g, ChainAccountsList: _, ChainAssetsList: b } } , function(e, t, r) { "use strict"; var a = r(30) , n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var i = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return n(e, [{ key: "unlock", value: function() { return function(e) { return new Promise(function(t, r) { e({ resolve: t, reject: r }) } ).then(function(e) { e && o.change() }).catch(function(e) { throw e }) } } }, { key: "lock", value: function() { return function(e) { return new Promise(function(t) { e({ resolve: t }) } ).then(function(e) { e && o.change() }) } } }, { key: "cancel", value: function() { return !0 } }, { key: "change", value: function() { return !0 } }, { key: "checkLock", value: function() { return !0 } }]), e }() , o = a.a.createActions(i); t.a = o } , function(e, t, r) { "use strict"; var a = r(856) , n = r(269) , i = r(854) , o = r(592) , s = r(835) , l = r(567) , c = r(168) , u = r(453) , d = r(0) , p = r.n(d) , h = r(5) , m = r(43) , f = r(15) , g = r(351) , _ = r(40) , b = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , y = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function v(e) { if (Array.isArray(e)) { for (var t = 0, r = Array(e.length); t < e.length; t++) r[t] = e[t]; return r } return Array.from(e) } function w(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function k(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function x(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var S = function(e, t) { return t[e] } , A = Object(u.a)(S)(0) , E = Object(u.a)(S)(1) , T = Object(u.a)(function(e, t) { return t === e || t === e.isRequired }) , C = T(m.a.ChainObject) , z = T(m.a.ChainAccount) , B = T(m.a.ChainKeyRefs) , O = T(m.a.ChainAddressBalances) , P = T(m.a.ChainAsset) , j = T(m.a.ChainObjectsList) , I = T(m.a.ChainAccountsList) , M = T(m.a.ChainAssetsList) , N = T(m.a.ChainAccountName); function R(e) { for (var t in m.a) { if (e === m.a[t].isRequired) return !0 } return !1 } function q(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {} , r = function(r) { function u(r) { w(this, u); var a = k(this, (u.__proto__ || Object.getPrototypeOf(u)).call(this, r)); a.hasErrored = !1; var i = Object(o.a)(e.propTypes); for (var d in t && t.all_props ? (a.chain_objects = Object(l.a)(Object.keys(a.props), function(e) { return "children" === e || "show_loader" === e }), a.chain_accounts = [], a.chain_account_names = [], a.chain_key_refs = [], a.chain_address_balances = [], a.chain_assets = [], a.chain_objects_list = [], a.chain_accounts_list = [], a.chain_assets_list = [], a.required_props = [], a.all_chain_props = a.chain_objects) : (a.chain_objects = i.filter(Object(c.a)(E, C)).map(A), a.chain_accounts = i.filter(Object(c.a)(E, z)).map(A), a.chain_account_names = i.filter(Object(c.a)(E, N)).map(A), a.chain_key_refs = i.filter(Object(c.a)(E, B)).map(A), a.chain_address_balances = i.filter(Object(c.a)(E, O)).map(A), a.chain_assets = i.filter(Object(c.a)(E, P)).map(A), a.chain_objects_list = i.filter(Object(c.a)(E, j)).map(A), a.chain_accounts_list = i.filter(Object(c.a)(E, I)).map(A), a.chain_assets_list = i.filter(Object(c.a)(E, M)).map(A), a.required_props = i.filter(Object(c.a)(E, R)).map(A), a.all_chain_props = [].concat(v(a.chain_objects), v(a.chain_accounts), v(a.chain_account_names), v(a.chain_key_refs), v(a.chain_address_balances), v(a.chain_assets), v(a.chain_objects_list))), t && t.require_all_props && (a.required_props = a.all_chain_props), a.dynamic_props = {}, a.default_props = Object(s.a)(e.defaultProps) || {}, a.default_props) { var p = a.default_props[d]; "string" == typeof p && 0 === p.indexOf("props.") && (a.dynamic_props[d] = Object(n.a)(a, p)) } return a.tempComponent = e.defaultProps && e.defaultProps.tempComponent || null, a.update = a.update.bind(a), a.state = { resolved: !1 }, a } return x(u, p.a.Component), y(u, [{ key: "shouldComponentUpdate", value: function(e, t) { return !f.a.are_equal_shallow(this.props, e) || !f.a.are_equal_shallow(this.state, t) } }, { key: "componentDidCatch", value: function(e, t) { this._errored(e, t) } }, { key: "_errored", value: function(t, r) { console.error("BindToChainState(" + Object(g.a)(e) + ")", t, r), this.setState({ hasErrored: !0 }) } }, { key: "componentWillMount", value: function() { h.ChainStore.subscribe(this.update), this.update() } }, { key: "componentWillUnmount", value: function() { h.ChainStore.unsubscribe(this.update) } }, { key: "componentWillReceiveProps", value: function(e) { if (t && t.all_props) { this.chain_objects = Object(l.a)(Object.keys(e), function(e) { return "children" === e || "show_loader" === e }), this.all_chain_props = this.chain_objects; var r = Object(a.a)(this.state, this.chain_objects); f.a.are_equal_shallow(r, this.state) || this.setState(r) } var i = null; for (var o in this.dynamic_props) { var s = this.default_props[o]; i || (i = { props: e }); var c = Object(n.a)(this, s) , u = Object(n.a)(i, s); u && u !== c && (this.dynamic_props[o] = Object(n.a)(i, s)) } this.update(e) } }, { key: "update", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; try { this._update(e) } catch (e) { this._errored(e) } } }, { key: "_update", value: function() { var e = this , t = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null) || this.props , r = {} , a = 0 , n = 0 , i = !0 , o = !1 , s = void 0; try { for (var l, c = this.chain_objects[Symbol.iterator](); !(i = (l = c.next()).done); i = !0) { var u = l.value; if (pe = t[u] || this.dynamic_props[u] || this.default_props[u]) { var d = h.ChainStore.getObject(pe, !1, this.default_props.autosubscribe); void 0 === d && -1 === this.required_props.indexOf(u) && d !== this.state[u] ? r[u] = d : d && d !== this.state[u] && (r[u] = d), ++a, void 0 !== d && ++n } else this.state[u] && (r[u] = null) } } catch (e) { o = !0, s = e } finally { try { !i && c.return && c.return() } finally { if (o) throw s } } var p = !0 , m = !1 , g = void 0; try { for (var _, b = this.chain_accounts[Symbol.iterator](); !(p = (_ = b.next()).done); p = !0) { var y = _.value; if (pe = t[y] || this.dynamic_props[y] || this.default_props[y]) { "#" === pe[0] && Number.parseInt(pe.substring(1)) && (pe = "1.2." + pe.substring(1)), pe instanceof Map && pe.get("name") && 1 == pe.size && (pe = pe.get("name")); var v = h.ChainStore.getAccount(pe, this.default_props.autosubscribe); void 0 === v && -1 === this.required_props.indexOf(y) && v !== this.state[y] ? r[y] = v : v && v !== this.state[y] ? r[y] = v : null === v && (r[y] = v), ++a, void 0 !== v && ++n, "bitsharesblocksazdazdz" === pe && console.log("account:", pe, "new_obj", v, "all_objects_counter", a, "resolved_objects_counter", n) } else this.state[y] && (r[y] = null) } } catch (e) { m = !0, g = e } finally { try { !p && b.return && b.return() } finally { if (m) throw g } } var w = !0 , k = !1 , x = void 0; try { for (var S, A = this.chain_account_names[Symbol.iterator](); !(w = (S = A.next()).done); w = !0) { var E = S.value; if (pe = t[E] || this.dynamic_props[E] || this.default_props[E]) { var T = h.ChainStore.getAccountName(pe); void 0 === T && -1 === this.required_props.indexOf(E) && T !== this.state[E] ? r[E] = T : T && T !== this.state[E] && (r[E] = T), ++a, void 0 !== T && ++n } else this.state[E] && (r[E] = null) } } catch (e) { k = !0, x = e } finally { try { !w && A.return && A.return() } finally { if (k) throw x } } var C = !0 , z = !1 , B = void 0; try { for (var O, P = this.chain_key_refs[Symbol.iterator](); !(C = (O = P.next()).done); C = !0) { var j = O.value; if (pe = t[j] || this.dynamic_prop[j] || this.default_props[j]) { var I = h.ChainStore.getAccountRefsOfKey(pe); void 0 === I && -1 === this.required_props.indexOf(j) && I !== this.state[j] ? r[j] = I : I && I !== this.state[j] && (r[j] = I), ++a, void 0 !== I && ++n } else this.state[j] && (r[j] = null) } } catch (e) { z = !0, B = e } finally { try { !C && P.return && P.return() } finally { if (z) throw B } } var M = !0 , N = !1 , R = void 0; try { for (var q, D = this.chain_address_balances[Symbol.iterator](); !(M = (q = D.next()).done); M = !0) { var L = q.value; if (pe = t[L] || this.dynamic_props[L] || this.default_props[L]) { var F = h.ChainStore.getBalanceObjects(pe); void 0 === F && -1 === this.required_props.indexOf(L) && F !== this.state[L] ? r[L] = F : F && F !== this.state[L] && (r[L] = F), ++a, void 0 !== F && ++n } else this.state[L] && (r[L] = null) } } catch (e) { N = !0, R = e } finally { try { !M && D.return && D.return() } finally { if (N) throw R } } var U = !0 , W = !1 , H = void 0; try { for (var K, V = this.chain_assets[Symbol.iterator](); !(U = (K = V.next()).done); U = !0) { var G = K.value; if (pe = t[G] || this.dynamic_props[G] || this.default_props[G]) { var Y = h.ChainStore.getAsset(pe); void 0 === Y && -1 === this.required_props.indexOf(G) && Y !== this.state[G] ? r[G] = Y : (Y && Y !== this.state[G] || null === Y) && (r[G] = Y), ++a, void 0 !== Y && ++n } else this.state[G] && (r[G] = null) } } catch (e) { W = !0, H = e } finally { try { !U && V.return && V.return() } finally { if (W) throw H } } var J = !0 , X = !1 , Z = void 0; try { for (var Q, $ = this.chain_objects_list[Symbol.iterator](); !(J = (Q = $.next()).done); J = !0) { var ee = Q.value; (pe = t[ee] || this.dynamic_props[ee] || this.default_props[ee]) ? function() { var t = e.state[ee] , i = [] , o = !1; t && t.length === pe.size || (t = [], o = !0); var s = 0; pe.forEach(function(r) { if (++s, r) { var l = h.ChainStore.getObject(r, !1, e.default_props.autosubscribe); l && ++n, t[s] !== l ? (o = !0, i[s] = l) : i[s] = t[s] } ++a }), o && (r[ee] = i) }() : this.state[ee] && (r[ee] = null) } } catch (e) { X = !0, Z = e } finally { try { !J && $.return && $.return() } finally { if (X) throw Z } } var te = !0 , re = !1 , ae = void 0; try { for (var ne, ie = this.chain_accounts_list[Symbol.iterator](); !(te = (ne = ie.next()).done); te = !0) { var oe = ne.value; (pe = t[oe] || this.dynamic_props[oe] || this.default_props[oe]) ? function() { var t = e.state[oe] , i = [] , o = !1; t && t.length === pe.size || (t = [], o = !0); var s = 0; pe.forEach(function(r) { if (r) { var l = h.ChainStore.getAccount(r, e.default_props.autosubscribe); l && ++n, t[s] !== l ? (o = !0, i[s] = l) : i[s] = t[s] } ++s, ++a }), o && (r[oe] = i) }() : this.state[oe] && (r[oe] = null) } } catch (e) { re = !0, ae = e } finally { try { !te && ie.return && ie.return() } finally { if (re) throw ae } } var se = !0 , le = !1 , ce = void 0; try { for (var ue, de = this.chain_assets_list[Symbol.iterator](); !(se = (ue = de.next()).done); se = !0) { var pe, he = ue.value; (pe = t[he] || this.dynamic_props[he] || this.default_props[he]) ? function() { var t = e.state[he] , i = [] , o = !1; t && t.length === pe.size || (t = [], o = !0); var s = 0; pe.forEach(function(e) { if (++s, e) { var r = h.ChainStore.getAsset(e); r && ++n, t[s] !== r ? (o = !0, i[s] = r) : i[s] = t[s] } ++a }), o && (r[he] = i) }() : this.state[he] && (r[he] = null) } } catch (e) { le = !0, ce = e } finally { try { !se && de.return && de.return() } finally { if (le) throw ce } } a <= n && (r.resolved = !0); var me = !1; function fe(e) { var t = {}; for (var r in e) null === e[r] ? t[r] = "null" : t[r] = e[r]; return t } var ge = fe(this.state) , _e = fe(r); for (var be in _e) f.a.are_equal_shallow(_e[be], ge[be]) ? delete r[be] : me = !0; me && this.setState(r) } }, { key: "render", value: function() { var r = Object(i.a)(this.props, this.all_chain_props) , a = !0 , n = !1 , o = void 0; try { for (var s, l = this.required_props[Symbol.iterator](); !(a = (s = l.next()).done); a = !0) { var c = s.value; if (void 0 === this.state[c]) return void 0 !== t && t.show_loader ? p.a.createElement(_.a, null) : this.hasErrored ? p.a.createElement("span", null, "Error rendering component, please report") : this.tempComponent ? p.a.createElement(this.tempComponent) : p.a.createElement("span", null) } } catch (e) { n = !0, o = e } finally { try { !a && l.return && l.return() } finally { if (n) throw o } } return p.a.createElement(e, b({ ref: "bound_component" }, r, this.state)) } }]), u }(); return r.displayName = "BindToChainState(" + Object(g.a)(e) + ")", r } var D = function(e) { function t() { return w(this, t), k(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return x(t, p.a.Component), y(t, [{ key: "render", value: function() { return p.a.createElement("span", { className: "wrapper" }, this.props.children(this.props)) } }]), t }(); D = q(D, { all_props: !0, require_all_props: !0 }), q.Wrapper = D, t.a = q } , , , , function(e, t, r) { "use strict"; r.d(t, "b", function() { return n }), r.d(t, "g", function() { return i }), r.d(t, "h", function() { return o }), r.d(t, "a", function() { return s }), r.d(t, "d", function() { return l }), r.d(t, "c", function() { return c }), r.d(t, "e", function() { return u }), r.d(t, "f", function() { return d }), r.d(t, "j", function() { return p }), r.d(t, "i", function() { return h }); var a = r(42) , n = { BASE: "https://api.blocktrades.us/v2", COINS_LIST: "/coins", ACTIVE_WALLETS: "/active-wallets", TRADING_PAIRS: "/trading-pairs", DEPOSIT_LIMIT: "/deposit-limits", ESTIMATE_OUTPUT: "/estimate-output-amount", ESTIMATE_INPUT: "/estimate-input-amount" } , i = { BASE: "https://ol-api1.openledger.info/api/v0/ol/support", COINS_LIST: "/coins", ACTIVE_WALLETS: "/active-wallets", TRADING_PAIRS: "/trading-pairs", DEPOSIT_LIMIT: "/deposit-limits", ESTIMATE_OUTPUT: "/estimate-output-amount", ESTIMATE_INPUT: "/estimate-input-amount", RPC_URL: "https://openledger.info/api/" } , o = { BASE: "https://gateway.rudex.org/api/v0_1", COINS_LIST: "/coins", NEW_DEPOSIT_ADDRESS: "/new-deposit-address" } , s = { BASE: "https://dex-api.bitspark.io/api/v1", COINS_LIST: "/coins", ACTIVE_WALLETS: "/active-wallets", TRADING_PAIRS: "/trading-pairs", DEPOSIT_LIMIT: "/deposit-limits", ESTIMATE_OUTPUT: "/estimate-output-amount", ESTIMATE_INPUT: "/estimate-input-amount" } , l = { BASE: "https://api.crypto-bridge.org/api/v1", COINS_LIST: "/coins", ACTIVE_WALLETS: "/wallets", MARKETS: "/markets", TRADING_PAIRS: "/trading-pairs" } , c = { BASE: "https://citadel.li/trade", COINS_LIST: "/coins", ACTIVE_WALLETS: "/active-wallets", TRADING_PAIRS: "/trading-pairs", DEPOSIT_LIMIT: "/deposit-limits", ESTIMATE_OUTPUT: "/estimate-output-amount", ESTIMATE_INPUT: "/estimate-input-amount" } , u = { BASE: "https://api.gdex.io/adjust", COINS_LIST: "/coins", ACTIVE_WALLETS: "/active-wallets", TRADING_PAIRS: "/trading-pairs" } , d = { BASE: "https://api.gdex.io", ASSET_LIST: "/gateway/asset/assetList", ASSET_DETAIL: "/gateway/asset/assetDetail", GET_DEPOSIT_ADDRESS: "/gateway/address/getAddress", CHECK_WITHDRAY_ADDRESS: "/gateway/address/checkAddress", DEPOSIT_RECORD_LIST: "/gateway/deposit/recordList", DEPOSIT_RECORD_DETAIL: "/gateway/deposit/recordDetail", WITHDRAW_RECORD_LIST: "/gateway/withdraw/recordList", WITHDRAW_RECORD_DETAIL: "/gateway/withdraw/recordDetail", GET_USER_INFO: "/gateway/user/getUserInfo", USER_AGREEMENT: "/gateway/user/isAgree", WITHDRAW_RULE: "/gateway/withdraw/rule" } , p = { BASE: "https://apis.xbts.io/api/v1", COINS_LIST: "/coin" } , h = { DEFAULT_WS_NODE: "wss://fake.automatic-selection.com", WS_NODE_LIST: [{ url: "wss://fake.automatic-selection.com", location: { translate: "settings.api_closest" } }, { url: "ws://127.0.0.1:8090", location: "Locally hosted" }, { url: "wss://dex.iobanker.com:9090", region: "Western Europe", country: "Germany", location: "Frankfurt", operator: "Witness: iobanker-core", contact: "email:admin@iobanker.com" }, { url: "wss://bitshares.openledger.info/ws", location: "Nuremberg", region: "Western Europe", country: "Germany", operator: "Witness: openledger-dc", contact: "telegram:mtopenledger" }, { url: "wss://openledger.hk/ws", region: "Southeastern Asia", country: "Singapore", operator: "Witness: openledger-dc", contact: "telegram:mtopenledger" }, { url: "wss://na.openledger.info/ws", location: "Quebec", region: "Northern America", country: "Canada", operator: "Witness: openledger-dc", contact: "telegram:mtopenledger" }, { url: "wss://bit.btsabc.org/ws", region: "Eastern Asia", country: "China", location: "Hong Kong", operator: "Witness: abc123", contact: "QQ:58291;email:58291@qq.com" }, { url: "wss://bitshares.crypto.fans/ws", region: "Western Europe", country: "Germany", location: "Munich", operator: "Witness: sc-ol", contact: "telegram:startail" }, { url: "wss://ws.gdex.top", region: "Eastern Asia", country: "China", location: "Shanghai", operator: "Witness: gdex-witness", contact: "telegram:BrianZhang" }, { url: "wss://api.weaccount.cn", region: "Eastern Asia", country: "China", location: "Hangzhou", operator: "Witness: btspp-witness", contact: "telegram:btsplusplus" }, { url: "wss://dex.rnglab.org", region: "Northern Europe", country: "Netherlands", location: "Amsterdam", operator: "Witness: rnglab", contact: "keybase:rnglab" }, { url: "wss://dexnode.net/ws", region: "Northern America", country: "U.S.A.", location: "Dallas", operator: "Witness: Sahkan", contact: "telegram:Sahkan_bitshares" }, { url: "wss://kc-us-dex.xeldal.com/ws", region: "North America", country: "U.S.A.", location: "Kansas City", operator: "Witness: xeldal", contact: "telegram:xeldal" }, { url: "wss://api.bts.blckchnd.com", region: "Western Europe", country: "Germany", location: "Falkenstein", operator: "Witness: blckchnd", contact: "email:admin@blckchnd.com;telegram:ruslansalikhov;github:blckchnd" }, { url: "wss://api-ru.bts.blckchnd.com", region: "Eastern Europe", country: "Russia", location: "Moscow", operator: "Witness: blckchnd", contact: "email:admin@blckchnd.com;telegram:ruslansalikhov;github:blckchnd" }, { url: "wss://api.bitsharesdex.com", region: "Northern America", country: "U.S.A.", location: "Kansas City", operator: "Witness: delegate.ihashfury", contact: "telegram:ihashfury" }, { url: "wss://api.fr.bitsharesdex.com", region: "Western Europe", country: "France", location: "Paris", operator: "Witness: delegate.ihashfury", contact: "telegram:ihashfury" }, { url: "wss://blockzms.xyz/ws ", region: "North America", country: "U.S.A.", location: "New Jersey", operator: "Witness: delegate-zhaomu", contact: "telegram:lzmlam;wechat:lzmlam" }, { url: "wss://eu.nodes.bitshares.ws", region: "Western Europe", country: "Germany", operator: "Infrastructure Worker", contact: "email:info@blockchainprojectsbv.com" }, { url: "wss://us.nodes.bitshares.ws", region: "North America", country: "U.S.A.", operator: "Infrastructure Worker", contact: "email:info@blockchainprojectsbv.com" }, { url: "wss://sg.nodes.bitshares.ws", region: "Southeastern Asia", country: "Singapore", operator: "Infrastructure Worker", contact: "email:info@blockchainprojectsbv.com" }, { url: "wss://api.bts.mobi/ws", region: "Northern America", country: "U.S.A.", location: "Virginia", operator: "Witness: in.abit", contact: "telegram:abitmore" }, { url: "wss://api.btsxchng.com", region: "Multiple", country: "Worldwide", location: "Singapore / N. Virginia / London", operator: "Witness: elmato", contact: "telegram:elmato" }, { url: "wss://api.bts.network/", region: "North America", country: "U.S.A.", location: "Virginia", operator: "Witness: fox", contact: "telegram:ryanRfox" }, { url: "wss://btsws.roelandp.nl/ws", region: "Northern Europe", country: "Finland", location: "Helsinki", operator: "Witness: roelandp", contact: "telegram:roelandp" }, { url: "wss://api.bitshares.bhuz.info/ws", region: "Northern America", country: "Canada", operator: "Witness: bhuz", contact: "telegram:bhuzor" }, { url: "wss://bts-api.lafona.net/ws", region: "Northern America", country: "Canada", location: "Montreal", operator: "Witness: delegate-1.lafona", contact: "telegram:lafona" }, { url: "wss://kimziv.com/ws", region: "North America", country: "U.S.A.", location: "New Jersey", operator: "Witness: witness.yao", contact: "telegram:imyao" }, { url: "wss://api.btsgo.net/ws", region: "Asia", location: "Singapore", operator: "Witness: xn-delegate", contact: "wechat:Necklace" }, { url: "wss://bts.proxyhosts.info/wss", region: "Western Europe", country: "Germany", location: "", operator: "Witness: verbaltech2", contact: "keybase:jgaltman" }, { url: "wss://bts.open.icowallet.net/ws", region: "Eastern Asia", country: "China", location: "Hangzhou", operator: "Witness: magicwallet.witness", contact: "telegram:plus_wave" }, { url: "wss://crazybit.online", region: "Asia", country: "China", location: "Shenzhen", operator: "Witness: crazybit", contact: "telegram:crazybits;wechat:JamesCai" }, { url: "wss://freedom.bts123.cc:15138/", region: "South China", country: "China", location: "Changsha", operator: "Witness: delegate.freedom", contact: "telegram:eggplant" }, { url: "wss://bitshares.bts123.cc:15138/", region: "North China", country: "China", location: "Hangzhou", operator: "Witness: delegate.freedom", contact: "telegram:eggplant" }, { url: "wss://api.bts.ai", region: "Eastern Asia", country: "China", location: "Beijing", operator: "Witness: witness.hiblockchain", contact: "telegram:vianull;wechat:strugglingl" }, { url: "wss://ws.hellobts.com", region: "Eastern Asia", country: "Japan", location: "Tokyo", operator: "Witness: xman", contact: "wechat:hidpos;email:hellobts@qq.com" }, { url: "wss://bitshares.cyberit.io", region: "Eastern Asia", country: "China", location: "Hong Kong", operator: "Witness: witness.still", contact: "telegram:gordoor;wechat:overyard" }, { url: "wss://bts-seoul.clockwork.gr", region: "Southeastern Asia", country: "Korea", location: "Seoul", operator: "Witness: clockwork", contact: "telegram:clockworkgr" }, { url: "wss://bts.liuye.tech:4443/ws", region: "Eastern Asia", country: "China", location: "Shandong", operator: "Witness: liuye", contact: "email:work@liuye.tech" }, { url: "wss://btsfullnode.bangzi.info/ws", region: "Western Europe", country: "Germany", location: "Munich", operator: "Witness: Bangzi", contact: "telegram:Bangzi" }, { url: "wss://api.dex.trading/", region: "Western Europe", country: "France", location: "Paris", operator: "Witness: zapata42-witness", contact: "telegram:Zapata_42" }, { url: "wss://citadel.li/node", region: "Western Europe", country: "Iceland", location: "Reykjavik", operator: "CITADEL", contact: "email:citadel.li;support" }, { url: "wss://us-west-2.bts.crypto-bridge.org", region: "Northern America", country: "U.S.A.", location: "North California", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://eu-central-1.bts.crypto-bridge.org", region: "Western Europe", country: "Netherlands", location: "Amsterdam", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://ap-northeast-1.bts.crypto-bridge.org", region: "Southeastern Asia", country: "Japan", location: "Tokyo", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://ap-southeast-1.bts.crypto-bridge.org", region: "Southeastern Asia", country: "Singapore", location: "Singapore", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://ap-southeast-2.bts.crypto-bridge.org", region: "Australia", country: "Australia", location: "Sydney", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://ap-southeast-3.bts.crypto-bridge.org", region: "Southeastern Asia", country: "Singapore", location: "Singapore", operator: "CryptoBridge", contact: "email:support@crypto-bridge.org" }, { url: "wss://master.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "New Jersey", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://new-york.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "New York", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://chicago.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Chicago", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://seattle.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Seattle", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://losangeles.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Los Angeles", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://atlanta.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Atlanta", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://siliconvalley.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Silicon Valley", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://dallas.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Dallas", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://miami.us.api.bitshares.org/ws", region: "Northern America", country: "U.S.A.", location: "Miami", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://toronto.ca.api.bitshares.org/ws", region: "Canada", country: "Canada", location: "Toronto", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://toronto2.ca.api.bitshares.org/ws", region: "Canada", country: "Canada", location: "Toronto", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://master.eu.api.bitshares.org/ws", region: "Northern Europe", country: "Germany", location: "Frankfurt", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://amsterdam.eu.api.bitshares.org/ws", region: "Northern Europe", country: "Netherlands", location: "Amsterdam", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://london.eu.api.bitshares.org/ws", region: "Western Europe", country: "England", location: "London", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://paris.eu.api.bitshares.org/ws", region: "Western Europe", country: "France", location: "Paris", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://frankfurt.eu.api.bitshares.org/ws", region: "Western Europe", country: "Germany", location: "Frankfurt", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://sydney.au.api.bitshares.org/ws", region: "Oceania", country: "Australia", location: "Sydney", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://sydney2.au.api.bitshares.org/ws", region: "Oceania", country: "Australia", location: "Sydney", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://singapore.asia.api.bitshares.org/ws", region: "Asia", country: "Singapore", location: "Singapore", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://tokyo.eu.api.bitshares.org/ws", region: "Asia", country: "Japan", location: "Tokyo", operator: "'Exotic flavors' infra worker", contact: "telegram:murda_ra;email:hostmaster@bitshares.org" }, { url: "wss://node.testnet.bitshares.eu", region: "TESTNET - Western Europe", country: "Germany", location: "Frankfurt", operator: "BitShares Europe", contact: "telegram:xeroc" }, { url: "wss://testnet.nodes.bitshares.ws", region: "TESTNET - Western Europe", country: "Germany", location: "Nuremberg", operator: "Infrastructure Worker", contact: "email:info@blockchainprojectsbv.com" }, { url: "wss://testnet.dex.trading/", region: "TESTNET - Western Europe", country: "France", location: "Paris", operator: "Witness: zapata42-witness", contact: "telegram:Zapata_42" }], ES_WRAPPER_LIST: [{ url: "https://wrapper.elasticsearch.bitshares.ws", region: "Western Europe", country: "Germany", operator: "Infrastructure Worker", contact: "email:info@blockchainprojectsbv.com" }], DEFAULT_FAUCET: Object(a.g)().url, TESTNET_FAUCET: "https://faucet.testnet.bitshares.eu" } } , function(e, t, r) { "use strict"; var a = r(14) , n = r(97) , i = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var o = function() { function e(t) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.impl = t } return i(e, [{ key: "setDbSuffix", value: function(e) { this.database_name = "graphene_db" + e } }, { key: "openIndexedDB", value: function() { var e = this; return this.db ? Promise.resolve(this.db) : new Promise(function(t, r) { var a = e.impl.open(e.database_name, 1); a.onupgradeneeded = function(t) { e.db = t.target.result, e.db.createObjectStore("properties", { keyPath: "name" }) } , a.onsuccess = function(r) { e.db = r.target.result, t(e.db) } , a.onerror = function(e) { r(e.target.error) } } ) } }, { key: "getProperty", value: function(e, t) { return this.openIndexedDB().then(function(r) { var a = r.transaction(["properties"], "readonly").objectStore("properties"); return n.a.on_request_end(a.get(e)).then(function(e) { var r = e.target.result; return r ? r.value : t }) }).catch(function(e) { throw console.error(e), e }) } }, { key: "setProperty", value: function(e, t) { return this.openIndexedDB().then(function(r) { var a = r.transaction(["properties"], "readwrite").objectStore("properties"); return t && t.toJS && (t = t.toJS()), n.a.on_request_end(a.put({ name: e, value: t })) }).catch(function(e) { throw console.error(e), e }) } }, { key: "deleteDatabase", value: function() { return arguments.length > 0 && void 0 !== arguments[0] && arguments[0] ? (console.log("deleting", this.database_name), iDB.impl.deleteDatabase(this.database_name).result) : "Are you sure?" } }, { key: "close", value: function() { this.db.close(), this.db = null } }]), e }() , s = "graphene_v2" , l = ["wallet", "private_keys", "linked_accounts"] , c = (r(414).a.MAIN_NET, "default") , u = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : c , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : a.Apis.instance().chain_id; return [s, t ? t.substring(0, 6) : "", e].join("_") } , d = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.getDatabaseName(); return new Promise(function(t, r) { var a = p.impl.open(e, 2); a.onupgradeneeded = function(e) { !function(e, t) { 0 === t && (e.createObjectStore("wallet", { keyPath: "public_name" }), n.a.autoIncrement_unique(e, "private_keys", "pubkey"), e.createObjectStore("linked_accounts", { keyPath: "name" })), t < 2 && e.createObjectStore("cached_properties", { keyPath: "name" }) }(e.target.result, e.oldVersion) } , a.onsuccess = function(r) { var a = r.target.result; p.database_name = e, n.a.set_graphene_db(a), t(a) } , a.onerror = function(e) { r(e.target.error) } } ) } , p = function() { var e, t; function r(e) { var r = function(e) { return p.root.getProperty("current_wallet", "default").then(function(t) { c = t; var r = u(t, e); return d(r) }) }(e); return r.then(function(e) { t = e }), { init_promise: r, db: function() { return t } } } return { WALLET_BACKUP_STORES: l, getDatabaseName: u, getCurrentWalletName: function() { return c }, deleteDatabase: function() { return arguments.length > 0 && void 0 !== arguments[0] && arguments[0] ? (console.log("deleting", this.database_name), p.impl.deleteDatabase(this.database_name).result) : "Are you sure?" }, set_impl: function(e) { this.impl = e, this.root = new o(this.impl) }, set_chain_id: function(e) { this.chain_id = e; var t = e ? e.substring(0, 6) : ""; this.root.setDbSuffix("_" + t) }, init_instance: function(t) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : a.Apis.instance().chain_id; return e || (t && (this.set_impl(t), "__useShim"in t && this.impl.__useShim()), this.set_chain_id(n), e = r(n)), e }, instance: function() { if (!e) throw new Error("Internal Database instance is not initialized"); return e }, close: function() { e && e.db() && e.db().close(), n.a.set_graphene_db(null), e = void 0 }, add_to_store: function(e, t) { var r = this; return new Promise(function(a, n) { var i = r.instance().db().transaction([e], "readwrite").objectStore(e).add(t); i.onsuccess = function() { a(t) } , i.onerror = function(e) { console.log("ERROR!!! add_to_store - can't store value in db. ", e.target.error.message, t), n(e.target.error.message) } } ) }, remove_from_store: function(e, t) { var r = this; return new Promise(function(a, n) { var i = r.instance().db().transaction([e], "readwrite").objectStore(e).delete(t); i.onsuccess = function() { a() } , i.onerror = function(e) { console.log("ERROR!!! remove_from_store - can't remove value from db. ", e.target.error.message, t), n(e.target.error.message) } } ) }, load_data: function(e) { var t = this; return new Promise(function(r, a) { var n = [] , i = t.instance().db().transaction([e], "readonly").objectStore(e).openCursor(); i.onsuccess = function(e) { var t = e.target.result; t ? (n.push(t.value), t.continue()) : r(n) } , i.onerror = function(e) { console.log("ERROR!!! open_store - can't get '`${store_name}`' cursor. ", e.target.error.message), a(e.target.error.message) } } ) }, getCachedProperty: function(e, t) { var r = this.instance().db().transaction(["cached_properties"], "readonly").objectStore("cached_properties"); return n.a.on_request_end(r.get(e)).then(function(e) { var r = e.target.result; return r ? r.value : t }).catch(function(e) { throw console.error(e), e }) }, setCachedProperty: function(e, t) { var r = this.instance().db().transaction(["cached_properties"], "readwrite").objectStore("cached_properties"); return t && t.toJS && (t = t.toJS()), n.a.on_request_end(r.put({ name: e, value: t })).catch(function(e) { throw console.error(e), e }) }, backup: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : l , t = [] , r = !0 , a = !1 , n = void 0; try { for (var i, o = e[Symbol.iterator](); !(r = (i = o.next()).done); r = !0) { var s = i.value; t.push(this.load_data(s)) } } catch (e) { a = !0, n = e } finally { try { !r && o.return && o.return() } finally { if (a) throw n } } return Promise.all(t).then(function(t) { for (var r = {}, a = 0; a < e.length; a++) { var n = e[a]; if ("wallet" === n) { var i = t[a] , o = !0 , s = !1 , l = void 0; try { for (var c, u = i[Symbol.iterator](); !(o = (c = u.next()).done); o = !0) { c.value.backup_date = (new Date).toISOString() } } catch (e) { s = !0, l = e } finally { try { !o && u.return && u.return() } finally { if (s) throw l } } } r[n] = t[a] } return r }) }, restore: function(e, t) { var r = u(e); return d(r).then(function(e) { var r = Object.keys(t) , a = e.transaction(r, "readwrite") , i = !0 , o = !1 , s = void 0; try { for (var l, c = r[Symbol.iterator](); !(i = (l = c.next()).done); i = !0) { var u = l.value , d = a.objectStore(u) , p = t[u] , h = !0 , m = !1 , f = void 0; try { for (var g, _ = p[Symbol.iterator](); !(h = (g = _.next()).done); h = !0) { var b = g.value; d.put(b) } } catch (e) { m = !0, f = e } finally { try { !h && _.return && _.return() } finally { if (m) throw f } } } } catch (e) { o = !0, s = e } finally { try { !i && c.return && c.return() } finally { if (o) throw s } } return n.a.on_transaction_end(a) }) } } }(); t.a = p } , , , , , function(e, t, r) { "use strict"; var a = "undefined" == typeof localStorage ? null : localStorage; r.d(t, "c", function() { return p }), r.d(t, "b", function() { return h }); var n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function i(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function o(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } function s(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } var l = function() { function e(t) { s(this, e), this._storage_prefix = t } return n(e, [{ key: "_translateKey", value: function(e) { return this._storage_prefix + e } }, { key: "get", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; try { if (this.has(e)) { e = this._translateKey(e); var r = this._get(e); return void 0 === r || null === r ? t : r } return t } catch (e) { return t } } }, { key: "_get", value: function(e) { throw Error("Needs implementation") } }, { key: "set", value: function(e, t) { this._set(this._translateKey(e), t) } }, { key: "_set", value: function(e) { throw Error("Needs implementation") } }, { key: "remove", value: function(e) { this._remove(this._translateKey(e)) } }, { key: "has", value: function(e) { return this._has(this._translateKey(e)) } }, { key: "_remove", value: function(e) { throw Error("Needs implementation") } }, { key: "_has", value: function(e) { throw Error("Needs implementation") } }]), e }() , c = function(e) { function t() { return s(this, t), i(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return o(t, l), n(t, [{ key: "_get", value: function(e) { var t = a.getItem(e); return "" === t ? t : JSON.parse(t) } }, { key: "_set", value: function(e, t) { "" === t ? a.setItem(e, t) : a.setItem(e, JSON.stringify(t)) } }, { key: "_remove", value: function(e) { a.removeItem(e) } }, { key: "_has", value: function(e) { return function(e, t) { return e in t }(e, a) } }, { key: "_getLocalStorage", value: function() { return a } }]), t }() , u = function(e) { function t(e) { s(this, t); var r = i(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r._dict = {}, r } return o(t, l), n(t, [{ key: "_get", value: function(e) { return this._dict.get(e) } }, { key: "_set", value: function(e, t) { this._dict[e] = JSON.stringify(t) } }, { key: "_remove", value: function(e) { delete this._dict[e] } }, { key: "_has", value: function(e) { return e in this._dict } }]), t }() , d = null , p = function(e) { if ("inram" !== e && "persistant" !== e) throw "Please choose inram or persistant storage type"; d = e } , h = function() { return null == d || "persistant" == d } , m = function(e) { function t(e) { s(this, t); var r = i(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return null === a ? r.useInRam() : r.usePersistant(), r } return o(t, l), n(t, [{ key: "isPersistant", value: function() { return this._impl instanceof c } }, { key: "_switchIfNecessary", value: function() { null != d && ("inram" == d ? this.useInRam() : this.usePersistant()) } }, { key: "_get", value: function(e) { return this._switchIfNecessary(), this._impl._get(e) } }, { key: "_set", value: function(e, t) { this._switchIfNecessary(), this._impl._set(e, t) } }, { key: "_remove", value: function(e) { this._switchIfNecessary(), this._impl._remove(e) } }, { key: "_has", value: function(e) { return this._switchIfNecessary(), this._impl._has(e) } }, { key: "useInRam", value: function() { var e = {}; if (this.isPersistant()) { console.log("Switching to InRam storage for private session"); for (var t = 0, r = this._impl._getLocalStorage().length; t < r; ++t) { var a = this._impl._getLocalStorage().key(t); e[a] = this._impl._getLocalStorage().getItem(a) } } for (var n in this._impl = new u(this._storage_prefix), e) this._impl._set(n, e[n]) } }, { key: "usePersistant", value: function() { this._impl = new c(this._storage_prefix) } }]), t }() , f = {}; t.a = function(e) { return e in f || (f[e] = new m(e)), f[e] } } , , , , , , , , , function(e, t, r) { "use strict"; var a = r(19) , n = r(44) , i = r(261) , o = r(233) , s = r(5) , l = r(14) , c = r(30) , u = r(26) , d = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var p = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return d(e, [{ key: "restore", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "default" , t = arguments[1]; return { wallet_name: e = e.toLowerCase(), wallet_object: t } } }, { key: "setWallet", value: function(e, t, r) { return n.a.lock(), e || (e = "default"), function(a) { return new Promise(function(n) { a({ wallet_name: e, create_wallet_password: t, brnkey: r, resolve: n }) } ) } } }, { key: "setBackupDate", value: function() { return i.a.set("backup_recommended", !1), !0 } }, { key: "setBrainkeyBackupDate", value: function() { return !0 } }, { key: "deleteWallet", value: function(e) { return e } }, { key: "createAccountWithPassword", value: function(e, t, r, n, i, s) { var l = a.a.generateKeyFromPassword(e, "owner", t).privKey , c = a.a.generateKeyFromPassword(e, "active", t).privKey , d = a.a.generateKeyFromPassword(e, "memo", t).privKey; return console.log("create account:", e), console.log("new active pubkey", c.toPublicKey().toPublicKeyString()), console.log("new owner pubkey", l.toPublicKey().toPublicKeyString()), console.log("new memo pubkey", d.toPublicKey().toPublicKeyString()), new Promise(function(t, a) { if (r) return o.a.create_account(l.toPublicKey().toPublicKeyString(), c.toPublicKey().toPublicKeyString(), d.toPublicKey().toPublicKeyString(), e, r, n, i, !0).then(t).catch(a); var p = u.a.getSetting("faucet_address"); return window && window.location && "https:" === window.location.protocol && (p = p.replace(/http:\/\//, "https://")), fetch(p + "/api/v1/accounts", { method: "post", mode: "cors", headers: { Accept: "application/json", "Content-type": "application/json" }, body: JSON.stringify({ account: { name: e, owner_key: l.toPublicKey().toPublicKeyString(), active_key: c.toPublicKey().toPublicKeyString(), memo_key: d.toPublicKey().toPublicKeyString(), refcode: s, referrer: n } }) }).then(function(e) { return e.json().then(function(e) { !e || e && e.error ? a(e.error) : t(e) }) }).catch(a).then(function(e) { e && e.error ? a(e.error) : t(e) }).catch(function(e) { a(e) }) } ) } }, { key: "createAccount", value: function(e, t, r, n, i) { if (a.a.isLocked()) { return Promise.reject("wallet locked") } var s = a.a.generateNextKey() , l = a.a.generateNextKey() , c = a.a.generateNextKey() , d = function() { var e = a.a.transaction_update_keys(); return a.a.saveKeys([s, l, c], e).catch(function() { return e.abort() }) }; if (t) return o.a.create_account(s.private_key.toPublicKey().toPublicKeyString(), l.private_key.toPublicKey().toPublicKeyString(), c.private_key.toPublicKey().toPublicKeyString(), e, t, r, n, !0).then(function() { return d() }); var p = u.a.getSetting("faucet_address"); return window && window.location && "https:" === window.location.protocol && (p = p.replace(/http:\/\//, "https://")), fetch(p + "/api/v1/accounts", { method: "post", mode: "cors", headers: { Accept: "application/json", "Content-type": "application/json" }, body: JSON.stringify({ account: { name: e, owner_key: s.private_key.toPublicKey().toPublicKeyString(), active_key: l.private_key.toPublicKey().toPublicKeyString(), memo_key: l.private_key.toPublicKey().toPublicKeyString(), refcode: i, referrer: r } }) }).then(function(e) { return e.json() }).then(function(e) { if (e.error) throw e.error; return d() }).catch(function(e) { throw a.a.decrementBrainKeySequence(), a.a.decrementBrainKeySequence(), a.a.decrementBrainKeySequence(), e }) } }, { key: "claimVestingBalance", value: function(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , n = new s.TransactionBuilder , i = t.balance.amount , o = t.policy[1].coin_seconds_earned , l = t.policy[1].vesting_seconds , c = 0 === (r || l) ? 1 : o / (l * i); return n.add_type_operation("vesting_balance_withdraw", { fee: { amount: "0", asset_id: "1.3.0" }, owner: e, vesting_balance: t.id, amount: { amount: Math.floor(i * c), asset_id: t.balance.asset_id } }), a.a.process_transaction(n, null, !0).then(function(e) {}).catch(function(e) { console.log("vesting_balance_withdraw err:", e) }) } }, { key: "importBalance", value: function(e, t, r) { return function(i) { return new Promise(function(o, c) { l.Apis.instance().db_api(); var u = Object(s.FetchChain)("getAccount", e) , d = n.a.unlock(); o(Promise.all([d, u]).then(function(n) { var o = n[1]; if (void 0 == o) return Promise.reject("Unknown account " + e); var l = [] , c = {} , u = !0 , d = !1 , p = void 0; try { for (var h, m = t[Symbol.iterator](); !(u = (h = m.next()).done); u = !0) { var f = h.value , g = f.vested_balance , _ = f.public_key_string , b = void 0; if (g) { if (0 == g.amount) continue; b = g.amount } else b = f.balance.amount; if (g && g.asset_id != f.balance.asset_id) throw new Error("Vested balance record and balance record asset_id missmatch",g.asset_id,f.balance.asset_id); c[_] = !0, l.push({ fee: { amount: "0", asset_id: "1.3.0" }, deposit_to_account: o.get("id"), balance_to_claim: f.id, balance_owner_key: _, total_claimed: { amount: b, asset_id: f.balance.asset_id } }) } } catch (e) { d = !0, p = e } finally { try { !u && m.return && m.return() } finally { if (d) throw p } } var y = new s.TransactionBuilder , v = !0 , w = !1 , k = void 0; try { for (var x, S = l[Symbol.iterator](); !(v = (x = S.next()).done); v = !0) { var A = x.value; y.add_type_operation("balance_claim", A) } } catch (e) { w = !0, k = e } finally { try { !v && S.return && S.return() } finally { if (w) throw k } } return y.set_expire_seconds(900 + l.length), a.a.process_transaction(y, Object.keys(c), r).then(function(e) { return i(!0), e }) }).catch(function() {})) } ) } } }]), e }(); t.a = c.a.createActions(p) } , , , function(e, t, r) { "use strict"; var a = r(15) , n = r(5) , i = r(37) , o = n.ChainTypes.object_type , s = Object.keys(o) , l = 3e4 , c = {} , u = { order_type: function(e) { if ("string" != typeof e) return !1; var t = e.split(".")[1]; return s[t] }, isAsk: function(e, t) { var r = t.toJS ? t.get("id") : t.id; return e.sell_price ? e.sell_price.quote.asset_id === r : e.call_price ? e.call_price.quote.asset_id === r : void 0 }, isAskOp: function(e) { return e.amount_to_sell.asset_id !== e.fee.asset_id }, limitByPrecision: function(e, t) { var r = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2] , n = t.toJS ? t.get("precision") : t.precision , i = e.toString().split("."); if (1 === i.length || 2 === i.length && i[1].length <= n) return e; var o = a.a.get_asset_precision(n); return e = r ? Math.floor(e * o) / o : Math.round(e * o) / o, isNaN(e) || !isFinite(e) ? 0 : e }, getFeedPrice: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , r = n.ChainStore.getAsset(e.getIn(["quote", "asset_id"])) , i = n.ChainStore.getAsset(e.getIn(["base", "asset_id"])) , o = a.a.get_asset_price(e.getIn(["quote", "amount"]), r, e.getIn(["base", "amount"]), i); return t ? 1 / o : o }, getFinalPrice: function(e, t, r, a) { var n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4] , i = arguments.length > 5 && void 0 !== arguments[5] && arguments[5]; if (r.get("id") === t.get("id")) return 1; var o = this.getMarketName(r, e).marketName , s = this.getMarketName(t, e).marketName , u = this.getMarketName(t, r).marketName; if (c[u] && !i) return n ? c[u].toReal(r.get("id") !== c[u].base.asset_id) : c[u]; var d = a.get(u); if (d && d.price && 0 !== d.volumeBase) return n ? d.price.toReal(r.get("id") !== d.price.base.asset_id) : d.price; var p = void 0 , h = void 0 , m = a.get(s); if (m && m.price) { if (0 === m.volumeBase && 0 === m.volumeQuote) return null; h = m.price.clone() } var f = a.get(o); f && f.price && (p = f.price.clone()); var g = void 0; if (p && h) { if (0 == h.base.amount || 0 == p.base.amount) return null; g = p.times(h) } else p ? g = p : h && (g = h); if (!g) return null; var _ = [g.base.asset_id, g.quote.asset_id]; return -1 === _.indexOf(r.get("id")) || -1 === _.indexOf(t.get("id")) ? null : (c[u] = g, function(e) { setTimeout(function() { delete c[e] }, l) }(), n ? g.toReal(r.get("id") !== g.base.asset_id) : g) }, convertValue: function(e, t, r, a, n) { var o = !(arguments.length > 5 && void 0 !== arguments[5]) || arguments[5] , s = o ? new i.a({ amount: e, asset_id: r.get("id"), precision: r.get("precision") }) : new i.a({ real: e, asset_id: r.get("id"), precision: r.get("precision") }) , l = this.getFinalPrice(n, r, t, a, !1); return 1 === l ? s.getAmount({ real: !o }) : l && l.toReal ? s.times(l).getAmount({ real: !o }) : null }, parseOrder: function(e, t, r) { var n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3] , i = this.isAsk(e, t) , o = a.a.get_asset_precision(r.toJS ? r.get("precision") : r.precision) , s = a.a.get_asset_precision(t.toJS ? t.get("precision") : t.precision) , l = (e.call_price ? r.toJS ? r.get("precision") : r.precision : t.toJS ? t.get("precision") : t.precision, void 0) , c = void 0 , u = void 0; if (e.sell_price) l = i ? e.sell_price.base : e.sell_price.quote, c = i ? e.sell_price.quote : e.sell_price.base; else if (e.call_price) { l = e.call_price.base, c = e.call_price.quote; var d = l.amount / s / (c.amount / o); u = n ? 1 / d : d } "number" != typeof c.amount && (c.amount = parseInt(c.amount, 10)), "number" != typeof l.amount && (l.amount = parseInt(l.amount, 10)); var p = u || c.amount / s / (l.amount / o) , h = a.a.price_to_text(p, e.call_price ? t : r, e.call_price ? r : t) , m = void 0 , f = void 0; return e.debt ? n ? (f = e.debt / o, m = this.limitByPrecision(f / h.full, t)) : (m = this.limitByPrecision(e.debt / o, r), f = h.full * m) : i ? (m = this.limitByPrecision(e.for_sale / o, r), f = h.full * m) : (m = this.limitByPrecision(l.amount / c.amount * e.for_sale / o, r), f = e.for_sale / s), f = this.limitByPrecision(f, t), !i && e.for_sale && (f = this.limitByPrecision(h.full * m, t)), { value: f, price: h, amount: m } }, split_price: function(e, t) { var r = a.a.format_number(e, Math.max(5, t)).split("."); return { int: r[0], dec: r[1] } }, flatten_orderbookchart_highcharts: function(e, t, r, a) { var n = [] , i = void 0; if (r = void 0 !== r && r) { if (e && e.length) if (i = e.length - 1, n.unshift([e[i][0], e[i][1]]), e.length > 1) for (var o = e.length - 2; o >= 0; o--) t && (e[o][1] += e[o + 1][1]), n.unshift([e[o][0], e[o][1]]); else n.unshift([0, e[i][1]]) } else if (e && e.length) if (n.push([e[0][0], e[0][1]]), e.length > 1) for (var s = 1; s < e.length; s++) t && (e[s][1] += e[s - 1][1]), n.push([e[s][0], e[s][1]]); else n.push([1.5 * e[0][0], e[0][1]]); return n }, priceToObject: function(e, t) { var r = 1 , a = 0 , n = 0 , i = 1 , o = e; do { var s = Math.floor(o) , l = r; r = s * r + a, a = l, l = n, n = s * n + i, i = l, o = 1 / (o - s) } while (Math.abs(e - r / n) > 1e-8 * e);if ("ask" === t) return { base: r, quote: n }; if ("bid" === t) return { quote: r, base: n }; throw "Unknown type" }, isMarketAsset: function(e, t) { var r = !1 , a = void 0 , n = !1; return e.get("bitasset") && t.get("id") === e.getIn(["bitasset", "options", "short_backing_asset"]) ? (r = !0, a = { id: e.get("id") }) : t.get("bitasset") && e.get("id") === t.getIn(["bitasset", "options", "short_backing_asset"]) && (n = !0, r = !0, a = { id: t.get("id") }), { isMarketAsset: r, marketAsset: a, inverted: n } }, getMarketName: function(e, t) { if (!e || !t) return { marketName: "_" }; var r = parseInt(e.get("id").split(".")[2], 10) , a = parseInt(t.get("id").split(".")[2], 10) , n = a > r ? t : e , i = a > r ? e : t; return { baseID: r, quoteID: a, marketName: n.get("symbol") + "_" + i.get("symbol"), first: n, second: i } } }; t.a = u } , , function(e, t, r) { "use strict"; (function(e) { r.d(t, "a", function() { return d }), r.d(t, "d", function() { return p }), r.d(t, "b", function() { return h }); var a = r(30) , n = r(50) , i = r(565) , o = r(5) , s = r(64) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function() { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t) } return l(t, [{ key: "incommingWebFile", value: function(t) { return function(r) { var a = new FileReader; a.onload = function(a) { var n = new e(a.target.result,"binary") , i = t.name , o = new Date(t.lastModified).toString(); r({ name: i, contents: n, last_modified: o }) } , a.readAsBinaryString(t) } } }, { key: "incommingBuffer", value: function(e) { return e } }, { key: "reset", value: function() { return !0 } }]), t }() , u = a.a.createActions(c); function d(t) { return new Promise(function(r) { r(n.a.backup().then(function(r) { return function(t, r, a, n) { return new Promise(function(s) { var l = o.PublicKey.fromPublicKeyString(t) , c = o.key.get_random_key(n) , u = JSON.stringify(r, null, 0); Object(i.compress)(u, a, function(t) { var r = o.Aes.encrypt_with_checksum(c, l, null, t) , a = c.toPublicKey() , n = e.concat([a.toBuffer(), r]); s(n) }) } ) }(t, r, 1) })) } ) } function p(e, t, r) { return new Promise(function(a) { a(h(e, t).then(function(e) { return s.a.restore(r, e) })) } ) } function h(t, r) { return new Promise(function(a, n) { e.isBuffer(r) || (r = new e(r,"binary")); var s = o.PrivateKey.fromWif(t) , l = void 0; try { l = o.PublicKey.fromBuffer(r.slice(0, 33)) } catch (e) { throw console.error(e, e.stack), new Error("Invalid backup file") } r = r.slice(33); try { r = o.Aes.decrypt_with_checksum(s, l, null, r) } catch (e) { return console.error("Error decrypting wallet", e, e.stack), void n("invalid_decryption_key") } try { Object(i.decompress)(r, function(e) { try { var t = JSON.parse(e); a(t) } catch (t) { e || (e = ""), console.error("Error parsing wallet json", e.substring(0, 10) + "..."), n("Error parsing wallet json") } }) } catch (e) { return console.error("Error decompressing wallet", e, e.stack), void n("Error decompressing wallet") } } ) } t.c = u } ).call(this, r(126).Buffer) } , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(164) , i = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , o = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var s = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.bindActions(n.a), this.state = this.getInitialState(), this.exportPublicMethods({ reset: this.reset.bind(this) }) } return o(e, [{ key: "getInitialState", value: function() { return { transaction: null, error: null, broadcasting: !1, broadcast: !1, included: !1, trx_id: null, trx_block_num: null, closed: !0, broadcasted_transaction: null, propose: !1, fee_paying_account: null } } }, { key: "onConfirm", value: function(e) { var t = e.transaction , r = e.resolve , a = e.reject , n = this.getInitialState() , o = i({}, n, { transaction: t, closed: !1, broadcasted_transaction: null, resolve: r, reject: a }); this.setState(o) } }, { key: "onClose", value: function() { this.setState({ closed: !0 }) } }, { key: "onBroadcast", value: function(e) { this.setState(e), e.broadcasted_transaction && this.setState({ broadcasted_transaction: this.state.transaction }) } }, { key: "onWasBroadcast", value: function(e) { this.setState({ broadcasting: !1, broadcast: !0 }) } }, { key: "onWasIncluded", value: function(e) { this.setState({ error: null, broadcasting: !1, broadcast: !0, included: !0, trx_id: e[0].id, trx_block_num: e[0].block_num, broadcasted_transaction: this.state.transaction }) } }, { key: "onError", value: function(e) { var t = e.error; this.setState({ broadcast: !1, broadcasting: !1, error: t }) } }, { key: "onTogglePropose", value: function() { this.setState({ propose: !this.state.propose }) } }, { key: "onProposeFeePayingAccount", value: function(e) { this.setState({ fee_paying_account: e }) } }, { key: "reset", value: function() { this.state = this.getInitialState() } }]), e }(); t.a = a.a.createStore(s, "TransactionConfirmStore") } , , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return i }), r.d(t, "c", function() { return o }), r.d(t, "d", function() { return s }); var a = r(49) , n = r(42) , i = { OPEN: { id: "OPEN", name: "OPENLEDGER", baseAPI: a.g, isEnabled: Object(n.a)("OPEN"), selected: !1, options: { enabled: !1, selected: !1 } }, RUDEX: { id: "RUDEX", name: "RUDEX", baseAPI: a.h, isEnabled: Object(n.a)("RUDEX"), isSimple: !0, selected: !1, simpleAssetGateway: !0, fixedMemo: { prepend: "dex:", append: "" }, addressValidatorMethod: "POST", options: { enabled: !1, selected: !1 } }, SPARKDEX: { id: "SPARKDEX", name: "SPARKDEX", baseAPI: a.a, isEnabled: Object(n.a)("SPARKDEX"), selected: !1, options: { enabled: !1, selected: !1 } }, BRIDGE: { id: "BRIDGE", name: "CRYPTO-BRIDGE", baseAPI: a.d, isEnabled: Object(n.a)("BRIDGE"), selected: !1, singleWallet: !0, addressValidatorAsset: !0, useFullAssetName: !0, intermediateAccount: "cryptobridge", options: { enabled: !1, selected: !1 } }, GDEX: { id: "GDEX", name: "GDEX", baseAPI: a.e, isEnabled: Object(n.a)("GDEX"), options: { enabled: !1, selected: !1 } }, XBTSX: { id: "XBTSX", name: "XBTSX", baseAPI: a.j, isEnabled: Object(n.a)("XBTSX"), isSimple: !0, selected: !1, simpleAssetGateway: !1, addressValidatorMethod: "POST", options: { enabled: !1, selected: !1 } }, CITADEL: { id: "CITADEL", name: "CITADEL", baseAPI: a.c, isEnabled: Object(n.a)("CITADEL"), selected: !1, assetWithdrawlAlias: { monero: "xmr" }, options: { enabled: !1, selected: !1 } } } , o = Object.keys(i); function s(e) { return o.reduce(function(t, r) { return e.forEach(function(e) { t.push(r + "." + e) }), t }, []) } t.b = i } , , function(e, t, r) { "use strict"; var a = r(5) , n = r(15) , i = r(4) , o = r.n(i) , s = r(152) , l = ["polonie-wallet", "1.2.27842", "polonie-xwallet", "1.2.27850", "poloniewallet", "1.2.20873", "poloniex-deposit", "1.2.25426", "poloniex-wallet", "1.2.20821", "poloniexwall-et", "1.2.28079", "poloniexwallett", "1.2.28188", "poloniexwall-t", "1.2.28072", "poloniexwalle", "1.2.20580", "poloniex", "1.2.2340", "poloneix", "1.2.24900"] , c = ["bittrex-deopsit", "1.2.34361", "bittrex-deposi", "1.2.23638", "bittrex-depositt", "1.2.23640", "bittrex-dposit", "1.2.32594", "bittrex", "1.2.2343", "bittrex-deposits", "1.2.161093"] , u = ["aacoin", "1.2.1005892", "abucoins", "1.2.463335", "acinq", "1.2.878058", "aex-bitcny-deposit", "1.2.455052", "aex-bts-deposit-walle", "1.2.454205", "aex-cnc-cza", "1.2.878029", "aex88", "1.2.831039", "aexdepositbm", "1.2.1031653", "aida", "1.2.539184", "aidosmarket", "1.2.787065", "allah-iraq", "1.2.979541", "aliant", "1.2.878061", "alta", "1.2.878079", "altcointrader", "1.2.787049", "antpool", "1.2.524132", "aporoo", "1.2.1018792", "apus", "1.2.999997", "arcbit", "1.2.465096", "archive", "1.2.786888", "armory", "1.2.465097", "ate-io-bts", "1.2.730842", "atoken", "1.2.599845", "azex", "1.2.986608", "b2bx", "1.2.897119", "bancor.network", "1.2.781941", "barterdex", "1.2.787093", "baseline", "1.2.599803", "bbex", "1.2.484215", "bbts001", "1.2.815730", "bc1q", "1.2.791043", "bcoin", "1.2.1029906", "bcos", "1.2.446259", "beechat", "1.2.599849", "bepal", "1.2.605394", "bft-dpos", "1.2.1026134", "bgogo", "1.2.1007568", "bhex", "1.2.1030020", "bibox.com", "1.2.621440", "bigbag", "1.2.789783", "bigether", "1.2.694013", "bigether.vip", "1.2.694015", "bilaxy", "1.2.1023782", "binance-btc-1", "1.2.467525", "binance-bts-i", "1.2.467527", "binance-bts-l", "1.2.467526", "binancecleos", "1.2.1017616", "bishengtopex", "1.2.1029188", "bisq", "1.2.787078", "bisq.network", "1.2.787079", "bitarg", "1.2.878042", "bitasiaex", "1.2.878018", "bitbill", "1.2.524063", "bitbill.app", "1.2.1000037", "bitbns", "1.2.782094", "bitcoinindonesi", "1.2.609628", "bitcoinindonesia", "1.2.35250", "bitcointrade", "1.2.781957", "bitfinexdep1", "1.2.1019320", "bitflip", "1.2.787068", "bitflyer.com", "1.2.901469", "bithd", "1.2.745701", "bitholic", "1.2.787035", "bitinka", "1.2.781928", "bitkk", "1.2.878012", "bitkkchubei00", "1.2.815733", "bitkkchubei001", "1.2.815732", "bitkkchubei02", "1.2.815734", "bitkonan", "1.2.787113", "bitkop", "1.2.962262", "bitmaszyna", "1.2.787101", "bitoex", "1.2.599690", "bitonic", "1.2.781953", "bitopro", "1.2.885538", "bitpaction", "1.2.878571", "bitpal", "1.2.599671", "bitpesa", "1.2.742633", "bitpie", "1.2.465092", "bitrefill", "1.2.878076", "bits.farm", "1.2.749087", "bitsblockchain", "1.2.781926", "bitsfarm", "1.2.749090", "bitshares-app", "1.2.1000006", "bitshares.app", "1.2.1000008", "bitspark-hold", "1.2.1032019", "bitun", "1.2.782084", "bitupro", "1.2.878037", "bitvip.com", "1.2.599832", "bjex", "1.2.540676", "bkex", "1.2.988882", "blind", "1.2.745696", "blind-transfer", "1.2.745698", "blocktrade", "1.2.161090", "bloex", "1.2.1030028", "blox", "1.2.940022", "bonus-event-in-end-of-years-2018", "1.2.1208797", "bsend001", "1.2.815731", "btc-alpha.com", "1.2.781944", "btc.eos", "1.2.659986", "btc38.com", "1.2.92089", "btcalph", "1.2.878023", "btcmarkets.net", "1.2.781936", "btcxindia", "1.2.782095", "btex", "1.2.1026071", "bts.app", "1.2.1000010", "bts.eos", "1.2.659985", "btsalpha", "1.2.878025", "btsid", "1.2.599680", "btsmoney", "1.2.32810", "burstnation", "1.2.787122", "buyucoin", "1.2.812978", "buyucoin-walle", "1.2.812979", "c-patex", "1.2.787114", "cashaddr", "1.2.791045", "cashierest", "1.2.878112", "cetus", "1.2.1000009", "cex.com", "1.2.599797", "chaince", "1.2.939977", "chaince.com", "1.2.939982", "chainceoneos", "1.2.1020153", "changelly", "1.2.599892", "changenow", "1.2.620292", "chaoex.com", "1.2.599812", "citcon", "1.2.878074", "cobo", "1.2.742630", "cobowalletcn", "1.2.1026084", "cobowalletio", "1.2.1026083", "cohescure", "1.2.705164", "coin.space", "1.2.599877", "coin2co", "1.2.1026070", "coin900", "1.2.557720", "coin900.com", "1.2.620298", "coinbase", "1.2.709", "coinbase.com", "1.2.92130", "coinbe", "1.2.787120", "coinbell", "1.2.782088", "coinbene", "1.2.465091", "coinbig", "1.2.707653", "coinbig.com", "1.2.707655", "coincode", "1.2.599683", "coincoming", "1.2.620294", "coineal", "1.2.999276", "coinegg.main", "1.2.447093", "coinex", "1.2.467667", "coinex.com", "1.2.553120", "coinexchange", "1.2.463328", "coinexmarket", "1.2.897140", "coinfloorex", "1.2.812983", "coingeto", "1.2.878077", "coinhouse", "1.2.787106", "coinhub", "1.2.897122", "coinlink", "1.2.787076", "coinmate", "1.2.463339", "coinoah", "1.2.940511", "coinoah.com", "1.2.940514", "coinpark", "1.2.999275", "coinrail", "1.2.781937", "coinsave", "1.2.999292", "coinstocks", "1.2.745645", "cointiger-deposit-bts", "1.2.1029192", "cointiger-deposit-bts0", "1.2.1029193", "cointiger-deposit-bts1", "1.2.1029194", "cointobe", "1.2.599669", "cointome", "1.2.693998", "cointopay", "1.2.742639", "coinut", "1.2.463336", "coinut.com", "1.2.781955", "coinw", "1.2.462799", "coinw.com", "1.2.599798", "coinyee", "1.2.878013", "coldlar", "1.2.465101", "committee", "1.2.599999", "committee-101", "1.2.999719", "committee-102", "1.2.999727", "committee-103", "1.2.999720", "committee-104", "1.2.999724", "committee-105", "1.2.999722", "committee-106", "1.2.999721", "committee-107", "1.2.999723", "committee-108", "1.2.999725", "committee-109", "1.2.999728", "committee-110", "1.2.999726", "committee-accou", "1.2.999694", "committee-accoun", "1.2.807841", "committee-accounr", "1.2.500266", "committee-cnytrade", "1.2.999697", "committee-usdoperato", "1.2.999696", "committe-security", "1.2.1273199", "contractland", "1.2.878062", "counterwallet", "1.2.787112", "crux", "1.2.999998", "cryptobridg", "1.2.614370", "cryptobridge-payout", "1.2.745721", "cryptoderivatives", "1.2.787129", "cryptoderivatives.market", "1.2.787130", "cryptomkt", "1.2.787095", "cryptomkt.com", "1.2.787094", "crypton", "1.2.1026067", "cryptonize", "1.2.999284", "crypviser", "1.2.1026359", "ctpmall", "1.2.599726", "cx-bitcny-deposit-wallet", "1.2.827934", "cx-bitcny-withdraw-wallet", "1.2.827938", "cx-bts-deposit-wallet", "1.2.827946", "cx-bts-withdraw-wallet", "1.2.827943", "daex", "1.2.792704", "dax-deposit", "1.2.970985", "dax-exchange", "1.2.970987", "dax-mn", "1.2.970989", "dax-withdraw", "1.2.970993", "ddex", "1.2.599757", "decred", "1.2.742642", "dewone", "1.2.749261", "dex.top", "1.2.962058", "dexko", "1.2.694029", "dgtmarket", "1.2.787107", "diceex", "1.2.999511", "diceex-bit", "1.2.999518", "diceex-bitcn", "1.2.999513", "diceex-bitusd", "1.2.999517", "diceex-btc", "1.2.999514", "diceex-cny", "1.2.999516", "dig-exchange", "1.2.795378", "digifinex", "1.2.878066", "digitaex", "1.2.693969", "door.one", "1.2.620671", "dragonex", "1.2.599785", "eclair", "1.2.878057", "ecoex-bts-1", "1.2.990386", "eidoo", "1.2.782093", "eip-20", "1.2.658953", "eip20", "1.2.658949", "electrum", "1.2.465095", "eligma", "1.2.878056", "entapay", "1.2.787075", "enumivo", "1.2.898598", "eos.btc", "1.2.659984", "eos.bts", "1.2.659983", "eosdac", "1.2.878054", "eosfinix", "1.2.742627", "erc-20", "1.2.611002", "erc-721", "1.2.611005", "erc721", "1.2.611000", "etherflyer", "1.2.749253", "etherflyer.com", "1.2.749255", "ethfinex", "1.2.781930", "ewex", "1.2.999306", "excambriorex", "1.2.787124", "exnow", "1.2.1006068", "expie", "1.2.658199", "expie.com", "1.2.658200", "exvo", "1.2.878032", "exx.com", "1.2.599826", "exxbtc001", "1.2.815746", "exxbts00", "1.2.815718", "exxbts01", "1.2.815719", "exxsend00", "1.2.815720", "exxsend01", "1.2.815723", "ezbtc", "1.2.787057", "fargobase", "1.2.463337", "fhex", "1.2.1030027", "firefoxotc", "1.2.812985", "forkdelta", "1.2.766759", "freiexchange", "1.2.787118", "gate-io-b", "1.2.743303", "gate-io-bt", "1.2.730841", "gate-io-btc", "1.2.730836", "gateio", "1.2.797076", "gateiowallet", "1.2.1020027", "gcox", "1.2.789782", "gdexioforeos", "1.2.1031969", "geos", "1.2.940146", "geta-io-bts", "1.2.730843", "geth", "1.2.599793", "ggex", "1.2.999285", "glidera", "1.2.878068", "greenaddress", "1.2.599879", "greenbits", "1.2.599875", "grus", "1.2.999999", "guldentrader", "1.2.787126", "hackers", "1.2.21846", "hadax", "1.2.705160", "hadax.com", "1.2.705162", "hbus", "1.2.1026050", "hcoin", "1.2.1018787", "heatwallet", "1.2.787111", "heatwallet.com", "1.2.787109", "heztanrqgene", "1.2.1020148", "hitbtc-exchang", "1.2.984724", "hitbtc.exchange", "1.2.984983", "hotbit", "1.2.643056", "huobi-bts-deposi", "1.2.852510", "huobi-deposi", "1.2.852506", "huobideposit", "1.2.1019310", "huobipro", "1.2.764427", "iceex-bitcny", "1.2.999519", "ico-china", "1.2.705561", "icoape", "1.2.706057", "icoape.com", "1.2.706060", "idax", "1.2.787045", "idax-deposi", "1.2.970984", "idax-exchang", "1.2.970986", "idax-nm", "1.2.970988", "idax-withdra", "1.2.970991", "idax.deposit", "1.2.970994", "idax.exchange", "1.2.970995", "idax.withdraw", "1.2.970997", "idex", "1.2.749252", "idex.market", "1.2.749251", "idle", "1.2.900001", "ifish", "1.2.800510", "independentreserve", "1.2.781950", "indodax", "1.2.878015", "indus", "1.2.1000007", "infinitycoin", "1.2.787092", "infinitycoin.exchange", "1.2.787091", "iquant", "1.2.787044", "issuer", "1.2.424070", "itbtc-exchange", "1.2.984791", "jaxx", "1.2.524055", "jrex", "1.2.1030022", "kairex", "1.2.878049", "kcash", "1.2.562936", "keepkey", "1.2.599863", "kkcoin", "1.2.519919", "kkcoin.wallet", "1.2.519960", "kkcoinwallet", "1.2.519959", "koineks.com", "1.2.781952", "koinim.com", "1.2.781958", "krakenkraken", "1.2.1020138", "kucoin", "1.2.463330", "kucoindoteos", "1.2.1084351", "lakebtc", "1.2.463326", "lakebtc.com", "1.2.781938", "latoken", "1.2.897147", "lbank.info", "1.2.621443", "leoxchange", "1.2.787121", "licai.deposit", "1.2.675961", "liteforex", "1.2.782098", "litepay", "1.2.742614", "liteshares", "1.2.899346", "livecoi-net", "1.2.183860", "livecoin.net", "1.2.322811", "livecoinnet", "1.2.322812", "llex", "1.2.999290", "locktrades", "1.2.161091", "loois", "1.2.999301", "loom", "1.2.897934", "ls123", "1.2.394942", "luckygame", "1.2.971018", "luckygames", "1.2.971013", "luckygames-i", "1.2.971014", "lupus", "1.2.1000005", "lykke.com", "1.2.787036", "lyra", "1.2.1000000", "mai1100", "1.2.158598", "mark.space", "1.2.897148", "meet-up", "1.2.999282", "meet.one", "1.2.782091", "meetup", "1.2.999280", "memo.cash", "1.2.878020", "mensa", "1.2.1000004", "mercadobitcoin", "1.2.781951", "metamask", "1.2.963272", "mexc", "1.2.924294", "mmex", "1.2.999287", "more.top", "1.2.782089", "morphtoken", "1.2.878065", "msigna", "1.2.465098", "mycelium", "1.2.599873", "mycrypto", "1.2.742624", "mydicewallet", "1.2.787099", "mydicewallet.com", "1.2.787096", "myetherwallet", "1.2.599843", "mywallet-1023", "1.2.999689", "n0stradumpus", "1.2.435299", "nanex", "1.2.897150", "negociecoins", "1.2.897142", "neraex", "1.2.463333", "neraex.pro", "1.2.781933", "nevbit", "1.2.463340", "new.one", "1.2.782090", "nicehash", "1.2.812986", "nix-e", "1.2.787123", "nocks", "1.2.787070", "oasisdex", "1.2.787061", "obit-wallet", "1.2.800539", "octaex", "1.2.897139", "ocx-bitcny-deposit-walle", "1.2.827932", "ocx-bitcny-withdraw-walle", "1.2.827937", "ocx-bts-deposit-walle", "1.2.827945", "ocx-bts-withdraw-walle", "1.2.827942", "oex.com", "1.2.694035", "ointiger-deposit-bts01", "1.2.1029195", "ojbk", "1.2.878030", "okbtothemoon", "1.2.1029923", "okcoinkr", "1.2.854387", "omicrex", "1.2.897131", "ommittee-account", "1.2.999695", "omniexplorer", "1.2.787128", "omniexplorer.info", "1.2.787127", "onchainfx", "1.2.742618", "onchainfx.com", "1.2.742621", "ooex", "1.2.1026069", "ooobtc", "1.2.897124", "openledger-support", "1.2.153124", "otcbtc", "1.2.599673", "otcbtcdotcom", "1.2.1020116", "otcbtcdotnet", "1.2.1028053", "otcwallet", "1.2.1029165", "otcx", "1.2.492286", "ourdax", "1.2.599817", "ovis", "1.2.897135", "p2pbucks", "1.2.766633", "palmpay", "1.2.745458", "paradex", "1.2.962048", "pavo", "1.2.1000001", "pay.bts.com", "1.2.92203", "pay.coinbase.com", "1.2.92185", "paymium", "1.2.787072", "pieotc", "1.2.878047", "pinocaitoken", "1.2.1026118", "pocketeos", "1.2.1026453", "poim", "1.2.475488", "pomelo", "1.2.965566", "protokenbank", "1.2.1026086", "pxn-eos", "1.2.1028325", "pxn-incom", "1.2.1026076", "pxn.eos", "1.2.1028326", "pxn.one", "1.2.999512", "pxneos", "1.2.1028324", "pxneos-income", "1.2.1028328", "pxneosincome", "1.2.1028322", "pxnincome", "1.2.1026079", "pyxis", "1.2.1000003", "qbao", "1.2.650495", "qcash", "1.2.473774", "qlink", "1.2.878073", "qtum-electrum", "1.2.761861", "quadrigacx", "1.2.463332", "rabobit", "1.2.782096", "radarrelay", "1.2.787081", "radarrelay.com", "1.2.787080", "ranswiser-wallet", "1.2.161364", "referrer", "1.2.745704", "renrenbit", "1.2.999291", "richcore", "1.2.688600", "richcore.com", "1.2.688621", "rippex", "1.2.787117", "ripple.com", "1.2.92097", "ripplechina.net", "1.2.787054", "ripplefox", "1.2.787038", "rootoken", "1.2.742632", "rrex", "1.2.999289", "rudexgateway", "1.2.1031975", "safewallet", "1.2.693983", "secp256k1", "1.2.539247", "sendy", "1.2.878072", "simex.global", "1.2.781934", "sistemkoin", "1.2.897127", "spectrocoin", "1.2.898120", "stealth", "1.2.745699", "stellarterm", "1.2.787039", "stellarterm.com", "1.2.787040", "stex", "1.2.749264", "stex.exchange", "1.2.749263", "stronghold", "1.2.781945", "superleague1", "1.2.1026458", "support-team", "1.2.1265329", "swft.pro", "1.2.940110", "swftc", "1.2.533080", "swftcoin", "1.2.533082", "tcalpha", "1.2.878024", "tcash", "1.2.749256", "tdax", "1.2.693995", "tdax.com", "1.2.693996", "tdex", "1.2.1002884", "therocktrading", "1.2.787052", "therocktrading.com", "1.2.787051", "thinkbit", "1.2.1007570", "tidebit", "1.2.787053", "token.store", "1.2.787056", "token360", "1.2.999298", "token365", "1.2.999295", "tokenlon", "1.2.878033", "tokenxx", "1.2.754276", "top.one", "1.2.599746", "topbtc", "1.2.463334", "topbtc.com", "1.2.781935", "toshi", "1.2.878046", "tradebytrade", "1.2.781947", "tradebytrade.com", "1.2.781946", "tradeogre", "1.2.787088", "tradesatoshi.com", "1.2.787041", "transwiser-walle", "1.2.161362", "transwiser-wallets", "1.2.161363", "truecoin", "1.2.800533", "trueusd", "1.2.791378", "trusty.fund", "1.2.878014", "tusd", "1.2.800535", "tuxexchange", "1.2.787103", "tuxexchange.com", "1.2.787102", "u-coin", "1.2.494585", "uckygames-io", "1.2.971015", "unblock", "1.2.878069", "uncoinex", "1.2.475307", "unicode", "1.2.800540", "uniex", "1.2.1007569", "uobi-bts-deposit", "1.2.852511", "uobi-deposit", "1.2.852508", "upbitwallets", "1.2.1020123", "usadae", "1.2.887944", "usadae.com", "1.2.887947", "usdc", "1.2.929449", "utxo", "1.2.878026", "uuex", "1.2.1026068", "uyucoin-wallet", "1.2.812980", "vebitcoin", "1.2.781940", "vela", "1.2.1000002", "virtacoinworld", "1.2.787131", "vuniyuoxoeub", "1.2.1026794", "vvbtc", "1.2.959755", "walletdunamu", "1.2.1020156", "wazirx", "1.2.742650", "wetez", "1.2.1026072", "winex.pro", "1.2.599675", "wirex", "1.2.599807", "www.binance.com", "1.2.553014", "www.coinex.com", "1.2.553121", "www.hadax.com", "1.2.705161", "www.usadae.com", "1.2.887949", "www.yyex.com", "1.2.731038", "www.zhaobi.com", "1.2.675956", "xbrick", "1.2.458197", "xbrick.btc", "1.2.459690", "xbrick.cny", "1.2.459688", "xbrick.usd", "1.2.459689", "xbtce", "1.2.463329", "xdaex", "1.2.1026062", "xdag", "1.2.999278", "xn-income", "1.2.1026077", "xxbts001", "1.2.815729", "xxsend001", "1.2.815727", "yex.com", "1.2.734592", "yhex", "1.2.1030023", "yobit-wall", "1.2.800538", "yobit-walle", "1.2.800536", "yobtc", "1.2.599688", "yun.bts", "1.2.161529", "yunbi.com", "1.2.92101", "yuxiao", "1.2.1031166", "yyex", "1.2.731035", "yyex.com", "1.2.731037", "z-201", "1.2.1025474", "zbbtc", "1.2.442315", "zbbtc001", "1.2.815745", "zbbts00", "1.2.815716", "zbbts01", "1.2.815717", "zbeoscharge1", "1.2.1019012", "zbsen", "1.2.745722", "zbsend00", "1.2.815712", "zbsend01", "1.2.815714", "zecoex", "1.2.990383", "zecoex-btc", "1.2.990385", "zecoex-bts", "1.2.990384", "zeniex", "1.2.681261", "zhaobi", "1.2.599681", "zhaobi.com", "1.2.675955", "zhex", "1.2.1030026", "zilla", "1.2.878051", "openledger-gex", "1.2.1540900", "enter", "1.2.12300", "hi", "1.2.707", "bts", "1.2.383", "eos-bounties", "1.2.1055529", "jobs001", "1.2.1147979", "noble-group", "1.2.997905", "my-change", "1.2.637403", "openledger-upgrade", "1.2.1544053", "cryptobridge-upgrade", "1.2.1570095", "aex-bts-deposite-wallet", "1.2.1586667", "gdex-security", "1.2.1568938", "escrow-pannf", "1.2.1586672", "openledger-security", "1.2.1547751", "openlegder-dex", "1.2.1566849", "committee-collateral", "1.2.1607515", "toolate1488", "1.2.486728", "beos-upgrade", "1.2.1600697", "cryptobridge-guarantee", "1.2.1602050", "construction-rates", "1.2.184377", "committee-update", "1.2.1600131", "committee-securuti", "1.2.1544160", "committee-seccurity", "1.2.1546307", "committee-proposalss", "1.2.1559233", "committee-account-update", "1.2.1589838", "committee-security-update", "1.2.1592605", "committee-accounr", "1.2.500266"] , d = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var p = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return d(e, null, [{ key: "checkFeePool", value: function(e, t) { if (e = e.toJS ? e : a.ChainStore.getAsset(e)) { var r = a.ChainStore.getObject(e.get("dynamic_asset_data_id")); if (r) return parseInt(r.get("fee_pool"), 10) >= t } } }, { key: "getPossibleFees", value: function(e, t) { var r = this , i = a.ChainStore.getAsset("1.3.0"); if (!(e = !e || e.toJS ? e : a.ChainStore.getAccount(e)) || !i) return { assets: ["1.3.0"], fees: { "1.3.0": 0 } }; var o = [] , l = {} , c = a.ChainStore.getObject("2.0.0") , u = Object(s.c)(t, null, c) , d = e.get("balances"); return d ? (d.forEach(function(e, t) { var s = a.ChainStore.getObject(e) , c = s ? parseInt(s.get("balance"), 10) : 0 , d = !1 , p = void 0; if ("1.3.0" === t && c >= u) d = !0; else if (c && a.ChainStore.getAsset(t)) { var h = a.ChainStore.getAsset(t) , m = n.a.convertPrice(i, h.getIn(["options", "core_exchange_rate"]).toJS(), null, h.get("id")); p = parseInt(n.a.convertValue(m, u, i, h), 10), parseInt(p, 10) !== p && (p += 1), c >= p && r.checkFeePool(h, p) && (d = !0) } d && (o.push(t), l[t] = p || u) }), { assets: o, fees: l }) : { assets: ["1.3.0"], fees: { "1.3.0": 0 } } } }, { key: "getFinalFeeAsset", value: function(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "1.3.0" , a = this.getPossibleFees(e, t).assets; return 1 === a.length ? r = a[0] : a.length > 0 && -1 === a.indexOf(r) && (r = a[0]), r } }, { key: "isKnownScammer", value: function(e) { var t = null; return -1 !== l.indexOf(e) ? t = o.a.translate("account.polo_scam") : -1 !== c.indexOf(e) ? t = o.a.translate("account.bittrex_scam") : -1 !== u.indexOf(e) && (t = o.a.translate("account.other_scam")), t } }]), e }(); t.a = p } , , function(e, t, r) { "use strict"; r.d(t, "d", function() { return p }), r.d(t, "e", function() { return h }), r.d(t, "f", function() { return m }), r.d(t, "k", function() { return f }), r.d(t, "c", function() { return g }), r.d(t, "b", function() { return _ }), r.d(t, "g", function() { return b }), r.d(t, "j", function() { return y }), r.d(t, "l", function() { return w }), r.d(t, "h", function() { return k }), r.d(t, "m", function() { return x }), r.d(t, "i", function() { return A }), r.d(t, "a", function() { return E }); var a = r(55) , n = r(49) , i = r(78) , o = new a.a("") , s = {} , l = {} , c = {} , u = 3e4; function d(e) { c[e] = setTimeout(function() { delete l[e], delete c[e] }, u) } function p() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.g.BASE + n.g.COINS_LIST , t = "fetchCoins_" + e , r = s[t]; return l[t] ? Promise.resolve(l[t]) : (r || (s[t] = r = fetch(e).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(t) { throw console.log("fetchCoins error from " + e + ": " + t), t })), new Promise(function(e, a) { r.then(function(r) { l[t] = r, e(r), delete s[t], c[t] || d(t) }).catch(a) } )) } function h() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.g.BASE + n.g.COINS_LIST; return fetch(e).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(t) { throw console.log("fetchCoinsSimple error from " + e + ": " + t), t }) } function m() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.b.BASE + n.b.TRADING_PAIRS , t = "fetchTradingPairs_" + e , r = s[t]; return l[t] ? Promise.resolve(l[t]) : (r || (s[t] = r = fetch(e, { method: "get", headers: new Headers({ Accept: "application/json" }) }).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(t) { throw console.log("fetchTradingPairs error from " + e + ": " + t), t })), new Promise(function(e, a) { r.then(function(r) { l[t] = r, e(r), delete s[t], c[t] || d(t) }).catch(a) } )) } function f(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : n.b.BASE + n.b.DEPOSIT_LIMIT; return fetch(r + "?inputCoinType=" + encodeURIComponent(e) + "&outputCoinType=" + encodeURIComponent(t), { method: "get", headers: new Headers({ Accept: "application/json" }) }).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(r) { console.log("error fetching deposit limit of", e, t, r) }) } function g(e, t, r) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : n.b.BASE + n.b.ESTIMATE_OUTPUT; return fetch(a + "?inputAmount=" + encodeURIComponent(e) + "&inputCoinType=" + encodeURIComponent(t) + "&outputCoinType=" + encodeURIComponent(r), { method: "get", headers: new Headers({ Accept: "application/json" }) }).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(e) { console.log("error fetching deposit limit of", t, r, e) }) } function _(e, t, r) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : n.b.BASE + n.b.ESTIMATE_INPUT; return fetch(a + "?outputAmount=" + encodeURIComponent(e) + "&inputCoinType=" + encodeURIComponent(t) + "&outputCoinType=" + encodeURIComponent(r), { method: "get", headers: new Headers({ Accept: "application/json" }) }).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(e) { console.log("error fetching deposit limit of", t, r, e) }) } function b() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.g.BASE + n.g.ACTIVE_WALLETS , t = "getActiveWallets_" + e , r = s[t]; return l[t] ? Promise.resolve(l[t]) : (r || (s[t] = r = fetch(e).then(function(e) { return e.json().then(function(e) { return e }) }).catch(function(t) { console.log("error fetching blocktrades active wallets", t, e) })), new Promise(function(e) { r.then(function(r) { l[t] = r, e(r), delete s[t], c[t] || d(t) }) } )) } function y(e) { var t = e.coin , r = e.account , a = e.stateCallback , i = { coin: t, account: r } , o = JSON.stringify(i); fetch(n.g.BASE + "/simple-api/get-last-address", { method: "POST", headers: new Headers({ Accept: "application/json", "Content-Type": "application/json" }), body: o }).then(function(e) { e.json().then(function(e) { var t = { address: e.address, memo: e.memo || null, error: e.error || null, loading: !1 }; a && a(t) }, function(e) { console.log("error: ", e), a && a({ address: e.message, memo: null }) }) }, function(e) { console.log("error: ", e), a && a({ address: e.message, memo: null }) }).catch(function(e) { console.log("fetch error:", e) }) } var v = {}; function w(e) { var t = e.inputCoinType , r = e.outputCoinType , a = e.outputAddress , o = e.url , s = void 0 === o ? n.g.BASE : o , l = e.stateCallback , c = e.selectedGateway , u = i.a[c] , d = { inputCoinType: t = u && u.assetWithdrawlAlias ? u.assetWithdrawlAlias[t.toLowerCase()] || t.toLowerCase() : t, outputCoinType: r, outputAddress: a } , p = JSON.stringify(d); v[p] || (v[p] = !0, fetch(s + "/simple-api/initiate-trade", { method: "post", headers: new Headers({ Accept: "application/json", "Content-Type": "application/json" }), body: p }).then(function(e) { e.json().then(function(e) { delete v[p]; var t = { address: e.inputAddress || "unknown", memo: e.inputMemo, error: e.error || null }; l && l(t) }, function(e) { console.log("error: ", e), delete v[p], l && l(null) }) }, function(e) { console.log("error: ", e), delete v[p], l && l(null) }).catch(function(e) { console.log("fetch error:", e), delete v[p] })) } function k(e) { var t = e.allCoins , r = e.tradingPairs , a = e.backer , n = i.a[a] , o = {}; n.singleWallet && t.forEach(function(e) { return o[e.backingCoinType] = e }), t.forEach(function(e) { return o[e.coinType] = e }); var s = {}; r.forEach(function(e) { s[e.inputCoinType] || (s[e.inputCoinType] = {}), s[e.inputCoinType][e.outputCoinType] = !0 }); var l = []; return t.forEach(function(e) { var t = o[e.backingCoinType]; if (e.walletSymbol.startsWith(a + ".") && e.backingCoinType && t) { var r = s[e.backingCoinType] && s[e.backingCoinType][e.coinType] , i = s[e.coinType] && s[e.coinType][e.backingCoinType]; l.push({ name: t.name, intermediateAccount: n.intermediateAccount ? n.intermediateAccount : t.intermediateAccount, gateFee: t.gateFee || t.transactionFee, walletType: t.walletType, backingCoinType: n.singleWallet ? e.backingCoinType.toUpperCase() : t.walletSymbol, minAmount: t.minAmount || 0, maxAmount: t.maxAmount || 999999999, symbol: e.walletSymbol, supportsMemos: t.supportsOutputMemos, depositAllowed: r, withdrawalAllowed: i }) } }), l } function x(e) { var t = e.url , r = void 0 === t ? n.b.BASE : t , a = e.walletType , i = e.newAddress , o = e.output_coin_type , s = void 0 === o ? null : o , l = e.method , c = void 0 === l ? null : l; return i ? c && "GET" != c ? "POST" == c ? fetch(r + "/wallets/" + a + "/check-address", { method: "post", headers: new Headers({ Accept: "application/json", "Content-Type": "application/json" }), body: JSON.stringify({ address: i }) }).then(function(e) { return e.json().then(function(e) { return e.isValid }) }).catch(function(e) { console.log("validate error:", e) }) : void 0 : (r += "/wallets/" + a + "/address-validator?address=" + encodeURIComponent(i), s && (r += "&outputCoinType=" + s), fetch(r, { method: "get", headers: new Headers({ Accept: "application/json", "Content-Type": "application/json" }) }).then(function(e) { return e.json().then(function(e) { return e.isValid }) }).catch(function(e) { console.log("validate error:", e) })) : new Promise(function(e) { return e() } ) } var S = {}; function A(e) { var t = e.input_coin_type , r = e.output_coin_type , a = e.url , n = e.account_name; if (!t || !r) return Promise.reject(); var i = JSON.stringify({ inputCoinType: t, outputCoinType: r, outputAddress: n, inputMemo: "blocktrades conversion: " + t + "to" + r }) , o = a + t + r + n; return new Promise(function(e, t) { if (S[o]) return e(S[o]); fetch(a + "/simple-api/initiate-trade", { method: "post", headers: new Headers({ Accept: "application/json", "Content-Type": "application/json" }), body: i }).then(function(r) { r.json().then(function(t) { S[o] = t, e(t) }, t).catch(t) }).catch(t) } ) } var E = { has: function(e) { return o.has("history_address_" + e) }, set: function(e) { var t = e.wallet , r = e.addresses; o.set("history_address_" + t, r) }, get: function(e) { return o.get("history_address_" + e, []) }, setLast: function(e) { var t = e.wallet , r = e.address; o.set("history_address_last_" + t, r) }, getLast: function(e) { return o.get("history_address_last_" + e, "") } } } , function(e, t, r) { "use strict"; var a = r(30) , n = r(19) , i = r(291) , o = r(24) , s = r(575) , l = r(350) , c = r(162) , u = r(64) , d = r(5) , p = r(99) , h = r(50) , m = r(11) , f = r.n(m) , g = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }() , _ = function e(t, r, a) { null === t && (t = Function.prototype); var n = Object.getOwnPropertyDescriptor(t, r); if (void 0 === n) { var i = Object.getPrototypeOf(t); return null === i ? void 0 : e(i, r, a) } if ("value"in n) return n.value; var o = n.get; return void 0 !== o ? o.call(a) : void 0 }; var b = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e.bindListeners({ onRestore: u.a.restore, onSetWallet: u.a.setWallet, onSetBackupDate: u.a.setBackupDate, onSetBrainkeyBackupDate: u.a.setBrainkeyBackupDate, onDeleteWallet: u.a.deleteWallet }), _(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "_export", e).call(e, "init", "setNewWallet", "onDeleteWallet", "onDeleteAllWallets"), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, p["a"]), g(t, [{ key: "_getInitialState", value: function() { return { new_wallet: void 0, current_wallet: void 0, wallet_names: f.a.Set() } } }, { key: "onRestore", value: function(e) { var t = this , r = e.wallet_name , a = e.wallet_object; h.a.restore(r, a).then(function() { return o.a.setWallet(r), t.onSetWallet({ wallet_name: r }) }).catch(function(e) { return console.error(e), Promise.reject(e) }) } }, { key: "onSetWallet", value: function(e) { var t = this , r = e.wallet_name , a = void 0 === r ? "default" : r , u = e.create_wallet_password , p = e.brnkey , m = e.resolve , f = new Promise(function(e) { if (/[^a-z0-9_-]/.test(a) || "" === a) throw new Error("Invalid wallet name"); if (t.state.current_wallet !== a) { var r; if (!t.state.wallet_names.has(a)) { var m = t.state.wallet_names.add(a); r = h.a.root.setProperty("wallet_names", m), t.setState({ wallet_names: m }) } var f = h.a.root.setProperty("current_wallet", a); e(Promise.all([r, f]).then(function() { return h.a.close(), d.ChainStore.clearCache(), s.a.reset(), h.a.init_instance().init_promise.then(function() { return l.a.reset(), Promise.all([n.a.loadDbData().then(function() { return o.a.loadDbData() }), c.a.loadDbData().then(function() { return i.a.loadDbData() })]).then(function() { if (u) return n.a.onCreateWallet(u, p, !0, a).then(function() { return t.setState({ current_wallet: a }) }); t.setState({ current_wallet: a }) }) }) })) } else e() } ).catch(function(e) { return console.error(e), Promise.reject(e) }); m && m(f) } }, { key: "setNewWallet", value: function(e) { this.setState({ new_wallet: e }) } }, { key: "init", value: function() { var e = this; return h.a.root.getProperty("current_wallet").then(function(t) { return h.a.root.getProperty("wallet_names", []).then(function(r) { e.setState({ wallet_names: f.a.Set(r), current_wallet: t }), o.a.setWallet(t) }) }) } }, { key: "onDeleteAllWallets", value: function() { var e = this , t = []; return this.state.wallet_names.forEach(function(r) { return t.push(e.onDeleteWallet(r)) }), Promise.all(t) } }, { key: "onDeleteWallet", value: function(e) { var t = this; return new Promise(function(r) { var a = t.state , n = a.current_wallet , i = a.wallet_names; if (!i.has(e)) throw new Error("Can't delete wallet, does not exist in index"); i = i.delete(e), h.a.root.setProperty("wallet_names", i), n === e && (n = i.size ? i.first() : void 0, h.a.root.setProperty("current_wallet", n), n && u.a.setWallet(n)), t.setState({ current_wallet: n, wallet_names: i }); var o = h.a.getDatabaseName(e); h.a.impl.deleteDatabase(o); r(o) } ) } }, { key: "onSetBackupDate", value: function() { n.a.setBackupDate() } }, { key: "onSetBrainkeyBackupDate", value: function() { n.a.setBrainkeyBackupDate() } }]), t }() , y = a.a.createStore(b, "WalletManagerStore"); t.a = y } , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(15) , o = r(107) , s = r(140) , l = r(4) , c = r.n(l) , u = r(1) , d = r.n(u) , p = r(7) , h = r(5) , m = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , f = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function g(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function _(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function b(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var y = function(e) { function t(e) { g(this, t); var r = _(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { assetIssuerName: h.ChainStore.getAccountName(e.asset.get("issuer")) }, r._load(), r } return b(t, n.a.Component), f(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return this.props.replace !== e.replace || this.props.asset !== e.asset || this.props.noPrefix !== e.noPrefix || this.props.noTip !== e.noTip || this.props.dataPlace !== e.dataPlace || this.state.assetIssuerName !== t.assetIssuerName } }, { key: "_load", value: function() { var e = this; this.state.assetIssuerName || Object(h.FetchChainObjects)(h.ChainStore.getAccountName, [this.props.asset.get("issuer")]).then(function(t) { console.log(t), e.setState({ assetIssuerName: t[0] }) }) } }, { key: "componentDidUpdate", value: function() { this._load() } }, { key: "render", value: function() { var e = this.props , t = e.replace , r = e.asset , a = e.noPrefix , s = e.customClass , l = e.noTip; if (!r) return null; var u = r.get("symbol") , d = this.state.assetIssuerName , h = r.has("bitasset") , m = h && r.getIn(["bitasset", "is_prediction_market"]) , f = i.a.replaceName(r) , g = f.name , _ = f.prefix , b = "bit" === _ , y = h && !m && b; if (t && g !== u || h) { var v = o.a.parseDescription(r.getIn(["options", "description"])) , w = u.split("."); (w = w.length > 1 ? w[0] : null) && (w += "."); var k = ""; try { k = w || y ? c.a.translate("gateway.assets." + (b ? "bit" : w.replace(".", "").toLowerCase()), { asset: u, backed: y ? v.main : g }) : "" } catch (e) {} h && "CNY" === u && (k = k + " " + c.a.translate("gateway.assets.bitcny")); var x = _ && "bit" === _ ? _ : _ ? _.toUpperCase() : _ , S = n.a.createElement("div", { className: "inline-block" + (this.props.noTip ? "" : " tooltip") + (s ? " " + s : "") }, n.a.createElement("span", { className: "asset-prefix-replaced" }, _), n.a.createElement("span", null, g)); if (l) return S; var A = (x || "") + g.toUpperCase() , E = n.a.createElement("div", { style: { maxWidth: "25rem" } }, v.short ? v.short : v.main || "", "" !== k && n.a.createElement("br", null), "" !== k && n.a.createElement("br", null), k, n.a.createElement("br", null), n.a.createElement("br", null), d && c.a.translate("explorer.assets.issuer") + ": " + d); return n.a.createElement(p.Popover, { placement: this.props.dataPlace, content: E, title: A, mouseEnterDelay: .5 }, S) } var T = n.a.createElement("span", { className: s || null }, n.a.createElement("span", { className: a ? "" : "asset-prefix-replaced" }, a ? null : _), n.a.createElement("span", null, g)); if (l) return T; var C = null; C = "BTS" == g ? { main: c.a.translate("assets.BTS") } : o.a.parseDescription(r.getIn(["options", "description"])); var z = (_ || "") + g.toUpperCase() , B = n.a.createElement("div", { style: { maxWidth: "25rem" } }, C.short ? C.short : C.main || "", n.a.createElement("br", null), n.a.createElement("br", null), d && c.a.translate("explorer.assets.issuer") + ": " + d); return n.a.createElement(p.Popover, { placement: this.props.dataPlace, content: B, title: z, mouseEnterDelay: .5 }, T) } }]), t }(); y.propTypes = { replace: d.a.bool.isRequired, dataPlace: d.a.string.isRequired }, y.defaultProps = { replace: !0, noPrefix: !1, noTip: !1, dataPlace: "bottom" }, y = Object(s.a)(y); var v = function(e) { function t() { return g(this, t), _(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return b(t, n.a.Component), f(t, [{ key: "render", value: function() { return n.a.createElement(y, m({}, this.props, { asset: this.props.name })) } }]), t }(); t.a = v } , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(94) , i = r(19) , o = r(5) , s = r(14) , l = r(67) , c = r(80) , u = r(11) , d = r.n(u) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = {} , m = void 0 , f = {} , g = d.a.List() , _ = null , b = d.a.List() , y = null , v = null , w = ""; function k() { clearTimeout(_), clearTimeout(y), _ = null, y = null } var x = [] , S = !1 , A = 0 , E = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return p(e, [{ key: "changeBase", value: function(e) { return k(), e } }, { key: "changeBucketSize", value: function(e) { return e } }, { key: "getMarketStats", value: function(e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null , n = l.a.getMarketName(e, t) , i = n.marketName , o = n.first , c = n.second; return function(n) { if (e !== t) { var l = new Date; if (f[i] && !r) { if (l - f[i].lastFetched < 6e4) return !1; r = !0 } if (!f[i] || r) { f[i] = { lastFetched: new Date }, s.Apis.instance().db_api() && x.push({ promise: s.Apis.instance().db_api().exec("get_ticker", [c.get("id"), o.get("id")]), market: i, base: c, quote: o }), S || (S = !0, setTimeout(function() { u() }, 1500)); var u = function e() { var t = x.slice(0, 500); return Promise.all(t.map(function(e) { return e.promise })).then(function(r) { return n({ tickers: r, markets: t.map(function(e) { return e.market }), bases: t.map(function(e) { return e.base }), quotes: t.map(function(e) { return e.quote }) }), x.splice(0, r.length), 0 === x.length ? void (S = !1) : e() }).catch(function(e) { console.log("getMarketStats error for " + i + ":", e), null != a && a(e) }) } } } } } }, { key: "switchMarket", value: function() { return !0 } }, { key: "subscribeMarket", value: function(e, t, r, a) { var n = this; void 0 === a ? a = A : A = a, k(); var i = t.get("id") + "_" + e.get("id"); v = e.get("id") + "_" + t.get("id"); var o = l.a.isMarketAsset(t, e) , c = o.isMarketAsset , u = o.marketAsset , d = o.inverted; return function(o) { var l = function(a, n) { a === v && (y ? b = b.concat(n) : (b = b.concat(n), y = setTimeout(function() { var a = !0 , n = !1; b.forEach(function(e) { e.forEach(function(e) { if ("string" == typeof e) { var t = e.split("."); t.length >= 2 && "7" === t[1] ? !0 : a = !1 } else a = !1, 2 === e.length && e[0] && 4 === e[0][0] && (n = !0) }) }); var l = null , p = null; c && (l = s.Apis.instance().db_api().exec("get_call_orders", [u.id, 300]), p = s.Apis.instance().db_api().exec("get_settle_orders", [u.id, 300])); var h = [] , m = []; 0 !== w && (h = s.Apis.instance().orders_api().exec("get_grouped_limit_orders", [e.get("id"), t.get("id"), w, null, 100]), m = s.Apis.instance().orders_api().exec("get_grouped_limit_orders", [t.get("id"), e.get("id"), w, null, 100])); var f = new Date , g = new Date , _ = new Date , v = new Date; f = new Date(f.getTime() - 200 * r * 1e3), g = new Date(g.getTime() - 200 * r * 2e3), _ = new Date(_.getTime() - 200 * r * 3e3), v.setDate(v.getDate() + 1), b = b.clear(), y = null, Promise.all([s.Apis.instance().db_api().exec("get_limit_orders", [e.get("id"), t.get("id"), 300]), a ? null : l, a ? null : p, n ? s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, f.toISOString().slice(0, -5), v.toISOString().slice(0, -5)]) : null, n ? s.Apis.instance().history_api().exec("get_fill_order_history", [e.get("id"), t.get("id"), 200]) : null, n ? s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, g.toISOString().slice(0, -5), f.toISOString().slice(0, -5)]) : null, n ? s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, _.toISOString().slice(0, -5), g.toISOString().slice(0, -5)]) : null, s.Apis.instance().db_api().exec("get_ticker", [e.get("id"), t.get("id")]), h, m]).then(function(r) { var s = r[5] || [] , l = r[6] || []; o({ limits: r[0], calls: !a && r[1], settles: !a && r[2], price: n && s.concat(l.concat(r[3])), history: n && r[4], market: i, base: e, quote: t, inverted: d, ticker: r[7], groupedOrdersBids: r[8], groupedOrdersAsks: r[9] }) }).catch(function(e) { console.log("Error in MarketsActions.subscribeMarket: ", e) }) }, 500))) }; if (!h[i] || m !== r || w !== a) { o({ switchMarket: !0 }), m = r, w = a; var p = null , f = null; c && (p = s.Apis.instance().db_api().exec("get_call_orders", [u.id, 300]), f = s.Apis.instance().db_api().exec("get_settle_orders", [u.id, 300])); var g = [] , _ = []; 0 !== w && (g = s.Apis.instance().orders_api().exec("get_grouped_limit_orders", [e.get("id"), t.get("id"), w, null, 100]), _ = s.Apis.instance().orders_api().exec("get_grouped_limit_orders", [t.get("id"), e.get("id"), w, null, 100])); var k = new Date , x = new Date , S = new Date , A = new Date; return k = new Date(k.getTime() - 200 * r * 1e3), x = new Date(x.getTime() - 200 * r * 2e3), S = new Date(S.getTime() - 200 * r * 3e3), A.setDate(A.getDate() + 1), new Promise(function(a, c) { Promise.all([s.Apis.instance().db_api().exec("subscribe_to_market", [l.bind(n, e.get("id") + "_" + t.get("id")), e.get("id"), t.get("id")]), s.Apis.instance().db_api().exec("get_limit_orders", [e.get("id"), t.get("id"), 300]), p, f, s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, k.toISOString().slice(0, -5), A.toISOString().slice(0, -5)]), s.Apis.instance().history_api().exec("get_market_history_buckets", []), s.Apis.instance().history_api().exec("get_fill_order_history", [e.get("id"), t.get("id"), 200]), s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, x.toISOString().slice(0, -5), k.toISOString().slice(0, -5)]), s.Apis.instance().history_api().exec("get_market_history", [e.get("id"), t.get("id"), r, S.toISOString().slice(0, -5), x.toISOString().slice(0, -5)]), s.Apis.instance().db_api().exec("get_ticker", [e.get("id"), t.get("id")]), g, _]).then(function(r) { var n = r[8] || [] , s = r[7] || []; h[i] = l, o({ limits: r[1], calls: r[2], settles: r[3], price: n.concat(s.concat(r[4])), buckets: r[5], history: r[6], market: i, base: e, quote: t, inverted: d, ticker: r[9], init: !0, resolve: a, groupedOrdersBids: r[10], groupedOrdersAsks: r[11] }) }).catch(function(e) { console.log("Error in MarketsActions.subscribeMarket: ", e), c(e) }) } ) } return Promise.resolve(!0) } } }, { key: "unSubscribeMarket", value: function(e, t) { var r = e + "_" + t; return k(), function(a) { return h[r] ? new Promise(function(n, i) { s.Apis.instance().db_api().exec("unsubscribe_from_market", [h[r], e, t]).then(function() { delete h[r], a({ unSub: !0, resolve: n }) }).catch(function(e) { h[r] = !0, console.log("Error in MarketsActions.unSubscribeMarket: ", e), a({ unSub: !1, market: r }), i(e) }) } ) : Promise.resolve(!0) } } }, { key: "createLimitOrder", value: function(e, t, r, a, s, l, c, u) { var d = n.a.new_transaction() , p = o.ChainStore.getAsset(u); return "1.3.0" === p.getIn(["options", "core_exchange_rate", "base", "asset_id"]) && "1.3.0" === p.getIn(["options", "core_exchange_rate", "quote", "asset_id"]) && (u = "1.3.0"), d.add_type_operation("limit_order_create", { fee: { amount: 0, asset_id: u }, seller: e, amount_to_sell: { amount: t, asset_id: r.get("id") }, min_to_receive: { amount: a, asset_id: s.get("id") }, expiration: l, fill_or_kill: c }), function(e) { return i.a.process_transaction(d, null, !0).then(function(t) { return e(!0), !0 }).catch(function(t) { return console.log("order error:", t), e({ error: t }), { error: t } }) } } }, { key: "createLimitOrder2", value: function(e) { var t = n.a.new_transaction() , r = []; return Array.isArray(e) ? r = e.map(function(e) { return e.toObject() }) : r.push(e.toObject()), r.forEach(function(e) { t.add_type_operation("limit_order_create", e) }), i.a.process_transaction(t, null, !0).then(function(e) { return !0 }).catch(function(e) { return console.log("order error:", e), { error: e } }) } }, { key: "createPredictionShort", value: function(e, t, r, a, o, s, l, u, d, p) { var h = arguments.length > 10 && void 0 !== arguments[10] && arguments[10] , m = n.a.new_transaction(); return h = c.a.getFinalFeeAsset(e.seller, "call_order_update", e.fee.asset_id), e.setExpiration(), m.add_type_operation("call_order_update", { fee: { amount: 0, asset_id: h }, funding_account: e.seller, delta_collateral: t.toObject(), delta_debt: e.amount_for_sale.toObject(), expiration: e.getExpiration() }), m.add_type_operation("limit_order_create", e.toObject()), i.a.process_transaction(m, null, !0).then(function(e) { return !0 }).catch(function(e) { return console.log("order error:", e), { error: e } }) } }, { key: "cancelLimitOrder", value: function(e, t) { var r = c.a.getFinalFeeAsset(e, "limit_order_cancel") , a = n.a.new_transaction(); return a.add_type_operation("limit_order_cancel", { fee: { amount: 0, asset_id: r }, fee_paying_account: e, order: t }), i.a.process_transaction(a, null, !0).catch(function(e) { console.log("cancel error:", e) }) } }, { key: "cancelLimitOrders", value: function(e, t) { var r = c.a.getFinalFeeAsset(e, "limit_order_cancel") , a = n.a.new_transaction(); return t.forEach(function(t) { a.add_type_operation("limit_order_cancel", { fee: { amount: 0, asset_id: r }, fee_paying_account: e, order: t }) }), i.a.process_transaction(a, null, !0).catch(function(e) { console.log("cancel error:", e) }) } }, { key: "cancelLimitOrderSuccess", value: function(e) { return function(t) { _ ? g = g.concat(e) : (g = g.concat(e), _ = setTimeout(function() { t(g.toJS()), _ = null, g = g.clear() }, 500)) } } }, { key: "closeCallOrderSuccess", value: function(e) { return e } }, { key: "callOrderUpdate", value: function(e) { return e } }, { key: "feedUpdate", value: function(e) { return e } }, { key: "settleOrderUpdate", value: function(e) { return function(t) { s.Apis.instance().db_api().exec("get_settle_orders", [e, 100]).then(function(e) { t({ settles: e }) }) } } }, { key: "toggleStars", value: function() { return !0 } }, { key: "getTrackedGroupsConfig", value: function() { return function(e) { s.Apis.instance().orders_api().exec("get_tracked_groups", []).then(function(t) { e({ trackedGroupsConfig: t }) }).catch(function(t) { console.log("current node api does not support grouped orders."), e({ trackedGroupsConfig: [] }) }) } } }, { key: "changeCurrentGroupLimit", value: function(e) { return e } }]), e }() , T = a.a.createActions(E) , C = {}; T.clearMarketStatsInInterval = function(e) { C[e] && (clearInterval(C[e]), delete C[e]) } , T.getMarketStatsInterval = function(e, t, r) { var a = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; T.getMarketStats(t, r, a); var n = l.a.getMarketName(t, r).marketName; return C[n] ? T.clearMarketStatsInInterval.bind(this, n) : (C[n] = setInterval(function() { T.getMarketStats(t, r, a, function() { T.clearMarketStatsInInterval(t, r) }) }, e), T.clearMarketStatsInInterval.bind(this, n)) } , t.a = T } , function(e, t, r) { "use strict"; var a = r(5) , n = r(233) , i = { new_transaction: function() { return new a.TransactionBuilder }, sign_and_broadcast: function(e) { var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; return a.SerializerValidation.required(e, "transaction"), WalletDb.process_transaction(e, null, t) }, template: function(e) { var t = a.TransactionHelper.template(e, { use_default: !0, annotate: !0 }); return console.error(JSON.stringify(t, null, 4)), t = a.TransactionHelper.template(e, { use_default: !0, annotate: !1 }), console.error(JSON.stringify(t)), t }, transfer: function(e, t, r, a, i) { var o = !(arguments.length > 5 && void 0 !== arguments[5]) || arguments[5] , s = !(arguments.length > 6 && void 0 !== arguments[6]) || arguments[6] , l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null; return console.error("deprecated, call application_api.transfer instead"), n.a.transfer({ from_account_id: e, to_account_id: t, amount: r, asset: a, memo_message: i, broadcast: o, encrypt_memo: s, optional_nonce: l }) } }; t.a = i } , , , function(e, t, r) { "use strict"; var a = void 0 , n = void 0; t.a = n = { set_graphene_db: function(e) { a = e }, trx_readwrite: function(e) { return a.transaction([e], "readwrite") }, on_request_end: function(e) { return new Promise(function(t, r) { e.onsuccess = new i(e.onsuccess,t,e).event, e.onerror = new i(e.onerror,r,e).event } ) }, on_transaction_end: function(e) { return new Promise(function(t, r) { e.oncomplete = new i(e.oncomplete,t).event, e.onabort = new i(e.onabort,r).event } ) }, add: function(e, t, r) { return function(t, r) { var a = e.add(t) , o = null; r && (a.onsuccess = new i(a.onsuccess,function(e) { o = r(e) } ).event); var s = n.on_request_end(a).then(function(e) { return void 0 != e.target.result && (t.id = e.target.result), [t, e] }); return o ? Promise.all([o, s]) : s }(t, r) }, cursor: function(e, t, r) { return new Promise(function(n, i) { r || ((r = a.transaction([e], "readonly")).onerror = function(e) { console.error("ERROR idb_helper.cursor transaction", e), i(e) } ); var o = r.objectStore(e).openCursor(); o.onsuccess = function(e) { var r = e.target.result , a = t(r, e); !1 === a && n(), r || n(a) } , o.onerror = function(e) { var t = { error: e.target.error.message, data: e }; console.log("ERROR idb_helper.cursor request", t), i(t) } } ).then() }, autoIncrement_unique: function(e, t, r) { return e.createObjectStore(t, { keyPath: "id", autoIncrement: !0 }).createIndex("by_" + r, r, { unique: !0 }) } }; var i = function e(t, r, a) { var n = this; !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.existing_on_event = t, this.callback = r, this.event = function(e) { e.target.error && console.error("---- transaction error ----\x3e", e.target.error), n.callback(e), n.existing_on_event && n.existing_on_event(e) } } } , , function(e, t, r) { "use strict"; var a = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var n = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return a(e, [{ key: "_export", value: function() { for (var e = this, t = {}, r = arguments.length, a = Array(r), n = 0; n < r; n++) a[n] = arguments[n]; a.forEach(function(r) { if (!e[r]) throw new Error("BaseStore._export: method '" + r + "' not found in " + e.__proto__._storeName); e[r] = e[r].bind(e), t[r] = e[r] }), this.exportPublicMethods(t) } }]), e }(); t.a = n } , , function(e, t, r) { "use strict"; r.d(t, "b", function() { return S }); var a = r(14) , n = r(5) , i = r(564) , o = r.n(i) , s = r(50) , l = r(291) , c = r(83) , u = r(19) , d = r(26) , p = r(24) , h = r(55) , m = r(4) , f = r.n(m) , g = r(162) , _ = r(25) , b = r(7) , y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , v = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function w(e) { return function() { var t = e.apply(this, arguments); return new Promise(function(e, r) { return function a(n, i) { try { var o = t[n](i) , s = o.value } catch (e) { return void r(e) } if (!o.done) return Promise.resolve(s).then(function(e) { a("next", e) }, function(e) { a("throw", e) }); e(s) }("next") } ) } } function k(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } var x = new h.a("__graphene__"); n.ChainStore.setDispatchFrequency(60); var S = new (function() { function e() { k(this, e), this._connectionManager, this._oldChain = null, this._autoSelection = null, this._connectInProgress = !1, this._connectionStart = null, this._willTransitionToInProgress = !1, this._transitionDone = this._transitionDone.bind(this), this._statusCallback = null } return v(e, [{ key: "willTransitionTo", value: function() { var e = this , t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0] , r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function() {} ; return this.isTransitionInProgress() ? new Promise(function(e, t) { e() } ) : (this._statusCallback = r, this._willTransitionToInProgress = !0, new Promise(function(r, a) { var n = d.a.getState().apiLatencies , i = Object.keys(n).length > 0 , o = e._getLatencyChecks(1); o >= 8 ? (e._setLatencyChecks(0), i = !1) : t && e._setLatencyChecks(o + 1); var s = e._getNodesToConnectTo(!1, n); e._autoSelection = -1 !== e._getLastNode().indexOf("fake.automatic-selection"), e._initConnectionManager(s), i && 0 != Object.keys(n).length ? e._initiateConnection(t, r, a) : e.doLatencyUpdate().then(e._initiateConnection.bind(e, t, r, a)).catch(function(e) { console.log("catch doLatency", e) }) } )) } }, { key: "isAutoSelection", value: function() { return this._autoSelection } }, { key: "isTransitionInProgress", value: function() { return !!this._willTransitionToInProgress && "object" !== y(this._willTransitionToInProgress) } }, { key: "isBackgroundPingingInProgress", value: function() { return !!this._willTransitionToInProgress && "object" === y(this._willTransitionToInProgress) } }, { key: "getBackgroundPingingTarget", value: function() { return this.isBackgroundPingingInProgress() ? this._willTransitionToInProgress.key : null } }, { key: "getTransitionTarget", value: function() { return this.isTransitionInProgress() ? this._willTransitionToInProgress : null } }, { key: "updateTransitionTarget", value: function(e) { this._willTransitionToInProgress = e, null != this._statusCallback && this._statusCallback(e) } }, { key: "doQuickLatencyUpdate", value: function(e) { var t = this; return new Promise(function(r, a) { var n = t._connectionManager.url , i = t._connectionManager.urls; "string" == typeof e && (e = [e]), t._connectionManager.url = e[0], t._connectionManager.urls = e.slice(1, e.length), t._connectionManager.checkConnections().then(function(e) { console.log("Following nodes have been pinged:", e); var t = d.a.getState().apiLatencies; for (var r in e) t[r] = e[r]; _.a.updateLatencies(t) }).catch(function(e) { console.log("doLatencyUpdate error", e) }).finally(function() { t._connectionManager.url = n, t._connectionManager.urls = i, r() }) } ) } }, { key: "doLatencyUpdate", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0] , t = this , r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 5e3; this.updateTransitionTarget(f.a.translate("app_init.check_latency")); var n = this; return new Promise(function(i, o) { null == n._connectionManager && n._initConnectionManager(); var s = n._getNodesToConnectTo(!0, null, !0); e && t._clearLatencies(); var l = t._connectionManager.url; var c = new A(n._connectionManager,n._updateLatencies.bind(n),n.updateTransitionTarget.bind(n),r); new T(s,c,function() { var e = n._getNodesToConnectTo(!1, null, !0); n._connectionManager.urls = e.map(function(e) { return e.url }), n._setLatencyPreferences({ region: e[0].region, country: e[0].country }), n.isAutoSelection() && l !== n._connectionManager.urls[0] ? (n._connectionManager.url = n._connectionManager.urls[0], console.log("auto selecting to " + n._connectionManager.url + " after latency update")) : n._connectionManager.url = l, n._transitionDone(i), a > 0 && setTimeout(function e() { n._willTransitionToInProgress ? setTimeout(e, 2e3) : (c.enableBackgroundPinging(), c.pingNodes(function() { var e = n._getNodesToConnectTo(!1, null, !0); n._connectionManager.urls = e.map(function(e) { return e.url }), n._transitionDone() })) }, a) } ,n.getNodes.bind(n)).ping(t.isAutoSelection() ? null : t._getLastNode(), t._getLatencyPreferences()) } ) } }, { key: "_getLatencyPreferences", value: function() { return x.get("latency_preferences", {}) } }, { key: "_setLatencyPreferences", value: function(e) { x.set("latency_preferences", e) } }, { key: "_getLatencyChecks", value: function() { return x.has("latencyChecks") && x.remove("latencyChecks"), x.get("latency_checks", 0) } }, { key: "_setLatencyChecks", value: function(e) { x.set("latency_checks", e) } }, { key: "_clearLatencies", value: function() { _.a.updateLatencies({}) } }, { key: "_updateLatencies", value: function(e) { var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] , r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null , a = d.a.getState().apiLatencies; for (var n in e) !t && n in a || (a[n] = e[n], null != r && (r[n] = e[n])); _.a.updateLatencies(a) } }, { key: "_transitionDone", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; null != e && e(), this._willTransitionToInProgress = !1, this._statusCallback = null } }, { key: "_initConnectionManager", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; null == t && (t = this._getNodesToConnectTo(!0)); var r = this._getFirstToTry(t); this._willTransitionToInProgress = r, this._connectionManager = new a.Manager({ url: r, urls: t, closeCb: this._onConnectionClose.bind(this), optionalApis: { enableOrders: !0 }, urlChangeCallback: function(t) { console.log("fallback to new url:", t), t && e.updateTransitionTarget(f.a.translate("app_init.connecting", { server: t })), _.a.changeSetting({ setting: "activeNode", value: t }) } }) } }, { key: "_onConnectionClose", value: function() {} }, { key: "_apiUrlSecuritySuitable", value: function(e) { return "https:" !== window.location.protocol || -1 == e.indexOf("ws://") } }, { key: "_isTestNet", value: function(e) { return -1 !== e.indexOf("testnet") } }, { key: "getAllApiServers", value: function() { return d.a.getState().defaults.apiServer } }, { key: "getNodes", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null , t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] , r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , a = this , n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3] , i = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; null == e && (e = d.a.getState().apiLatencies), t && (t = Object.keys(e).length > 0); var o = this.getAllApiServers().filter(function(o) { return !(!r && o.hidden) && (!(!i && a._isTestNet(o.url)) && (-1 === o.url.indexOf("fake.automatic-selection") && (!(!n && !a._apiUrlSecuritySuitable(o.url)) && (!t || !!e[o.url])))) }); return (o = (o = o.map(function(t) { return t.hidden = !!t.hidden, t.name = t.location || "Unknown", null != e && t.url in e ? t.latency = e[t.url] : t.latency = null, t })).sort(function(e, t) { return null != e.latency && null != t.latency ? e.latency - t.latency : null == e.latency && null == t.latency ? a._isTestNet(e.url) ? -1 : 1 : null != e.latency && null == t.latency ? -1 : null != t.latency && null == e.latency ? 1 : 0 })).length ? o : (console.warn("No nodes length, returning all of them"), this.getAllApiServers()) } }, { key: "_getNodesToConnectTo", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0] , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null , r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , a = this.getNodes(t, !e); return r ? a : a.map(function(e) { return e.url }) } }, { key: "_getLastNode", value: function() { return d.a.getSetting("apiServer") } }, { key: "_setLastNode", value: function(e) { d.a.getSetting("apiServer") !== e && _.a.changeSetting({ setting: "apiServer", value: e }) } }, { key: "_getFirstToTry", value: function(e) { var t = this._getLastNode(); return t || (t = e[0]), this.isAutoSelection() && (t = e[0], console.log("auto selecting to " + t)), this._apiUrlSecuritySuitable(t) || (t = e[0]), t } }, { key: "_getIndexDBImpl", value: function() { return window.openDatabase && shimIndexedDB || indexedDB } }, { key: "_initiateConnection", value: function(e, t, r) { var a = this; this._willTransitionToInProgress = this._connectionManager.url, this._connectionStart = (new Date).getTime(), console.log("Connecting to " + this._connectionManager.url), e ? (this.updateTransitionTarget(f.a.translate("app_init.connecting", { server: this._connectionManager.url })), this._connectionManager.connectWithFallback(!0).then(function() { a.isAutoSelection() || a._setLastNode(a._connectionManager.url), a._onConnect(t, r) }).catch(function(e) { console.error("----- App.willTransitionTo error -----\x3e", e, (new Error).stack), "InvalidStateError" === e.name ? alert("Can't access local storage.\nPlease make sure your browser is not in private/incognito mode.") : a._transitionDone(r) })) : (this.isAutoSelection() || this._setLastNode(""), this._attemptReconnect(t, r)) } }, { key: "_onResetError", value: function(e, t) { var r = this; console.error("onResetError:", t, e), this._willTransitionToInProgress = !1, this._statusCallback = !1, this._oldChain = "old", b.Notification.error({ message: f.a.translate("settings.connection_error", { url: e || "", error: t }) }); var n = d.a.getState().apiLatencies; return delete n[e], _.a.updateLatencies(n), a.Apis.close().then(function() { return r.willTransitionTo(!0) }) } }, { key: "_attemptReconnect", value: function(e, t) { var r = this; this._oldChain = "old", a.Apis.reset(this._connectionManager.url, !0, void 0, { enableOrders: !0 }).then(function(a) { a.init_promise.then(r._onConnect.bind(r, e, t)).catch(r._onResetError.bind(r, r._connectionManager.url)) }) } }, { key: "_onConnect", value: function(e, t) { var r = this; if (!this._connectInProgress) { if (this.updateTransitionTarget(f.a.translate("app_init.database")), this._connectInProgress = !0, a.Apis.instance()) { a.Apis.instance().orders_api() || console.log(a.Apis.instance().url + " does not support the orders api"); var i = a.Apis.instance().url; this.isAutoSelection() || this._setLastNode(i); var o = {}; o[i] = (new Date).getTime() - this._connectionStart, this._updateLatencies(o, !1) } var h = a.Apis.instance().chain_id , m = this._oldChain !== h; this._oldChain = h; var b = Promise.resolve(); try { m && (s.a.close(), b = s.a.init_instance(this._getIndexDBImpl()).init_promise) } catch (e) { return console.error("db init error:", e), this._connectInProgress = !1, this._transitionDone(t) } return Promise.all([b, d.a.init()]).then(function() { return (m ? n.ChainStore.resetCache(!1) : Promise.resolve()).then(function() { return Promise.all([g.a.loadDbData().then(function() { return l.a.loadDbData() }), u.a.loadDbData().then(function() { if (m) return p.a.reset(), p.a.loadDbData(h).catch(function(e) { console.error(e) }) }).catch(function(e) { console.error("----- WalletDb.willTransitionTo error -----\x3e", e), r._transitionDone(t) }), c.a.init()]).then(function() { r._connectInProgress = !1, _.a.changeSetting({ setting: "activeNode", value: r._connectionManager.url }), r._transitionDone(e) }) }).catch(function(e) { r._connectInProgress = !1, r._transitionDone(t.bind(r, e)) }) }).catch(function(e) { console.error(e), r._connectInProgress = !1, r._transitionDone(t) }) } console.error("MULTIPLE CONNECT IN PROGRESS") } }]), e }()); t.a = S.willTransitionTo.bind(S); var A = function() { function e(t, r, a) { var n = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; k(this, e), this._connectionManager = t, this._updateLatencies = r, this._updateTransitionTarget = a, this._beSatisfiedWith = n ? { instant: 0, low: 0, medium: 0 } : { instant: 500, low: 800, medium: 1500 } } return v(e, [{ key: "addNodes", value: function(e) { var t = this , r = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] , a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null; this._translationKey = a, r || void 0 === this._nodeURLs ? (this._nodeURLs = e, this._current = 0, this._counter = { instant: 0, low: 0, medium: 0 }, this._localLatencyCache = {}, this._suitableNodeFound = !1, this._pingInBackGround = !1) : e.forEach(function(e) { -1 === t._nodeURLs.indexOf(e) && t._nodeURLs.push(e) }) } }, { key: "getLocalLatencyMap", value: function() { return this._localLatencyCache } }, { key: "enableBackgroundPinging", value: function() { this._beSatisfiedWith = { instant: 0, low: 0, medium: 0 }, this._counter = { instant: 0, low: 0, medium: 0 }, this._suitableNodeFound = !1, this._pingInBackGround = !0 } }, { key: "doCallbackAndEnableBackgroundPinging", value: function() { this._beSatisfiedWith = { instant: 0, low: 0, medium: 0 }, this._counter = { instant: 0, low: 0, medium: 0 }, this._suitableNodeFound = !0, this._pingInBackGround = !0 } }, { key: "pingNodes", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; null != t && this.addNodes(t, !0), this._callbackWasCalled = !1, this._callback = e, this._range = 3, this._pingNodesInBatches() } }, { key: "_continueToPing", value: function() { return this._current < this._nodeURLs.length && (!this._suitableNodeFound || this._pingInBackGround) } }, { key: "_notifyCallback", value: function() { return !this._callbackWasCalled && (this._suitableNodeFound || this._current == this._nodeURLs.length) } }, { key: "_pingNodesInBatches", value: function() { var e = this , t = this._continueToPing(); if (this._notifyCallback() && (this._callbackWasCalled = !0, this._continueToPing() && console.log("Node with sufficient latency found, continueing to ping the rest in background"), null != this._callback && this._callback()), t) { var r = this._nodeURLs.slice(this._current, this._current + this._range) , a = null == this._translationKey ? "app_init.check_latency_feedback" : this._translationKey; this._pingInBackGround ? this._updateTransitionTarget({ background: !0, key: f.a.translate(a, { pinged: this._current, totalToPing: this._nodeURLs.length }) }) : this._updateTransitionTarget(f.a.translate(a, { pinged: this._current, totalToPing: this._nodeURLs.length })); try { new E(2e3).check(r).then(this._handlePingResult.bind(this)).catch(function(e) { console.log("doLatencyUpdate error", e) }).finally(function() { e._current = e._current + r.length, setTimeout(e._pingNodesInBatches.bind(e), 500) }) } catch (e) { console.error(e) } } else this._updateTransitionTarget(!1) } }, { key: "_updateSuitabilityCounter", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; for (var t in e) null != this._beSatisfiedWith && (e[t] < this._beSatisfiedWith.instant ? this._counter.instant = this._counter.instant + 1 : e[t] < this._beSatisfiedWith.low ? this._counter.low = this._counter.low + 1 : e[t] < this._beSatisfiedWith.medium && (this._counter.medium = this._counter.medium + 1)); this._checkIfSuitableFound() } }, { key: "_checkIfSuitableFound", value: function() { (this._counter.instant > 0 || this._counter.low >= 2 || this._counter.medium >= 3) && (this._suitableNodeFound = !0) } }, { key: "_handlePingResult", value: function(e) { e && Object.keys(e).length > 0 && (console.log("Latency result:", e), this._updateSuitabilityCounter(e), this._updateLatencies(e, !0, this._localLatencyCache)) } }]), e }() , E = function() { function e(t) { k(this, e), this.urls = [], this.timeout = t } return v(e, [{ key: "check", value: function() { var e = w(regeneratorRuntime.mark(function e(t) { var r, a = this; return regeneratorRuntime.wrap(function(e) { for (; ; ) switch (e.prev = e.next) { case 0: return t.forEach(function(e) { a.addURL(e) }), e.prev = 1, e.next = 4, this._runCheck(); case 4: e.next = 9; break; case 6: e.prev = 6, e.t0 = e.catch(1), console.error(e.t0); case 9: return r = {}, this._result.forEach(function(e) { r[e.url] = e.latency }), e.abrupt("return", r); case 12: case "end": return e.stop() } }, e, this, [[1, 6]]) })); return function(t) { return e.apply(this, arguments) } }() }, { key: "addURL", value: function(e) { this.urls.push({ url: e, latency: NaN }) } }, { key: "_checkURL", value: function(e) { var t = this; return new Promise(function(r) { setTimeout(function() { r(null) }, t.timeout); try { var a = new WebSocket(e); a.openTime = o()(), a.onerror = function(e) { r(null) } , a.onopen = function(e) { a.onmessage = function() { this.closeTime = a.openTime(o.a.MS), a.close(), r(this.closeTime) } , a.onmessage.bind(a), a.send('{"id":1,"method":"call","params":[1,"login",["",""]]}') } } catch (e) { r(null) } } ) } }, { key: "_runCheck", value: function() { var e = w(regeneratorRuntime.mark(function e() { var t, r, a = this; return regeneratorRuntime.wrap(function(e) { for (; ; ) switch (e.prev = e.next) { case 0: for (t = function(e) { a.urls[e].latency = a._checkURL(a.urls[e].url), a.urls[e].latency.then(function(t) { a.urls[e].latency = t }) } , r = 0; r < this.urls.length; r++) t(r); return e.next = 4, Promise.all(this.urls.map(function(e) { return e.latency })); case 4: this.urls.sort(function(e, t) { return Number(e.latency) - Number(t.latency) }), this._result = this.urls.slice(); case 6: case "end": return e.stop() } }, e, this) })); return function() { return e.apply(this, arguments) } }() }]), e }() , T = function() { function e(t, r, a, n) { k(this, e), this._nodesToPing = t, this._pinger = r, this._callback = a, this._getNodes = n, this._sortNodesToTree() } return v(e, [{ key: "ping", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; function r() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; null == e && (e = this._getNodes(this._pinger.getLocalLatencyMap())[0].region); this._pinger.addNodes(this.getFromRegion(e).map(function(e) { return e.url }), !1, "app_init.check_latency_feedback_region"), this._pinger.pingNodes(function() { this._pinger.addNodes(this._nodesToPing.map(function(e) { return e.url }), !1, "app_init.check_latency_feedback_rest"), this._pinger.pingNodes(this._callback) } .bind(this)) } function a() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; if (null == e) { var a = this._getNodes(this._pinger.getLocalLatencyMap()); e = a[0].region, t = a[0].country } this._pinger.addNodes(this.getFromRegion(e, t).map(function(e) { return e.url }), !1, "app_init.check_latency_feedback_country"), this._pinger.pingNodes(r.bind(this)) } function n() { t.region && t.country ? a.bind(this)(t.region, t.country) : t.region ? r.bind(this)(t.region) : function() { this._pinger.addNodes(this.getFromEachRegion().map(function(e) { return e.url }), !1, "app_init.check_latency_feedback_world"), this._pinger.pingNodes(a.bind(this)) } .bind(this)() } e ? (this._pinger.addNodes([e], !1, "app_init.check_latency_feedback_last"), this._pinger.pingNodes(n.bind(this))) : n.bind(this)() } }, { key: "getFromEachRegion", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 2 , r = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] , a = []; return Object.keys(this._nodeTree).forEach(function(r) { var n = e._nodeTree[r].all , i = void 0; for (i = 1; i <= t; i++) n.length >= i && a.push(n[i - 1]) }), console.log("Node tree", a), r ? this._getShuffleArray(a) : a } }, { key: "getFromRegion", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null , r = this , a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10 , n = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3] , i = []; return (t ? [t] : ["all"]).forEach(function(t) { var o = r._nodeTree[e][t] , s = n ? r._getShuffleArray(o) : o , l = void 0; for (l = 1; l <= a; l++) s.length >= l && i.push(s[l - 1]) }), i } }, { key: "_getShuffleArray", value: function(e) { for (var t = (e = e.slice(0)).length - 1; t > 0; t--) { var r = Math.floor(Math.random() * (t + 1)) , a = [e[r], e[t]]; e[t] = a[0], e[r] = a[1] } return e } }, { key: "_sortNodesToTree", value: function() { var e = {}; this._nodesToPing.forEach(function(t) { void 0 === e[t.region] && (e[t.region] = {}, e[t.region].all = []), void 0 === e[t.region][t.country] && (e[t.region][t.country] = []), e[t.region].all.push(t), e[t.region][t.country].push(t) }), this._nodeTree = e } }]), e }() } , , function(e, t, r) { "use strict"; var a = r(11) , n = r.n(a) , i = r(30) , o = r(99) , s = r(97) , l = r(19) , c = r(199) , u = r(162) , d = r(261) , p = r(215) , h = r(5) , m = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var f = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e.pending_operation_count = 0, e.bindListeners({ onLoadDbData: u.a.loadDbData, onAddKey: u.a.addKey }), e._export("hasKey", "getPubkeys", "getTcomb_byPubkey", "getPubkeys_having_PrivateKey", "addPrivateKeys_noindex", "decodeMemo", "setPasswordLoginKey"), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, o["a"]), m(t, [{ key: "_getInitialState", value: function() { return { keys: n.a.Map(), privateKeyStorage_error: !1, pending_operation_count: 0, privateKeyStorage_error_add_key: null, privateKeyStorage_error_loading: null } } }, { key: "setPasswordLoginKey", value: function(e) { var t = this.state.keys.set(e.pubkey, e); this.setState({ keys: t }) } }, { key: "onLoadDbData", value: function(e) { var t = this; this.pendingOperation(), this.setState(this._getInitialState()); var r = n.a.Map().asMutable(); e(s.a.cursor("private_keys", function(e) { if (e) { var a = Object(c.a)(e.value); r.set(a.pubkey, a), p.a.add(a.pubkey), e.continue() } else t.setState({ keys: r.asImmutable() }) }).then(function() { t.pendingOperationDone() }).catch(function(e) { throw t.setState(t._getInitialState()), t.privateKeyStorageError("loading", e), e })) } }, { key: "hasKey", value: function(e) { return this.state.keys.has(e) } }, { key: "getPubkeys", value: function() { return this.state.keys.keySeq().toArray() } }, { key: "getPubkeys_having_PrivateKey", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null , r = []; if (e) { var a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done); a = !0) { var l = o.value; this.hasKey(l) && r.push(l) } } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } } if (t) { var c = p.a.getState().addresses , u = !0 , d = !1 , h = void 0; try { for (var m, f = t[Symbol.iterator](); !(u = (m = f.next()).done); u = !0) { var g = m.value , _ = c.get(g); r.push(_) } } catch (e) { d = !0, h = e } finally { try { !u && f.return && f.return() } finally { if (d) throw h } } } return r } }, { key: "getTcomb_byPubkey", value: function(e) { return e ? (e.Q && (e = e.toPublicKeyString()), this.state.keys.get(e)) : null } }, { key: "onAddKey", value: function(e) { var t = this , r = e.private_key_object , a = e.transaction , n = e.resolve; this.state.keys.has(r.pubkey) ? n({ result: "duplicate", id: null }) : (this.pendingOperation(), this.state.keys = this.state.keys.set(r.pubkey, Object(c.a)(r)), this.setState({ keys: this.state.keys }), p.a.add(r.pubkey), n(new Promise(function(e, n) { Object(c.a)(r); var i = !1 , o = s.a.add(a.objectStore("private_keys"), r); o.catch(function(e) { var r = e.target.error; if (console.log("... error", r, e), "ConstraintError" != r.name || -1 == r.message.indexOf("by_encrypted_key")) throw t.privateKeyStorageError("add_key", r), e; i = !0, e.preventDefault() }).then(function() { return t.pendingOperationDone(), i ? { result: "duplicate", id: null } : (null == r.brainkey_sequence && t.binaryBackupRecommended(), s.a.on_transaction_end(a).then(function() { t.setState({ keys: t.state.keys }) }), { result: "added", id: r.id }) }), e(o) } ))) } }, { key: "addPrivateKeys_noindex", value: function(e, t) { var r = this , a = t.objectStore("private_keys") , n = 0 , i = this.state.keys.withMutations(function(t) { var i = !0 , o = !1 , s = void 0; try { for (var l, u = e[Symbol.iterator](); !(i = (l = u.next()).done); i = !0) { var d = l.value; if (r.state.keys.has(d.pubkey)) n++; else { var p = Object(c.a)(d); a.add(d), t.set(d.pubkey, p), h.ChainStore.getAccountRefsOfKey(d.pubkey) } } } catch (e) { o = !0, s = e } finally { try { !i && u.return && u.return() } finally { if (o) throw s } } }); return this.setState({ keys: i }), this.binaryBackupRecommended(), n } }, { key: "binaryBackupRecommended", value: function() { d.a.set("backup_recommended", !0) } }, { key: "pendingOperation", value: function() { this.pending_operation_count++, this.setState({ pending_operation_count: this.pending_operation_count }) } }, { key: "pendingOperationDone", value: function() { if (0 == this.pending_operation_count) throw new Error("Pending operation done called too many times"); this.pending_operation_count--, this.setState({ pending_operation_count: this.pending_operation_count }) } }, { key: "privateKeyStorageError", value: function(e, t) { this.pendingOperationDone(); var r = { privateKeyStorage_error: !0 }; r["privateKeyStorage_error_" + e] = t, console.error("privateKeyStorage_error_" + e, t), this.setState(r) } }, { key: "decodeMemo", value: function(e) { var t = void 0 , r = !1 , a = this.state.keys.get(e.from) , n = this.state.keys.get(e.to) , i = a || n , o = a ? e.to : e.from; o = h.PublicKey.fromPublicKeyString(o); try { i = l.a.decryptTcomb_PrivateKey(i) } catch (e) { !0, i = null, r = !0 } if (i) { var s = !1; try { t = i ? h.Aes.decrypt_with_checksum(i, o, e.nonce, e.message).toString("utf-8") : null } catch (e) { console.log("transfer memo exception ...", e), t = "*", s = !0 } if (i && s) try { t = h.Aes.decrypt_with_checksum(i, o, e.nonce, e.message, !0).toString("utf-8") } catch (e) { console.log("transfer memo exception ...", e), t = "**" } } return { text: t, isMine: r } } }]), t }(); t.a = i.a.createStore(f, "PrivateKeyStore") } , , , , function(e, t, r) { "use strict"; var a = r(181) , n = r.n(a) , i = r(203) , o = r.n(i) , s = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var l = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return s(e, null, [{ key: "getFlagBooleans", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , r = { charge_market_fee: !1, white_list: !1, override_authority: !1, transfer_restricted: !1, disable_force_settle: !1, global_settle: !1, disable_confidential: !1, witness_fed_asset: !1, committee_fed_asset: !1 }; if ("all" === e) { for (var a in r) t || -1 !== n.a.uia_permission_mask.indexOf(a) ? r[a] = !0 : delete r[a]; return r } for (var i in r) t || -1 !== n.a.uia_permission_mask.indexOf(i) ? e & n.a.permission_flags[i] && (r[i] = !0) : delete r[i]; return r } }, { key: "getFlags", value: function(e) { var t = 0; return Object.keys(n.a.permission_flags).forEach(function(r) { e[r] && "global_settle" !== r && (t += n.a.permission_flags[r]) }), t } }, { key: "getPermissions", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1] , r = 0; return (t ? Object.keys(n.a.permission_flags) : n.a.uia_permission_mask).forEach(function(t) { e[t] && "global_settle" !== t && (r += n.a.permission_flags[t]) }), t && e.global_settle && (r += n.a.permission_flags.global_settle), r } }, { key: "parseDescription", value: function(e) { var t = void 0; e = o()(e, { whiteList: [], stripIgnoreTag: !0 }); try { t = JSON.parse(e) } catch (e) {} for (var r in t) t[r] = o()(t[r], { whiteList: [], stripIgnoreTag: !0 }); return t || { main: e } } }, { key: "extractRawFeedPrice", value: function(e) { if (e.bitasset) return e.bitasset.current_feed.settlement_price; if (e.current_feed) return e.current_feed.settlement_price; if (e.settlement_price) return e.settlement_price; if (e.get("bitasset")) return e.getIn(["bitasset", "current_feed", "settlement_price"]); if (e.get("settlement_price")) return e.getIn(["settlement_price"]); if (e.get("current_feed")) return e.getIn(["current_feed", "settlement_price"]); throw "Feed price not found!" } }]), e }(); t.a = l } , , function(e, t, r) { "use strict"; var a = r(30) , n = r(44) , i = r(25) , o = r(19) , s = r(55) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = new s.a("__graphene__") , u = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.bindActions(n.a); var t = c.get("settings_v4", {}); void 0 === t.passwordLogin && (t.passwordLogin = !0); var r = t.passwordLogin; this.state = { locked: !0, passwordLogin: r, rememberMe: void 0 === t.rememberMe || t.rememberMe }, this.walletLockTimeout = this._getTimeout(), this.timeout = null, this.bindListeners({ onChangeSetting: i.a.changeSetting }) } return l(e, [{ key: "onUnlock", value: function(e) { var t = e.resolve , r = e.reject; if (this._setLockTimeout(), !o.a.isLocked()) return this.setState({ locked: !1 }), void t(); this.setState({ resolve: t, reject: r, locked: o.a.isLocked() }) } }, { key: "onLock", value: function(e) { var t = e.resolve; o.a.isLocked() ? t() : (o.a.onLock(), this.setState({ resolve: null, reject: null, locked: o.a.isLocked() }), this.state.rememberMe || Object(s.b)() || Object(s.c)("persistant"), t()) } }, { key: "onCancel", value: function() { "function" == typeof this.state.reject && this.state.reject({ isCanceled: !0 }), this.setState({ resolve: null, reject: null }) } }, { key: "onChange", value: function() { this.setState({ locked: o.a.isLocked() }) } }, { key: "onChangeSetting", value: function(e) { "walletLockTimeout" === e.setting ? (this.walletLockTimeout = e.value, this._clearLockTimeout(), this._setLockTimeout()) : "passwordLogin" === e.setting ? this.setState({ passwordLogin: e.value }) : "rememberMe" === e.setting && this.setState({ rememberMe: e.rememberMe }) } }, { key: "_setLockTimeout", value: function() { var e = this; this._clearLockTimeout(), this.walletLockTimeout && (this.timeout = setTimeout(function() { o.a.isLocked() || (console.log("auto locking after", e.walletLockTimeout, "s"), o.a.onLock(), e.setState({ locked: !0 })) }, 1e3 * this.walletLockTimeout)) } }, { key: "_clearLockTimeout", value: function() { this.timeout && (clearTimeout(this.timeout), this.timeout = null) } }, { key: "_getTimeout", value: function() { return parseInt(c.get("lockTimeout", 600), 10) } }, { key: "onCheckLock", value: function() { this.setState({ locked: o.a.isLocked() }) } }]), e }(); t.a = a.a.createStore(u, "WalletUnlockStore") } , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2238) , o = r(43) , s = r(45) , l = r(1) , c = r.n(l) , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), u(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.account !== this.props.account } }, { key: "render", value: function() { var e = this.props.account; if (!e) return n.a.createElement("span", null, this.props.account.get("id")); var t = this.props.maxDisplayAccountNameLength > 0 ? 20 : 1 / 0; return this.props.noLink ? n.a.createElement("span", null, e.substr(0, t), e.length > t ? "..." : null) : n.a.createElement(i.a, { onClick: this.props.onClick ? this.props.onClick : function() {} , to: "/account/" + e + "/" + this.props.subpage + "/" }, e.substr(0, t), e.length > t ? "..." : null) } }]), t }(); d.propTypes = { account: o.a.ChainAccountName.isRequired, subpage: c.a.string.isRequired, maxDisplayAccountNameLength: c.a.number }, d.defaultProps = { subpage: "overview", autosubscribe: !1, maxDisplayAccountNameLength: 20 }, t.a = Object(s.a)(d, { autosubscribe: !1 }) } , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(108) , o = r(15) , s = r(140) , l = r(111) , c = r(26) , u = r(25) , d = r(843) , p = r.n(d) , h = r(2) , m = r.n(h) , f = r(88) , g = r(441) , _ = r(67) , b = r(37) , y = r(1) , v = r.n(y) , w = r(2259) , k = r(7) , x = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , S = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , A = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function E(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function T(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function C(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var z = function(e) { function t(e) { E(this, t); var r = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) , a = _.a.getMarketName(r.props.base_asset, r.props.quote_asset) , n = a.marketName , i = a.first , o = a.second; return r.state = { isPopoverOpen: !1, marketName: n, first: i, second: o }, r.togglePopover = r.togglePopover.bind(r), r.closePopover = r.closePopover.bind(r), r } return C(t, n.a.Component), A(t, [{ key: "componentWillReceiveProps", value: function(e) { if (e.base_asset !== this.props.base_asset || e.quote_asset !== this.props.quote_asset) { var t = _.a.getMarketName(e.base_asset, e.quote_asset) , r = t.marketName , a = t.first , n = t.second; this.setState({ marketName: r, first: a, second: n }) } } }, { key: "togglePopover", value: function(e) { e.preventDefault(), this.setState({ isPopoverOpen: !this.state.isPopoverOpen }) } }, { key: "closePopover", value: function() { this.setState({ isPopoverOpen: !1 }) } }, { key: "onFlip", value: function() { var e = {}; e[this.state.marketName] = !this.props.marketDirections.get(this.state.marketName), u.a.changeMarketDirection(e) } }, { key: "shouldComponentUpdate", value: function(e, t) { return e.marketDirections !== this.props.marketDirections || e.base_amount !== this.props.base_amount || e.quote_amount !== this.props.quote_amount || e.decimals !== this.props.decimals || !o.a.are_equal_shallow(e.pulsate, this.props.pulsate) || !o.a.are_equal_shallow(t, this.state) } }, { key: "goToMarket", value: function(e) { e.preventDefault(); var t = this.state , r = t.marketName , a = t.first , n = t.second , i = this.props.marketDirections.get(r); this.props.history.push("/market/" + (i ? n.get("symbol") : a.get("symbol")) + "_" + (i ? a.get("symbol") : n.get("symbol"))) } }, { key: "render", value: function() { var e = this.props , t = e.base_asset , r = e.base_amount , a = e.quote_amount , o = e.marketDirections , s = e.hide_symbols , l = e.noPopOver , c = e.pulsate , u = this.state , d = u.marketName , h = u.first , _ = u.second; if (!h || !_) return n.a.createElement("span", null, "--"); var y = o.get(d) || this.props.invert; this.props.force_direction && _.get("symbol") === this.props.force_direction && y ? y = !1 : this.props.force_direction && h.get("symbol") === this.props.force_direction && !y && (y = !0); var v = void 0 , w = void 0; if (y ? (v = _, w = h) : (v = h, w = _), v.get("id") !== t.get("id")) { var A = r; r = a, a = A } var E = void 0; try { E = new b.i({ quote: new b.a({ asset_id: v.get("id"), precision: v.get("precision"), amount: r }), base: new b.a({ asset_id: w.get("id"), precision: w.get("precision"), amount: a }) }) } catch (e) { return null } var T = ""; if (!this.props.hide_value) { var C = this.props.ignorePriceFeed ? a / r : E.toReal(); if (this.props.factor && (C = this.props.negative_invert ? y ? C * this.props.factor : C / this.props.factor : y ? C / this.props.factor : C * this.props.factor), isNaN(C) || !isFinite(C)) return n.a.createElement("span", null, "--"); var z = this.props.decimals ? this.props.decimals : E.base.precision; z = Math.min(8, z), T = n.a.createElement(i.b, { value: C, minimumFractionDigits: Math.max(2, z), maximumFractionDigits: Math.max(2, z) }), c && ("object" !== (void 0 === c ? "undefined" : S(c)) && (c = {}), T = n.a.createElement(g.a, x({ value: C }, c), T)) } var B = s ? "" : n.a.createElement(k.Tooltip, { placement: "bottom", title: l ? "Click to invert the price" : null }, n.a.createElement("span", { className: l ? "clickable inline-block" : "", onClick: l ? this.onFlip.bind(this) : null }, n.a.createElement(f.a, { name: w.get("symbol"), noTip: l }), "/", n.a.createElement(f.a, { name: v.get("symbol"), noTip: l }))) , O = l || s ? null : n.a.createElement("div", null, n.a.createElement("div", { className: "button", onClick: this.onFlip.bind(this) }, n.a.createElement(m.a, { content: "exchange.invert" })), n.a.createElement("div", { className: "button", onClick: this.goToMarket.bind(this) }, n.a.createElement(m.a, { content: "exchange.to_market" }))) , P = O ? n.a.createElement(p.a, { isOpen: this.state.isPopoverOpen, onOuterAction: this.closePopover, body: O }, n.a.createElement("span", { className: "currency click-for-help", onClick: this.togglePopover }, B)) : null; return n.a.createElement("span", { className: "formatted-price" }, T, " ", P || B) } }]), t }(); z.propTypes = { base_amount: v.a.any, quote_amount: v.a.any, decimals: v.a.number }, z = Object(s.a)(z, { propNames: ["base_asset", "quote_asset"] }), z = Object(w.a)(z); var B = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, n.a.Component), A(t, [{ key: "render", value: function() { return n.a.createElement(l.a, { stores: [c.a], inject: { marketDirections: function() { return c.a.getState().marketDirections } } }, n.a.createElement(z, this.props)) } }]), t }(); t.a = B } , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(4) , o = r.n(i) , s = r(839) , l = r.n(s) , c = r(22) , u = r(7); t.a = function(e) { var t = e.className , r = void 0 === t ? "button" : t , a = e.text , i = void 0 === a ? "" : a , s = e.tip , d = void 0 === s ? "tooltip.copy_tip" : s , p = e.dataPlace , h = void 0 === p ? "right" : p , m = e.buttonIcon , f = void 0 === m ? "clippy" : m , g = e.buttonText , _ = void 0 === g ? "" : g; return n.a.createElement(u.Tooltip, { placement: h, title: o.a.translate(d) }, n.a.createElement("div", null, n.a.createElement(l.a, { "data-clipboard-text": i, className: r }, _ || n.a.createElement(c.a, { name: f, title: "icons.clippy.copy" })))) } } , function(e, t, r) { "use strict"; r.d(t, "c", function() { return c }), r.d(t, "f", function() { return u }), r.d(t, "d", function() { return d }), r.d(t, "e", function() { return p }), r.d(t, "b", function() { return h }), r.d(t, "a", function() { return m }), r.d(t, "g", function() { return f }); var a = r(14) , n = r(231) , i = r(78) , o = r(4) , s = r.n(o) , l = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }(); function c(e) { if ("1.2.0" === e.get("issuer")) return s.a.translate("exchange.native"); var t = "PPY" === e.get("symbol") ? "RUDEX" : e.get("symbol").split(".")[0]; return u("PPY" === e.get("symbol") ? "RUDEX.PPY" : e.get("symbol")) ? i.b[t].name : null } function u(e) { var t = ""; return t = "PPY" === e ? "RUDEX" : e.split(".")[0], -1 !== i.c.indexOf(t) } function d(e) { var t = this , r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "depositAllowed" , a = this.state.gatewayStatus , n = function(n) { a[n].options.enabled = !1, t.props.backedCoins.get(n.toUpperCase(), []).find(function(t) { var i = t.backingCoinType || t.backingCoin , o = void 0 === t.isAvailable || "boolean" == typeof t.isAvailable && t.isAvailable; if (-1 !== i.toUpperCase().indexOf("EOS.")) { var s = i.split(".") , c = l(s, 2); c[0]; i = c[1] } t[r] && o && e == i && (a[n].options.enabled = !0) }) }; for (var i in a) n(i); return a } function p(e, t) { var r = m(e).selectedGateway , a = h(e, t); return a ? "RUDEX" === r ? a.issuerId || a.issuer : a.intermediateAccount || a.issuer : void 0 } function h(e, t) { var r = m(e).selectedGateway; return t.get(r, []).find(function(t) { return t.symbol.toUpperCase() === e.toUpperCase() }) || {} } function m(e) { var t = e.split(".") , r = l(t, 2) , a = r[0] , n = r[1]; return "PPY" === e && (a = "RUDEX", n = "PPY"), { selectedGateway: a, selectedAsset: n } } function f() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "4018d784"; if (a.Apis.instance().chain_id && a.Apis.instance().chain_id.substr(0, 8) === e) for (var t in n.a.fetchPairs.defer(), i.b) i.b[t].isEnabled && (i.b[t].isSimple ? n.a.fetchCoinsSimple.defer({ backer: i.b[t].id, url: i.b[t].baseAPI.BASE + i.b[t].baseAPI.COINS_LIST }) : n.a.fetchCoins.defer({ backer: i.b[t].id, url: i.b[t].baseAPI.BASE + i.b[t].baseAPI.COINS_LIST, urlBridge: i.b[t].baseAPI.BASE + i.b[t].baseAPI.TRADING_PAIRS, urlWallets: i.b[t].baseAPI.BASE + i.b[t].baseAPI.ACTIVE_WALLETS })) } } , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(69) , i = r(99) , o = r(5) , s = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var l = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e.bindListeners({ onIncommingFile: n.c.incommingWebFile, onIncommingBuffer: n.c.incommingBuffer, onReset: n.c.reset }), e._export("setWalletObjct"), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, i["a"]), s(t, [{ key: "_getInitialState", value: function() { return { name: null, contents: null, sha1: null, size: null, last_modified: null, public_key: null, wallet_object: null } } }, { key: "setWalletObjct", value: function(e) { this.setState({ wallet_object: e }) } }, { key: "onReset", value: function() { this.setState(this._getInitialState()) } }, { key: "onIncommingFile", value: function(e) { var t = e.name , r = e.contents , a = e.last_modified , n = o.hash.sha1(r).toString("hex") , i = r.length , s = u(r); this.setState({ name: t, contents: r, sha1: n, size: i, last_modified: a, public_key: s }) } }, { key: "onIncommingBuffer", value: function(e) { var t = e.name , r = e.contents , a = e.public_key; this.onReset(); var n = o.hash.sha1(r).toString("hex") , i = r.length; a || (a = u(r)), this.setState({ name: t, contents: r, sha1: n, size: i, public_key: a }) } }]), t }() , c = a.a.createStore(l, "BackupStore"); function u(e) { try { return o.PublicKey.fromBuffer(e.slice(0, 33)) } catch (e) { console.error(e, e.stack) } } t.a = c } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(351) , o = r(43) , s = r(45) , l = r(11) , c = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function d(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function p(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function h(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var m = function(e) { function t() { d(this, t); var e = p(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.getDynamicObject = e.getDynamicObject.bind(e), e } return h(t, n.a.Component), u(t, [{ key: "getDynamicObject", value: function(e) { return this.props.dos.find(function(t) { return t && t.get("id") === e }) } }, { key: "render", value: function() { return n.a.cloneElement(n.a.Children.only(this.props.children), c({}, this.props, { getDynamicObject: this.getDynamicObject })) } }]), t }(); m.propTypes = { dos: o.a.ChainObjectsList }, m.defaultProps = { dos: Object(l.List)() }, m = Object(s.a)(m), t.a = function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; t.propNames = t.propNames || [t.asList ? "assets" : "asset"]; var r = t.propNames.reduce(function(e, r) { return e[r] = t.asList ? o.a.ChainAssetsList : o.a.ChainAsset.isRequired, e }, {}) , a = Object.keys(r).reduce(function(e, r) { var a = t.defaultProps && t.defaultProps[r]; return e[r] = t.asList ? Object(l.List)(a || []) : a || "1.3.0", e }, {}); t.defaultProps && t.defaultProps.tempComponent && (a.tempComponent = t.defaultProps.tempComponent); var f = function(e) { function r() { return d(this, r), p(this, (r.__proto__ || Object.getPrototypeOf(r)).apply(this, arguments)) } return h(r, n.a.Component), u(r, [{ key: "render", value: function() { var e = this , r = {} , a = {} , i = Object(l.List)(); Object.keys(this.props).forEach(function(n) { e.props[n] && -1 !== t.propNames.indexOf(n) ? (t.withDynamic && (t.asList ? e.props[n].forEach(function(e) { e && (i = i.push(e.get("dynamic_asset_data_id"))) }) : i = i.push(e.props[n].get("dynamic_asset_data_id"))), r[n] = t.asList ? e.props[n].filter(function(e) { return !!e }) : e.props[n]) : a[n] = e.props[n] }); var o = n.a.cloneElement(n.a.Children.only(this.props.children), c({}, a, r)); return t.withDynamic ? n.a.createElement(m, { dos: i }, o) : o } }]), r }(); f.propTypes = r, f.defaultProps = a, f = Object(s.a)(f); var g = function(t) { function r() { return d(this, r), p(this, (r.__proto__ || Object.getPrototypeOf(r)).apply(this, arguments)) } return h(r, n.a.Component), u(r, [{ key: "render", value: function() { return n.a.createElement(f, this.props, n.a.createElement(e, { ref: "bound_component" })) } }]), r }(); return g.displayName = "Wrapper(" + Object(i.a)(e) + ")", g } } , , , , , , , function(e, t, r) { "use strict"; var a = r(11) , n = r.n(a) , i = r(30) , o = r(258) , s = r(5) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.blocks = n.a.Map(), this.latestBlocks = n.a.List(), this.latestTransactions = n.a.List(), this.rpc_connection_status = null, this.no_ws_connection = !1, this.blockHeaders = new Map, this.bindListeners({ onGetBlock: o.a.getBlock, onGetLatest: o.a.getLatest, onGetHeader: o.a.getHeader, onUpdateRpcConnectionStatus: o.a.updateRpcConnectionStatus }), this.maxBlocks = 30 } return l(e, [{ key: "onGetHeader", value: function(e) { var t = e.header , r = e.height; if (!t || !r) return !1; /Z$/.test(t.timestamp) || (t.timestamp += "Z"), t.timestamp = new Date(t.timestamp), this.blockHeaders.set(r, t) } }, { key: "onGetBlock", value: function(e) { this.blocks.get(e.id) || (/Z$/.test(e.timestamp) || (e.timestamp += "Z"), e.timestamp = new Date(e.timestamp), this.blocks = this.blocks.set(e.id, e)) } }, { key: "onGetLatest", value: function(e) { var t = this , r = e.block , a = e.maxBlock; "string" == typeof r.timestamp && (/Z$/.test(r.timestamp) || (r.timestamp += "Z")), r.timestamp = new Date(r.timestamp), this.blocks = this.blocks.set(r.id, r), r.id > a - this.maxBlocks && (this.latestBlocks = this.latestBlocks.unshift(r), this.latestBlocks.size > this.maxBlocks && (this.latestBlocks = this.latestBlocks.pop()), r.transactions.length > 0 && r.transactions.forEach(function(e) { e.block_num = r.id, t.latestTransactions = t.latestTransactions.unshift(e) }), this.latestTransactions.size > this.maxBlocks && (this.latestTransactions = this.latestTransactions.pop())) } }, { key: "onUpdateRpcConnectionStatus", value: function(e) { var t = this.rpc_connection_status; "reconnect" === e ? s.ChainStore.resetCache(!1) : this.rpc_connection_status = e, null === t && "error" === e && (this.no_ws_connection = !0), this.no_ws_connection && "open" === e && (this.no_ws_connection = !1), "closed" === e && (this.no_ws_connection = !0) } }]), e }(); t.a = i.a.createStore(c, "BlockchainStore") } , , , , , function(e, t, r) { "use strict"; (function(e) { r.d(t, "c", function() { return _ }), r.d(t, "d", function() { return s }), r.d(t, "b", function() { return u }), r.d(t, "a", function() { return b }), r.d(t, "e", function() { return y }); var a = r(5) , n = r(37) , i = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , o = a.ChainTypes.operations; function s(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null , r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return new Promise(function(n, i) { Object(a.FetchChain)("getObject", "2.0.0").then(function(a) { n(_(e, t, a, r)) }).catch(i) } ) } var l = {} , c = 6e4; function u() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.accountID , r = e.feeID , o = void 0 === r ? "1.3.0" : r , u = e.type , d = void 0 === u ? "transfer" : u , p = e.options , h = void 0 === p ? null : p , m = e.data , f = e.operationsCount , g = void 0 === f ? 1 : f , _ = t + "_" + o + "_" + d + "_" + JSON.stringify(h) + "_" + JSON.stringify(m) + "_" + g; return l[_] ? l[_].result ? Promise.resolve(l[_].result) : new Promise(function(e, t) { l[_].queue.push({ res: e, rej: t }) } ) : new Promise(function(e, r) { l[_] = { queue: [{ res: e, rej: r }], result: null }, Promise.all([s(d, h, m), function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.assetID , r = e.type , n = void 0 === r ? "transfer" : r , o = e.options , l = void 0 === o ? null : o , c = e.data; return new Promise(function(e) { "1.3.0" === t ? e(!0) : Promise.all([s(n, l, c), Object(a.FetchChain)("getObject", t.replace(/^1\./, "2."))]).then(function(t) { var r = i(t, 2) , a = r[0] , n = r[1]; e(parseInt(n.get("fee_pool"), 10) >= a) }) } ) }({ assetID: o, type: d, options: h, data: m }), Object(a.FetchChain)("getAccount", t), Object(a.FetchChain)("getAsset", "1.3.0"), "1.3.0" !== o ? Object(a.FetchChain)("getAsset", o) : null]).then(function(e) { var t = i(e, 5) , r = t[0] , s = t[1] , u = t[2] , d = t[3] , p = t[4] , h = !1; "1.3.0" === o && (p = d); var m = u.getIn(["balances", "1.3.0"]) , f = u.getIn(["balances", o]); if ("1.3.0" === o && !m) return l[_].queue.forEach(function(e) { e.res({ fee: new n.a({ amount: r * g }), hasBalance: h, hasPoolBalance: s }) }), l[_] = { result: { fee: new n.a({ amount: r * g }), hasBalance: h, hasPoolBalance: s } }, void setTimeout(function() { delete l[_] }, c); Promise.all([m ? Object(a.FetchChain)("getObject", m) : null, f ? Object(a.FetchChain)("getObject", f) : null]).then(function(e) { var t = i(e, 2) , a = t[0] , u = t[1] , m = new n.a({ amount: r * g }) , f = !0; if ("1.3.0" !== o) { var b = p.getIn(["options", "core_exchange_rate"]) , y = b.get("base").toJS(); y.precision = y.asset_id === o ? p.get("precision") : d.get("precision"); var v = new n.a(y) , w = b.get("quote").toJS(); w.precision = w.asset_id === o ? p.get("precision") : d.get("precision"); var k = new n.a(w); try { var x = new n.i({ base: v, quote: k }); m = m.times(x, !0) } catch (e) { u = a, f = !1, s = !1 } } u && u.get("balance") >= m.getAmount() && (h = !0), l[_].queue.forEach(function(e) { e.res({ fee: m, hasBalance: h, hasPoolBalance: s, hasValidCER: f }) }), l[_] = { result: { fee: m, hasBalance: h, hasPoolBalance: s, hasValidCER: f } }, setTimeout(function() { delete l[_] }, c) }) }).catch(function() { l[_].queue.forEach(function(e) { e.rej() }) }) } ) } var d = "5KikQ23YhcM7jdfHbFBQg1G7Do5y6SgD9sdBZq7BqQWXmNH7gqo" , p = a.TransactionHelper.unique_nonce_uint64() , h = void 0 , m = void 0 , f = void 0 , g = {}; function _(t, r, n) { var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}; if (i.content && (i.content = new Array(i.content.length + 1).join("a")), !n) return 0; var s = t + JSON.stringify(r) + JSON.stringify(i); if (g[s]) return g[s]; var l = o[t] , c = n.getIn(["parameters", "current_fees", "parameters", l, 1]); c || (c = n.getIn(["parameters", "current_fees", "parameters", 0, 1])); var u = 0; if ((c = c.toJS()).fee && (u += c.fee), r) { var _ = !0 , b = !1 , y = void 0; try { for (var v, w = r[Symbol.iterator](); !(_ = (v = w.next()).done); _ = !0) { var k = v.value , x = c[k]; if ("price_per_kbyte" === k) { if ("memo" === i.type && i.content) { var S = h || a.PrivateKey.fromWif(d); h && (h = S); var A = "BTS8eLeqSZZtB1YHdw7KjQxRSRmaKAseCxhUSqaLxUdqvdGpp6nck" , E = void 0; E = i.content === f && m ? m : m = a.Aes.encrypt_with_checksum(S, A, p, i.content); var T = { from: "BTS6B1taKXkDojuC1qECjvC7g186d8AdeGtz8wnqWAsoRGC6RY8Rp", to: A, nonce: p, message: E } , C = a.ops.memo_data.fromObject(T) , z = JSON.stringify(a.ops.memo_data.toHex(C)); u += x * e.byteLength(z, "hex") / 1024, f = i.content } } else x && (u += x) } } catch (e) { b = !0, y = e } finally { try { !_ && w.return && w.return() } finally { if (b) throw y } } } return u = u * n.getIn(["parameters", "current_fees", "scale"]) / 1e4, g[s] = u, setTimeout(function() { delete g[s] }, 3e5), u } function b(e, t, r, a) { if (!e) return null; if ("string" == typeof e && (e = parseFloat(String.prototype.replace.call(e, /,/g, ""))), !a || 0 === a.get("balance")) return !1; var i = new n.a({ asset_id: t.get("id"), precision: t.get("precision"), real: e }) , o = i.clone(a.get("balance")); return !o.lt(i) && (i.asset_id !== r.asset_id || (i.plus(r), !o.lt(i))) } function y(e, t) { if (e && t && "1.3.0" === t.asset_id) { var r = e.getIn(["balances", t.asset_id]); return Object(a.FetchChain)("getObject", r).then(function(e) { if (e.get("balance") <= t.amount) return !0 }) } return new Promise(function(e) { return e(!1) } ) } } ).call(this, r(126).Buffer) } , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var i = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return n(e, [{ key: "addKey", value: function(e, t) { return function(r) { return new Promise(function(a) { r({ private_key_object: e, transaction: t, resolve: a }) } ) } } }, { key: "loadDbData", value: function() { return function(e) { return new Promise(function(t) { e(t) } ) } } }]), e }(); t.a = a.a.createActions(i) } , , function(e, t, r) { "use strict"; var a = r(30) , n = r(14) , i = r(4) , o = r.n(i) , s = r(141) , l = r.n(s) , c = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var u = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return c(e, [{ key: "confirm", value: function(e, t, r) { return { transaction: e, resolve: t, reject: r } } }, { key: "broadcast", value: function(e, t, r) { return function(a) { a({ broadcasting: !0, closed: !0 }); var i = setTimeout(function() { a({ broadcast: !1, broadcasting: !1, error: o.a.translate("trx_error.expire"), closed: !1 }), r && r() }, 2e3 * n.ChainConfig.expire_in_secs); e.broadcast(function() { a({ broadcasting: !1, broadcast: !0 }) }).then(function(e) { clearTimeout(i), a({ error: null, broadcasting: !1, broadcast: !0, included: !0, trx_id: e[0].id, trx_block_num: e[0].block_num, broadcasted_transaction: !0 }), t && t() }).catch(function(e) { console.error(e), clearTimeout(i); var t = e.message.split("\n")[0]; a({ broadcast: !1, broadcasting: !1, error: t, closed: !1 }), r && r() }) } } }, { key: "wasBroadcast", value: function(e) { return e } }, { key: "wasIncluded", value: function(e) { return e } }, { key: "close", value: function() { return l.a.publish("transaction_confirm_actions", "close"), !0 } }, { key: "error", value: function(e) { return { error: e } } }, { key: "togglePropose", value: function() { return !0 } }, { key: "proposeFeePayingAccount", value: function(e) { return e } }]), e }(); t.a = a.a.createActions(u) } , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2238) , o = r(140) , s = r(88) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), l(t, [{ key: "render", value: function() { var e = this.props.asset.get("symbol") , t = n.a.createElement(s.a, { name: e, noTip: !0 }); return this.props.noLink ? t : n.a.createElement(i.a, { to: "/asset/" + e + "/" }, t) } }]), t }(); t.a = Object(o.a)(c) } , , , , function(e, t) { e.exports = { permission_flags: { charge_market_fee: 1, white_list: 2, override_authority: 4, transfer_restricted: 8, disable_force_settle: 16, global_settle: 32, disable_confidential: 64, witness_fed_asset: 128, committee_fed_asset: 256 }, uia_permission_mask: ["charge_market_fee", "white_list", "override_authority", "transfer_restricted", "disable_confidential"], GRAPHENE_100_PERCENT: 1e4, GRAPHENE_1_PERCENT: 100, GRAPHENE_MAX_SHARE_SUPPLY: "1000000000000000" } } , , function(e, t, r) { "use strict"; r.d(t, "d", function() { return g }), r.d(t, "b", function() { return m }), r.d(t, "c", function() { return f }), r.d(t, "a", function() { return h }); var a = r(0) , n = r.n(a) , i = r(2) , o = r.n(i) , s = r(4) , l = r.n(s) , c = r(134) , u = r(2238) , d = r(7) , p = r(15); function h() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "depositAllowed" , t = {}; return this.props.backedCoins.forEach(function(r, a) { r.forEach(function(n) { var i = n.symbol.split(".").pop(); t[i] || (t[i] = []), n[e] && ("OPEN" != r || n.isAvailable) && t[i].push(a) }) }), t } function m() { var e = this.state , t = e.gatewayStatus , r = e.selectedAsset , a = 0; for (var n in t) this.props.backedCoins.get(n.toUpperCase(), []).find(function(e) { ((r == e.backingCoinType || r == e.backingCoin) && e.depositAllowed || e.isAvailable) && a++ }); return a } function f(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "depositAllowed" , r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null , a = this.props || {} , n = a.balances , i = a.assets , o = c.d.call(this, e, t) , s = this.state.selectedGateway || null , l = {}; n && i && n.forEach(function(e) { if (e && e.toJS) { var t = i.get(e.get("asset_type")); if (t) { var r = t.symbol.split("."); if (2 == r.length) { var a = r[1] , n = r[0]; l[a] || (l[a] = {}), l[a][n] = e.get("balance") } } } }); var u = this.state.coinToGatewayMapping; if (e != this.state.selectedAsset && u && u[e]) { var d = u[e]; if (d.length && !r) if (l[e]) { var p = null , h = null; for (var m in l[e]) { var f = l[e][m]; p || (p = f), h || (h = m) } s = d[d.indexOf(h)] || d[0] } else s = d[0]; else d.length && r && (s = r(u[e], l[e])) } return this.setState({ selectedAsset: e, selectedGateway: s, gatewayStatus: o }), { selectedAsset: e, selectedGateway: s } } function g(e) { var t = e.selectedGateway , r = e.gatewayStatus , a = e.nAvailableGateways , i = e.error , s = e.onGatewayChanged , c = e.selectedAsset , h = void 0 === c ? null : c , m = e.balances , f = void 0 === m ? null : m , g = e.assets , _ = void 0 === g ? null : g , b = {}; f && _ && f.forEach(function(e) { if (e && e.toJS) { var t = _.get(e.get("asset_type")); if (t) { var r = t.symbol.split("."); if (2 == r.length) { var a = r[1] , n = r[0]; b[a] || (b[a] = {}), b[a][n] = [e.get("balance"), t] } } } }); var y = t && r[t] ? "/help/gateways/" + r[t].name.toLowerCase().replace("-", "") : null , v = []; return Object.keys(r).map(function(e) { v.push(r[e]), r[e].id == t && (t = r[e].name) }), v.sort(function(e, t) { return e.name > t.name ? 1 : e.name < t.name ? -1 : 0 }), n.a.createElement("div", null, n.a.createElement("div", { className: "no-margin no-padding" }, n.a.createElement("section", { className: "block-list" }, n.a.createElement("label", { className: "left-label" }, n.a.createElement(o.a, { content: "modal.deposit_withdraw.gateway" }), t ? n.a.createElement(u.a, { to: y, style: { cursor: "pointer" } }, " ", n.a.createElement(d.Icon, { type: "question-circle" })) : null, n.a.createElement("span", { className: "floatRight error-msg" }, !i && t && r[t] && !r[t].options.enabled ? n.a.createElement(o.a, { content: "modal.deposit_withdraw.disabled", with: { gateway: r[t].name } }) : null, i ? n.a.createElement(o.a, { content: "modal.deposit_withdraw.wallet_error" }) : null, t || 0 != a ? null : n.a.createElement(o.a, { content: "modal.deposit_withdraw.no_gateway_available" }))), n.a.createElement("div", { className: "inline-label input-wrapper" }, n.a.createElement(d.Select, { optionLabelProp: "value", onChange: s, placeholder: l.a.translate("modal.deposit_withdraw.select_gateway"), value: t, style: { width: "100%" } }, v.map(function(e) { if (e.options.enabled) return n.a.createElement(d.Select.Option, { key: e.name, value: e.id }, e.name, b && b[h] && b[h][e.id] ? n.a.createElement("span", { style: { float: "right" } }, p.a.format_asset(b[h][e.id][0], b[h][e.id][1])) : null) })))))) } } , , function(e, t, r) { "use strict"; var a = r(11) , n = r.n(a) , i = r(30) , o = r(93) , s = r(67) , l = r(55) , c = r(5) , u = r(15) , d = r(37) , p = r(107) , h = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , m = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function f(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var g = { getPrice: function() { return 0 }, sellPrice: function() { return 0 } } , _ = new l.a("__graphene__") , b = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.markets = n.a.Map(), this.asset_symbol_to_id = {}, this.pendingOrders = n.a.Map(), this.marketLimitOrders = n.a.Map(), this.marketCallOrders = n.a.Map(), this.allCallOrders = [], this.feedPrice = null, this.marketSettleOrders = n.a.OrderedSet(), this.activeMarketHistory = n.a.OrderedSet(), this.marketData = { bids: [], asks: [], calls: [], combinedBids: [], highestBid: g, combinedAsks: [], lowestAsk: g, flatBids: [], flatAsks: [], flatCalls: [], flatSettles: [], groupedBids: [], groupedAsks: [] }, this.totals = { bid: 0, ask: 0, call: 0 }, this.priceData = [], this.pendingCreateLimitOrders = [], this.activeMarket = null, this.quoteAsset = null, this.pendingCounter = 0, this.buckets = [15, 60, 300, 3600, 86400], this.bucketSize = this._getBucketSize(), this.priceHistory = [], this.lowestCallPrice = null, this.marketBase = "BTS", this.marketStats = n.a.Map({ change: 0, volumeBase: 0, volumeQuote: 0 }), this.marketReady = !1; var t = _.get("allMarketStats", {}); for (var r in t) t[r].price && (t[r].price = new d.i({ base: new d.a(h({}, t[r].price.base)), quote: new d.a(h({}, t[r].price.quote)) })); this.allMarketStats = n.a.Map(t), this.onlyStars = _.get("onlyStars", !1), this.baseAsset = { id: "1.3.0", symbol: "BTS", precision: 5 }, this.coreAsset = { id: "1.3.0", symbol: "CORE", precision: 5 }, this.trackedGroupsConfig = [], this.currentGroupLimit = 0, this.bindListeners({ onSubscribeMarket: o.a.subscribeMarket, onUnSubscribeMarket: o.a.unSubscribeMarket, onChangeBase: o.a.changeBase, onChangeBucketSize: o.a.changeBucketSize, onCancelLimitOrderSuccess: o.a.cancelLimitOrderSuccess, onCloseCallOrderSuccess: o.a.closeCallOrderSuccess, onCallOrderUpdate: o.a.callOrderUpdate, onGetMarketStats: o.a.getMarketStats, onSettleOrderUpdate: o.a.settleOrderUpdate, onSwitchMarket: o.a.switchMarket, onFeedUpdate: o.a.feedUpdate, onToggleStars: o.a.toggleStars, onGetTrackedGroupsConfig: o.a.getTrackedGroupsConfig, onChangeCurrentGroupLimit: o.a.changeCurrentGroupLimit }), this.subscribers = new Map, this.exportPublicMethods({ subscribe: this.subscribe.bind(this), unsubscribe: this.unsubscribe.bind(this), clearSubs: this.clearSubs.bind(this) }) } return m(e, [{ key: "subscribe", value: function(e, t) { if (this.subscribers.has(e) && this.subscribers.get(e) === t) return console.error("Subscribe callback already exists", t); this.subscribers.set(e, t) } }, { key: "unsubscribe", value: function(e) { this.subscribers.has(e) && this.subscribers.delete(e) } }, { key: "_notifySubscriber", value: function(e, t) { this.subscribers.has(e) && this.subscribers.get(e)(t) } }, { key: "clearSubs", value: function() { this.subscribers.clear() } }, { key: "onGetCollateralPositions", value: function(e) { this.borrowMarketState = { totalDebt: e.totalDebt, totalCollateral: e.totalCollateral } } }, { key: "_getBucketSize", value: function() { return parseInt(_.get("bucketSize", 14400)) } }, { key: "_setBucketSize", value: function(e) { this.bucketSize = e, _.set("bucketSize", e) } }, { key: "onChangeBase", value: function(e) { this.marketBase = e } }, { key: "onChangeBucketSize", value: function(e) { this._setBucketSize(e) } }, { key: "onToggleStars", value: function() { this.onlyStars = !this.onlyStars, _.set("onlyStars", this.onlyStars) } }, { key: "onUnSubscribeMarket", value: function(e) { e.unSub ? this.activeMarket = null : this.activeMarket = e.market, e.resolve && e.resolve() } }, { key: "onSwitchMarket", value: function() { this.marketReady = !1 } }, { key: "onClearMarket", value: function() { this.activeMarket = null, this.is_prediction_market = !1, this.marketLimitOrders = this.marketLimitOrders.clear(), this.marketCallOrders = this.marketCallOrders.clear(), this.allCallOrders = [], this.feedPrice = null, this.marketSettleOrders = this.marketSettleOrders.clear(), this.activeMarketHistory = this.activeMarketHistory.clear(), this.marketData = { bids: [], asks: [], calls: [], combinedBids: [], highestBid: g, combinedAsks: [], lowestAsk: g, flatBids: [], flatAsks: [], flatCalls: [], flatSettles: [], groupedBids: [], groupedAsks: [] }, this.totals = { bid: 0, ask: 0, call: 0 }, this.lowestCallPrice = null, this.pendingCreateLimitOrders = [], this.priceHistory = [], this.marketStats = n.a.Map({ change: 0, volumeBase: 0, volumeQuote: 0 }) } }, { key: "_marketHasCalls", value: function() { var e = this.quoteAsset , t = this.baseAsset; return !(!e.has("bitasset") || e.getIn(["bitasset", "options", "short_backing_asset"]) !== t.get("id")) || !(!t.has("bitasset") || t.getIn(["bitasset", "options", "short_backing_asset"]) !== e.get("id")) } }, { key: "onSubscribeMarket", value: function(e) { var t, r = this, a = !1; if (e.switchMarket) return this.marketReady = !1, this.emitChange(); var n = !1 , i = !1; this.invertedCalls = e.inverted, this.quoteAsset = c.ChainStore.getAsset(e.quote.get("id")), this.baseAsset = c.ChainStore.getAsset(e.base.get("id")); var o = (f(t = {}, this.quoteAsset.get("id"), { precision: this.quoteAsset.get("precision") }), f(t, this.baseAsset.get("id"), { precision: this.baseAsset.get("precision") }), t); if (e.market && e.market !== this.activeMarket && (this.onClearMarket(), this.activeMarket = e.market, a = !0, this.unsubscribe("subscribeBars")), this.feedPrice = this._getFeed(), e.buckets && (this.buckets = e.buckets, -1 === e.buckets.indexOf(this.bucketSize) && (this.bucketSize = e.buckets[e.buckets.length - 1])), e.buckets && (this.buckets = e.buckets), e.limits) { var s = this.marketLimitOrders; this.marketLimitOrders = this.marketLimitOrders.clear(), e.limits.forEach(function(e) { "number" != typeof e.for_sale && (e.for_sale = parseInt(e.for_sale, 10)), e.expiration = new Date(e.expiration), r.marketLimitOrders = r.marketLimitOrders.set(e.id, new d.g(e,o,r.quoteAsset.get("id"))) }), n = Object(d.k)(this.marketLimitOrders, s); for (var l = function(e) { var t = r.pendingCreateLimitOrders[e]; r.marketLimitOrders.find(function(e) { return t.seller === e.seller && t.expiration === e.expiration }) && r.pendingCreateLimitOrders.splice(e, 1) }, u = this.pendingCreateLimitOrders.length - 1; u >= 0; u--) l(u); 0 === this.pendingCreateLimitOrders.length && (this.pendingCounter = 0) } if (e.calls) { var p = this.marketCallOrders; this.allCallOrders = e.calls, this.marketCallOrders = this.marketCallOrders.clear(), e.calls.forEach(function(e) { try { var t = r[r.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "current_feed", "maintenance_collateral_ratio"]) , a = new d.b(e,o,r.quoteAsset.get("id"),r.feedPrice,t,r.is_prediction_market); a.isMarginCalled() && (r.marketCallOrders = r.marketCallOrders.set(e.id, a, t)) } catch (e) { console.error("Unable to construct calls array, invalid feed price or prediction market?") } }), i = Object(d.k)(this.marketCallOrders, p) } if (this.updateSettleOrders(e), e.history && (this.activeMarketHistory = this.activeMarketHistory.clear(), e.history.forEach(function(e) { e.op.is_maker || 0 == e.op.receives.amount || 0 == e.op.pays.amount || (r.activeMarketHistory = r.activeMarketHistory.add(new d.e(e,o,r.quoteAsset.get("id")))) })), e.fillOrders && e.fillOrders.forEach(function(e) { r.activeMarketHistory = r.activeMarketHistory.add(new d.e(e[0][1],o,r.quoteAsset.get("id"))) }), e.ticker) { var h = this.quoteAsset.get("symbol") + "_" + this.baseAsset.get("symbol") , m = this._calcMarketStats(this.baseAsset, this.quoteAsset, h, e.ticker); this.allMarketStats = this.allMarketStats.set(h, m); var g = this._invertMarketStats(m, h) , _ = g.invertedStats , b = g.invertedMarketName; this.allMarketStats = this.allMarketStats.set(b, _), this._saveMarketStats(), this.marketStats = this.marketStats.set("change", m.change), this.marketStats = this.marketStats.set("volumeBase", m.volumeBase), this.marketStats = this.marketStats.set("volumeQuote", m.volumeQuote) } if ((i || n) && (this._orderBook(n, i), this._depthChart()), e.price && (this.priceHistory = e.price, this._priceChart()), e.groupedOrdersBids.length > 0 || e.groupedOrdersAsks.length > 0) { var y = [] , v = []; e.groupedOrdersBids.forEach(function(e, t) { y.push(new d.f(e,o,!0)) }), e.groupedOrdersAsks.forEach(function(e, t) { v.push(new d.f(e,o,!1)) }), this._groupedOrderBook(y, v), this._depthChart() } this.marketReady = !0, this.emitChange(), a && this._notifySubscriber("market_change", this.quoteAsset.get("symbol") + "_" + this.baseAsset.get("symbol")), e.resolve && e.resolve() } }, { key: "onCancelLimitOrderSuccess", value: function(e) { var t = this; if (!e || !e.length) return !1; var r = !1; e.forEach(function(e) { e && t.marketLimitOrders.has(e) && (r = !0, t.marketLimitOrders = t.marketLimitOrders.delete(e)) }), 0 === this.marketLimitOrders.size && (this.marketData.bids = [], this.marketData.flatBids = [], this.marketData.asks = [], this.marketData.flatAsks = []), r && (this._orderBook(!0, !1), this._depthChart()) } }, { key: "onCloseCallOrderSuccess", value: function(e) { if (!e || !this.marketCallOrders.has(e)) return !1; this.marketCallOrders = this.marketCallOrders.delete(e), 0 === this.marketCallOrders.size && (this.marketData.calls = [], this.marketData.flatCalls = []), this._orderBook(!1, !0), this._depthChart() } }, { key: "onCallOrderUpdate", value: function(e) { if (!(e && this.quoteAsset && this.baseAsset && this.feedPrice)) return !1; if (e.call_price.quote.asset_id === this.quoteAsset.get("id") || e.call_price.quote.asset_id === this.baseAsset.get("id")) { var t, r = (f(t = {}, this.quoteAsset.get("id"), { precision: this.quoteAsset.get("precision") }), f(t, this.baseAsset.get("id"), { precision: this.baseAsset.get("precision") }), t); try { var a = this[this.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "current_feed", "maintenance_collateral_ratio"]) , n = new d.b(e,r,this.quoteAsset.get("id"),this.feedPrice,a); n.isMarginCalled() && (this.marketCallOrders = this.marketCallOrders.set(e.id, n, a), this._orderBook(!1, !0), this._depthChart()) } catch (t) { console.error("Unable to construct calls array, invalid feed price or prediction market?", e, this.quoteAsset && this.quoteAsset.get("id"), this.baseAsset && this.baseAsset.get("id")) } } } }, { key: "onFeedUpdate", value: function(e) { var t = this; if (!this.quoteAsset || !this.baseAsset) return !1; if (e.get("id") !== this[this.invertedCalls ? "baseAsset" : "quoteAsset"].get("id")) return !1; this[this.invertedCalls ? "baseAsset" : "quoteAsset"] = e; var r = !1 , a = this._getFeed(); if ((a && !this.feedPrice || this.feedPrice && this.feedPrice.ne(a)) && (r = !0), r) { var n; this.feedPrice = a; var i = (f(n = {}, this.quoteAsset.get("id"), { precision: this.quoteAsset.get("precision") }), f(n, this.baseAsset.get("id"), { precision: this.baseAsset.get("precision") }), n); this.marketCallOrders = this.marketCallOrders.clear(), this.allCallOrders.forEach(function(e) { try { var r = t[t.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "current_feed", "maintenance_collateral_ratio"]); new d.b(e,i,t.quoteAsset.get("id"),t.feedPrice,r,t.is_prediction_market).isMarginCalled() && (t.marketCallOrders = t.marketCallOrders.set(e.id, new d.b(e,i,t.quoteAsset.get("id"),t.feedPrice,r))) } catch (e) { console.error("Unable to construct calls array, invalid feed price or prediction market?") } }), this._orderBook(!0, !0), this._depthChart() } } }, { key: "_getFeed", value: function() { var e; if (!this._marketHasCalls()) return this.bitasset_options = null, this.is_prediction_market = !1, null; var t = (f(e = {}, this.quoteAsset.get("id"), { precision: this.quoteAsset.get("precision") }), f(e, this.baseAsset.get("id"), { precision: this.baseAsset.get("precision") }), e) , r = p.a.extractRawFeedPrice(this[this.invertedCalls ? "baseAsset" : "quoteAsset"]); try { var a = this[this.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "current_feed", "maximum_short_squeeze_ratio"]); if (this.is_prediction_market = this[this.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "is_prediction_market"], !1), this.bitasset_options = this[this.invertedCalls ? "baseAsset" : "quoteAsset"].getIn(["bitasset", "options"]).toJS(), this.is_prediction_market && r.getIn(["base", "asset_id"]) === r.getIn(["quote", "asset_id"])) { var n = this.bitasset_options.short_backing_asset; t[n] || (t[n] = { precision: this.quoteAsset.get("precision") }), r = (r = (r = (r = r.setIn(["base", "amount"], 1)).setIn(["base", "asset_id"], n)).setIn(["quote", "amount"], 1)).setIn(["quote", "asset_id"], this.quoteAsset.get("id")), a = 1e3 } return new d.d({ priceObject: r, market_base: this.quoteAsset.get("id"), sqr: a, assets: t }) } catch (e) { return console.error(this.activeMarket, "does not have a properly configured feed price"), null } } }, { key: "_priceChart", value: function() { for (var e = [], t = void 0, r = void 0, a = void 0, n = void 0, i = void 0, o = 0; o < this.priceHistory.length; o++) { var s = function(e, t) { return e !== 1 / 0 && t !== 1 / 0 ? Math.max(e, t) : e === 1 / 0 ? t : e } , l = function(e, t) { return 0 !== e && 0 !== t ? Math.min(e, t) : 0 === e ? t : e } , c = this.priceHistory[o]; /Z$/.test(c.key.open) || (c.key.open += "Z"); var d = new Date(c.key.open); this.quoteAsset.get("id") === c.key.quote ? (r = u.a.get_asset_price(c.high_base, this.baseAsset, c.high_quote, this.quoteAsset), a = u.a.get_asset_price(c.low_base, this.baseAsset, c.low_quote, this.quoteAsset), t = u.a.get_asset_price(c.open_base, this.baseAsset, c.open_quote, this.quoteAsset), n = u.a.get_asset_price(c.close_base, this.baseAsset, c.close_quote, this.quoteAsset), i = u.a.get_asset_amount(c.quote_volume, this.quoteAsset)) : (a = u.a.get_asset_price(c.high_quote, this.baseAsset, c.high_base, this.quoteAsset), r = u.a.get_asset_price(c.low_quote, this.baseAsset, c.low_base, this.quoteAsset), t = u.a.get_asset_price(c.open_quote, this.baseAsset, c.open_base, this.quoteAsset), n = u.a.get_asset_price(c.close_quote, this.baseAsset, c.close_base, this.quoteAsset), i = u.a.get_asset_amount(c.base_volume, this.quoteAsset)), 0 === a && (a = l(t, n)), (isNaN(r) || r === 1 / 0) && (r = s(t, n)), n !== 1 / 0 && 0 !== n || (n = t), t !== 1 / 0 && 0 !== t || (t = n), r > (t + n) / 2 * 1.3 && (r = s(t, n)), a < (t + n) / 2 * .7 && (a = l(t, n)), e.push({ time: d.getTime(), open: t, high: r, low: a, close: n, volume: i }) } this.priceData = e, this._notifySubscriber("subscribeBars") } }, { key: "_orderBook", value: function() { var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0] , t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; e && (this.marketData.bids = function(e) { var t = e.filter(function(e) { return e.isBid() }).sort(function(e, t) { return e.getPrice() - t.getPrice() }).map(function(e) { return e }).toArray(); if (t.length > 1) for (var r = t.length - 2; r >= 0; r--) t[r].getPrice() === t[r + 1].getPrice() && (t[r] = t[r].sum(t[r + 1]), t.splice(r + 1, 1)); return t }(this.marketLimitOrders), this.marketData.asks = function(e) { var t = e.filter(function(e) { return !e.isBid() }).sort(function(e, t) { return e.getPrice() - t.getPrice() }).map(function(e) { return e }).toArray(); if (t.length > 1) for (var r = t.length - 2; r >= 0; r--) t[r].getPrice() === t[r + 1].getPrice() && (t[r] = t[r].sum(t[r + 1]), t.splice(r + 1, 1)); return t }(this.marketLimitOrders), t || this._combineOrders()), t && (this.marketData.calls = this.constructCalls(this.marketCallOrders), this._combineOrders()) } }, { key: "_groupedOrderBook", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; if (e && t) { 0; var r = new d.a({ asset_id: this.quoteAsset.get("id"), precision: this.quoteAsset.get("precision") }) , a = new d.a({ asset_id: this.baseAsset.get("id"), precision: this.baseAsset.get("precision") }); e.sort(function(e, t) { return t.getPrice() - e.getPrice() }).forEach(function(e) { a.plus(e.amountForSale()), r.plus(e.amountToReceive(!0)), e.setTotalForSale(a.clone()), e.setTotalToReceive(r.clone()) }), r = new d.a({ asset_id: this.baseAsset.get("id"), precision: this.baseAsset.get("precision") }), a = new d.a({ asset_id: this.quoteAsset.get("id"), precision: this.quoteAsset.get("precision") }), t.sort(function(e, t) { return e.getPrice() - t.getPrice() }).forEach(function(e) { a.plus(e.amountForSale()), r.plus(e.amountToReceive(!1)), e.setTotalForSale(a.clone()), e.setTotalToReceive(r.clone()) }), this.marketData.groupedBids = e, this.marketData.groupedAsks = t } } }, { key: "constructCalls", value: function(e) { var t = this , r = []; if (e.size) { if ((r = e.sort(function(e, t) { return e.getPrice() - t.getPrice() }).map(function(e) { return t.invertedCalls ? t.lowestCallPrice = t.lowestCallPrice ? Math.max(t.lowestCallPrice, e.getPrice(!1)) : e.getPrice(!1) : t.lowestCallPrice = t.lowestCallPrice ? Math.min(t.lowestCallPrice, e.getPrice(!1)) : e.getPrice(!1), e }).toArray()).length > 1) for (var a = r.length - 2; a >= 0; a--) r[a] = r[a].sum(r[a + 1]), r.splice(a + 1, 1) } else this.lowestCallPrice = null; return r } }, { key: "_saveMarketStats", value: function() { var e = this; this.saveStatsTimeout || (this.saveStatsTimeout = setTimeout(function() { _.set("allMarketStats", e.allMarketStats.toJS()), e.saveStatsTimeout = null }, 3e4)) } }, { key: "_combineOrders", value: function() { var e = void 0 , t = void 0; !!this.marketCallOrders.size && this.marketCallOrders.first().isBid() ? (e = this.marketData.bids.concat(this.marketData.calls), t = this.marketData.asks.concat([])) : (e = this.marketData.bids.concat([]), t = this.marketData.asks.concat(this.marketData.calls)); var r = new d.a({ asset_id: this.quoteAsset.get("id"), precision: this.quoteAsset.get("precision") }) , a = new d.a({ asset_id: this.baseAsset.get("id"), precision: this.baseAsset.get("precision") }); e.sort(function(e, t) { return t.getPrice() - e.getPrice() }).forEach(function(e) { r.plus(e.amountToReceive(!0)), a.plus(e.amountForSale()), e.setTotalForSale(a.clone()), e.setTotalToReceive(r.clone()) }), r = new d.a({ asset_id: this.baseAsset.get("id"), precision: this.baseAsset.get("precision") }), a = new d.a({ asset_id: this.quoteAsset.get("id"), precision: this.quoteAsset.get("precision") }), t.sort(function(e, t) { return e.getPrice() - t.getPrice() }).forEach(function(e) { a.plus(e.amountForSale()), r.plus(e.amountToReceive(!1)), e.setTotalForSale(a.clone()), e.setTotalToReceive(r.clone()) }), this.marketData.lowestAsk = t.length ? t[0] : g, this.marketData.highestBid = e.length ? e[0] : g, this.marketData.combinedBids = e, this.marketData.combinedAsks = t } }, { key: "_depthChart", value: function() { var e = this , t = [] , r = [] , a = [] , n = 0 , i = 0 , o = 0 , l = [] , c = [] , u = [] , d = []; if (this.marketLimitOrders.size && (this.marketData.bids.forEach(function(e) { t.push([e.getPrice(), e.amountToReceive().getAmount({ real: !0 })]), n += e.amountForSale().getAmount({ real: !0 }) }), this.marketData.asks.forEach(function(e) { r.push([e.getPrice(), e.amountForSale().getAmount({ real: !0 })]) }), r.sort(function(e, t) { return e[0] - t[0] }), t.sort(function(e, t) { return e[0] - t[0] }), (l = s.a.flatten_orderbookchart_highcharts(t, !0, !0, 1e3)).length && l.unshift([0, l[0][1]]), (c = s.a.flatten_orderbookchart_highcharts(r, !0, !1, 1e3)).length && (c.push([1.5 * c[c.length - 1][0], c[c.length - 1][1]]), i = c[c.length - 1][1])), this.marketData.calls.length) { var p = this.marketData.calls[0].isBid(); this.marketData.calls.forEach(function(e) { a.push([e.getSqueezePrice(), e[e.isBid() ? "amountToReceive" : "amountForSale"]().getAmount({ real: !0 })]) }), a.forEach(function(t) { e.invertedCalls ? o += t[1] : o += t[1] * t[0] }), p ? n += o : i += o, a.sort(function(e, t) { return e[0] - t[0] }), this.invertedCalls ? (u = s.a.flatten_orderbookchart_highcharts(a, !0, !1, 1e3), c.length && u[u.length - 1][0] < c[c.length - 1][0] && u.push([c[c.length - 1][0], u[u.length - 1][1]])) : (u = s.a.flatten_orderbookchart_highcharts(a, !0, !0, 1e3)).length > 0 && u.unshift([0, u[0][1]]) } this.marketSettleOrders.size && (d = this.marketSettleOrders.reduce(function(e, t) { return e ? (e[0][1] = e[0][1] + t[t.isBid() ? "amountToReceive" : "amountForSale"]().getAmount({ real: !0 }), e) : [[t.getPrice(), t[t.isBid() ? "amountToReceive" : "amountForSale"]().getAmount({ real: !0 })]] }, null), this.feedPrice.inverted ? d.push([c[c.length - 1][0], d[0][1]]) : d.unshift([0, d[0][1]])), this.marketData.groupedBids.length > 0 && this.marketData.groupedAsks.length > 0 && (t = [], r = [], n = 0, i = 0, this.marketData.groupedBids.forEach(function(e) { t.push([e.getPrice(), e.amountToReceive().getAmount({ real: !0 })]), n += e.amountForSale().getAmount({ real: !0 }) }), this.marketData.groupedAsks.forEach(function(e) { r.push([e.getPrice(), e.amountForSale().getAmount({ real: !0 })]) }), r.sort(function(e, t) { return e[0] - t[0] }), t.sort(function(e, t) { return e[0] - t[0] }), (l = s.a.flatten_orderbookchart_highcharts(t, !0, !0, 1e3)).length && l.unshift([0, l[0][1]]), (c = s.a.flatten_orderbookchart_highcharts(r, !0, !1, 1e3)).length && (c.push([1.5 * c[c.length - 1][0], c[c.length - 1][1]]), i = c[c.length - 1][1])), this.marketData.flatAsks = c, this.marketData.flatBids = l, this.marketData.flatCalls = u, this.marketData.flatSettles = d, this.totals = { bid: n, ask: i, call: o } } }, { key: "_calcMarketStats", value: function(e, t, r, a) { var n = new d.a({ real: parseFloat(a.base_volume), asset_id: e.get("id"), precision: e.get("precision") }) , i = new d.a({ real: parseFloat(a.quote_volume), asset_id: t.get("id"), precision: t.get("precision") }) , o = void 0; try { o = new d.i({ base: n, quote: i, real: parseFloat(a.latest) }) } catch (e) {} var s = o ? { base: o.base.toObject(), quote: o.quote.toObject() } : null; return o && isNaN(o.toReal()) && (o = void 0, s = null), { change: parseFloat(a.percent_change).toFixed(2), volumeBase: n.getAmount({ real: !0 }), volumeQuote: i.getAmount({ real: !0 }), price: o, close: s } } }, { key: "_invertMarketStats", value: function(e, t) { var r = t.split("_")[1] + "_" + t.split("_")[0]; return { invertedStats: { change: (100 * (1 / (1 + parseFloat(e.change) / 100) - 1)).toFixed(2), price: e.price ? e.price.invert() : e.price, volumeBase: e.volumeQuote, volumeQuote: e.volumeBase, close: e.close ? { base: e.close.quote, quote: e.close.base } : e.close }, invertedMarketName: r } } }, { key: "onGetMarketStats", value: function(e) { if (e && e.tickers) { for (var t = 0; t < e.tickers.length; t++) { var r = this._calcMarketStats(e.bases[t], e.quotes[t], e.markets[t], e.tickers[t]); this.allMarketStats = this.allMarketStats.set(e.markets[t], r); var a = this._invertMarketStats(r, e.markets[t]) , n = a.invertedStats , i = a.invertedMarketName; this.allMarketStats = this.allMarketStats.set(i, n) } return this._saveMarketStats(), !0 } return !1 } }, { key: "onSettleOrderUpdate", value: function(e) { this.updateSettleOrders(e) } }, { key: "updateSettleOrders", value: function(e) { var t = this; if (e.settles && e.settles.length) { var r, a = (f(r = {}, this.quoteAsset.get("id"), { precision: this.quoteAsset.get("precision") }), f(r, this.baseAsset.get("id"), { precision: this.baseAsset.get("precision") }), r); this.marketSettleOrders = this.marketSettleOrders.clear(), e.settles.forEach(function(e) { e.settlement_date = new Date(e.settlement_date + "Z"), t.marketSettleOrders = t.marketSettleOrders.add(new d.j(e,a,t.quoteAsset.get("id"),t.feedPrice,t.bitasset_options)) }) } } }, { key: "onGetTrackedGroupsConfig", value: function(e) { e.trackedGroupsConfig.length > 0 && (this.trackedGroupsConfig = e.trackedGroupsConfig) } }, { key: "onChangeCurrentGroupLimit", value: function(e) { this.currentGroupLimit = e } }]), e }(); t.a = i.a.createStore(b, "MarketsStore") } , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(4) , o = r.n(i) , s = r(1) , l = r.n(s) , c = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var u = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { selected: null }, r.default_placeholder = o.a.translate("account.select_placeholder"), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), c(t, [{ key: "componentDidMount", value: function() {} }, { key: "shouldComponentUpdate", value: function(e) { return e.selected !== this.props.selected || e.list_size !== this.props.list_size || e.placeholder !== this.props.placeholder || e.account_names !== this.props.account_names } }, { key: "value", value: function() { return this.state.selected } }, { key: "reset", value: function() { this.setState({ selected: null }) } }, { key: "render", value: function() { var e = this.props.account_names , t = this.props.selected , r = this.props.placeholder || this.default_placeholder; r = this.props.list_size > 1 ? n.a.createElement("option", { value: "", disabled: !0 }, r) : n.a.createElement("option", { value: "" }, r); var a = 0; return n.a.createElement("select", { ref: "account-selector", key: t, defaultValue: t, className: "form-control account-select bts-select " + (this.props.className || ""), onChange: this._onAccountChange.bind(this), style: this.props.center ? { margin: "0 auto" } : null, tabIndex: this.props.tabIndex }, r, e.sort().map(function(e) { return e && "" !== e ? n.a.createElement("option", { key: a++, value: e }, e) : null })) } }, { key: "_onAccountChange", value: function(e) { e.preventDefault(); var t = e.target.value; this._selectAccount(t) } }, { key: "_selectAccount", value: function(e) { e === (this.props.placeholder || this.default_placeholder) && (e = null), this.setState({ selected: e }), this.props.onChange && this.props.onChange(e) } }]), t }(); u.propTypes = { account_names: l.a.array, list_size: l.a.number, onChange: l.a.func, placeholder: l.a.string, center: l.a.bool, tabIndex: l.a.number, className: l.a.string }, t.a = u } , , function(e, t, r) { "use strict"; var a = r(11) , n = r.n(a) , i = r(30) , o = r(231) , s = r(55) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = new s.a("__graphene__") , u = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.backedCoins = n.a.Map(c.get("backedCoins", {})), this.bridgeCoins = n.a.Map(n.a.fromJS(c.get("bridgeCoins", {}))), this.bridgeInputs = ["btc", "dash", "eth", "steem", "sbd", "doge", "bch", "ppy", "ltc"], this.down = n.a.Map({}), this.bindListeners({ onFetchCoins: o.a.fetchCoins, onFetchCoinsSimple: o.a.fetchCoinsSimple, onFetchPairs: o.a.fetchPairs }) } return l(e, [{ key: "onFetchCoins", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.backer , r = e.coins , a = e.backedCoins , n = e.down; t && r && (this.backedCoins = this.backedCoins.set(t, a), c.set("backedCoins", this.backedCoins.toJS()), this.down = this.down.set(t, !1)), n && (this.down = this.down.set(n, !0)) } }, { key: "onFetchCoinsSimple", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.backer , r = e.coins , a = e.down; t && r && (this.backedCoins = this.backedCoins.set(t, r), c.set("backedCoins", this.backedCoins.toJS()), this.down = this.down.set(t, !1)), a && (this.down = this.down.set(a, !0)) } }, { key: "onFetchPairs", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , r = t.coins , a = t.bridgeCoins , i = t.wallets , o = t.down; if (r && a && i) { var s = {}; r.forEach(function(e) { return s[e.coinType] = e }), a = a.filter(function(t) { return t && s[t.outputCoinType] && "bitshares2" === s[t.outputCoinType].walletType && -1 !== e.bridgeInputs.indexOf(t.inputCoinType) }).forEach(function(t) { t.isAvailable = -1 !== i.indexOf(s[t.outputCoinType].walletType), e.bridgeCoins = e.bridgeCoins.setIn([s[t.outputCoinType].walletSymbol, t.inputCoinType], n.a.fromJS(t)) }), c.set("bridgeCoins", this.bridgeCoins.toJS()) } o && (this.down = this.down.set(o, !0)) } }]), e }(); t.a = i.a.createStore(u, "GatewayStore") } , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(415) , i = r.n(n) , o = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var s = {}; i.a.forEach(function(e) { s[e] = r(1271)("./locale-" + e + ".json") }); var l = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return o(e, [{ key: "switchLocale", value: function(e) { return "en" === e ? { locale: e } : { locale: e, localeData: s[e] } } }, { key: "getLocale", value: function(e) { return e } }]), e }(); t.a = a.a.createActions(l) } , , , , function(e, t, r) { "use strict"; r.d(t, "b", function() { return n }), r.d(t, "a", function() { return i }); var a = r(70) , n = Object(a.struct)({ public_name: a.Str, created: a.Dat, last_modified: a.Dat, backup_date: Object(a.maybe)(a.Dat), password_pubkey: a.Str, encryption_key: a.Str, encrypted_brainkey: Object(a.maybe)(a.Str), brainkey_pubkey: a.Str, brainkey_sequence: a.Num, brainkey_backup_date: Object(a.maybe)(a.Dat), deposit_keys: Object(a.maybe)(a.Obj), chain_id: a.Str }, "WalletTcomb") , i = Object(a.struct)({ id: Object(a.maybe)(a.Num), pubkey: a.Str, label: Object(a.maybe)(a.Str), import_account_names: Object(a.maybe)(a.Arr), brainkey_sequence: Object(a.maybe)(a.Num), encrypted_key: a.Str }, "PrivateKeyTcomb") } , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(50) , i = r(5) , o = r(14) , s = r(11) , l = r.n(s) , c = r(99) , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = void 0; d = r(1270); var p = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { addresses: l.a.Map(), saving: !1 }, e.pubkeys = new Set, e._export("add", "addAll", "loadAddyMap"), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, c["a"]), u(t, [{ key: "saving", value: function() { this.state.saving || (this.state.saving = !0, this.setState({ saving: !0 })) } }, { key: "add", value: function(e) { var t = this; this.loadAddyMap().then(function() { var r = !1; if (!t.pubkeys.has(e)) { t.pubkeys.add(e), t.saving(); var a = i.key.addresses(e) , n = !0 , o = !1 , s = void 0; try { for (var l, c = a[Symbol.iterator](); !(n = (l = c.next()).done); n = !0) { var u = l.value; t.state.addresses = t.state.addresses.set(u, e), r = !0 } } catch (e) { o = !0, s = e } finally { try { !n && c.return && c.return() } finally { if (o) throw s } } r ? (t.setState({ addresses: t.state.addresses }), t.saveAddyMap()) : t.setState({ saving: !1 }) } }).catch(function(e) { throw e }) } }, { key: "addAll", value: function(e) { var t = this; return new Promise(function(r, a) { t.saving(), t.loadAddyMap().then(function() { var n = new d; n.postMessage({ pubkeys: e, address_prefix: o.ChainConfig.address_prefix }), n.onmessage = function(n) { try { var i = n.data , o = !1 , s = t.state.addresses.withMutations(function(r) { for (var a = 0; a < e.length; a++) { var n = e[a]; if (!t.pubkeys.has(n)) { t.pubkeys.add(n); var s = i[a] , l = !0 , c = !1 , u = void 0; try { for (var d, p = s[Symbol.iterator](); !(l = (d = p.next()).done); l = !0) { var h = d.value; r.set(h, n), o = !0 } } catch (e) { c = !0, u = e } finally { try { !l && p.return && p.return() } finally { if (c) throw u } } } } }); o ? (t.setState({ addresses: s }), t.saveAddyMap()) : t.setState({ saving: !1 }), r() } catch (e) { console.error("AddressIndex.addAll", e), a(e) } } }).catch(function(e) { throw e }) } ) } }, { key: "loadAddyMap", value: function() { var e = this; return this.loadAddyMapPromise ? this.loadAddyMapPromise : (this.loadAddyMapPromise = n.a.root.getProperty("AddressIndex").then(function(t) { e.state.addresses = t ? l.a.Map(t) : l.a.Map(), e.state.addresses.valueSeq().forEach(function(t) { return e.pubkeys.add(t) }), e.setState({ addresses: e.state.addresses }) }), this.loadAddyMapPromise) } }, { key: "saveAddyMap", value: function() { var e = this; clearTimeout(this.saveAddyMapTimeout), this.saveAddyMapTimeout = setTimeout(function() { return e.setState({ saving: !1 }), n.a.root.setProperty("AddressIndex", e.state.addresses.toObject()) }, 100) } }]), t }(); t.a = a.a.createStore(p, "AddressIndex") } , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(82) , i = r(49) , o = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , s = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var l = {} , c = function(e, t) { e({ down: t }) } , u = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return s(e, [{ key: "fetchCoins", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.backer , r = void 0 === t ? "OPEN" : t , a = e.url , i = void 0 === a ? void 0 : a , s = e.urlBridge , u = void 0 === s ? void 0 : s , d = e.urlWallets , p = void 0 === d ? void 0 : d; return l["fetchCoins_" + r] ? {} : (l["fetchCoins_" + r] = !0, function(e) { var t = setTimeout(c.bind(null, e, r), 1e4); Promise.all([Object(n.d)(i), Object(n.f)(u), Object(n.g)(p)]).then(function(a) { clearTimeout(t), delete l["fetchCoins_" + r]; var i = o(a, 3) , s = i[0] , c = i[1] , u = i[2] , d = Object(n.h)({ allCoins: s, tradingPairs: c, backer: r }).filter(function(e) { return !!e.walletType }); d.forEach(function(e) { e.isAvailable = -1 !== u.indexOf(e.walletType) }), e({ coins: s, backedCoins: d, backer: r }) }).catch(function() { clearTimeout(t), delete l["fetchCoins_" + r], e({ coins: [], backedCoins: [], backer: r }) }) } ) } }, { key: "fetchCoinsSimple", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = e.backer , r = void 0 === t ? "RUDEX" : t , a = e.url , i = void 0 === a ? void 0 : a; return l["fetchCoinsSimple_" + r] ? {} : (l["fetchCoinsSimple_" + r] = !0, function(e) { var t = setTimeout(c.bind(null, e, r), 1e4); Object(n.e)(i).then(function(a) { clearTimeout(t), delete l["fetchCoinsSimple_" + r], e({ coins: a, backer: r }) }).catch(function() { clearTimeout(t), delete l["fetchCoinsSimple_" + r], e({ coins: [], backer: r }) }) } ) } }, { key: "fetchPairs", value: function() { return l.fetchTradingPairs ? {} : (l.fetchTradingPairs = !0, function(e) { var t = setTimeout(c.bind(null, e, "TRADE"), 1e4); Promise.all([Object(n.d)(i.b.BASE + i.b.COINS_LIST), Object(n.f)(i.b.BASE + i.b.TRADING_PAIRS), Object(n.g)(i.b.BASE + i.b.ACTIVE_WALLETS)]).then(function(r) { clearTimeout(t), delete l.fetchTradingPairs; var a = o(r, 3) , n = a[0] , i = a[1] , s = a[2]; e({ coins: n, bridgeCoins: i, wallets: s }) }).catch(function() { delete l.fetchTradingPairs, e({ coins: [], bridgeCoins: [], wallets: [] }) }) } ) } }]), e }(); t.a = a.a.createActions(u) } , , function(e, t, r) { "use strict"; (function(e) { var a = r(44) , n = r(19) , i = r(5) , o = r(4) , s = r.n(o) , l = r(7) , c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , u = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }(); function d(e) { return function() { var t = e.apply(this, arguments); return new Promise(function(e, r) { return function a(n, i) { try { var o = t[n](i) , s = o.value } catch (e) { return void r(e) } if (!o.done) return Promise.resolve(s).then(function(e) { a("next", e) }, function(e) { a("throw", e) }); e(s) }("next") } ) } } var p = { create_account: function(e, t, r, a, o, s, l) { var c = arguments.length > 7 && void 0 !== arguments[7] && arguments[7]; return i.ChainValidation.required(o, "registrar_id"), i.ChainValidation.required(s, "referrer_id"), new Promise(function(d, p) { return Promise.all([Object(i.FetchChain)("getAccount", o), Object(i.FetchChain)("getAccount", s)]).then(function(o) { var s = u(o, 2) , h = s[0] , m = s[1] , f = new i.TransactionBuilder; return f.add_type_operation("account_create", { fee: { amount: 0, asset_id: 0 }, registrar: h.get("id"), referrer: m.get("id"), referrer_percent: l, name: a, owner: { weight_threshold: 1, account_auths: [], key_auths: [[e, 1]], address_auths: [] }, active: { weight_threshold: 1, account_auths: [], key_auths: [[t, 1]], address_auths: [] }, options: { memo_key: r, voting_account: "1.2.5", num_witness: 0, num_committee: 0, votes: [] } }), n.a.process_transaction(f, null, c).then(function(e) { console.log("process_transaction then", e), d() }).catch(function(e) { console.log("process_transaction catch", e), p(e) }) }) } ) }, _get_memo_keys: function(e) { var t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1] , r = { public_key: null, private_key: null }; if (r.public_key = e.getIn(["options", "memo_key"]), /111111111111111111111/.test(r.public_key) && (r.public_key = null), t && (r.private_key = n.a.getPrivateKey(r.public_key), !r.private_key)) throw l.Notification.error({ message: s.a.translate("account.errors.memo_missing") }), new Error("Missing private memo key for sender: " + e.get("name")); return r }, _create_transfer_op: function(t) { var r = this , n = t.from_account , o = t.to_account , s = t.amount , l = t.asset , c = t.memo , d = t.propose_account , p = void 0 === d ? null : d , h = t.encrypt_memo , m = void 0 === h || h , f = t.optional_nonce , g = void 0 === f ? null : f , _ = t.fee_asset_id , b = void 0 === _ ? "1.3.0" : _ , y = t.transactionBuilder , v = void 0 === y ? null : y , w = a.a.unlock() , k = p || n; return Promise.all([Object(i.FetchChain)("getAccount", n), Object(i.FetchChain)("getAccount", o), Object(i.FetchChain)("getAccount", k), Object(i.FetchChain)("getAsset", l), Object(i.FetchChain)("getAsset", b), w]).then(function(t) { var a = u(t, 5) , n = a[0] , o = a[1] , l = a[2] , d = a[3] , h = a[4] , f = null; p && (f = l); var _ = void 0; if (c) { var y = r._get_memo_keys(l, m) , w = r._get_memo_keys(o, !1); if (y.public_key && w.public_key) { var k = null == g ? i.TransactionHelper.unique_nonce_uint64() : g; _ = { from: y.public_key, to: w.public_key, nonce: k, message: m ? i.Aes.encrypt_with_checksum(y.private_key, w.public_key, k, c) : e.isBuffer(c) ? c.toString("utf-8") : c } } } var x = h.toJS(); "1.3.0" === x.options.core_exchange_rate.base.asset_id && "1.3.0" === x.options.core_exchange_rate.quote.asset_id && (b = "1.3.0"); return { transfer_op: (null == v ? new i.TransactionBuilder : v).get_type_operation("transfer", { fee: { amount: 0, asset_id: b }, from: n.get("id"), to: o.get("id"), amount: { amount: s, asset_id: d.get("id") }, memo: _ }), chain_from: n, chain_to: o, chain_propose_account: f, chain_memo_sender: l, chain_asset: d, chain_fee_asset: h } }).catch(function(e) { console.error(e) }) }, transfer: function(e) { var t = e.from_account , r = e.to_account , a = e.amount , o = e.asset , s = e.memo , l = e.broadcast , c = void 0 === l || l , u = e.encrypt_memo , d = void 0 === u || u , p = e.optional_nonce , h = void 0 === p ? null : p , m = e.propose_account , f = void 0 === m ? null : m , g = e.fee_asset_id , _ = void 0 === g ? "1.3.0" : g , b = e.transactionBuilder , y = void 0 === b ? null : b; return null == y && (y = new i.TransactionBuilder), this._create_transfer_op({ from_account: t, to_account: r, amount: a, asset: o, memo: s, propose_account: f, encrypt_memo: d, optional_nonce: h, fee_asset_id: _, transactionBuilder: y }).then(function(e) { return y.update_head_block().then(function() { return f ? y.add_type_operation("proposal_create", { proposed_ops: [{ op: e.transfer_op }], fee_paying_account: e.chain_propose_account.get("id") }) : y.add_operation(e.transfer_op), n.a.process_transaction(y, null, c) }).catch(function(e) { console.error(e) }) }) }, transfer_list: function(e) { var t = this; return a.a.unlock().then(function() { var r = null , a = [] , o = new i.TransactionBuilder; return e.forEach(function(e) { e.transactionBuilder = o, a.push(t._create_transfer_op(e)) }), Promise.all(a).then(function(t) { return o.update_head_block().then(function() { var a = []; return t.forEach(function(t, n) { e[n].propose_account ? (null == r && (r = t.chain_propose_account), a.push({ op: t.transfer_op })) : o.add_operation(t.transfer_op) }), o.add_type_operation("proposal_create", { proposed_ops: a, fee_paying_account: r.get("id") }), n.a.process_transaction(o, null, !0) }) }).catch(function(e) { console.log(e) }) }) }, issue_asset: function(t, r, o, s, l) { var c = !(arguments.length > 5 && void 0 !== arguments[5]) || arguments[5] , d = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null , p = a.a.unlock(); return Promise.all([Object(i.FetchChain)("getAccount", r), Object(i.FetchChain)("getAccount", t), p]).then(function(a) { var p = u(a, 2) , h = p[0] , m = p[1] , f = void 0 , g = void 0; l && c && (f = h.getIn(["options", "memo_key"]), /111111111111111111111/.test(f) && (f = null), g = m.getIn(["options", "memo_key"]), /111111111111111111111/.test(g) && (g = null)); var _ = void 0; if (c && l && !(_ = n.a.getPrivateKey(f))) throw new Error("Missing private memo key for sender: " + r); var b = void 0; if (l && g && f) { var y = null == d ? i.TransactionHelper.unique_nonce_uint64() : d; b = { from: f, to: g, nonce: y, message: c ? i.Aes.encrypt_with_checksum(_, g, y, l) : e.isBuffer(l) ? l.toString("utf-8") : l } } var v = new i.TransactionBuilder; return v.add_type_operation("asset_issue", { fee: { amount: 0, asset_id: 0 }, issuer: r, asset_to_issue: { amount: s, asset_id: o }, issue_to_account: t, memo: b }), n.a.process_transaction(v, null, !0) }) }, createWorker: function(e, t) { return new Promise(function(r, a) { var o = new i.TransactionBuilder , s = i.ChainStore.getAsset("1.3.0"); s || a(new Error("Can't find core asset, please try again")); var l = Math.pow(10, s.get("precision")) , c = i.ChainStore.getAccount(t).get("id"); c || a(new Error("Can't find the owner account, please try again")); try { o.add_type_operation("worker_create", { fee: { amount: 0, asset_id: 0 }, owner: c, work_begin_date: e.start, work_end_date: e.end, daily_pay: e.pay * l, name: e.title, url: e.url, initializer: [1, { pay_vesting_period_days: e.vesting }] }) } catch (e) { a(e) } n.a.process_transaction(o, null, !0).then(r).catch(a) } ) }, updateAccount: function(e) { var t = new i.TransactionBuilder; return t.add_type_operation("account_update", e), n.a.process_transaction(t, null, !0) }, _ensureAccount: function(e) { var t = this; return d(regeneratorRuntime.mark(function r() { return regeneratorRuntime.wrap(function(t) { for (; ; ) switch (t.prev = t.next) { case 0: if ("object" != (void 0 === e ? "undefined" : c(e)) || !e.get("id")) { t.next = 2; break } return t.abrupt("return", e); case 2: return t.next = 4, Object(i.FetchChain)("getAccount", e, !1); case 4: return t.abrupt("return", t.sent); case 5: case "end": return t.stop() } }, r, t) }))() }, _ensureAsset: function(e) { var t = this; return d(regeneratorRuntime.mark(function r() { return regeneratorRuntime.wrap(function(t) { for (; ; ) switch (t.prev = t.next) { case 0: if ("object" != (void 0 === e ? "undefined" : c(e)) || !e.get("id")) { t.next = 2; break } return t.abrupt("return", e); case 2: return t.next = 4, Object(i.FetchChain)("getAsset", e); case 4: return t.abrupt("return", t.sent); case 5: case "end": return t.stop() } }, r, t) }))() }, createWithdrawPermission: function(e, t, r, o, s, l) { var c = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : null , u = this , p = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : "1.3.0" , h = !(arguments.length > 8 && void 0 !== arguments[8]) || arguments[8]; return d(regeneratorRuntime.mark(function d() { var m, f, g; return regeneratorRuntime.wrap(function(d) { for (; ; ) switch (d.prev = d.next) { case 0: return null == c && (c = new Date), "number" == typeof c && (c = new Date(c)), d.next = 4, a.a.unlock(); case 4: return d.next = 6, u._ensureAccount(e); case 6: return d.t0 = d.sent, d.next = 9, u._ensureAccount(t); case 9: return d.t1 = d.sent, d.next = 12, u._ensureAsset(r); case 12: return d.t2 = d.sent, d.next = 15, u._ensureAsset(p); case 15: return d.t3 = d.sent, m = { from: d.t0, to: d.t1, limitAsset: d.t2, feeAsset: d.t3 }, f = new i.TransactionBuilder, g = f.get_type_operation("withdraw_permission_create", { fee: { amount: 0, asset_id: m.feeAsset.get("id") }, withdraw_from_account: m.from.get("id"), authorized_account: m.to.get("id"), withdrawal_limit: { amount: o, asset_id: m.limitAsset.get("id") }, withdrawal_period_sec: s, periods_until_expiration: l, period_start_time: c }), f.add_operation(g), d.next = 22, n.a.process_transaction(f, null, h); case 22: if (f.tr_buffer) { d.next = 24; break } throw "Something went finalization the transaction, this should not happen"; case 24: case "end": return d.stop() } }, d, u) }))() }, updateWithdrawPermission: function(e, t, r, o, s, l, c) { var u = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : null , p = this , h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : "1.3.0" , m = !(arguments.length > 9 && void 0 !== arguments[9]) || arguments[9]; return d(regeneratorRuntime.mark(function d() { var f, g, _; return regeneratorRuntime.wrap(function(d) { for (; ; ) switch (d.prev = d.next) { case 0: return null == u && (u = new Date), "number" == typeof u && (u = new Date(u)), d.next = 4, a.a.unlock(); case 4: return d.next = 6, p._ensureAccount(t); case 6: return d.t0 = d.sent, d.next = 9, p._ensureAccount(r); case 9: return d.t1 = d.sent, d.next = 12, p._ensureAsset(o); case 12: return d.t2 = d.sent, d.next = 15, p._ensureAsset(h); case 15: return d.t3 = d.sent, f = { from: d.t0, to: d.t1, limitAsset: d.t2, feeAsset: d.t3 }, g = new i.TransactionBuilder, _ = g.get_type_operation("withdraw_permission_update", { permission_to_update: e, fee: { amount: 0, asset_id: f.feeAsset.get("id") }, withdraw_from_account: f.from.get("id"), authorized_account: f.to.get("id"), withdrawal_limit: { amount: s, asset_id: f.limitAsset.get("id") }, withdrawal_period_sec: l, periods_until_expiration: c, period_start_time: u }), g.add_operation(_), d.next = 22, n.a.process_transaction(g, null, m); case 22: if (g.tr_buffer) { d.next = 24; break } throw "Something went finalization the transaction, this should not happen"; case 24: case "end": return d.stop() } }, d, p) }))() }, claimWithdrawPermission: function(t, r, o, s, l) { var c = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null , u = this , p = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : "1.3.0" , h = !(arguments.length > 7 && void 0 !== arguments[7]) || arguments[7]; return d(regeneratorRuntime.mark(function d() { var m, f, g, _, b, y, v, w, k; return regeneratorRuntime.wrap(function(d) { for (; ; ) switch (d.prev = d.next) { case 0: return d.next = 2, a.a.unlock(); case 2: return d.next = 4, u._ensureAccount(r); case 4: return d.t0 = d.sent, d.next = 7, u._ensureAccount(o); case 7: return d.t1 = d.sent, d.next = 10, u._ensureAsset(s); case 10: return d.t2 = d.sent, d.next = 13, u._ensureAsset(p); case 13: return d.t3 = d.sent, m = { from: d.t0, to: d.t1, claimAsset: d.t2, feeAsset: d.t3 }, f = void 0, g = null, _ = !0, c && (b = u._get_memo_keys(m.to, !0), y = u._get_memo_keys(m.from, !1), b.public_key && y.public_key && (v = null == g ? i.TransactionHelper.unique_nonce_uint64() : g, f = { from: b.public_key, to: y.public_key, nonce: v, message: _ ? i.Aes.encrypt_with_checksum(b.private_key, y.public_key, v, c) : e.isBuffer(c) ? c.toString("utf-8") : c })), w = new i.TransactionBuilder, k = w.get_type_operation("withdraw_permission_claim", { fee: { amount: 0, asset_id: m.feeAsset.get("id") }, withdraw_permission: t, withdraw_from_account: m.from.get("id"), withdraw_to_account: m.to.get("id"), amount_to_withdraw: { amount: l, asset_id: m.claimAsset.get("id") }, memo: f || void 0 }), w.add_operation(k), d.next = 24, n.a.process_transaction(w, null, h); case 24: if (w.tr_buffer) { d.next = 26; break } throw "Something went finalization the transaction, this should not happen"; case 26: case "end": return d.stop() } }, d, u) }))() }, deleteWithdrawPermission: function(e, t, r) { var o = this , s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "1.3.0" , l = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4]; return d(regeneratorRuntime.mark(function c() { var u, d, p; return regeneratorRuntime.wrap(function(c) { for (; ; ) switch (c.prev = c.next) { case 0: return c.next = 2, a.a.unlock(); case 2: return c.next = 4, o._ensureAccount(t); case 4: return c.t0 = c.sent, c.next = 7, o._ensureAccount(r); case 7: return c.t1 = c.sent, c.next = 10, o._ensureAsset(s); case 10: return c.t2 = c.sent, u = { from: c.t0, to: c.t1, feeAsset: c.t2 }, d = new i.TransactionBuilder, p = d.get_type_operation("withdraw_permission_delete", { fee: { amount: 0, asset_id: u.feeAsset.get("id") }, withdrawal_permission: e, withdraw_from_account: u.from.get("id"), authorized_account: u.to.get("id") }), d.add_operation(p), c.next = 17, n.a.process_transaction(d, null, l); case 17: if (d.tr_buffer) { c.next = 19; break } throw "Something went finalization the transaction, this should not happen"; case 19: case "end": return c.stop() } }, c, o) }))() } }; t.a = p } ).call(this, r(126).Buffer) } , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(14) , i = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var o = {} , s = {} , l = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return i(e, [{ key: "getHeader", value: function(e) { return s[e] ? {} : (s[e] = !0, function(t) { return n.Apis.instance().db_api().exec("get_block_header", [e]).then(function(r) { t({ header: { timestamp: r.timestamp, witness: r.witness }, height: e }) }) } ) } }, { key: "getLatest", value: function(e, t) { return function(r) { !o[e] && t && (o[e] = !0, n.Apis.instance().db_api().exec("get_block", [e]).then(function(a) { a && (a.id = e, r({ block: a, maxBlock: t })) }).catch(function(e) { console.log("Error in BlockchainActions.getLatest: ", e) })) } } }, { key: "getBlock", value: function(e) { return function(t) { n.Apis.instance().db_api().exec("get_block", [e]).then(function(r) { if (!r) return !1; r.id = e, t(r) }).catch(function(e) { console.log("Error in BlockchainActions.getBlock: ", e) }) } } }, { key: "updateRpcConnectionStatus", value: function(e) { return e } }]), e }() , c = a.a.createActions(l); n.Apis.setRpcConnectionStatusCallback(c.updateRpcConnectionStatus), t.a = c } , , , function(e, t, r) { "use strict"; var a = r(30) , n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var i = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return n(e, [{ key: "set", value: function(e, t) { return { name: e, value: t } } }, { key: "get", value: function(e) { return { name: e } } }, { key: "reset", value: function() { return !0 } }]), e }() , o = a.a.createActions(i); t.a = o } , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(15) , o = r(31) , s = r(361) , l = r(24) , c = r(39) , u = r(2) , d = r.n(u) , p = r(5) , h = r(43) , m = r(45) , f = r(4) , g = r.n(f) , _ = r(22) , b = r(80) , y = r(3) , v = r.n(y) , w = r(1) , k = r.n(w) , x = r(7) , S = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function A(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var E = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { inputChanged: !1, locked: null }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), S(t, [{ key: "componentDidMount", value: function() { var e = this.props , t = e.account , r = e.accountName; void 0 === t && (t = p.ChainStore.getAccount(r)), this.props.onAccountChanged && t && this.props.onAccountChanged(t), !this.props.typeahead && r && this.onInputChanged(r) } }, { key: "componentDidUpdate", value: function() { this.props.focus && this.props.editable && !this.props.disabled && this.refs.user_input.focus() } }, { key: "componentWillReceiveProps", value: function(e) { e.account && e.account !== this.props.account && this.props.onAccountChanged && this.props.onAccountChanged(e.account) } }, { key: "getAccount", value: function() { return this.props.account } }, { key: "getError", value: function() { var e = this.props , t = e.account , r = e.error; return r || !t || this.getInputType(t.get("name")) || (r = g.a.translate("account.errors.invalid")), r } }, { key: "getInputType", value: function(e) { return e ? "#" === e[0] && i.a.is_object_id("1.2." + e.substring(1)) ? "id" : p.ChainValidation.is_account_name(e, !0) ? "name" : this.props.allowPubKey && p.PublicKey.fromPublicKeyString(e) ? "pubkey" : null : null } }, { key: "getVerifiedAccountName", value: function(e) { var t = this.props.allowUppercase , r = null; r = "string" == typeof e ? e : e && e.target ? e.target.value.trim() : "", t || (r = r.toLowerCase()); var a = r.replace("#", "").match(/(?:\/account\/)(.*)/); return a && (r = a[1]), r } }, { key: "_notifyOnChange", value: function(e) { var t = this.props , r = this.getVerifiedAccountName(e); t.onChange && (r || "" === r) && t.onChange(r), t.onAccountChanged && Object(p.FetchChain)("getAccount", r, void 0, A({}, r, !1)).then(function(e) { e && t.onAccountChanged(e) }).catch(function(e) { console.log(e) }) } }, { key: "onSelect", value: function(e) { this._notifyOnChange(e) } }, { key: "onInputChanged", value: function(e) { this.setState({ inputChanged: !0 }), this._notifyOnChange(e) } }, { key: "onKeyDown", value: function(e) { 13 !== e.keyCode && 9 !== e.keyCode || this.onAction(e) } }, { key: "_onAddContact", value: function() { c.a.addAccountContact(this.props.accountName) } }, { key: "_onRemoveContact", value: function() { c.a.removeAccountContact(this.props.accountName) } }, { key: "onAction", value: function(e) { var t = this.props , r = t.onAction , a = t.disableActionButton , n = t.account , i = t.accountName; e.preventDefault(), this.getError() || !r || a || (n ? r(n) : "pubkey" === this.getInputType(i) && r(i)) } }, { key: "render", value: function() { var e = this , t = this.props , r = t.accountName , a = t.account , i = t.allowPubKey , o = t.typeahead , l = t.disableActionButton , c = t.contacts , u = t.myActiveAccounts , h = (t.noPlaceHolder, t.useHR) , m = (t.labelClass, t.reserveErrorSpace, this.getInputType(r)) , f = [] , y = this.getError() , w = u; w = w.concat(c); var k = void 0; a && (a.isKnownScammer = b.a.isKnownScammer(a.get("name")), a.accountType = this.getInputType(a.get("name")), a.accountStatus = p.ChainStore.getAccountMemberStatus(a), a.statusText = a.isKnownScammer ? g.a.translate("account.member.suspected_scammer") : g.a.translate("account.member." + a.accountStatus), k = "name" === a.accountType ? "#" + a.get("id").substring(4) : "id" === a.accountType ? a.get("name") : null), o ? i && "pubkey" === m || y || !r || a || (y = g.a.translate("account.errors.unknown")) : !a && r && "pubkey" !== m && (y = g.a.translate("account.errors.unknown")), i && "pubkey" === m && (k = "Public Key"), a && w && (a.isFavorite = u.has(a.get("name")) || c.has(a.get("name"))), o && w && w.map(function(t) { if (-1 !== e.props.excludeAccounts.indexOf(t)) return null; var r = p.ChainStore.getAccount(t) , a = p.ChainStore.getAccountMemberStatus(r) , n = b.a.isKnownScammer(t) ? "account.member.suspected_scammer" : "account.member." + a; f.push({ id: t, label: t, status: g.a.translate(n), isOwn: u.has(t), isFavorite: c.has(t), isKnownScammer: b.a.isKnownScammer(t), className: b.a.isKnownScammer(t) ? "negative" : "positive" }) }).filter(function(e) { return !!e }); var S = !!r && f.reduce(function(e, t) { return e || t.label === r }, !1); if (r && !S && this.state.inputChanged) { var E = p.ChainStore.getAccount(r) , T = E ? p.ChainStore.getAccountMemberStatus(E) : null , C = E ? b.a.isKnownScammer(E.get("name")) ? g.a.translate("account.member.suspected_scammer") : g.a.translate("account.member." + T) : g.a.translate("account.errors.unknown"); f.push({ id: this.props.accountName, label: this.props.accountName, status: C, isOwn: u.has(r), isFavorite: c.has(r), isKnownScammer: b.a.isKnownScammer(r), className: b.a.isKnownScammer(r) || !E ? "negative" : null, disabled: !E }) } f.sort(function(e, t) { return e.disabled && !t.disabled && e.label > t.label ? 1 : -1 }); var z = void 0; z = this.props.account ? u.has(a.get("name")) ? n.a.createElement(x.Tooltip, { placement: "top", title: g.a.translate("tooltip.own_account") }, n.a.createElement("span", { className: "tooltip green" }, n.a.createElement(x.Icon, { type: "user" }))) : b.a.isKnownScammer(a.get("name")) ? n.a.createElement(x.Tooltip, { placement: "top", title: g.a.translate("tooltip.scam_account") }, n.a.createElement("span", { className: "tooltip red" }, n.a.createElement(x.Icon, { type: "warning", theme: "filled" }))) : c.has(a.get("name")) ? n.a.createElement(x.Tooltip, { placement: "top", title: g.a.translate("tooltip.follow_user"), onClick: this._onRemoveContact.bind(this) }, n.a.createElement("span", { className: "tooltip green" }, n.a.createElement(x.Icon, { type: "star", theme: "filled" }))) : n.a.createElement(x.Tooltip, { placement: "top", title: g.a.translate("tooltip.follow_user_add"), onClick: this._onAddContact.bind(this) }, n.a.createElement("span", { className: "tooltip" }, n.a.createElement(x.Icon, { type: "star" }))) : null; var B = !(a || "pubkey" === m) || y || l , O = null !== this.state.locked ? this.state.locked : this.props.locked , P = !O && (null != this.props.editable ? this.props.editable : void 0) , j = !!O || (null != this.props.disabled ? this.props.disabled : void 0); return n.a.createElement(x.Tooltip, { className: "input-area", title: this.props.tooltip, mouseEnterDelay: .5 }, n.a.createElement(x.Form, { className: "full-width", layout: "vertical", style: this.props.style }, n.a.createElement(x.Form.Item, { label: this.props.label ? g.a.translate(this.props.label) : "", validateStatus: y ? "error" : null, help: y || null }, this.props.label ? n.a.createElement("div", { className: "header-area" + (this.props.hideImage ? " no-margin" : "") }, n.a.createElement("label", { className: v()("right-label", a && (a.isFavorite || a.isOwn) ? "positive" : null, a && a.isKnownScammer ? "negative" : null), style: { marginTop: -30 } }, n.a.createElement("span", { style: { paddingRight: "0.5rem" } }, a && a.statusText, " ", !!k && k), z)) : null, h && n.a.createElement("hr", null), n.a.createElement("div", { className: "inline-label input-wrapper" }, a && "pubkey" === a.accountType ? n.a.createElement("div", { className: "account-image" }, n.a.createElement(_.a, { name: "key", title: "icons.key", size: "4x" })) : this.props.hideImage ? null : n.a.createElement(s.a, { size: { height: this.props.size || 80, width: this.props.size || 80 }, account: a ? a.get("name") : null, custom_image: null }), void 0 !== this.props.typeahead ? n.a.createElement(x.Select, { showSearch: !0, optionLabelProp: "value", onSelect: this.onSelect.bind(this), onChange: this.onInputChanged.bind(this), onSearch: this.onInputChanged.bind(this), placeholder: g.a.translate("account.search"), value: a ? r : null, disabled: j || void 0 }, f.map(function(e) { return n.a.createElement(x.Select.Option, { key: e.id, value: e.label, disabled: e.disabled }, e.isOwn ? n.a.createElement(x.Icon, { type: "user" }) : null, e.isFavorite ? n.a.createElement(x.Icon, { type: "star" }) : null, e.isKnownScammer ? n.a.createElement(x.Icon, { type: "warning" }) : null, " ", e.label, n.a.createElement("span", { style: { float: "right" } }, e.status)) })) : n.a.createElement(x.Input, A({ style: { textTransform: "pubkey" === this.getInputType(r) ? null : "lowercase", fontVariant: "initial" }, name: "username", id: "username", autoComplete: this.props.editable ? "username" : void 0, type: "text", value: this.props.accountName || "", placeholder: this.props.placeholder || g.a.translate("account.name"), disabled: this.props.disabled, ref: "user_input", onChange: this.onInputChanged.bind(this), onKeyDown: this.onKeyDown.bind(this), tabIndex: !this.props.editable || this.props.disabled ? -1 : this.props.tabIndex, editable: P ? P.toString() : void 0, readOnly: P ? (!P).toString() : void 0 }, "disabled", j ? j.toString() : void 0)), !!O && n.a.createElement(x.Tooltip, { title: g.a.translate("tooltip.unlock_account_name") }, n.a.createElement("div", { style: { lineHeight: "2rem", marginLeft: "10px", cursor: "pointer" }, onClick: function() { return e.setState({ locked: !1 }) } }, n.a.createElement(x.Icon, { style: { fontSize: "1rem" }, type: "edit" }))), this.props.children, this.props.onAction ? n.a.createElement(x.Tooltip, { title: g.a.translate("tooltip.required_input", { type: g.a.translate("global.field_type.account") }) }, n.a.createElement(x.Button, { type: "primary", disabled: B, onClick: this.onAction.bind(this) }, n.a.createElement(d.a, { content: this.props.action_label }))) : null)))) } }]), t }(); E.propTypes = { label: k.a.string, error: k.a.element, placeholder: k.a.string, onChange: k.a.func, onAccountChanged: k.a.func, onAction: k.a.func, accountName: k.a.string, account: h.a.ChainAccount, tabIndex: k.a.number, disableActionButton: k.a.bool, allowUppercase: k.a.bool, typeahead: k.a.bool, excludeAccounts: k.a.array, focus: k.a.bool, disabled: k.a.bool, editable: k.a.bool, locked: k.a.bool }, E.defaultProps = { autosubscribe: !1, excludeAccounts: [], disabled: null, editable: null, locked: !1 }, E = Object(m.a)(E), E = Object(o.a)(E, { listenTo: function() { return [l.a] }, getProps: function() { return { myActiveAccounts: l.a.getState().myActiveAccounts, contacts: l.a.getState().accountContacts } } }), t.a = E } , function(e, t, r) { "use strict"; r.d(t, "a", function() { return l }); var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var l = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), s(t, [{ key: "getNumericEventValue", value: function(e) { return "" == e.target.value || null == e.target.value ? "" : parseFloat(e.target.value) == e.target.value ? e.target.value.trim() : parseFloat(e.target.value.trim().replace(/[^\d.-]/g, "")) || 0 } }, { key: "onPaste", value: function(e) { var t = this.props.allowNaN , r = e.clipboardData.getData("text") , a = r.match(/\./g); (a ? a.length : 0) > 1 && e.preventDefault(), t || parseFloat(r) == r || e.preventDefault() } }, { key: "onKeyPress", value: function(e) { if (!e.nativeEvent.ctrlKey) { "." === e.key && "" === e.target.value && (e.target.value = "0"); var t = e.target.value + e.key , r = t.match(/\./g) , a = r ? r.length : 0; "." === e.key && a > 1 && e.preventDefault(), parseFloat(t) != t && e.preventDefault(), this.props.onKeyPress && this.props.onKeyPress(e) } } }]), t }(); l.propTypes = { allowNaN: o.a.bool }, l.defaultProps = { allowNaN: !1 } } , , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(50) , i = r(11) , o = r.n(i) , s = r(99) , l = r(5) , c = r(14) , u = r(103) , d = r(162) , p = r(414) , h = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var m = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e._export("loadDbData", "getAccountRefs"), e.state = e._getInitialState(), e.bindListeners({ onAddPrivateKey: d.a.addKey }), e.no_account_refs = o.a.Set(), l.ChainStore.subscribe(e.chainStoreUpdate.bind(e)), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, s["a"]), h(t, [{ key: "_getInitialState", value: function() { this.chainstore_account_ids_by_key = null, this.chainstore_account_ids_by_account = null; var e = new o.a.Map; return { account_refs: e = e.set(this._getChainId(), o.a.Set()) } } }, { key: "getAccountRefs", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._getChainId(); return this.state.account_refs.get(e, o.a.Set()) } }, { key: "_getChainId", value: function() { return c.Apis.instance().chain_id || p.a.MAIN_NET } }, { key: "onAddPrivateKey", value: function(e) { var t = e.private_key_object; void 0 !== l.ChainStore.getAccountRefsOfKey(t.pubkey) && this.chainStoreUpdate() } }, { key: "loadDbData", value: function() { var e = this; this.chainstore_account_ids_by_key = null, this.chainstore_account_ids_by_account = null, this.no_account_refs = o.a.Set(); var t = new o.a.Map; return t = t.set(this._getChainId(), o.a.Set()), this.state = { account_refs: t }, function() { var e = c.Apis.instance().chain_id , t = "no_account_refs" + (e ? "_" + e.substr(0, 8) : ""); return n.a.root.getProperty(t, []).then(function(e) { return o.a.Set(e) }) }().then(function(t) { return e.no_account_refs = t }).then(function() { return e.chainStoreUpdate() }) } }, { key: "chainStoreUpdate", value: function() { this.chainstore_account_ids_by_key === l.ChainStore.account_ids_by_key && this.chainstore_account_ids_by_account === l.ChainStore.account_ids_by_account || (this.chainstore_account_ids_by_key = l.ChainStore.account_ids_by_key, this.chainstore_account_ids_by_account = l.ChainStore.account_ids_by_account, this.checkPrivateKeyStore()) } }, { key: "checkPrivateKeyStore", value: function() { var e = this.no_account_refs , t = o.a.Set(); u.a.getState().keys.keySeq().forEach(function(r) { if (!e.has(r)) { var a = l.ChainStore.getAccountRefsOfKey(r); if (void 0 !== a) if (a.size) t = t.add(a.valueSeq()); else { if ("number" == typeof u.a.getState().keys.get(r).brainkey_sequence) return; e = e.add(r) } } }), (t = t.flatten()).forEach(function(e) { var r = l.ChainStore.getAccountRefsOfAccount(e); void 0 !== r && r.size && (t = t.add(r.valueSeq())) }), t = t.flatten(), this.getAccountRefs().equals(t) || (this.state.account_refs = this.state.account_refs.set(this._getChainId(), t)), this.no_account_refs.equals(e) || (this.no_account_refs = e, function(e) { var t = [] , r = c.Apis.instance().chain_id , a = "no_account_refs" + (r ? "_" + r.substr(0, 8) : "") , i = !0 , o = !1 , s = void 0; try { for (var l, u = e[Symbol.iterator](); !(i = (l = u.next()).done); i = !0) { var d = l.value; t.push(d) } } catch (e) { o = !0, s = e } finally { try { !i && u.return && u.return() } finally { if (o) throw s } } n.a.root.setProperty(a, t) }(e)) } }]), t }(); t.a = a.a.createStore(m, "AccountRefsStore") } , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(3) , l = r.n(s) , c = r(39) , u = r(24) , d = r(5) , p = r(4) , h = r.n(p) , m = r(111) , f = r(53) , g = r.n(f) , _ = r(7) , b = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , y = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function v(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function w(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function k(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var x = function(e) { function t() { v(this, t); var e = w(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { value: null, error: null, existing_account: !1 }, e.handleChange = e.handleChange.bind(e), e.onKeyDown = e.onKeyDown.bind(e), e } return k(t, n.a.Component), y(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return t.value !== this.state.value || t.error !== this.state.error || t.account_name !== this.state.account_name || t.existing_account !== this.state.existing_account || e.searchAccounts !== this.props.searchAccounts } }, { key: "componentDidUpdate", value: function() { g.a.rebuild(), this.props.onChange && this.props.onChange({ valid: !this.getError() }) } }, { key: "getValue", value: function() { return this.state.value } }, { key: "setValue", value: function(e) { this.setState({ value: e }) } }, { key: "clear", value: function() { this.setState({ account_name: null, error: null, warning: null }) } }, { key: "focus", value: function() { this.refs.input.focus() } }, { key: "valid", value: function() { return !this.getError() } }, { key: "getError", value: function() { var e = this; if (null === this.state.value) return null; var t = null; if (this.state.error) t = this.state.error; else if (this.props.accountShouldExist || this.props.accountShouldNotExist) { var r = this.props.searchAccounts.find(function(t) { return t === e.state.value }); this.props.accountShouldNotExist && r && (t = h.a.translate("account.name_input.name_is_taken")), this.props.accountShouldExist && !r && (t = h.a.translate("account.name_input.not_found")) } return t } }, { key: "validateAccountName", value: function(e) { this.state.error = "" === e ? "Please enter valid account name" : d.ChainValidation.is_account_name_error(e), this.state.warning = null, this.props.cheapNameOnly ? this.state.error || d.ChainValidation.is_cheap_name(e) || (this.state.error = h.a.translate("account.name_input.premium_name_faucet")) : this.state.error || d.ChainValidation.is_cheap_name(e) || (this.state.warning = h.a.translate("account.name_input.premium_name_warning")), this.setState({ value: e, error: this.state.error, warning: this.state.warning }), this.props.onChange && this.props.onChange({ value: e, valid: !this.getError() }), (this.props.accountShouldExist || this.props.accountShouldNotExist) && c.a.accountSearch(e) } }, { key: "handleChange", value: function(e) { e.preventDefault(), e.stopPropagation(); var t = e.target.value.toLowerCase(); t = (t = t.match(/[a-z0-9\.-]+/)) ? t[0] : "", this.setState({ account_name: t }), this.validateAccountName(t) } }, { key: "onKeyDown", value: function(e) { this.props.onEnter && 13 === event.keyCode && this.props.onEnter(e) } }, { key: "render", value: function() { var e = this.getError() || "" , t = (l()("form-group", "account-name", { "has-error": !1 }), this.state.warning); return n.a.createElement(_.Form.Item, { label: this.props.label, help: e || t || "", validateStatus: e ? "error" : t ? "warning" : "" }, n.a.createElement(_.Input, { name: "username", id: "username", type: "text", ref: "input", autoComplete: "username", placeholder: this.props.placeholder, onChange: this.handleChange, onKeyDown: this.onKeyDown, value: this.state.account_name || this.props.initial_value })) } }]), t }(); x.propTypes = { id: o.a.string, placeholder: o.a.oneOfType([o.a.string, o.a.object]), initial_value: o.a.string, onChange: o.a.func, onEnter: o.a.func, accountShouldExist: o.a.bool, accountShouldNotExist: o.a.bool, cheapNameOnly: o.a.bool, noLabel: o.a.bool }, x.defaultProps = { noLabel: !1 }; var S = function(e) { function t() { return v(this, t), w(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return k(t, n.a.Component), y(t, [{ key: "render", value: function() { return n.a.createElement(m.a, { stores: [u.a], inject: { searchAccounts: function() { return u.a.getState().searchAccounts } } }, n.a.createElement(x, b({ ref: "nameInput" }, this.props))) } }]), t }(); t.a = S } , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(55) , i = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var o = new n.a("__graphene__") , s = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return i(e, [{ key: "setLog", value: function() { var e = function(e) { return function() { var t = e.apply(this, arguments); return new Promise(function(e, r) { return function a(n, i) { try { var o = t[n](i) , s = o.value } catch (e) { return void r(e) } if (!o.done) return Promise.resolve(s).then(function(e) { a("next", e) }, function(e) { a("throw", e) }); e(s) }("next") } ) } }(regeneratorRuntime.mark(function e(t) { return regeneratorRuntime.wrap(function(e) { for (; ; ) switch (e.prev = e.next) { case 0: return e.next = 2, o.set("logs", JSON.stringify(t)); case 2: return e.abrupt("return", e.sent); case 3: case "end": return e.stop() } }, e, this) })); return function(t) { return e.apply(this, arguments) } }() }, { key: "getLogs", value: function() { return new Promise(function(e) { e(JSON.parse(o.get("logs", []))) } ) } }]), e }(); t.a = a.a.createActions(s) } , , , , , , , function(e, t, r) { "use strict"; r(15); var a = r(0) , n = r.n(a) , i = r(11) , o = r.n(i) , s = r(4) , l = r.n(s) , c = r(140) , u = r(1) , d = r.n(u) , p = r(271) , h = r(7) , m = r(755) , f = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var g = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, p["a"]), f(t, [{ key: "componentDidMount", value: function() { this.onAssetChange(this.props.asset) } }, { key: "formatAmount", value: function(e) { return e || (e = ""), "number" == typeof e && (e = e.toString()), e.trim().replace(/,/g, "") } }, { key: "_onChange", value: function(e) { this.props.onChange && this.props.onChange({ amount: this.getNumericEventValue(e), asset: this.props.asset }) } }, { key: "onAssetChange", value: function(e) { this.props.onChange && this.props.onChange({ amount: this.props.amount, asset: e }) } }, { key: "render", value: function() { var e = this.props.error ? l.a.translate(this.props.error) : this.formatAmount(this.props.amount) , t = this.props.label ? n.a.createElement("div", { className: "amount-selector-field--label" }, l.a.translate(this.props.label), n.a.createElement("div", { className: "amount-selector-field--balance" }, this.props.display_balance)) : null , r = null; return this.props.isPrice && (r = n.a.createElement("div", null, this.props.asset.get("symbol"), "/", this.props.base)), n.a.createElement(h.Form.Item, { label: t, style: this.props.style, className: "amount-selector-field" }, n.a.createElement(h.Input.Group, { compact: !0 }, n.a.createElement(h.Input, { style: { width: this.props.isPrice ? "100%" : "calc(100% - 130px)" }, disabled: this.props.disabled, value: e || "", placeholder: this.props.placeholder, onChange: this._onChange.bind(this), tabIndex: this.props.tabIndex, onPaste: this.props.onPaste || this.onPaste.bind(this), onKeyPress: this.onKeyPress.bind(this), addonAfter: r }), this.props.isPrice ? null : n.a.createElement(m.a, { style: { width: "130px" }, selectStyle: { width: "100%" }, value: this.props.asset.get("symbol"), assets: o.a.List(this.props.assets), onChange: this.onAssetChange.bind(this), disabled: !!this.props.selectDisabled || void 0 }))) } }]), t }(); g.propTypes = { label: d.a.string, assets: d.a.array, amount: d.a.any, placeholder: d.a.string, onChange: d.a.func, tabIndex: d.a.number, error: d.a.string, scroll_length: d.a.number, selectDisabled: d.a.bool }, g.defaultProps = { disabled: !1, tabIndex: 0, selectDisabled: !1 }, g = Object(c.a)(g), t.a = g } , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return a }), r.d(t, "b", function() { return n }); var a = { HIGHER_THAN: "1", LOWER_THAN: "2" } , n = { BUY: "buy", SELL: "sell" } } , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(11) , i = r.n(n) , o = r(50) , s = r(99) , l = r(261) , c = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var u = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e.bindListeners({ onSet: l.a.set, onGet: l.a.get }), e._export("get", "reset"), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, s["a"]), c(t, [{ key: "_getInitialState", value: function() { return { props: i.a.Map() } } }, { key: "get", value: function(e) { return this.onGet({ name: e }) } }, { key: "onSet", value: function(e) { var t = this , r = e.name , a = e.value; if (this.state.props.get(r) !== a) { var n = this.state.props.set(r, a); this.state.props = n, o.a.setCachedProperty(r, a).then(function() { return t.setState({ props: n }) }) } } }, { key: "onGet", value: function(e) { var t = this , r = e.name , a = this.state.props.get(r); if (void 0 !== a) return a; try { o.a.getCachedProperty(r, null).then(function(e) { var a = t.state.props.set(r, e); t.state.props = a, t.setState({ props: a }) }) } catch (e) { console.error("getCachedProperty error:", e) } } }, { key: "reset", value: function() { this.state = this._getInitialState(), this.setState(this.state) } }]), t }() , d = a.a.createStore(u, "CachedPropertyStore"); t.a = d } , function(e, t, r) { "use strict"; function a(e) { return e.displayName || e.name || "Component" } r.d(t, "a", function() { return a }) } , , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return n }); var a = r(14); function n(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date , r = e , n = a.ChainConfig.address_prefix.toLowerCase(); 0 !== r.indexOf(n) && (r = n + "_" + r); var i = t.getMonth() + 1 , o = t.getDate(); return r = r + "_" + t.getFullYear() + (i >= 10 ? i : "0" + i) + (o >= 10 ? o : "0" + o) + ".bin" } } , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(33) , o = r(43) , s = r(45) , l = r(1) , c = r.n(l) , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), u(t, [{ key: "render", value: function() { var e = this.props.balance.get("balance"); e = e || 0 == e ? Number(this.props.balance.get("balance")) : null; var t = this.props.balance.get("asset_type"); return n.a.createElement(i.a, { amount: e, asset: t, asPercentage: this.props.asPercentage, assetInfo: this.props.assetInfo, replace: this.props.replace, hide_asset: this.props.hide_asset }) } }]), t }(); d.propTypes = { balance: o.a.ChainObject.isRequired, assetInfo: c.a.node, hide_asset: c.a.bool }, d.defaultProps = { hide_asset: !1 }, t.a = Object(s.a)(d) } , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return B }), r.d(t, "b", function() { return O }), r.d(t, "c", function() { return I }); var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(2238) , l = r(108) , c = r(31) , u = r(64) , d = r(83) , p = r(138) , h = r(19) , m = r(69) , f = r(360) , g = r(2) , _ = r.n(g) , b = r(5) , y = r(25) , v = r(354) , w = r(42) , k = r(7) , x = r(4) , S = r.n(x) , A = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function E(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function T(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function C(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var z = { listenTo: function() { return [d.a, p.a] }, getProps: function() { return { wallet: d.a.getState(), backup: p.a.getState() } } } , B = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "render", value: function() { return n.a.createElement("div", { style: { maxWidth: "40rem" } }, n.a.createElement(M, { noText: this.props.noText, newAccount: this.props.location && this.props.location.query ? this.props.location.query.newAccount : null }, n.a.createElement(q, null), this.props.noText ? null : n.a.createElement(L, null), n.a.createElement(I, { downloadCb: this.props.downloadCb }))) } }]), t }(); B = Object(c.a)(B, z); var O = function(e) { function t() { E(this, t); var e = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { newWalletName: null }, e } return C(t, a["Component"]), A(t, [{ key: "componentWillMount", value: function() { m.c.reset() } }, { key: "render", value: function() { var e = this.props.wallet.new_wallet , t = (this.props.wallet.wallet_names.has(e), n.a.createElement(s.a, { to: "/help/introduction/wallets" }, S.a.translate("wallet.wallet_types"))) , r = n.a.createElement(s.a, { to: "/help/introduction/backups" }, S.a.translate("wallet.backup_types")); return n.a.createElement("div", null, n.a.createElement(_.a, { style: { textAlign: "left", maxWidth: "30rem" }, component: "p", content: "wallet.import_backup_choose" }), n.a.createElement(_.a, { className: "text-left", component: "p", wallet: t, backup: r, content: "wallet.read_more" }), (new FileReader).readAsBinaryString ? null : n.a.createElement("p", { className: "error" }, "Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup."), n.a.createElement(R, null, n.a.createElement(q, null), n.a.createElement(D, { saveWalletObject: !0 }, n.a.createElement(j, null, n.a.createElement(P, null)))), n.a.createElement("br", null), n.a.createElement(s.a, { to: "/" }, n.a.createElement(k.Button, null, n.a.createElement(_.a, { content: "wallet.back" })))) } }]), t }(); O = Object(c.a)(O, z); var P = function(e) { function t() { E(this, t); var e = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = {}, e } return C(t, a["Component"]), A(t, [{ key: "isRestored", value: function() { var e = this.props.wallet.new_wallet; return this.props.wallet.wallet_names.has(e) } }, { key: "render", value: function() { var e = this.props.wallet.new_wallet; return this.isRestored() ? n.a.createElement("span", null, n.a.createElement("h5", null, n.a.createElement(_.a, { content: "wallet.restore_success", name: e.toUpperCase() })), n.a.createElement(s.a, { to: "/" }, n.a.createElement(k.Button, { type: "primary" }, n.a.createElement(_.a, { component: "span", content: "header.dashboard" }))), n.a.createElement("div", null, this.props.children)) : n.a.createElement("span", null, n.a.createElement("h3", null, n.a.createElement(_.a, { content: "wallet.ready_to_restore" })), n.a.createElement(k.Button, { type: "primary", onClick: this.onRestore.bind(this) }, n.a.createElement(_.a, { content: "wallet.restore_wallet_of", name: e }))) } }, { key: "onRestore", value: function() { u.a.restore(this.props.wallet.new_wallet, this.props.backup.wallet_object), y.a.changeSetting({ setting: "passwordLogin", value: !1 }) } }]), t }(); P = Object(c.a)(P, z); var j = function(e) { function t() { E(this, t); var e = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { new_wallet: null, accept: !1 }, e } return C(t, a["Component"]), A(t, [{ key: "componentWillMount", value: function() { var e = !!this.props.wallet.current_wallet; if (!e) { var t = "default"; this.props.backup.name && (t = this.props.backup.name.match(/[a-z0-9_-]*/)[0]), d.a.setNewWallet(t), this.setState({ accept: !0 }) } if (e && this.props.backup.name && !this.state.new_wallet) { var r = this.props.backup.name.toLowerCase().match(/[a-z0-9_-]*/)[0]; r && this.setState({ new_wallet: r }) } } }, { key: "render", value: function() { if (this.state.accept) return n.a.createElement("span", null, this.props.children); var e = !!this.state.new_wallet , t = !!e && this.props.wallet.wallet_names.has(this.state.new_wallet) , r = !t && e; return n.a.createElement("form", { onSubmit: this.onAccept.bind(this) }, n.a.createElement("h5", null, n.a.createElement(_.a, { content: "wallet.new_wallet_name" })), n.a.createElement(k.Input, { type: "text", id: "new_wallet", onChange: this.formChange.bind(this), value: this.state.new_wallet }), n.a.createElement("p", null, t ? n.a.createElement(_.a, { content: "wallet.wallet_exist" }) : null), n.a.createElement(k.Button, { onClick: this.onAccept.bind(this), type: "primary", disabled: !r }, n.a.createElement(_.a, { content: "wallet.accept" }))) } }, { key: "onAccept", value: function(e) { e && e.preventDefault(), this.setState({ accept: !0 }), d.a.setNewWallet(this.state.new_wallet) } }, { key: "formChange", value: function(e) { var t = e.target.id , r = e.target.value; if ("new_wallet" !== t || (r = r.toLowerCase(), !/[^a-z0-9_-]/.test(r))) { var a = {}; a[t] = r, this.setState(a) } } }]), t }(); j = Object(c.a)(j, z); var I = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "componentWillMount", value: function() { try { this.isFileSaverSupported = !!new Blob } catch (e) {} } }, { key: "componentDidMount", value: function() { this.isFileSaverSupported || k.Notification.error({ message: S.a.translate("notifications.backup_file_save_unsupported") }), this.props.confirmation && this.createBackup() } }, { key: "getBackupName", value: function() { return Object(v.a)(this.props.wallet.current_wallet) } }, { key: "createBackup", value: function() { var e = this , t = h.a.getWallet().password_pubkey; Object(m.a)(t).then(function(t) { var r = e.getBackupName(); m.c.incommingBuffer({ name: r, contents: t }) }) } }, { key: "render", value: function() { var e = this , t = !0; return this.props.confirmation && (t = this.props.checkboxActive), n.a.createElement(k.Button, { type: "primary", disabled: !t, onClick: function() { e.onDownload() }, style: this.props.confirmation ? { height: "initial", padding: 0 } : {} }, this.props.confirmation ? n.a.createElement("div", { className: "download-block", style: { padding: "1.25rem" } }, n.a.createElement("img", { className: "bin-img", src: "/bin-file/default.svg", alt: "bin" }), n.a.createElement("span", { className: "text-left" }, n.a.createElement(_.a, { className: "download-text", content: "registration.downloadFile" }), n.a.createElement("p", { className: "file-name", style: { marginBottom: 0 } }, this.props.backup.name))) : n.a.createElement(_.a, { content: "wallet.download" })) } }, { key: "onDownload", value: function() { var e = new Blob([this.props.backup.contents],{ type: "application/octet-stream; charset=us-ascii" }); if (e.size !== this.props.backup.size) throw new Error("Invalid backup to download conversion"); Object(f.saveAs)(e, this.props.backup.name), u.a.setBackupDate(), this.props.downloadCb && this.props.downloadCb() } }]), t }(); I = Object(c.a)(I, z); var M = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "getBackupName", value: function() { return Object(v.a)(this.props.wallet.current_wallet) } }, { key: "render", value: function() { if (!!this.props.backup.contents) return n.a.createElement("div", null, this.props.children); var e = null != h.a.getWallet(); return n.a.createElement("div", null, this.props.noText ? null : n.a.createElement("div", { style: { textAlign: "left" } }, this.props.newAccount ? n.a.createElement(_.a, { component: "p", content: "wallet.backup_new_account", wallet_name: Object(w.m)() }) : null, n.a.createElement(_.a, { component: "p", content: "wallet.backup_explain" })), n.a.createElement(k.Button, { type: "primary", onClick: this.onCreateBackup.bind(this), style: { marginBottom: 10 }, disabled: !e }, n.a.createElement(_.a, { content: "wallet.create_backup_of", name: this.props.wallet.current_wallet })), n.a.createElement(N, null)) } }, { key: "onCreateBackup", value: function() { var e = this , t = h.a.getWallet().password_pubkey; Object(m.a)(t).then(function(t) { var r = e.getBackupName(); m.c.incommingBuffer({ name: r, contents: t }) }) } }]), t }(); M = Object(c.a)(M, z); var N = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "render", value: function() { if (!h.a.getWallet()) return null; var e = h.a.getWallet().backup_date , t = h.a.getWallet().last_modified , r = e ? n.a.createElement("h4", null, n.a.createElement(_.a, { content: "wallet.last_backup" }), " ", n.a.createElement(l.a, { value: e })) : n.a.createElement(_.a, { style: { paddingTop: 20 }, className: "facolor-error", component: "p", content: "wallet.never_backed_up" }) , a = null; return e && (a = t.getTime() > e.getTime() ? n.a.createElement("h4", { className: "facolor-error" }, n.a.createElement(_.a, { content: "wallet.need_backup" })) : n.a.createElement("h4", { className: "success" }, n.a.createElement(_.a, { content: "wallet.noneed_backup" }))), n.a.createElement("span", null, r, a) } }]), t }() , R = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "reset", value: function() { m.c.reset() } }, { key: "render", value: function() { var e = n.a.createElement("div", { style: { paddingTop: 20 } }, n.a.createElement(k.Button, { disabled: !this.props.backup.contents, onClick: this.reset.bind(this) }, n.a.createElement(_.a, { content: "wallet.reset" }))); if (this.props.backup.contents && this.props.backup.public_key) return n.a.createElement("span", null, this.props.children, e); var t = this.props.backup.contents && !this.props.backup.public_key; return n.a.createElement("div", null, n.a.createElement("input", { ref: "file_input", accept: ".bin", type: "file", id: "backup_input_file", style: { border: "solid" }, onChange: this.onFileUpload.bind(this) }), t ? n.a.createElement("h5", null, n.a.createElement(_.a, { content: "wallet.invalid_format" })) : null, e) } }, { key: "onFileUpload", value: function(e) { var t = e.target.files[0]; m.c.incommingWebFile(t), this.forceUpdate() } }]), t }(); R = Object(c.a)(R, z); var q = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "render", value: function() { return n.a.createElement("span", null, n.a.createElement("h5", null, n.a.createElement("b", null, this.props.backup.name), " (", this.props.backup.size, " ", "bytes)"), this.props.backup.last_modified ? n.a.createElement("div", null, this.props.backup.last_modified) : null, n.a.createElement("br", null)) } }]), t }(); q = Object(c.a)(q, z); var D = function(e) { function t() { E(this, t); var e = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e } return C(t, a["Component"]), A(t, [{ key: "_getInitialState", value: function() { return { backup_password: "", verified: !1 } } }, { key: "render", value: function() { return this.state.verified ? n.a.createElement("span", null, this.props.children) : n.a.createElement("form", { onSubmit: this.onPassword.bind(this) }, n.a.createElement("label", null, n.a.createElement(_.a, { content: "wallet.enter_password" })), n.a.createElement(k.Input, { type: "password", id: "backup_password", onChange: this.formChange.bind(this), value: this.state.backup_password }), n.a.createElement(L, null), n.a.createElement(k.Button, { type: "primary", htmlType: "submit", onClick: this.onPassword.bind(this) }, n.a.createElement(_.a, { content: "wallet.submit" }))) } }, { key: "onPassword", value: function(e) { var t = this; e && e.preventDefault(); var r = b.PrivateKey.fromSeed(this.state.backup_password || "") , a = this.props.backup.contents; Object(m.b)(r.toWif(), a).then(function(e) { t.setState({ verified: !0 }), t.props.saveWalletObject && p.a.setWalletObjct(e) }).catch(function(e) { console.error("Error verifying wallet " + t.props.backup.name, e, e.stack), "invalid_decryption_key" === e ? k.Notification.error({ message: S.a.translate("notifications.invalid_password") }) : k.Notification.error({ message: e }) }) } }, { key: "formChange", value: function(e) { var t = {}; t[e.target.id] = e.target.value, this.setState(t) } }]), t }(); D.propTypes = { saveWalletObject: o.a.bool }, D = Object(c.a)(D, z); var L = function(e) { function t() { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return C(t, a["Component"]), A(t, [{ key: "render", value: function() { return n.a.createElement("div", { className: "padding no-overflow" }, n.a.createElement("pre", { className: "no-overflow", style: { lineHeight: "1.2" } }, this.props.backup.sha1, " * SHA1"), n.a.createElement("br", null)) } }]), t }(); L = Object(c.a)(L, z) } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(836) , l = r.n(s) , c = r(837) , u = r.n(c) , d = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var p = 0 , h = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.canvas_id = "identicon_" + (r.props.account || "") + ++p, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), d(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.size.height !== this.props.size.height || e.size.width !== this.props.size.width || e.account !== this.props.account } }, { key: "render", value: function() { var e = this.props.account , t = this.props.size , r = t.height , a = t.width , i = e ? l()(e) : null; return n.a.createElement("canvas", { id: this.canvas_id, ref: "canvas", style: { height: r, width: a }, width: 2 * a, height: 2 * r, "data-jdenticon-hash": i }) } }, { key: "repaint", value: function() { if (this.props.account) u.a.updateById(this.canvas_id); else { var e = this.refs.canvas.getContext("2d"); e.fillStyle = "rgba(100, 100, 100, 0.5)"; var t = e.canvas.width; e.clearRect(0, 0, t, t), e.fillRect(0, 0, t, t), e.clearRect(1, 1, t - 2, t - 2), e.font = t + "px sans-serif", e.fillText("?", t / 4, t - t / 6) } } }, { key: "componentDidMount", value: function() { this.repaint() } }, { key: "componentDidUpdate", value: function() { this.repaint() } }]), t }(); h.propTypes = { size: o.a.object.isRequired, account: o.a.string }; var m = h , f = r(15) , g = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var _ = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), g(t, [{ key: "shouldComponentUpdate", value: function(e) { return !f.a.are_equal_shallow(e, this.props) } }, { key: "render", value: function() { var e = this.props , t = e.account , r = e.image , a = e.style , i = this.props.size , o = i.height , s = i.width , l = r ? n.a.createElement("img", { src: r, height: o + "px", width: s + "px" }) : n.a.createElement(m, { id: t, account: t, size: this.props.size }); return n.a.createElement("div", { style: a, className: "account-image" }, l) } }]), t }(); _.defaultProps = { src: "", account: "", size: { height: 120, width: 120 }, style: {} }, _.propTypes = { src: o.a.string, account: o.a.string, size: o.a.object.isRequired, style: o.a.object }; t.a = _ } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var i = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return n(e, [{ key: "setPubkeys", value: function(e) { return e } }, { key: "setSelectedBalanceClaims", value: function(e) { return e } }, { key: "claimAccountChange", value: function(e) { return e } }]), e }() , o = a.a.createActions(i); t.a = o } , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return A }); var a = r(0) , n = r.n(a) , i = r(33) , o = r(2238) , s = r(2) , l = r.n(s) , c = r(4) , u = r.n(c) , d = r(15) , p = r(119) , h = r(177) , m = r(5) , f = r(1) , g = r.n(f) , _ = r(445) , b = r(27) , y = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function v(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function w(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function k(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var x = m.ChainTypes.operations; r(542); var S = Object.keys(x) , A = function(e) { var t = e.id , r = e.expiration , a = e.style , i = u.a.localize(new Date(r), { format: "short" }); return n.a.createElement("b", { style: a }, n.a.createElement("span", null, t, " | "), n.a.createElement("span", null, n.a.createElement(l.a, { content: "proposal.expires" }), ": ", i)) } , E = function(e) { function t(e) { v(this, t); var r = w(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.showDetails = r.showDetails.bind(r), r } return k(t, n.a.Component), y(t, [{ key: "showDetails", value: function(e) { e.preventDefault(), this.props.history.push("/block/" + this.props.block) } }, { key: "render", value: function() { var e = this.props , t = e.id , r = e.fee , a = e.hideFee , o = e.hideExpiration , s = e.expiration; return r.amount = parseInt(r.amount, 10), n.a.createElement("div", { style: { padding: "5px 0", textAlign: "left" } }, n.a.createElement("span", null, this.props.info, " ", a ? null : n.a.createElement("span", { className: "facolor-fee" }, "(", n.a.createElement(i.a, { amount: r.amount, asset: r.asset_id }), " ", "fee)")), !o && this.props.expiration && n.a.createElement(A, { id: t, expiration: s, style: { paddingTop: 5, fontSize: "0.85rem", paddingBottom: "0.5rem", display: "block" } })) } }]), t }() , T = function(e) { function t() { var e, r, a; v(this, t); for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o]; return r = a = w(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(i))), a.state = { label_color: "info" }, a.changeColor = function(e) { a.state.label_color !== e && a.setState({ label_color: e }) } , w(a, r) } return k(t, n.a.Component), y(t, [{ key: "linkToAccount", value: function(e) { return e ? d.a.is_object_id(e) ? n.a.createElement(p.a, { account: e }) : n.a.createElement(o.a, { to: "/account/" + e + "/overview" }, e) : n.a.createElement("span", null, "-") } }, { key: "linkToAsset", value: function(e) { return e ? d.a.is_object_id(e) ? n.a.createElement(h.a, { asset: e }) : n.a.createElement(o.a, { to: "/asset/" + e }, e) : n.a.createElement("span", null, "-") } }, { key: "render", value: function() { var e = this.props , t = e.op , r = e.proposer , a = e.block , o = e.hideExpiration , s = e.index , l = e.csvExportMode , c = this.state.label_color , u = null; if (u = Object(_.a)(S[t[0]], this.props, { fromComponent: "proposed_operation", linkToAccount: this.linkToAccount, linkToAsset: this.linkToAsset, changeColor: this.changeColor }), r && 0 == s && (u = n.a.createElement("div", { className: "inline-block" }, n.a.createElement("div", { style: { paddingBottom: "0.5rem" } }, n.a.createElement(b.a, { string: "operation.proposal_create", keys: [{ type: "account", value: r, arg: "account" }] }), ":"), n.a.createElement("div", { style: { marginLeft: "0.5rem" } }, u))), l) { var p = m.ChainStore.getObject("2.0.0") , h = m.ChainStore.getObject("2.1.0") , f = d.a.calc_block_time(a, p, h); return n.a.createElement("div", { key: this.props.key }, n.a.createElement("div", null, f ? f.toLocaleString() : ""), n.a.createElement("div", null, S[t[0]]), n.a.createElement("div", null, u), n.a.createElement("div", null, n.a.createElement(i.a, { amount: parseInt(t[1].fee.amount, 10), asset: t[1].fee.asset_id }))) } return (u ? n.a.createElement(E, { index: s, id: this.props.id, block: a, type: t[0], color: c, fee: t[1].fee, hideDate: this.props.hideDate, hideFee: this.props.hideFee, hideOpLabel: this.props.hideOpLabel, info: u, expiration: this.props.expiration, hideExpiration: o }) : null) || n.a.createElement("div", null) } }]), t }(); T.defaultProps = { op: [], current: "", block: null, hideDate: !1, hideFee: !1, hideOpLabel: !1, csvExportMode: !1, collapsed: !0 }, T.propTypes = { op: g.a.array.isRequired, current: g.a.string, block: g.a.number, hideDate: g.a.bool, hideFee: g.a.bool, csvExportMode: g.a.bool, collapsed: g.a.bool }, t.b = T } , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2) , o = r.n(i) , s = r(25) , l = r(4) , c = r.n(l) , u = r(7) , d = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var p = "wss://" , h = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)) , r = window.location.protocol; return e.state = { protocol: r, ws: p, name: "My node", type: "remove", remove: {}, addError: null, existsError: null }, e.onRemoveSubmit = e.onRemoveSubmit.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), d(t, [{ key: "onServerInput", value: function(e) { var t = { ws: e.target.value }; this.apiExists(t.ws) ? t.existsError = !0 : t.existsError = null, 0 !== t.ws.indexOf(p) && 0 !== t.ws.indexOf("ws://") ? t.addError = !0 : t.addError = null, this.setState(t) } }, { key: "apiExists", value: function(e) { return !!this.props.apis.find(function(t) { return t.url === e }) } }, { key: "onNameInput", value: function(e) { this.setState({ name: e.target.value }) } }, { key: "close", value: function() { this.setState({ isModalVisible: !1 }) } }, { key: "onAddSubmit", value: function(e) { e.preventDefault(), s.a.addWS({ location: this.state.name, url: this.state.ws }), this.setState({ ws: "https:" === this.state.protocol ? p : "ws://", name: "" }), this.props.onAddNodeClose() } }, { key: "onRemoveSubmit", value: function(e) { var t = this; e.preventDefault(); var r = void 0; this.props.apis.forEach(function(e, a) { e.url === t.props.removeNode.url && (r = a) }), this.props.api === this.props.apis[r].url && (s.a.changeSetting.defer({ setting: "apiServer", value: this.props.apis[0].url }), this.props.changeConnection(this.props.apis[0].url)), s.a.removeWS(r), this.props.onRemoveNodeClose() } }, { key: "_renderAddModal", value: function() { var e = "" , t = ""; return this.state.existsError && (t = "error", e = c.a.translate("settings.node_already_exists")), this.state.addError && (t = "error", e = c.a.translate("settings.valid_node_url")), n.a.createElement(u.Modal, { visible: this.props.isAddNodeModalVisible, id: "ws_modal_add", ref: "ws_modal_add", title: c.a.translate("settings.add_ws"), overlay: !0, onCancel: this.props.onAddNodeClose, overlayClose: !1, footer: [n.a.createElement(u.Button, { key: "confirm", type: "primary", disabled: this.state.addError || this.state.existsError, onClick: this.onAddSubmit.bind(this) }, c.a.translate("transfer.confirm")), n.a.createElement(u.Button, { key: "cancel", onClick: this.props.onAddNodeClose }, c.a.translate("account.perm.cancel"))] }, n.a.createElement("div", { className: "grid-content" }, n.a.createElement(u.Form, { layout: "vertical" }, n.a.createElement(u.Form.Item, { label: "Name" }, n.a.createElement(u.Input, { onChange: this.onNameInput.bind(this), value: this.state.name })), n.a.createElement(u.Form.Item, { label: "Address", validateStatus: t, help: e }, n.a.createElement(u.Input, { value: this.state.ws, onChange: this.onServerInput.bind(this) }))))) } }, { key: "_renderRemoveModal", value: function() { if (!this.props.api) return null; var e = [n.a.createElement(u.Button, { key: "submit", onClick: this.onRemoveSubmit }, c.a.translate("transfer.confirm")), n.a.createElement(u.Button, { key: "cancel", type: "primary", onClick: this.props.onRemoveNodeClose }, c.a.translate("modal.cancel"))]; return n.a.createElement(u.Modal, { onCancel: this.props.onRemoveNodeClose, title: c.a.translate("settings.remove_ws"), visible: this.props.isRemoveNodeModalVisible, footer: e }, n.a.createElement("div", { className: "grid-content no-overflow" }, n.a.createElement("section", { className: "block-list" }, n.a.createElement("p", null, n.a.createElement(o.a, { component: "span", content: "settings.confirm_remove", with: { name: this.props.removeNode && this.props.removeNode.name } }))))) } }, { key: "render", value: function() { return n.a.createElement("div", null, this._renderAddModal(), this._renderRemoveModal()) } }]), t }(); t.a = h } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(103) , o = r(44) , s = r(4) , l = r.n(s) , c = r(22) , u = r(31) , d = r(109) , p = r(15) , h = r(53) , m = r.n(h) , f = r(7) , g = r(203) , _ = r.n(g) , b = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function y(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function v(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function w(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var k = function(e) { function t() { return y(this, t), v(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return w(t, n.a.Component), b(t, [{ key: "shouldComponentUpdate", value: function(e) { return !p.a.are_equal_shallow(e.memo, this.props.memo) || e.wallet_locked !== this.props.wallet_locked } }, { key: "componentDidMount", value: function() { m.a.rebuild() } }, { key: "_toggleLock", value: function(e) { e.preventDefault(), o.a.unlock().then(function() { m.a.rebuild() }).catch(function() {}) } }, { key: "render", value: function() { var e = this.props , t = e.memo , r = e.fullLength; if (!t) return null; var a = i.a.decodeMemo(t) , o = a.text , s = a.isMine; if (!o && s) return n.a.createElement("div", { className: "memo" }, n.a.createElement("span", null, l.a.translate("transfer.memo_unlock"), " "), n.a.createElement("a", { onClick: this._toggleLock.bind(this) }, n.a.createElement(c.a, { name: "locked", title: "icons.locked.action" }))); var u = o = _()(o, { whiteList: [], stripIgnoreTag: !0 }); return o && !r && o.length > 35 && (o = o.substr(0, 35) + "..."), o ? n.a.createElement("div", { className: "memo", style: { paddingTop: 5, cursor: "help" } }, n.a.createElement(f.Tooltip, { placement: "bottom", title: u !== o ? u : null }, n.a.createElement("span", { className: "inline-block", "data-class": "memo-tip", "data-offset": "{'bottom': 10}" }, o))) : null } }]), t }(); k.defaultProps = { fullLength: !1 }; var x = function(e) { function t() { return y(this, t), v(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return w(t, n.a.Component), b(t, [{ key: "render", value: function() { return n.a.createElement(k, this.props) } }]), t }(); t.a = Object(u.a)(x, { listenTo: function() { return [d.a] }, getProps: function() { return { wallet_locked: d.a.getState().locked } } }) } , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2) , o = r.n(i) , s = r(25) , l = r(26) , c = (r(49), r(101)) , u = r(31) , d = r(3) , p = r.n(d) , h = r(22) , m = r(40) , f = r(4) , g = r.n(f) , _ = r(13) , b = r(1) , y = r.n(b) , v = r(7) , w = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var k = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { loading: null != r.props.isLoading && r.props.isLoading, overrideMessage: null, loadingButtonWidth: null }, r.processingOnClick = !1, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), w(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return e.isLoading !== this.props.isLoading || t.loading !== this.state.loading } }, { key: "_feedback", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; null == e ? (this.setState({ overrideMessage: null, loading: !1 }), this.processingOnClick = !1) : "string" == typeof e ? this.setState({ overrideMessage: e }) : "boolean" == typeof e && (e ? (this.setState({ loading: !1 }), this.processingOnClick = !1) : this.setState({ overrideMessage: t })) } }, { key: "_onClick", value: function(e) { return this.processingOnClick = !0, !!this.state.loading || (null != this.props.onClick ? (this.setState({ loadingButtonWidth: Object(_.findDOMNode)(this.loadingButton).getBoundingClientRect().width, loading: !0 }), e.persist(), this.props.onClick(e, this._feedback.bind(this)), !0) : void 0) } }, { key: "_isLoading", value: function() { return this.processingOnClick ? this.state.loading : null != this.props.isLoading && this.props.isLoading } }, { key: "render", value: function() { var e = this , t = this.props.caption || this.props.text || null; "string" == typeof t && t.indexOf(".") > 0 && (t = g.a.translate(t)), null != t && "" == t.trim() && (t = null); var r = this.props.loadingMessage || null; null != this.state.overrideMessage && "" != this.state.overrideMessage.trim() && (r = this.state.overrideMessage), "string" == typeof r && r.indexOf(".") > 0 && (r = g.a.translate(r)), null != r && "" == r.trim() && (r = null); var a = null , i = null , o = !1 , s = n.a.createElement("span", null, t) , l = this._isLoading(); switch (this.props.loadingType) { case "inside": l && (o = !0, s = n.a.createElement("span", { style: { margin: "auto", display: "inline-block" } }, n.a.createElement(m.a, { type: "circle-small" }))); break; case "inside-feedback": l && (o = !0, s = n.a.createElement("span", { style: { float: "left" } }, n.a.createElement("span", { style: { position: "absolute", whiteSpace: "nowrap", marginLeft: "12px" } }, r), n.a.createElement("span", null, n.a.createElement(m.a, { type: "circle-small" })))); break; case "overlay": l && (o = !0, i = n.a.createElement(m.a, { type: "loading-overlay" })); break; case "overlay-feedback": l && (o = !0, i = n.a.createElement(m.a, { loadingText: r, type: "loading-overlay" })); break; case "inside-feedback-resize": l && (s = n.a.createElement("span", null, n.a.createElement("span", null, r), n.a.createElement("span", { style: { float: "left" } }, n.a.createElement(m.a, { type: "circle-small" })))); break; case "right-feedback": l && (i = n.a.createElement("div", { style: { float: "left", marginLeft: "-9px", position: "relative" }, className: "disabled" }, n.a.createElement("span", null, n.a.createElement("span", { style: { float: "left", marginTop: "7px" } }, n.a.createElement(m.a, { type: "circle" })), n.a.createElement("span", { style: { float: "left", marginLeft: "6px", marginTop: "11px" } }, r)))); break; case "left-feedback": l && (a = n.a.createElement("div", { style: { float: "left", marginRight: "6px", position: "relative" }, className: "disabled" }, n.a.createElement("span", null, n.a.createElement("span", { style: { float: "right", marginTop: "7px" } }, n.a.createElement(m.a, { type: "circle" })), n.a.createElement("span", { style: { float: "right", marginRight: "6px", marginTop: "11px" } }, r)))) } var c = { overflow: "hidden", position: "relative" }; return o && null != this.state.loadingButtonWidth && (c.width = this.state.loadingButtonWidth), n.a.createElement("div", { style: this.props.style }, null != a && a, n.a.createElement("span", { style: { float: "left" } }, n.a.createElement(v.Button, { ref: function(t) { e.loadingButton = t }, disabled: l, type: this.props.type, className: this.props.className, id: this.props.id, onClick: this._onClick.bind(this), style: c }, s)), null != i && i, n.a.createElement("div", { style: { clear: "both" } })) } }]), t }(); k.propTypes = { id: y.a.string, className: y.a.string, type: y.a.string, style: y.a.object, caption: y.a.string.isRequired, onClick: y.a.func.isRequired, loadingType: y.a.string, loadingMessage: y.a.string, isLoading: y.a.bool }, k.defaultProps = { style: {}, isLoading: null, className: "button", type: "button", loadingType: "inside-feedback", loadingMessage: null }; var x = k , S = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , A = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function E(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function T(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function C(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var z = "wss://fake.automatic-selection.com"; function B(e) { return -1 !== e.indexOf("testnet") } var O = function(e) { function t(e) { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) } return C(t, n.a.Component), A(t, [{ key: "activate", value: function(e) { s.a.changeSetting({ setting: "apiServer", value: e }), l.a.getSetting("activeNode") != l.a.getSetting("apiServer") && setTimeout(function() { Object(c.a)(!1) } .bind(this), 50) } }, { key: "render", value: function() { var e = this.props , t = e.isActive , r = e.connectedNode , a = e.totalNodes; return e.popup ? n.a.createElement("div", null, n.a.createElement(v.Switch, { style: { float: "right", position: "relative", top: "-15px" }, checked: t, onChange: null != r ? this.activate.bind(this, t ? r.url : z) : function() {} }), n.a.createElement("p", { style: { fontSize: "80%" } }, n.a.createElement(o.a, { content: "settings.automatic_short" }), ":")) : n.a.createElement("div", { className: "auto-node" }, n.a.createElement("div", null, n.a.createElement(v.Switch, { checked: t, onChange: null != r ? this.activate.bind(this, t ? r.url : z) : function() {} }), n.a.createElement(o.a, { component: "div", style: { paddingLeft: "1rem", paddingTop: "0.2rem" }, content: "settings.automatic", totalNodes: a }))) } }]), t }() , P = function(e) { function t(e) { return E(this, t), T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) } return C(t, n.a.Component), A(t, [{ key: "activate", value: function(e) { s.a.changeSetting({ setting: "apiServer", value: e }), l.a.getSetting("activeNode") != l.a.getSetting("apiServer") && setTimeout(function() { Object(c.a)(!1) } .bind(this), 50) } }, { key: "remove", value: function(e, t) { this.props.showRemoveNodeModal(e, t) } }, { key: "show", value: function(e) { s.a.showWS(e) } }, { key: "hide", value: function(e) { s.a.hideWS(e) } }, { key: "_getPing", value: function() { if (B(this.props.node.url)) return { toString: null, color: null, rating: null }; if (!this.props.node.ping) return { toString: null, color: "high", rating: "node_down" }; if (this.props.node.ping == 1 / 0) return { toString: null, color: "high", rating: "node_down" }; if (-1 == this.props.node.ping) return { toString: null, color: "high", rating: "skipped" }; var e = void 0 , t = void 0 , r = this.props.node.ping; return r < 400 ? (e = "low", t = "low_latency") : r >= 400 && r < 800 ? (e = "medium", t = "medium_latency") : (e = "high", t = "high_latency"), { toString: r >= 1e3 ? +(r / 1e3).toFixed(2) + "s" : r + "ms", color: e, rating: t } } }, { key: "render", value: function() { var e = this.props , t = e.node , r = e.isActive , a = e.popup , i = this._getPing() , s = t.url , l = !r , c = !t.default && !r , u = !!t.hidden , d = t.location && "object" === S(t.location) && "translate"in t.location ? n.a.createElement(o.a, { component: "span", content: t.location.translate }) : t.location , p = d || ""; return t.country && (p = t.country + (p ? " - " + p : "")), t.region && (p = t.region + (p ? " - " + p : "")), a ? n.a.createElement("div", { className: "api-status" }, n.a.createElement("a", null, n.a.createElement(h.a, { className: i.color + " default-icon", name: r ? "connected" : "disconnected", title: r ? "icons.connected" : "icons.disconnected", size: "1_5x", onClick: this.activate.bind(this, s) }), n.a.createElement(h.a, { className: i.color + " hover-icon", name: "connect", title: "icons.connect", size: "1_5x", onClick: this.activate.bind(this, s) })), p) : n.a.createElement("div", { className: "api-node" }, n.a.createElement("div", { className: "api-node-left" }, n.a.createElement("p", { className: "api-node-title" }, p), !!t.operator && n.a.createElement("p", { className: "api-node-operator" }, t.operator, "   "), n.a.createElement("p", { className: "api-node-url", id: r ? "active_node" : null }, s)), n.a.createElement("div", null, n.a.createElement("div", { className: "api-status" }, n.a.createElement("span", { className: i.color }, !!i.rating && n.a.createElement(o.a, { content: "settings." + i.rating }), !!i.toString && n.a.createElement("p", null, i.toString)))), n.a.createElement("div", { style: { marginTop: "-5px" } }, l && n.a.createElement("a", { onClick: u ? this.show.bind(this, s) : this.hide.bind(this, s) }, n.a.createElement(h.a, { className: "shuffle", name: u ? "eye-striked" : "eye", title: u ? "icons.eye_striked" : "icons.eye", size: "1_5x" })), c && n.a.createElement("a", { onClick: this.remove.bind(this, s, p) }, n.a.createElement(h.a, { name: "times", title: "icons.times", size: "1_5x" })), n.a.createElement("div", { className: "api-status" }, r ? n.a.createElement(h.a, { className: i.color, name: "connected", title: "icons.connected", size: "2x" }) : n.a.createElement("a", { id: s, onClick: this.activate.bind(this, s) }, n.a.createElement(h.a, { className: i.color + " default-icon", name: "disconnected", title: "icons.connect", size: "1_5x" }), n.a.createElement(h.a, { className: i.color + " hover-icon", name: "connect", title: "icons.connect", size: "1_5x" }))))) } }]), t }(); P.defaultProps = { node: {} }; var j = function(e) { function t(e) { E(this, t); var r = T(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { activeTab: "available_nodes" }, r } return C(t, n.a.Component), A(t, [{ key: "getNode", value: function(e) { var t = { ping: this.props.apiLatencies[e.url] }; return Object.keys(e).forEach(function(r) { t[r] = e[r] }), t } }, { key: "_getConnectedNode", value: function() { var e = this , t = null; return (t = this.props.connectedNode ? this.props.nodes.find(function(t) { return t.url == e.props.connectedNode }) : z) || (t = z), this.getNode(t) } }, { key: "_connectedNodeIsPersonal", value: function() { var e = this; if (!this.props.connectedNode) return !1; var t = this.props.nodes.find(function(t) { return t.url == e.props.connectedNode }); return t && this._nodeIsPersonal(t) } }, { key: "_nodeIsPersonal", value: function(e) { return !e.default && !e.hidden && !B(e.url) } }, { key: "_getMainNetNodes", value: function() { return this.props.nodes.filter(function(e) { return !B(e.url) }) } }, { key: "renderNode", value: function(e, t) { var r = this.props; return null == e ? null : n.a.createElement(P, { node: e, key: e.url, showRemoveNodeModal: r.showRemoveNodeModal, isActive: null !== t && e.url == t.url, popup: r.popup }) } }, { key: "renderAutoSelection", value: function(e) { var t = this.props; return n.a.createElement(O, { key: z, isActive: t.selectedNode === z, connectedNode: e, totalNodes: this._getMainNetNodes().length, popup: t.popup }) } }, { key: "_changeTab", value: function(e) { this.setState({ activeTab: e }) } }, { key: "_recalculateLatency", value: function(e, t) { var r = this; c.b.doLatencyUpdate(!0, !1, 1).finally(function() { r.forceUpdate(), t() }) } }, { key: "render", value: function() { var e = this , t = this.props , r = this.getNode.bind(this) , a = this.renderNode.bind(this) , i = this._getConnectedNode() , s = t.nodes.map(function(e) { return r(e) }).filter(function(e) { return (null == i || e.url !== i.url) && e.url !== z }).sort(function(e, t) { var r = B(e.url); return e.ping && t.ping ? e.ping - t.ping : e.ping || t.ping ? e.ping && !t.ping ? -1 : t.ping && !e.ping ? 1 : 0 : r ? -1 : 1 }) , l = null , u = !1; "my_nodes" === this.state.activeTab ? (l = s.filter(function(t) { return e._nodeIsPersonal(t) }), u = this._connectedNodeIsPersonal() && 0 === l.length) : l = "available_nodes" === this.state.activeTab ? s.filter(function(e) { return e.default && !e.hidden && !B(e.url) }) : "testnet_nodes" === this.state.activeTab ? s.filter(function(e) { return B(e.url) }) : s.filter(function(e) { return e.hidden && !B(e.url) }); var d = 0 , h = !!c.b && c.b.isBackgroundPingingInProgress(); return this.props.popup ? n.a.createElement("div", null, n.a.createElement("div", { style: { fontWeight: "bold", height: 40 } }, n.a.createElement(o.a, { content: "settings.switch" }), this.renderAutoSelection(i)), n.a.createElement("div", { className: "nodes-list", style: { display: t.selectedNode === z ? "none" : "" } }, l.map(function(e) { if (++d <= 5) return a(e, i) }))) : n.a.createElement("div", { style: { paddingTop: "1em" } }, this.renderAutoSelection(i), n.a.createElement("div", { className: "active-node" }, n.a.createElement(x, { style: { float: "right" }, isLoading: h, caption: "settings.ping", loadingType: "inside-feedback-resize", loadingMessage: "settings.pinging", onClick: this._recalculateLatency.bind(this) }), n.a.createElement(o.a, { component: "h4", style: { marginLeft: "1rem" }, content: "settings.active_node" }), a(i, i)), n.a.createElement("div", { className: "nodes", style: { position: "relative", marginBottom: "2em" } }, n.a.createElement("div", { className: "grid-block shrink", style: { marginLeft: 0 } }, ["available_nodes", "my_nodes", "hidden_nodes", "testnet_nodes"].map(function(t) { return n.a.createElement("div", { key: t, className: p()("nodes-header clickable", { inactive: e.state.activeTab !== t }), onClick: e._changeTab.bind(e, t) }, n.a.createElement(o.a, { content: "settings." + t })) })), "my_nodes" === this.state.activeTab && n.a.createElement("div", { style: { paddingLeft: "1rem", paddingBottom: "1rem" } }, n.a.createElement(v.Button, { type: "primary", onClick: t.showAddNodeModal }, n.a.createElement(o.a, { id: "add", component: "span", content: "settings.add_api" }))), "testnet_nodes" === this.state.activeTab && n.a.createElement(o.a, { component: "p", content: "settings.testnet_nodes_disclaimer" }), l.map(function(e) { return a(e, i) }), u ? n.a.createElement("div", { className: "api-node" }, n.a.createElement("p", { className: "api-node-title", style: { padding: "1rem" } }, n.a.createElement(o.a, { content: "settings.personal_active" }))) : null)) } }]), t }(); j = Object(u.a)(j, { listenTo: function() { return [l.a] }, getProps: function() { return { selectedNode: l.a.getState().settings.get("apiServer"), connectedNode: l.a.getState().settings.get("activeNode"), apiLatencies: l.a.getState().apiLatencies } } }); t.a = j } , , function(e, t, r) { "use strict"; t.a = { MAIN_NET: "4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8", TEST_NET: "39f5e2ede1f8bc1a3a54a7914414e3779e33193f1f5693510e73cb7a87617447" } } , function(e, t) { e.exports = ["de", "es", "fr", "ko", "it", "tr", "ru", "zh", "ja"] } , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(31) , o = r(147) , s = r(26) , l = r(2) , c = r.n(l) , u = r(25) , d = r(14) , p = r(22) , h = r(408) , m = r(4) , f = r.n(m) , g = r(412) , _ = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , b = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var y = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isAddNodeModalVisible: !1, isRemoveNodeModalVisible: !1, removeNode: { name: null, url: null } }, r.showAddNodeModal = r.showAddNodeModal.bind(r), r.hideAddNodeModal = r.hideAddNodeModal.bind(r), r.showRemoveNodeModal = r.showRemoveNodeModal.bind(r), r.hideRemoveNodeModal = r.hideRemoveNodeModal.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), b(t, [{ key: "showAddNodeModal", value: function() { this.setState({ isAddNodeModalVisible: !0 }) } }, { key: "hideAddNodeModal", value: function() { this.setState({ isAddNodeModalVisible: !1 }) } }, { key: "showRemoveNodeModal", value: function(e, t) { this.setState({ isRemoveNodeModalVisible: !0, removeNode: { url: e, name: t } }) } }, { key: "hideRemoveNodeModal", value: function() { this.setState({ isRemoveNodeModalVisible: !1, removeNode: { url: null, name: null } }) } }, { key: "triggerModal", value: function(e) { this.refs.ws_modal.show(e) } }, { key: "onChangeWS", value: function(e) { var t = this; u.a.changeSetting({ setting: "apiServer", value: e.target.value }), d.Apis.reset(e.target.value, !0), setTimeout(function() { t.onReloadClick() }, 50) } }, { key: "onReloadClick", value: function(e) { e && e.preventDefault(), window.electron ? (window.location.hash = "", window.remote.getCurrentWindow().reload()) : window.location.href = "./" } }, { key: "triggerModal", value: function(e) { for (var t, r = arguments.length, a = Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++) a[n - 1] = arguments[n]; (t = this.refs.ws_modal).show.apply(t, [e].concat(a)) } }, { key: "render", value: function() { var e = this.props; e.apis.map(function(e) { var t = -1 !== e.url.indexOf("fake.automatic-selection") , r = e.location; return r && "object" === (void 0 === r ? "undefined" : _(r)) && "translate"in r && (r = f.a.translate(r.translate)), n.a.createElement("option", { key: e.url, value: e.url }, r || e.url, " ", !t && r ? "(" + e.url + ")" : null) }); return n.a.createElement("div", { className: "grid-frame vertical" }, n.a.createElement("div", { className: "grid-container text-center", style: { padding: "5rem 10% 0 10%", maxWidth: "100%", overflowY: "auto", margin: "0 !important" } }, n.a.createElement("h2", null, n.a.createElement(c.a, { content: "sync_fail.title" })), n.a.createElement("br", null), n.a.createElement("p", { style: { marginBottom: 0 } }, n.a.createElement(c.a, { content: "sync_fail.sub_text_1" })), n.a.createElement(p.a, { name: "clock", title: "icons.clock", size: "5x" }), n.a.createElement("p", null, n.a.createElement(c.a, { unsafe: !0, content: "sync_fail.sub_text_2" })), n.a.createElement("hr", null), n.a.createElement(g.a, { nodes: e.apis, onChange: this.onChangeWS.bind(this), showAddNodeModal: this.showAddNodeModal, showRemoveNodeModal: this.showRemoveNodeModal })), n.a.createElement(h.a, { removeNode: this.state.removeNode, isAddNodeModalVisible: this.state.isAddNodeModalVisible, isRemoveNodeModalVisible: this.state.isRemoveNodeModalVisible, onAddNodeClose: this.hideAddNodeModal, onRemoveNodeClose: this.hideRemoveNodeModal, apis: e.apis, api: e.apiServer })) } }]), t }(); y = Object(i.a)(y, { listenTo: function() { return [o.a, s.a] }, getProps: function() { return { rpc_connection_status: o.a.getState().rpc_connection_status, apis: s.a.getState().defaults.apiServer, apiServer: s.a.getState().settings.get("apiServer"), defaultConnection: s.a.getState().defaultSettings.get("apiServer"), apiLatencies: s.a.getState().apiLatencies } } }), t.a = y } , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(13) , o = r(3) , s = r.n(o) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { value: null, pulse: "" }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), l(t, [{ key: "componentWillReceiveProps", value: function(e) { this.update(e) } }, { key: "componentWillMount", value: function() { this.update(this.props) } }, { key: "compare", value: function(e, t) { return e === t ? null : t > e ? "green" : "red" } }, { key: "update", value: function(e) { var t = this , r = this.state.value , a = e.value , n = e.compareFunction || this.compare; if (null !== r && null !== a) { var o = n(r, a); null === o ? this.setState({ value: a }) : this.setState({ value: a, pulse: "" }, function() { Object(i.findDOMNode)(t).offsetHeight, t.setState({ pulse: o }) }) } else this.setState({ value: a, pulse: "" }) } }, { key: "render", value: function() { var e = this.state , t = e.pulse , r = e.value , a = this.props , i = a.children , o = a.reverse , l = a.fill; return i || (i = r), t ? (l = l || "none", n.a.createElement("span", { className: s()("pulsate", t, { reverse: o }), style: { animationFillMode: l } }, i)) : n.a.createElement("span", null, i) } }]), t }(); t.a = c } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(31) , o = r(45) , s = r(192) , l = r(4) , c = r.n(l) , u = r(7) , d = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { assets: [] }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), p(t, [{ key: "componentDidMount", value: function() { this.getAssets() } }, { key: "getAssets", value: function() { var e = this.props , t = e.backedCoins , r = e.include , a = e.includeBTS , n = this.state.assets , i = {}; t.forEach(function(e) { n = n.concat(e.map(function(e) { var t = e.symbol.split(".") , r = d(t, 2) , a = r[0] , n = r[1]; return !i[n] && n && a ? (i[n] = !0, { id: n, label: n, gateway: a, gateFee: e.gateFee, issuer: e.issuerId || "1.2.96397" }) : null })).filter(function(e) { return e }).filter(function(e) { return "BTS" == e.id || (!r || r.includes(e.id)) }) }), !1 !== a && n.push({ id: "BTS", label: "BTS", gateway: "" }), this.setState({ assets: n }) } }, { key: "getSelectedAssetArray", value: function(e) { var t = void 0; return this.state.assets.map(function(r) { r.id == e && (t = r) }), t } }, { key: "_onSelect", value: function(e) { var t = this.props.onSelect , r = this.getSelectedAssetArray(e); t && t(r) } }, { key: "_onInputChanged", value: function(e) { var t = this.props.onChange , r = this.getSelectedAssetArray(e); t && t(r.id) } }, { key: "render", value: function() { var e = this.props.usageContext , t = this.state.assets.sort(function(e, t) { if (e.id && t.id) return e.id.localeCompare(t.id) }); return n.a.createElement(u.Select, { onSelect: this._onSelect.bind(this), onChange: this._onInputChanged.bind(this), onSearch: this._onInputChanged.bind(this), placeholder: c.a.translate("withdraw" == e ? "gateway.asset_search_withdraw" : "gateway.asset_search_deposit"), value: this.props.defaultValue, optionLabelProp: "value", showSearch: !0, style: { width: "100%" } }, t.length > 0 ? t.map(function(e) { return n.a.createElement(u.Select.Option, { key: e.id, value: e.label }, e.label) }) : n.a.createElement(u.Select.Option, { disabled: !0, key: 0, value: 0 }, c.a.translate("withdraw" == e ? "modal.withdraw.no_assets" : "modal.deposit.no_assets"))) } }]), t }(); h = Object(o.a)(h), t.a = Object(i.a)(h, { listenTo: function() { return [s.a] }, getProps: function() { return { backedCoins: s.a.getState().backedCoins } } }) } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(443) , l = r.n(s) , c = r(4) , u = r.n(c) , d = r(7) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.onKeyDown = e.onKeyDown.bind(e), e.state = { password: "", confirmPassword: "", isPasswordInputActive: !1, isConfirmPasswordInputActive: !1 }, e.handlePasswordBlur = e.handlePasswordBlur.bind(e), e.handlePasswordFocus = e.handlePasswordFocus.bind(e), e.handlePasswordChange = e.handlePasswordChange.bind(e), e.handleValidationChange = e.handleValidationChange.bind(e), e.handleConfirmPasswordBlur = e.handleConfirmPasswordBlur.bind(e), e.handleConfirmPasswordFocus = e.handleConfirmPasswordFocus.bind(e), e.handleConfirmPasswordChange = e.handleConfirmPasswordChange.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), p(t, [{ key: "handleConfirmPasswordBlur", value: function() { this.setState({ isConfirmPasswordInputActive: !1 }) } }, { key: "handleConfirmPasswordFocus", value: function() { this.setState({ isConfirmPasswordInputActive: !0 }) } }, { key: "handlePasswordBlur", value: function() { this.setState({ isPasswordInputActive: !1 }) } }, { key: "handlePasswordFocus", value: function() { this.setState({ isPasswordInputActive: !0 }) } }, { key: "handlePasswordChange", value: function(e) { var t = this; this.setState({ password: e.target.value }, function() { t.props.onChange && t.props.onChange(t.state.password), t.calculatePasswordScore(t.state.password || ""), t.handleValidationChange() }) } }, { key: "handleConfirmPasswordChange", value: function(e) { var t = this; this.setState({ confirmPassword: e.target.value }, function() { t.handleValidationChange() }) } }, { key: "handleValidationChange", value: function() { var e = { errorMessage: this.getPasswordErrorMessage() || this.getConfirmPasswordErrorMessage() || " ", valid: !this.getPasswordErrorMessage() && !this.getConfirmPasswordErrorMessage() }; console.log(e), this.props.onValidationChange && this.props.onValidationChange(e) } }, { key: "calculatePasswordScore", value: function(e) { var t = this.props.passwordLength , r = l.a.load({ sync: !0 })(e || "") , a = Math.floor(e.length / (1.5 * t)) , n = Math.min(5, r.score + a); console.log(n, r.score, a, e), this.setState({ score: n }) } }, { key: "onKeyDown", value: function(e) { this.props.onEnter && 13 === e.keyCode && this.props.onEnter(e) } }, { key: "getPasswordErrorMessage", value: function() { return this.state.password.length < this.props.passwordLength ? u.a.translate("wallet.pass_length", { minLength: this.props.passwordLength }) : "" } }, { key: "getConfirmPasswordErrorMessage", value: function() { var e = this.state , t = e.password , r = e.confirmPassword; return console.log(t, r, t !== r), t !== r ? u.a.translate("wallet.confirm_error") : "" } }, { key: "render", value: function() { var e = this , t = this.state.score , r = this.props , a = r.readonly , i = r.visible , o = this.getPasswordErrorMessage() , s = this.getConfirmPasswordErrorMessage(); return [n.a.createElement(d.Form.Item, { label: this.props.label || u.a.translate("wallet.enter_password"), key: "password-field", help: e.state.isPasswordInputActive || !e.state.password ? "" : o || "", validateStatus: e.state.isPasswordInputActive || !e.state.password ? "" : o && o.length ? "error" : "" }, n.a.createElement(d.Input, { id: "current-password", onBlur: this.handlePasswordBlur, onFocus: this.handlePasswordFocus, type: i ? "text" : "password", name: "password", placeholder: u.a.translate("wallet.enter_password"), ref: "password", onChange: this.handlePasswordChange, onKeyDown: this.onKeyDown, value: this.state.password, readOnly: a }), n.a.createElement(d.Progress, { percent: 20 * t, showInfo: !1 })), n.a.createElement(d.Form.Item, { label: u.a.translate("wallet.confirm"), key: "confirm-password-field", help: e.state.confirmPassword && e.state.password && s || "", validateStatus: !e.state.isConfirmPasswordInputActive && e.state.confirmPassword && e.state.password && s && s.length ? "error" : "" }, n.a.createElement(d.Input, { id: "confirm-password", onBlur: this.handleConfirmPasswordBlur, onFocus: this.handleConfirmPasswordFocus, type: i ? "text" : "password", name: "confirmPassword", placeholder: u.a.translate("wallet.enter_password"), ref: "confirmPassword", onChange: this.handleConfirmPasswordChange, onKeyDown: this.onKeyDown, value: this.state.confirmPassword, readOnly: a }))] } }]), t }(); h.propTypes = { onChange: o.a.func, onEnter: o.a.func, confirmation: o.a.bool, wrongPassword: o.a.bool, noValidation: o.a.bool, noLabel: o.a.bool, passwordLength: o.a.number, checkStrength: o.a.bool, value: o.a.string, copy: o.a.bool, visible: o.a.bool, readonly: o.a.bool }, h.defaultProps = { confirmation: !1, wrongPassword: !1, noValidation: !1, noLabel: !1, passwordLength: 8, checkStrength: !1, value: "", copy: !1, visible: !1, readonly: !1 }, t.a = h } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(27) , o = r(409) , s = function(e) { var t = e.op; e.proposer, e.index; (0, e.changeColor)("success"); var r = null; return t[1].memo && (r = n.a.createElement(o.a, { memo: t[1].memo })), t[1].amount.amount = parseFloat(t[1].amount.amount), n.a.createElement("span", { className: "right-td" }, n.a.createElement("div", { className: "inline-block" }, n.a.createElement("div", null, n.a.createElement(i.a, { string: "operation.transfer", keys: [{ type: "account", value: t[1].from, arg: "from" }, { type: "amount", value: t[1].amount, arg: "amount" }, { type: "account", value: t[1].to, arg: "to" }] }), r))) } , l = r(45) , c = r(67) , u = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent , o = e.marketDirections , s = e.result; if (r("warning"), "proposed_operation" === a) { var u = market_utils.isAskOp(t[1]); return n.a.createElement("span", null, n.a.createElement(i.a, { string: u ? "proposal.limit_order_sell" : "proposal.limit_order_buy", keys: [{ type: "account", value: t[1].seller, arg: "account" }, { type: "amount", value: u ? t[1].amount_to_sell : t[1].min_to_receive, arg: "amount" }, { type: "price", value: { base: u ? t[1].min_to_receive : t[1].amount_to_sell, quote: u ? t[1].amount_to_sell : t[1].min_to_receive }, arg: "price" }] })) } var d = t[1]; return n.a.createElement("span", null, n.a.createElement(l.a.Wrapper, { base: d.min_to_receive.asset_id, quote: d.amount_to_sell.asset_id }, function(e) { var r = e.base , a = e.quote , l = c.a.getMarketName(r, a) , u = l.marketName , p = l.first , h = l.second , m = o.get(u) , f = d.amount_to_sell.asset_id === (m ? p.get("id") : h.get("id")) , g = f ? d.amount_to_sell : d.min_to_receive , _ = f ? d.min_to_receive : d.amount_to_sell , b = f ? t[1].min_to_receive : t[1].amount_to_sell , y = s && "string" == typeof s[1] ? "#" + s[1].substring(4) : ""; return n.a.createElement(i.a, { string: f ? "operation.limit_order_buy" : "operation.limit_order_sell", keys: [{ type: "account", value: t[1].seller, arg: "account" }, { type: "amount", value: b, arg: "amount" }, { type: "price", value: { base: g, quote: _ }, arg: "price" }], params: { order: y } }) })) } , d = r(2) , p = r.n(d) , h = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent , o = e.linkToAccount; return r("cancel"), "proposed_operation" === a ? n.a.createElement("span", null, o(t[1].fee_paying_account), " ", n.a.createElement(p.a, { component: "span", content: "proposal.limit_order_cancel" }), " #", t[1].order.substring(4)) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.limit_order_cancel", keys: [{ type: "account", value: t[1].fee_paying_account, arg: "account" }], params: { order: t[1].order.substring(4) } })) } , m = function(e) { var t = e.op; return (0, e.changeColor)("cancel"), n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.short_order_cancel" }), " ", t[1].order) } , f = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent; return r("warning"), n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposed_operation" === a ? "proposal.call_order_update" : "operation.call_order_update", keys: [{ type: "account", value: t[1].funding_account, arg: "account" }, { type: "asset", value: t[1].delta_debt.asset_id, arg: "debtSymbol" }, { type: "amount", value: t[1].delta_debt, arg: "debt" }, { type: "amount", value: t[1].delta_collateral, arg: "collateral" }] })) } , g = function() { return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.create_key" })) } , _ = function(e) { var t = e.op , r = e.current , a = e.linkToAccount; return "proposed_operation" === e.fromComponent ? r === t[1].registrar ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.reg_account" }), " ", a(t[1].name)) : n.a.createElement("span", null, a(t[1].name), " ", n.a.createElement(p.a, { component: "span", content: "proposal.was_reg_account" }), " ", a(t[1].registrar)) : n.a.createElement(i.a, { string: "operation.reg_account", keys: [{ type: "account", value: t[1].registrar, arg: "registrar" }, { type: "account", value: t[1].name, arg: "new_account" }] }) } , b = r(5) , y = function(e, t) { return { minus: e.filter(function(e) { return !t.includes(e) }), plus: t.filter(function(t) { return !e.includes(t) }) } } , v = function(e) { if (e.id.startsWith("1.14")) { var t = b.ChainStore.getAccountName(e.worker_account); return "Worker " + e.name + (t ? " of " + t : " account " + e.worker_account) } if (e.id.startsWith("1.6.")) { var r = b.ChainStore.getAccountName(e.witness_account); return "Witness " + (r || " account " + e.witness_account) } var a = b.ChainStore.getAccountName(e.committee_member_account); return "Committee " + (a || " account " + e.committee_member_account) } , w = function(e) { var t = e.op , r = e.fromComponent , a = e.collapsed , o = t[1].account , s = t[1].new_options ? t[1].new_options.votes : void 0 , l = t[1].new_options ? t[1].new_options.memo_key : void 0 , c = t[1].owner ? t[1].owner : void 0 , u = t[1].active ? t[1].active : void 0 , d = {} , p = [] , h = []; if (void 0 == a && (a = !0), "proposed_operation" === r && !a) { var m = b.ChainStore.getAccount(o, !1) , f = m.get("options").get("votes").toArray(); if (s) { var g = y(f, s) , _ = b.ChainStore.getObjectsByVoteIds(g.plus) , w = b.ChainStore.getObjectsByVoteIds(g.minus); _ && w && (_.forEach(function(e) { if (e) { var t = v(e.toJS()); t && p.push(t) } }), w.forEach(function(e) { if (e) { var t = v(e.toJS()); t && h.push(t) } }), d.votes = { minus: h, plus: p }) } if (c) { d.owner = {}; var k = m.get("owner").get("key_auths").map(function(e) { return e.get(0) }).toArray(); d.owner.keys = y(k, c.key_auths.map(function(e) { return e[0] })); var x = m.get("owner").get("account_auths").map(function(e) { return e.get(0) }).toArray(); d.owner.accounts = y(x, c.account_auths.map(function(e) { return e[0] })), m.get("owner").get("weight_threshold") !== c.weight_threshold && (d.owner.weight_threshold = c.weight_threshold) } if (u) { d.active = {}; var S = m.get("active").get("key_auths").map(function(e) { return e.get(0) }).toArray(); d.active.keys = y(S, u.key_auths.map(function(e) { return e[0] })); var A = m.get("active").get("account_auths").map(function(e) { return e.get(0) }).toArray(); d.active.accounts = y(A, u.account_auths.map(function(e) { return e[0] })), m.get("active").get("weight_threshold") !== u.weight_threshold && (d.active.weight_threshold = c.weight_threshold) } if (l) { d.memo = {}; var E = m.get("options").get("memo_key"); d.memo.keys = y([E], [l]), 0 == d.memo.keys.minus.length && 0 == d.memo.keys.plus.length && (d.memo = void 0) } } return n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposed_operation" === r ? "proposal.update_account" : "operation.update_account", keys: [{ type: "account", value: t[1].account, arg: "account" }, { type: "change", value: d, arg: "change" }] })) } , k = function(e) { var t = e.op , r = e.fromComponent , a = t[1].new_listing === listings.no_listing ? "unlisted_by" : t[1].new_listing === listings.white_listed ? "whitelisted_by" : "blacklisted_by"; return "proposed_operation" === r ? n.a.createElement("span", null, n.a.createElement(l.a.Wrapper, { lister: t[1].authorizing_account, listee: t[1].account_to_list }, function(e) { var t = e.lister , r = e.listee; return n.a.createElement(p.a, { component: "span", content: "transaction." + a, lister: t.get("name"), listee: r.get("name") }) })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation." + a, keys: [{ type: "account", value: t[1].authorizing_account, arg: "lister" }, { type: "account", value: t[1].account_to_list, arg: "listee" }] })) } , x = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? t[1].upgrade_to_lifetime_member ? n.a.createElement("span", null, r(t[1].account_to_upgrade), "  ", n.a.createElement(p.a, { component: "span", content: "proposal.lifetime_upgrade_account" })) : n.a.createElement("span", null, r(t[1].account_to_upgrade), "  ", n.a.createElement(p.a, { component: "span", content: "proposal.annual_upgrade_account" })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: t[1].upgrade_to_lifetime_member ? "operation.lifetime_upgrade_account" : "operation.annual_upgrade_account", keys: [{ type: "account", value: t[1].account_to_upgrade, arg: "account" }] })) } , S = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.transfer_account" }), " ", r(t[1].account_id), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].new_owner)) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.account_transfer", keys: [{ type: "account", value: t[1].account_id, arg: "account" }, { type: "account", value: t[1].new_owner, arg: "to" }] })) } , A = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent; return r("warning"), "proposed_operation" === a ? n.a.createElement(i.a, { string: "proposal.asset_create", keys: [{ type: "account", value: t[1].issuer, arg: "account" }], params: { asset: t[1].symbol } }) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_create", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].symbol, arg: "asset" }] })) } , E = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent; return r("warning"), n.a.createElement(i.a, { string: "proposed_operation" === a ? "proposal.asset_update" : "operation.asset_update", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].asset_to_update, arg: "asset" }] }) } , T = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent; return r("warning"), "proposed_operation" === a ? n.a.createElement(i.a, { string: "proposal.feed_producer", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].asset_to_update, arg: "asset" }] }) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_update_feed_producers", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].asset_to_update, arg: "asset" }] })) } , C = function(e) { var t = e.op , r = e.changeColor , a = e.fromComponent; r("warning"); var s = void 0; return t[1].memo && (s = n.a.createElement(o.a, { memo: t[1].memo })), t[1].asset_to_issue.amount = parseInt(t[1].asset_to_issue.amount, 10), n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposed_operation" === a ? "proposal.asset_issue" : "operation.asset_issue", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "amount", value: t[1].asset_to_issue, arg: "amount" }, { type: "account", value: t[1].issue_to_account, arg: "to" }] }), s) } , z = function(e) { var t = e.op , r = e.fromComponent; return n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposed_operation" === r ? "proposal.asset_reserve" : "operation.asset_reserve", keys: [{ type: "account", value: t[1].payer, arg: "account" }, { type: "amount", value: t[1].amount_to_reserve, arg: "amount" }] })) } , B = r(33) , O = function(e) { var t = e.op , r = e.changeColor , a = e.linkToAccount , o = e.fromComponent; if (r("warning"), "proposed_operation" === o) { var s = b.ChainStore.getAsset(t[1].asset_id); return s = s ? s.get("symbol") : t[1].asset_id, n.a.createElement("span", null, a(t[1].from_account), "  ", n.a.createElement(p.a, { component: "span", content: "proposal.fund_pool", asset: s }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount, asset: "1.3.0" })) } return n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_fund_fee_pool", keys: [{ type: "account", value: t[1].from_account, arg: "account" }, { type: "asset", value: t[1].asset_id, arg: "asset" }, { type: "amount", value: { amount: t[1].amount, asset_id: "1.3.0" }, arg: "amount" }] })) } , P = function(e) { var t = e.op , r = e.result , a = e.changeColor , o = e.fromComponent; if (a("warning"), "proposed_operation" === o) return n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposal.asset_settle", keys: [{ type: "account", value: t[1].account, arg: "account" }, { type: "amount", value: t[1].amount, arg: "amount" }] })); var s = t[1].amount; if (r && 2 == r[0]) { var l = r[1]; return n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_settle_instant", keys: [{ type: "account", value: t[1].account, arg: "account" }, { type: "amount", value: s, arg: "amount" }, { type: "price", value: { base: s, quote: l }, arg: "price" }] })) } return n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_settle", keys: [{ type: "account", value: t[1].account, arg: "account" }, { type: "amount", value: t[1].amount, arg: "amount" }] })) } , j = function(e) { var t = e.op; return n.a.createElement(i.a, { string: "operation.asset_settle_cancel", keys: [{ type: "account", value: t[1].account, arg: "account" }, { type: "amount", value: t[1].amount, arg: "amount" }] }) } , I = r(127) , M = function(e) { var t = e.op , r = e.changeColor , a = e.linkToAsset , o = e.fromComponent; return r("warning"), "proposed_operation" === o ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.asset_global_settle" }), " ", a(t[1].asset_to_settle), " ", n.a.createElement(p.a, { component: "span", content: "proposal.at" }), " ", n.a.createElement(I.a, { style: { fontWeight: "bold" }, quote_amount: t[1].settle_price.quote.amount, quote_asset: t[1].settle_price.quote.asset_id, base_asset: t[1].settle_price.base.asset_id, base_amount: t[1].settle_price.base.amount })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.asset_global_settle", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].asset_to_settle, arg: "asset" }, { type: "price", value: t[1].settle_price, arg: "price" }] })) } , N = function(e) { var t = e.op , r = e.changeColor , a = e.linkToAccount , o = e.fromComponent; return r("warning"), "proposed_operation" === o ? n.a.createElement("span", null, a(t[1].publisher), " ", n.a.createElement(p.a, { component: "span", content: "proposal.publish_feed" }), " ", n.a.createElement(I.a, { base_asset: t[1].feed.settlement_price.base.asset_id, quote_asset: t[1].feed.settlement_price.quote.asset_id, base_amount: t[1].feed.settlement_price.base.amount, quote_amount: t[1].feed.settlement_price.quote.amount })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.publish_feed", keys: [{ type: "account", value: t[1].publisher, arg: "account" }, { type: "price", value: t[1].feed.settlement_price, arg: "price" }] })) } , R = function(e) { var t = e.op; return n.a.createElement(i.a, { string: "operation.asset_claim_pool", keys: [{ type: "account", value: t[1].issuer, arg: "account" }, { type: "asset", value: t[1].asset_id, arg: "asset" }, { type: "amount", value: t[1].amount_to_claim, arg: "amount" }] }) } , q = function(e) { var t = e.op; return n.a.createElement(i.a, { string: "operation.asset_update_issuer", keys: [{ type: "account", value: t[1].issuer, arg: "from_account" }, { type: "account", value: t[1].new_issuer, arg: "to_account" }, { type: "asset", value: t[1].asset_to_update, arg: "asset" }] }) } , D = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.witness_create" }), " ", r(t[1].witness_account)) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.witness_create", keys: [{ type: "account", value: t[1].witness_account, arg: "account" }] })) } , L = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.witness_update" }), " ", r(t[1].witness_account)) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.witness_update", keys: [{ type: "account", value: t[1].witness_account, arg: "account" }] })) } , F = function(e) { var t = e.op , r = e.current , a = e.linkToAccount; return "proposed_operation" === e.fromComponent ? r === t[1].witness_account ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.witness_pay" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount, asset: "1.3.0" }), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", a(t[1].witness_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.received" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount, asset: "1.3.0" }), n.a.createElement(p.a, { component: "span", content: "proposal.from" }), " ", a(t[1].witness_account)) : r === t[1].witness_account ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.witness_pay" }), " ", n.a.createElement(B.a, { amount: t[1].amount, asset: "1.3.0" }), n.a.createElement(p.a, { component: "span", content: "transaction.to" }), " ", a(t[1].witness_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.received" }), " ", n.a.createElement(B.a, { amount: t[1].amount, asset: "1.3.0" }), n.a.createElement(p.a, { component: "span", content: "transaction.from" }), " ", a(t[1].witness_account)) } , U = r(398) , W = function(e) { var t = e.objectId; if ("string" == typeof t) { var r = t.split(".") , a = r.length; if (a > 0) return "#" + r[a - 1] } return t } , H = function(e) { var t = e.op , r = e.result; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.proposal_create" })) : n.a.createElement("div", { className: "inline-block" }, n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.proposal_create", keys: [{ type: "account", value: t[1] && t[1].fee_paying_account, arg: "account" }, { value: r ? n.a.createElement(W, { objectId: r[1] }) : "", arg: "proposal" }] }), ":"), n.a.createElement("div", null, t[1] && t[1].proposed_ops.map(function(e, t) { return n.a.createElement(U.b, { op: e.op, key: t, index: t, inverted: !1, hideFee: !0, hideOpLabel: !0, hideDate: !0, proposal: !0 }) }))) } , K = function(e) { var t = e.objectId; if ("string" == typeof t) { var r = t.split(".") , a = r.length; if (a > 0) return "#" + r[a - 1] } return t } , V = function(e) { var t = e.op , r = e.linkToAccount; if ("proposed_operation" === e.fromComponent) return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.proposal_update" })); return n.a.createElement("div", null, n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.proposal_update", keys: [{ type: "account", value: t[1].fee_paying_account, arg: "account" }, { value: n.a.createElement(K, { objectId: t[1].proposal }), arg: "proposal" }] })), n.a.createElement("div", { className: "proposal-update" }, ["active_approvals_to_add", "active_approvals_to_remove", "owner_approvals_to_add", "owner_approvals_to_remove", "key_approvals_to_add", "key_approvals_to_remove"].map(function(e) { return t[1][e].length ? n.a.createElement("div", { key: e }, n.a.createElement(p.a, { content: "proposal.updated." + e }), n.a.createElement("ul", null, t[1][e].map(function(t) { return n.a.createElement("li", { key: t }, e.startsWith("key") ? t : r(t)) }))) : null }))) } , G = function(e) { var t = e.objectId; if ("string" == typeof t) { var r = t.split(".") , a = r.length; if (a > 0) return "#" + r[a - 1] } return t } , Y = function(e) { var t = e.op; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.proposal_update" })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.proposal_delete", keys: [{ type: "account", value: t[1].fee_paying_account, arg: "account" }, { value: n.a.createElement(G, { objectId: t[1].proposal }), arg: "proposal" }] })) } , J = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.withdraw_permission_create" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].authorized_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.withdraw_permission_create" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "transaction.to" }), " ", r(t[1].authorized_account)) } , X = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.withdraw_permission_update" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].authorized_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.withdraw_permission_update" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "transaction.to" }), " ", r(t[1].authorized_account)) } , Z = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.withdraw_permission_claim" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].withdraw_to_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.withdraw_permission_claim" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "transaction.to" }), " ", r(t[1].withdraw_to_account)) } , Q = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.withdraw_permission_delete" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].authorized_account)) : n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "transaction.withdraw_permission_delete" }), " ", r(t[1].withdraw_from_account), n.a.createElement(p.a, { component: "span", content: "transaction.to" }), " ", r(t[1].authorized_account)) } , $ = function(e) { var t = e.changeColor , r = e.op , a = e.linkToAccount , o = e.marketDirections , s = e.fromComponent; t("success"); var u = r[1]; return "proposed_operation" === s ? n.a.createElement("span", null, a(r.account_id), " ", n.a.createElement(p.a, { component: "span", content: "proposal.paid" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: r.pays.amount, asset: r.pays.asset_id }), " ", n.a.createElement(p.a, { component: "span", content: "proposal.obtain" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: r.receives.amount, asset: r.receives.asset_id }), " ", n.a.createElement(p.a, { component: "span", content: "proposal.at" }), " ", n.a.createElement(I.a, { base_asset: u.pays.asset_id, base_amount: u.pays.amount, quote_asset: u.receives.asset_id, quote_amount: u.receives.amount })) : n.a.createElement("span", null, n.a.createElement(l.a.Wrapper, { base: u.receives.asset_id, quote: u.pays.asset_id }, function(e) { var t = e.base , a = e.quote , s = c.a.getMarketName(t, a) , l = s.marketName , d = s.first , p = s.second , h = o.get(l) , m = u.pays.asset_id === (h ? d.get("id") : p.get("id")) , f = m ? u.receives : u.pays , g = m ? u.pays : u.receives , _ = m ? u.receives : u.pays , b = u.fee.asset_id === _.asset_id ? _.amount - u.fee.amount : _.amount; return n.a.createElement(i.a, { string: "operation.fill_order_" + (m ? "buy" : "sell"), keys: [{ type: "account", value: r[1].account_id, arg: "account" }, { type: "amount", value: { amount: b, asset_id: _.asset_id }, arg: "amount" }, { type: "price", value: { base: f, quote: g }, arg: "price" }], params: { order: u.order_id.substring(4) } }) })) } , ee = function(e) { var t = e.fromComponent; return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposed_operation" === t ? "proposal.global_parameters_update" : "transaction.global_parameters_update" })) } , te = function() { return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.file_write" })) } , re = function(e) { var t = e.op , r = e.linkToAccount; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, " ", r(t[1].creator), n.a.createElement(p.a, { component: "span", content: "proposal.vesting_balance_create" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount.amount, asset: t[1].amount.asset_id }), " ", r(t[1].owner)) : n.a.createElement("span", null, " ", r(t[1].creator), n.a.createElement(p.a, { component: "span", content: "transaction.vesting_balance_create" }), " ", n.a.createElement(B.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id }), " ", r(t[1].owner)) } , ae = function(e) { var t = e.op , r = e.fromComponent; return n.a.createElement(i.a, { string: "proposed_operation" === r ? "proposal.vesting_balance_withdraw" : "operation.vesting_balance_withdraw", keys: [{ type: "account", value: t[1].owner, arg: "account" }, { type: "amount", value: t[1].amount, arg: "amount" }] }) } , ne = function(e) { var t = e.op; return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_create_offer" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount.amount, asset: t[1].amount.asset_id })) } , ie = function(e) { var t = e.op; return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_cancel_offer" }), " ", t[1].offer_id) } , oe = function(e) { var t = e.op , r = e.linkToAccount , a = e.current; return a === t[1].lender ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_accept_offer" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount_borrowed.amount, asset: t[1].amount_borrowed.asset_id }), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].borrower)) : a === t[1].borrower ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_accept_offer" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount_borrowed.amount, asset: t[1].amount_borrowed.asset_id }), n.a.createElement(p.a, { component: "span", content: "proposal.from" }), " ", r(t[1].lender)) : null } , se = function(e) { var t = e.op , r = e.linkToAccount , a = e.current; return a === t[1].lender ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_pay_collateral" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].collateral_claimed.amount, asset: t[1].collateral_claimed.asset_id }), n.a.createElement(p.a, { component: "span", content: "proposal.to" }), " ", r(t[1].claimer)) : a === t[1].claimer ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.bond_claim_collateral" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].collateral_claimed.amount, asset: t[1].collateral_claimed.asset_id }), n.a.createElement(p.a, { component: "span", content: "proposal.from" }), " ", r(t[1].lender)) : null } , le = function(e) { var t = e.op; return "proposed_operation" === e.fromComponent ? n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposal.create_worker" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].daily_pay, asset: "1.3.0" })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.worker_create", keys: [{ type: "account", value: t[1].owner, arg: "account" }, { type: "amount", value: { amount: t[1].daily_pay, asset_id: "1.3.0" }, arg: "pay" }], params: { name: t[1].name } })) } , ce = r(15) , ue = function(e) { var t = e.op , r = e.changeColor , a = e.linkToAccount , o = e.fromComponent; return r("success"), t[1].total_claimed.amount = parseInt(t[1].total_claimed.amount, 10), "proposed_operation" === o ? n.a.createElement("span", null, a(t[1].deposit_to_account), " ", n.a.createElement(l.a.Wrapper, { asset: t[1].total_claimed.asset_id }, function(e) { var r = e.asset; return n.a.createElement(p.a, { component: "span", content: "proposal.balance_claim", balance_amount: ce.a.format_asset(t[1].total_claimed.amount, r), balance_id: t[1].balance_to_claim.substring(5) }) })) : n.a.createElement("span", null, n.a.createElement(i.a, { string: "operation.balance_claim", keys: [{ type: "account", value: t[1].deposit_to_account, arg: "account" }, { type: "amount", value: t[1].total_claimed, arg: "amount" }] })) } , de = function(e) { var t = e.op , r = e.linkToAccount , a = e.fromComponent; return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposed_operation" === a ? "proposal.committee_member_create" : "transaction.committee_member_create" }), " ", r(t[1].committee_member_account)) } , pe = function(e) { var t = e.op , r = e.linkToAccount , a = e.fromComponent; return n.a.createElement("span", null, r(t[1].from), " ", n.a.createElement(p.a, { component: "span", content: "proposed_operation" === a ? "proposal.sent" : "transaction.sent" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount.amount, asset: t[1].amount.asset_id })) } , he = function(e) { var t = e.op , r = e.linkToAccount , a = e.fromComponent; return n.a.createElement("span", null, r(t[1].to), " ", n.a.createElement(p.a, { component: "span", content: "proposed_operation" === a ? "proposal.received" : "transaction.received" }), " ", n.a.createElement(B.a, { style: { fontWeight: "bold" }, amount: t[1].amount.amount, asset: t[1].amount.asset_id })) } , me = function(e) { var t = e.op , r = e.changeColor , a = e.linkToAccount; return r("success"), t[1].amount_to_claim.amount = parseInt(t[1].amount_to_claim.amount, 10), n.a.createElement("span", null, a(t[1].issuer), " ", n.a.createElement(l.a.Wrapper, { asset: t[1].amount_to_claim.asset_id }, function(e) { var r = e.asset; return n.a.createElement(i.a, { string: "transaction.asset_claim_fees", keys: [{ type: "amount", value: t[1].amount_to_claim, arg: "balance_amount" }, { type: "asset", value: r.get("id"), arg: "asset" }] }) })) } , fe = function(e) { var t = e.fromComponent; return n.a.createElement("span", null, n.a.createElement(i.a, { string: "proposed_operation" === t ? "proposal.committee_member_update_global_parameters" : "operation.committee_member_update_global_parameters", keys: [{ type: "account", value: "1.2.0", arg: "account" }] })) } , ge = function(e) { var t = e.fromComponent; return n.a.createElement("span", null, n.a.createElement(p.a, { component: "span", content: "proposed_operation" === t ? "proposal.custom" : "transaction.custom" })) } , _e = function(e) { var t = e.op , r = e.fromComponent; return n.a.createElement(i.a, { string: "proposed_operation" === r ? "proposal.override_transfer" : "operation.override_transfer", keys: [{ type: "account", value: t[1].issuer, arg: "issuer" }, { type: "account", value: t[1].from, arg: "from" }, { type: "account", value: t[1].to, arg: "to" }, { type: "amount", value: t[1].amount, arg: "amount" }] }) } , be = r(2238) , ye = function(e) { var t = e.op , r = e.block; return console.log("unimplemented op:", t), n.a.createElement("span", null, n.a.createElement(be.a, { to: "/block/" + r }, "#", r)) } , ve = function(e) { var t = e.op; return n.a.createElement(i.a, { string: "operation.bid_collateral", keys: [{ type: "account", value: t[1].bidder, arg: "bid_account" }, { type: "amount", value: t[1].additional_collateral, arg: "collateral" }, { type: "amount", value: t[1].debt_covered, arg: "debt" }] }) } , we = r(7) , ke = r(4) , xe = r.n(ke) , Se = function(e) { var t = e.op , r = e.block , a = b.ChainStore.getObject("2.0.0") , o = b.ChainStore.getObject("2.1.0") , s = ce.a.calc_block_time(r, a, o) , l = !1; s || (s = ce.a.calc_block_time(r, a, o, !0), l = !0), t[1].amount.amount = parseFloat(t[1].amount.amount); var c = new Date; return c.setTime(s.getTime() + 1e3 * t[1].claim_period_seconds), n.a.createElement(n.a.Fragment, null, n.a.createElement("span", { className: "right-td" }, n.a.createElement(i.a, { string: "operation.htlc_create", keys: [{ type: "date", arg: "lock_period", value: c }, { type: "account", value: t[1].from, arg: "from" }, { type: "amount", value: t[1].amount, arg: "amount", decimalOffset: "1.3.0" === t[1].amount.asset_id ? 5 : null }, { type: "account", value: t[1].to, arg: "to" }] }), n.a.createElement(we.Tooltip, { title: "Estimated" }, l ? "*" : "")), n.a.createElement("div", { className: "memo", style: { paddingTop: 5, cursor: "help" } }, n.a.createElement(we.Tooltip, { placement: "bottom", title: xe.a.translate("htlc.preimage_hash_explanation") }, n.a.createElement("span", { className: "inline-block" }, xe.a.translate("htlc.preimage_hash") + " (" + t[1].preimage_size + ", " + t[1].preimage_hash[0] + "): " + t[1].preimage_hash[1])))) } , Ae = function(e) { var t = e.op; return n.a.createElement("span", { className: "right-td" }, n.a.createElement(i.a, { string: "operation.htlc_extend", keys: [{ type: "account", value: t[1].update_issuer, arg: "update_issuer" }, { type: "timespan", arg: "seconds_to_add", value: t[1].seconds_to_add }, { value: t[1].htlc_id, arg: "htlc_id" }] })) } , Ee = function(e) { var t = e.op; return (0, e.changeColor)("success"), n.a.createElement(n.a.Fragment, null, n.a.createElement("span", { className: "right-td" }, n.a.createElement(i.a, { string: "operation.htlc_redeem", keys: [{ type: "account", value: t[1].redeemer, arg: "redeemer" }, { value: t[1].htlc_id, arg: "htlc_id" }] })), n.a.createElement("div", { className: "memo", style: { paddingTop: 5, cursor: "help" } }, n.a.createElement(we.Tooltip, { placement: "bottom", title: xe.a.translate("htlc.preimage_explanation") }, n.a.createElement("span", { className: "inline-block" }, xe.a.translate("htlc.preimage") + ": " + t[1].preimage)))) } , Te = function(e) { var t = e.op; return n.a.createElement("span", { className: "right-td" }, n.a.createElement(i.a, { string: "operation.htlc_redeemed", keys: [{ type: "account", value: t[1].to, arg: "to" }, { type: "account", value: t[1].from, arg: "from" }, { type: "amount", value: t[1].amount, arg: "amount", decimalOffset: "1.3.0" === t[1].amount.asset_id ? 5 : null }, { value: t[1].htlc_id, arg: "htlc_id" }] })) } , Ce = function(e) { var t = e.op; return (0, e.changeColor)("warning"), n.a.createElement("span", { className: "right-td" }, n.a.createElement(i.a, { string: "operation.htlc_refund", keys: [{ value: t[1].htlc_id, arg: "htlc_id" }, { type: "account", value: t[1].to, arg: "to" }] })) }; r.d(t, "a", function() { return Be }); var ze = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } ; function Be(e, t, r) { switch (e) { case "transfer": return n.a.createElement(s, ze({}, t, r)); case "limit_order_create": return n.a.createElement(u, ze({}, t, r)); case "limit_order_cancel": return n.a.createElement(h, ze({}, t, r)); case "short_order_cancel": return n.a.createElement(m, ze({}, t, r)); case "call_order_update": return n.a.createElement(f, ze({}, t, r)); case "key_create": return n.a.createElement(g, null); case "account_create": return n.a.createElement(_, ze({}, t, r)); case "account_update": return n.a.createElement(w, ze({}, t, r)); case "account_whitelist": return n.a.createElement(k, ze({}, t, r)); case "account_upgrade": return n.a.createElement(x, ze({}, t, r)); case "account_transfer": return n.a.createElement(S, ze({}, t, r)); case "asset_create": return n.a.createElement(A, ze({}, t, r)); case "asset_update": case "asset_update_bitasset": return n.a.createElement(E, ze({}, t, r)); case "asset_update_feed_producers": return n.a.createElement(T, ze({}, t, r)); case "asset_issue": return n.a.createElement(C, ze({}, t, r)); case "asset_reserve": return n.a.createElement(z, ze({}, t, r)); case "asset_fund_fee_pool": return n.a.createElement(O, ze({}, t, r)); case "asset_settle": return n.a.createElement(P, ze({}, t, r)); case "asset_settle_cancel": return n.a.createElement(j, t); case "asset_global_settle": return n.a.createElement(M, ze({}, t, r)); case "asset_publish_feed": return n.a.createElement(N, ze({}, t, r)); case "asset_claim_pool": return n.a.createElement(R, ze({}, t, r)); case "asset_update_issuer": return n.a.createElement(q, t); case "witness_create": return n.a.createElement(D, ze({}, t, r)); case "witness_update": return n.a.createElement(L, ze({}, t, r)); case "witness_withdraw_pay": return n.a.createElement(F, ze({}, t, r)); case "proposal_create": return n.a.createElement(H, ze({}, t, r)); case "proposal_update": return n.a.createElement(V, ze({}, t, r)); case "proposal_delete": return n.a.createElement(Y, ze({}, t, r)); case "withdraw_permission_create": return n.a.createElement(J, ze({}, t, r)); case "withdraw_permission_update": return n.a.createElement(X, ze({}, t, r)); case "withdraw_permission_claim": return n.a.createElement(Z, ze({}, t, r)); case "withdraw_permission_delete": return n.a.createElement(Q, ze({}, t, r)); case "fill_order": return n.a.createElement($, ze({}, t, r)); case "global_parameters_update": return n.a.createElement(ee, { fromComponent: r.fromComponent }); case "file_write": return n.a.createElement(te, null); case "vesting_balance_create": return n.a.createElement(re, ze({}, t, r)); case "vesting_balance_withdraw": return n.a.createElement(ae, ze({}, t, r)); case "bond_create_offer": return n.a.createElement(ne, t); case "bond_cancel_offer": return n.a.createElement(ie, t); case "bond_accept_offer": return n.a.createElement(oe, ze({}, t, r)); case "bond_claim_collateral": return n.a.createElement(se, ze({}, t, r)); case "worker_create": return n.a.createElement(le, ze({}, t, r)); case "balance_claim": return n.a.createElement(ue, ze({}, t, r)); case "committee_member_create": return n.a.createElement(de, ze({}, t, r)); case "transfer_to_blind": return n.a.createElement(pe, ze({}, t, r)); case "transfer_from_blind": return n.a.createElement(he, ze({}, t, r)); case "asset_claim_fees": return n.a.createElement(me, ze({}, t, r)); case "committee_member_update_global_parameters": return n.a.createElement(fe, { fromComponent: r.fromComponent }); case "custom": return n.a.createElement(ge, { fromComponent: r.fromComponent }); case "override_transfer": return n.a.createElement(_e, ze({}, t, r)); case "bid_collateral": return n.a.createElement(ve, t); case "htlc_create": return n.a.createElement(Se, ze({}, t, r)); case "htlc_redeem": return n.a.createElement(Ee, ze({}, t, r)); case "htlc_redeemed": return n.a.createElement(Te, ze({}, t, r)); case "htlc_extend": return n.a.createElement(Ae, ze({}, t, r)); case "htlc_refund": return n.a.createElement(Ce, ze({}, t, r)); default: return n.a.createElement(ye, t) } } } , , , function(e, t, r) { "use strict"; var a = function() { var e = navigator.userAgent.toLowerCase(); return e.indexOf("firefox") > -1 ? "firefox" : e.search("safari") >= 0 && e.search("chrome") < 0 ? "safari" : window.chrome ? "chrome" : e.indexOf("msie") > -1 || e.match(/trident.*rv\:11\./) ? "ie" : e.indexOf("opera") > -1 ? "opera" : e } , n = function(e) { navigator.userAgent.toLowerCase(); var t = a(); if ("firefox" === t) { var r = indexedDB.open("test"); r.onerror = function() { e(!0) } , r.onsuccess = function() { e(!1) } } else if ("safari" === t) { var n = window.sessionStorage; try { n.setItem("someKeyHere", "test"), n.removeItem("someKeyHere"), e(!1) } catch (t) { t.code === DOMException.QUOTA_EXCEEDED_ERR && 0 === n.length ? e(!0) : e(!1) } } else if ("chrome" === t || "opera" === t) { var i = window.RequestFileSystem || window.webkitRequestFileSystem; if (!i) return void e(!1); i(window.TEMPORARY, 100, function(t) { e(!1) }, function(t) { e(!0) }) } else "ie" === t && (window.indexedDB || !window.PointerEvent && !window.MSPointerEvent ? e(!1) : e(!0)) }; r.d(t, "a", function() { return n }), r.d(t, !1, function() { return a }) } , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(14) , i = r(15) , o = r(94) , s = r(19) , l = r(5) , c = r(161) , u = r.n(c) , d = r(78) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = {} , m = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return p(e, [{ key: "publishFeed", value: function(e) { var t = e.publisher , r = e.asset_id , a = e.mcr , n = e.mssr , i = e.feedPrice , l = e.cer , c = o.a.new_transaction(); return c.add_type_operation("asset_publish_feed", { publisher: t, asset_id: r, feed: { settlement_price: i.toObject(), maintenance_collateral_ratio: a, maximum_short_squeeze_ratio: n, core_exchange_rate: l.toObject() } }), function(e) { return s.a.process_transaction(c, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- fundPool error -----\x3e", t), e(!1) }) } } }, { key: "fundPool", value: function(e, t, r, a) { var n = o.a.new_transaction() , l = i.a.get_asset_precision(t.get("precision")); return n.add_type_operation("asset_fund_fee_pool", { fee: { amount: 0, asset_id: "1.3.0" }, from_account: e, asset_id: r.get("id"), amount: a * l }), function(e) { return s.a.process_transaction(n, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- fundPool error -----\x3e", t), e(!1) }) } } }, { key: "claimPool", value: function(e, t) { var r = o.a.new_transaction(); return r.add_type_operation("asset_claim_pool", { fee: { amount: 0, asset_id: "1.3.0" }, issuer: e.get("issuer"), asset_id: e.get("id"), amount_to_claim: t.toObject() }), function(e) { return s.a.process_transaction(r, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- claimPool error -----\x3e", t), e(!1) }) } } }, { key: "bidCollateral", value: function(e, t, r, a, n) { var l = i.a.get_asset_precision(t.get("precision")) , c = i.a.get_asset_precision(r.get("precision")) , u = o.a.new_transaction(); return u.add_type_operation("bid_collateral", { fee: { amount: 0, asset_id: "1.3.0" }, bidder: e, additional_collateral: { amount: a * l, asset_id: t.get("id") }, debt_covered: { amount: n * c, asset_id: r.get("id") }, extensions: [] }), function(e) { return s.a.process_transaction(u, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- collateralBid error -----\x3e", t), e(!1) }) } } }, { key: "updateOwner", value: function(e, t) { var r = o.a.new_transaction(); return r.add_type_operation("asset_update_issuer", { fee: { amount: 0, asset_id: "1.3.0" }, issuer: e.issuer, asset_to_update: e.id, new_issuer: t }), function(e) { return s.a.process_transaction(r, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- updateOwner error -----\x3e", t), e(!1) }) } } }, { key: "updateFeedProducers", value: function(e, t, r) { var a = o.a.new_transaction(); return a.add_type_operation("asset_update_feed_producers", { fee: { amount: 0, asset_id: "1.3.0" }, issuer: e, asset_to_update: t.get("id"), new_feed_producers: r }), function(e) { return s.a.process_transaction(a, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- updateFeedProducers error -----\x3e", t), e(!1) }) } } }, { key: "claimPoolFees", value: function(e, t, r) { var a = o.a.new_transaction(); return a.add_type_operation("asset_claim_fees", { fee: { amount: 0, asset_id: 0 }, issuer: e, amount_to_claim: { asset_id: t.get("id"), amount: r.getAmount() } }), function(e) { return s.a.process_transaction(a, null, !0).then(function() { e(!0) }).catch(function(t) { console.log("----- claimFees error -----\x3e", t), e(!1) }) } } }, { key: "createAsset", value: function(e, t, r, a, n, c, d, p, h) { console.log("create asset:", t, "flags:", r, "isBitAsset:", c, "bitasset_opts:", p); var m = o.a.new_transaction() , f = i.a.get_asset_precision(t.precision); u.a.config({ DECIMAL_PLACES: t.precision }); var g = new u.a(t.max_supply).times(f).toString() , _ = new u.a(t.max_market_fee || 0).times(f).toString() , b = i.a.get_asset_precision(l.ChainStore.getAsset(n.base.asset_id).get("precision")) , y = { fee: { amount: 0, asset_id: 0 }, issuer: e, symbol: t.symbol, precision: parseInt(t.precision, 10), common_options: { max_supply: g, market_fee_percent: 100 * t.market_fee_percent || 0, max_market_fee: _, issuer_permissions: a, flags: r, core_exchange_rate: { base: { amount: n.base.amount * b, asset_id: n.base.asset_id }, quote: { amount: n.quote.amount * f, asset_id: "1.3.1" } }, whitelist_authorities: [], blacklist_authorities: [], whitelist_markets: [], blacklist_markets: [], description: h, extensions: { reward_percent: 100 * t.reward_percent || 0, whitelist_market_fee_sharing: [] } }, is_prediction_market: d, extensions: null }; return c && (y.bitasset_opts = p), m.add_type_operation("asset_create", y), function(e) { return s.a.process_transaction(m, null, !0).then(function(t) { e(!0) }).catch(function(t) { console.log("----- createAsset error -----\x3e", t), e(!1) }) } } }, { key: "updateAsset", value: function(e, t, r, a, n, c, d, p, h, m, f, g, _, b, y) { var v = o.a.new_transaction(); if (y) { var w = i.a.get_asset_precision(n.get("precision")); u.a.config({ DECIMAL_PLACES: n.get("precision") }); var k = new u.a(r.max_supply).times(w).toString() , x = new u.a(r.max_market_fee || 0).times(w).toString() , S = l.ChainStore.getAsset(a.quote.asset_id) , A = i.a.get_asset_precision(S.get("precision")) , E = l.ChainStore.getAsset(a.base.asset_id) , T = i.a.get_asset_precision(E.get("precision")) , C = new u.a(a.quote.amount).times(A).toString() , z = new u.a(a.base.amount).times(T).toString() , B = n.getIn(["options", "extensions"]).toJS(); void 0 !== r.reward_percent && (B.reward_percent = 100 * r.reward_percent), g.whitelist_market_fee_sharing && (B.whitelist_market_fee_sharing = g.whitelist_market_fee_sharing.toJS()); var O = { fee: { amount: 0, asset_id: 0 }, asset_to_update: n.get("id"), extensions: n.get("extensions"), issuer: e, new_issuer: t, new_options: { max_supply: k, max_market_fee: x, market_fee_percent: 100 * r.market_fee_percent, description: f, issuer_permissions: d, flags: c, whitelist_authorities: g.whitelist_authorities.toJS(), blacklist_authorities: g.blacklist_authorities.toJS(), whitelist_markets: g.whitelist_markets.toJS(), blacklist_markets: g.blacklist_markets.toJS(), extensions: B, core_exchange_rate: { quote: { amount: C, asset_id: a.quote.asset_id }, base: { amount: z, asset_id: a.base.asset_id } } } }; e !== t && t || delete O.new_issuer, v.add_type_operation("asset_update", O) } if (console.log("bitasset_opts:", h, "original_bitasset_opts:", m), p && (h.feed_lifetime_sec !== m.feed_lifetime_sec || h.minimum_feeds !== m.minimum_feeds || h.force_settlement_delay_sec !== m.force_settlement_delay_sec || h.force_settlement_offset_percent !== m.force_settlement_offset_percent || h.maximum_force_settlement_volume !== m.maximum_force_settlement_volume || h.short_backing_asset !== m.short_backing_asset)) { var P = { fee: { amount: 0, asset_id: 0 }, asset_to_update: n.get("id"), issuer: e, new_options: h }; v.add_type_operation("asset_update_bitasset", P) } return console.log("feedProducers:", _, "originalFeedProducers:", b), p && !i.a.are_equal_shallow(_, b) && v.add_type_operation("asset_update_feed_producers", { fee: { amount: 0, asset_id: "1.3.0" }, issuer: e, asset_to_update: n.get("id"), new_feed_producers: _ }), s.a.process_transaction(v, null, !0).then(function(e) { return console.log("asset create result:", e), !0 }).catch(function(e) { return console.log("----- updateAsset error -----\x3e", e), !1 }) } }, { key: "getAssetList", value: function(e, t) { var r = this , a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2] , i = e + "_" + t; return function(o) { if (!h[i]) { var s; return h[i] = !0, o({ loading: !0 }), s = n.Apis.instance().db_api().exec("list_assets", [e, t]).then(function(e) { var t = [] , r = []; e.forEach(function(e) { l.ChainStore._updateObject(e, !1), r.push(e.dynamic_asset_data_id), e.bitasset_data_id && t.push(e.bitasset_data_id) }); var a = n.Apis.instance().db_api().exec("get_objects", [r]) , s = t.length > 0 ? n.Apis.instance().db_api().exec("get_objects", [t]) : null; Promise.all([a, s]).then(function(t) { return delete h[i], o({ assets: e, dynamic: t[0], bitasset_data: t[1], loading: !1 }), e && e.length }) }).catch(function(e) { console.log("Error in AssetActions.getAssetList: ", e), o({ loading: !1 }), delete h[i] }), a && d.c.forEach(function(t) { r.getAssetList(t + "." + e, 10) }), s } } } }, { key: "lookupAsset", value: function(e, t) { var r = l.ChainStore.getAsset(e); return r ? { assets: [r], searchID: t, symbol: e } : function(r) { setTimeout(function() { var a = l.ChainStore.getAsset(e); a && r({ assets: [a], searchID: t, symbol: e }) }, 200) } } }, { key: "reserveAsset", value: function(e, t, r) { var a = o.a.new_transaction(); return a.add_type_operation("asset_reserve", { fee: { amount: 0, asset_id: 0 }, amount_to_reserve: { amount: e, asset_id: t }, payer: r, extensions: [] }), function(e) { return s.a.process_transaction(a, null, !0).then(function() { return e(!0), !0 }).catch(function(t) { return e(!1), console.log("----- reserveAsset error -----\x3e", t), !1 }) } } }]), e }(); t.a = a.a.createActions(m) } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) { e.exports = { account_listing: { no_listing: 0, white_listed: 1, black_listed: 2, white_and_black_listed: 3 } } } , function(e, t, r) {} , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(195) , i = r(25) , o = r(4) , s = r.n(o) , l = r(55) , c = r(108) , u = r(415) , d = r.n(u) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = r(651) , m = new l.a("__graphene__"); s.a.registerTranslations("en", h), s.a.setFallbackLocale("en"); var f = !0 , g = !1 , _ = void 0; try { for (var b, y = d.a[Symbol.iterator](); !(f = (b = y.next()).done); f = !0) { var v = b.value; Object(c.e)(r(1953)("./" + v)) } } catch (e) { g = !0, _ = e } finally { try { !f && y.return && y.return() } finally { if (g) throw _ } } var w = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e); var t = m.get("settings_v4", {}); void 0 === t.locale && (t.locale = "en"), this.currentLocale = t.locale, this.locales = ["en"], this.localesObject = { en: h }, this.bindListeners({ onSwitchLocale: n.a.switchLocale, onGetLocale: n.a.getLocale, onClearSettings: i.a.clearSettings }) } return p(e, [{ key: "hasLocale", value: function(e) { return -1 !== this.locales.indexOf(e) } }, { key: "getCurrentLocale", value: function() { return this.currentLocale } }, { key: "onSwitchLocale", value: function(e) { var t = e.locale , r = e.localeData; switch (t) { case "en": s.a.registerTranslations("en", this.localesObject.en); break; default: s.a.registerTranslations(t, r) } s.a.setLocale(t), this.currentLocale = t } }, { key: "onGetLocale", value: function(e) { -1 === this.locales.indexOf(e) && this.locales.push(e) } }, { key: "onClearSettings", value: function() { this.onSwitchLocale({ locale: "en" }) } }]), e }(); t.a = a.a.createStore(w, "IntlStore") } , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(7) , o = r(271) , s = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, o["a"]), l(t, [{ key: "componentWillReceiveProps", value: function(e) { this.props.value && !e.value && (this.refs.input.value = "") } }, { key: "render", value: function() { var e = this.props , t = (e.allowNaN, function(e, t) { var r = {}; for (var a in e) t.indexOf(a) >= 0 || Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]); return r }(e, ["allowNaN"])); return n.a.createElement(i.Input, s({ ref: "input", type: "text" }, t, { onPaste: this.props.onPaste || this.onPaste.bind(this), onKeyPress: this.onKeyPress.bind(this) })) } }]), t }(); t.a = c } , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(857) , n = r(0) , i = r.n(n) , o = r(4) , s = r.n(o) , l = r(15) , c = r(2259) , u = r(1) , d = r.n(u) , p = r(203) , h = r.n(p) , m = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , f = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var g = r(1656) , _ = {}; var b = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return window._onClickLink = r.onClickLink.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, i.a.Component), f(t, [{ key: "componentWillMount", value: function() { var e = this.props.locale || s.a.getLocale() || "en"; g.keys().filter(function(t) { return -1 !== t.indexOf("/" + e + "/") || -1 !== t.indexOf("/en/") }).forEach(function(e) { var t = e.match(/\/(.+?)\/(.+)\./) , r = t[1] , n = t[2] , i = _[r]; i || (_[r] = i = {}); var o = g(e); i[n] = function(e) { var t = e.split(/\[#\s?(.+?)\s?\]/); if (1 === t.length) return t[0]; t[0].length < 4 && t.splice(0, 1); for (var r = t.length - 1; r >= 1; r -= 2) t[r] = t[r].replace(/(^<\/p>|

$)/g, ""), t[r - 1] = [t[r - 1], t[r]], t.splice(r, 1); return Object(a.a)(t) }(function(e) { return e.replace(/\[^<]*{issuer}[^<]*<\/p>/gm, "")), e.replace(/(\{.+?\})/gi, function(e, t) { var a = t.substr(1, t.length - 2) , n = void 0 !== r.props[a] ? r.props[a] : t; return n && "string" == typeof n && (n = h()(n, { whiteList: [], stripIgnoreTag: !0 })), n.amount && n.asset && (n = l.a.format_asset(n.amount, n.asset, !1, !1)), n.date && (n = l.a.format_date(n.date)), n.time && (n = l.a.format_time(n.time)), n }) } }, { key: "render", value: function() { var e = this.props.locale || s.a.getLocale() || "en"; _[e] || (console.error("missing locale '" + e + "' help files, rolling back to 'en'"), e = "en"); var t = _[e][this.props.path]; if (t || "en" === e || (console.warn("missing path '" + this.props.path + "' for locale '" + e + "' help files, rolling back to 'en'"), t = _.en[this.props.path]), !t && this.props.alt_path && (console.warn("missing path '" + this.props.path + "' for locale '" + e + "' help files, rolling back to alt_path '" + this.props.alt_path + "'"), t = _[e][this.props.alt_path]), !t && this.props.alt_path && "en" != e && (console.warn("missing alt_path '" + this.props.alt_path + "' for locale '" + e + "' help files, rolling back to 'en'"), t = _.en[this.props.alt_path]), !t) return console.error("help file not found '" + this.props.path + "' for locale '" + e + "'"), !0; if (this.props.section) for (var r in t) if (r.match(this.props.section)) { t = r.replace(new RegExp("^" + this.props.section + ","), ""); break } return t ? "object" === (void 0 === t ? "undefined" : m(t)) ? (console.error("help section content invalid " + this.props.path + "#" + this.props.section), null) : i.a.createElement("div", { style: this.props.style, className: "help-content", dangerouslySetInnerHTML: { __html: this.setVars(t, this.props.hide_issuer) } }) : (console.error("help section not found " + this.props.path + "#" + this.props.section), null) } }]), t }(); b.propTypes = { path: d.a.string.isRequired, section: d.a.string }, b.defaultProps = { hide_issuer: "false" }, t.a = Object(c.a)(b) } , , function(e, t, r) { "use strict"; var a = r(99) , n = r(11) , i = r.n(n) , o = r(30) , s = r(454) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.assets = i.a.Map(), e.asset_symbol_to_id = {}, e.searchTerms = {}, e.lookupResults = [], e.assetsLoading = !1, e.bindListeners({ onGetAssetList: s.a.getAssetList, onLookupAsset: s.a.lookupAsset }), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["a"]), l(t, [{ key: "onGetAssetList", value: function(e) { var t = this; if (!e) return !1; this.assetsLoading = e.loading, e.assets && e.assets.forEach(function(r) { for (var a = 0; a < e.dynamic.length; a++) if (e.dynamic[a].id === r.dynamic_asset_data_id) { r.dynamic = e.dynamic[a]; break } if (r.bitasset_data_id) { r.market_asset = !0; for (a = 0; a < e.bitasset_data.length; a++) if (e.bitasset_data[a].id === r.bitasset_data_id) { r.bitasset_data = e.bitasset_data[a]; break } } else r.market_asset = !1; t.assets = t.assets.set(r.id, r), t.asset_symbol_to_id[r.symbol] = r.id }) } }, { key: "onLookupAsset", value: function(e) { this.searchTerms[e.searchID] = e.symbol, this.lookupResults = e.assets } }]), t }(); t.a = o.a.createStore(c, "AssetStore") } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(108) , o = r(5) , s = r(1) , l = r.n(s) , c = r(7) , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), u(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.time !== this.props.time } }, { key: "render", value: function() { var e = this.props , t = e.time , r = e.chain_time ? o.ChainStore.getEstimatedChainTimeOffset() : 0; if (!t) return null; "string" != typeof t || -1 !== t.indexOf("+") || /Z$/.test(t) || (t += "Z"); var a = Math.round(((new Date).getTime() - new Date(t).getTime() + r) / 1e3) , s = void 0; return s = a < 60 ? 500 : a < 3600 ? 3e4 : 18e5, n.a.createElement(c.Tooltip, { placement: "bottom", title: new Date(t).toString() }, n.a.createElement("span", { className: "tooltip inline-block " + this.props.className, ref: "timeago_ttip_" + t }, n.a.createElement(i.c, { updateInterval: s, value: new Date(t).getTime() + .75 * r, initialNow: Date.now() }))) } }]), t }(); d.propTypes = { time: l.a.any.isRequired, chain_time: l.a.bool, component: l.a.element, className: l.a.string }, d.defaultProps = { chain_time: !0 }, t.a = d } , , , function(e, t, r) { "use strict"; var a = r(30) , n = r(11) , i = r.n(n) , o = r(99) , s = r(5) , l = r(14) , c = r(50) , u = r(396) , d = r(164) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._getInitialState(), e.no_balance_address = new Set, e._export("reset"), e.bindListeners({ onSetPubkeys: u.a.setPubkeys, onSetSelectedBalanceClaims: u.a.setSelectedBalanceClaims, onClaimAccountChange: u.a.claimAccountChange, onTransactionBroadcasted: d.a.wasBroadcast }), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, o["a"]), p(t, [{ key: "_getInitialState", value: function() { this.pubkeys = null, this.addresses = new Set; var e = this.getInitialViewState(); return e.address_to_pubkey = new Map, e } }, { key: "getInitialViewState", value: function() { return { balances: void 0, checked: i.a.Map(), selected_balances: i.a.Seq(), claim_account_name: void 0, loading: !0 } } }, { key: "reset", value: function() { this.setState(this._getInitialState()) } }, { key: "onTransactionBroadcasted", value: function() { this.refreshBalances() } }, { key: "onSetPubkeys", value: function(e) { var t = this; if (Array.isArray(e) && (e = i.a.Seq(e)), !this.pubkeys || !this.pubkeys.equals(e)) { if (this.reset(), this.pubkeys = e, 0 === e.size) return this.setState({ loading: !1 }), !0; this.setState({ loading: !0 }), this.loadNoBalanceAddresses().then(function() { return t.indexPubkeys(e), t.refreshBalances(), !1 }).catch(function(e) { return console.error(e) }) } } }, { key: "onSetSelectedBalanceClaims", value: function(e) { var t = e.valueSeq().flatten().toSet(); this.setState({ checked: e, selected_balances: t }) } }, { key: "onClaimAccountChange", value: function(e) { this.setState({ claim_account_name: e }) } }, { key: "loadNoBalanceAddresses", value: function() { var e = this; return this.no_balance_address.size ? Promise.resolve() : c.a.root.getProperty("no_balance_address", []).then(function(t) { e.no_balance_address = new Set(t) }) } }, { key: "indexPubkeys", value: function(e) { var t = this.state.address_to_pubkey , r = !0 , a = !1 , n = void 0; try { for (var i, o = e[Symbol.iterator](); !(r = (i = o.next()).done); r = !0) { var l = i.value , c = !0 , u = !1 , d = void 0; try { for (var p, h = s.key.addresses(l)[Symbol.iterator](); !(c = (p = h.next()).done); c = !0) { var m = p.value; this.no_balance_address.has(m) || (t.set(m, l), this.addresses.add(m)) } } catch (e) { u = !0, d = e } finally { try { !c && h.return && h.return() } finally { if (u) throw d } } } } catch (e) { a = !0, n = e } finally { try { !r && o.return && o.return() } finally { if (a) throw n } } this.setState({ address_to_pubkey: t }) } }, { key: "indexPubkey", value: function(e) { var t = !0 , r = !1 , a = void 0; try { for (var n, i = s.key.addresses(e)[Symbol.iterator](); !(t = (n = i.next()).done); t = !0) { var o = n.value; this.no_balance_address.has(o) || (this.state.address_to_pubkey.set(o, e), this.addresses.add(o)) } } catch (e) { r = !0, a = e } finally { try { !t && i.return && i.return() } finally { if (r) throw a } } this.setState({ address_to_pubkey: this.state.address_to_pubkey }) } }, { key: "refreshBalances", value: function() { var e = this; this.lookupBalanceObjects().then(function(t) { var r = e.getInitialViewState(); r.balances = t, r.loading = !1, e.setState(r) }) } }, { key: "lookupBalanceObjects", value: function() { var e = this , t = l.Apis.instance().db_api() , r = new Set(this.no_balance_address) , a = r.size , n = !0 , o = !1 , s = void 0; try { for (var c, u = this.addresses[Symbol.iterator](); !(n = (c = u.next()).done); n = !0) { var d = c.value; r.add(d) } } catch (e) { o = !0, s = e } finally { try { !n && u.return && u.return() } finally { if (o) throw s } } return t.exec("get_balance_objects", [Array.from(this.addresses)]).then(function(n) { var o = [] , s = !0 , l = !1 , c = void 0; try { for (var u, d = n[Symbol.iterator](); !(s = (u = d.next()).done); s = !0) { var p = u.value; o.push(p.id) } } catch (e) { l = !0, c = e } finally { try { !s && d.return && d.return() } finally { if (l) throw c } } return t.exec("get_vested_balances", [o]).then(function(t) { return i.a.List().withMutations(function(i) { for (var o = 0; o < n.length; o++) { var s = n[o]; r.delete(s.owner), s.vesting_policy && (s.vested_balance = t[o]), i.push(s) } a !== r.size && e.saveNoBalanceAddresses(r).catch(function(e) { return console.error(e) }) }) }) }) } }, { key: "saveNoBalanceAddresses", value: function(e) { this.no_balance_address = e; var t = [] , r = !0 , a = !1 , n = void 0; try { for (var i, o = this.no_balance_address[Symbol.iterator](); !(r = (i = o.next()).done); r = !0) { var s = i.value; t.push(s) } } catch (e) { a = !0, n = e } finally { try { !r && o.return && o.return() } finally { if (a) throw n } } return c.a.root.setProperty("no_balance_address", t) } }]), t }() , m = a.a.createStore(h, "BalanceClaimActiveStore"); t.a = m } , function(e, t, r) { "use strict"; var a = r(19) , n = r(55) , i = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var o = new n.a("__bts__") , s = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.current_blocktrades_address_cache_version_string = "2" } return i(e, [{ key: "getIndexForDepositKeyInExchange", value: function(e, t, r) { return [this.current_blocktrades_address_cache_version_string, e, t, r].reduce(function(e, t) { return e.concat("[", t, "]") }, "") } }, { key: "getCachedInputAddress", value: function(e, t, r, n) { var i = a.a.getWallet() , s = this.getIndexForDepositKeyInExchange(t, r, n); if (i) { i.deposit_keys = i.deposit_keys || {}, i.deposit_keys[e] = i.deposit_keys[e] || {}, i.deposit_keys[e][s] = i.deposit_keys[e][s] || []; var l = i.deposit_keys[e][s].length; return l ? i.deposit_keys[e][s][l - 1] : null } var c = o.get("deposit_keys", {}); c[e] = c[e] || {}, c[e][s] = c[e][s] || []; var u = c[e][s].length; return u ? c[e][s][u - 1] : null } }, { key: "cacheInputAddress", value: function(e, t, r, n, i, s) { if (i) { var l = a.a.getWallet() , c = this.getIndexForDepositKeyInExchange(t, r, n); if (l) l.deposit_keys && l.deposit_keys.undefined && delete l.deposit_keys.undefined, Object.keys(l.deposit_keys || {}).forEach(function(e) { for (var t in l.deposit_keys[e]) if (l.deposit_keys[e][t] && l.deposit_keys[e][t].length) for (var r = l.deposit_keys[e][t].length - 1; r >= 0; r--) l.deposit_keys[e][t][r] && "unknown" === l.deposit_keys[e][t][r].address && l.deposit_keys[e][t].splice(r, 1) }), l.deposit_keys = l.deposit_keys || {}, l.deposit_keys[e] = l.deposit_keys[e] || {}, l.deposit_keys[e][c] = l.deposit_keys[e][c] || [], l.deposit_keys[e][c].push({ address: i, memo: s }), a.a._updateWallet(); else { var u = o.get("deposit_keys", {}); u[e] = u[e] || {}, u[e][c] = u[e][c] || [], u[e][c].push({ address: i, memo: s }), o.set("deposit_keys", u) } } } }]), e }(); t.a = s } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(33) , o = r(43) , s = r(45) , l = r(15) , c = r(67) , u = r(5) , d = r(31) , p = r(185) , h = r(26) , m = r(11) , f = r(2) , g = r.n(f) , _ = r(4) , b = r.n(_) , y = r(578) , v = r(140) , w = r(53) , k = r.n(w) , x = r(1) , S = r.n(x) , A = r(7) , E = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , T = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function C(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function z(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function B(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var O = function(e) { function t() { return C(this, t), z(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)) } return B(t, y["a"]), T(t, [{ key: "shouldComponentUpdate", value: function(e) { return function e(t, r, a) { null === t && (t = Function.prototype); var n = Object.getOwnPropertyDescriptor(t, r); if (void 0 === n) { var i = Object.getPrototypeOf(t); return null === i ? void 0 : e(i, r, a) } if ("value"in n) return n.value; var o = n.get; return void 0 !== o ? o.call(a) : void 0 }(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "shouldComponentUpdate", this).call(this, e) || !l.a.are_equal_shallow(e.fromAssets, this.props.fromAssets) || e.toAsset !== this.props.toAsset || !l.a.are_equal_shallow(e.balances, this.props.balances) || !l.a.are_equal_shallow(e.openOrders, this.props.openOrders) || !l.a.are_equal_shallow(e.collateral, this.props.collateral) || !l.a.are_equal_shallow(e.debt, this.props.debt) } }, { key: "componentDidUpdate", value: function() { this.props.inHeader && k.a.rebuild() } }, { key: "_convertValue", value: function(e, t, r, a, n) { return t && r ? c.a.convertValue(e, r, t, a, n) : 0 } }, { key: "_assetValues", value: function(e, t, r) { return e[r] ? e[r] += t : e[r] = t, e } }, { key: "render", value: function() { var e = this , t = this.props , r = t.fromAssets , a = t.toAsset , o = t.balances , s = t.allMarketStats , c = t.collateral , d = t.debt , p = t.openOrders , h = t.inHeader , m = u.ChainStore.getAsset("1.3.0"); if (!m || !a) return null; var f = {}; r.forEach(function(e) { e && (f[e.get("id")] = e) }); var _ = 0 , y = {}; for (var v in c) { var w = f[v]; if (w) { var k = this._convertValue(c[v], w, a, s, m); _ += k, y = this._assetValues(y, k, w.get("id")) } } for (var x in p) { var S = f[x]; if (S) { var E = this._convertValue(p[x], S, a, s, m); _ += E, y = this._assetValues(y, E, S.get("id")) } } for (var T in d) { var C = f[T]; if (C) { var z = this._convertValue(d[T], C, a, s, m); _ -= z, y = this._assetValues(y, -z, C.get("id")) } } o.forEach(function(t) { var r = f[t.asset_id]; if (r) { var n = r !== a ? e._convertValue(t.amount, r, a, s, m) : t.amount; _ += n, y = e._assetValues(y, n, r.get("id")) } }); var B = !1; for (var O in y) if (f[O] && y[O] && Math.abs(l.a.get_asset_amount(y[O], a)) < 100) { B = !0; break } var P = !1 , j = ""; for (var I in y) if (f[I] && y[I]) { var M = f[I].get("symbol") , N = l.a.get_asset_amount(y[I], a); N ? N < 1e-12 && N > -1e-12 ? (N = "**", P = !0) : N = B ? N >= 0 && N < .01 ? "<0.01" : N < 0 && N > -.01 ? "-0.01<" : l.a.format_number(N, 2) : N >= 0 && N < 1 ? "<1" : N < 0 && N > -.01 ? "-1<" : l.a.format_number(N, 0) : (N = "**", P = !0), j += "" } return P && (j += ''), j += '', j += '", j += "
" + M + ': ' + N + " " + a.get("symbol") + "
 ** no data
 
' + b.a.translate("account.total_estimate") + "
", h ? n.a.createElement(A.Tooltip, { placement: "bottom", title: j }, n.a.createElement("div", { className: "tooltip inline-block" }, this.props.label ? n.a.createElement("span", { className: "font-secondary" }, n.a.createElement(g.a, { content: this.props.label }), ":", " ") : null, n.a.createElement(i.a, { noTip: !0, noPrefix: !0, hide_asset: this.props.hide_asset, amount: _, asset: a.get("id"), decimalOffset: -1 === a.get("symbol").indexOf("BTC") ? a.get("precision") - 2 : 4 }))) : n.a.createElement("span", null, this.props.label ? n.a.createElement("span", { className: "font-secondary" }, n.a.createElement(g.a, { content: this.props.label }), ":", " ") : null, n.a.createElement(i.a, { noTip: this.props.noTip, noPrefix: !0, hide_asset: this.props.hide_asset, amount: _, asset: a.get("id"), decimalOffset: -1 === a.get("symbol").indexOf("BTC") ? a.get("precision") - 2 : 4 })) } }]), t }(); O.propTypes = { toAsset: o.a.ChainAsset.isRequired, coreAsset: o.a.ChainAsset.isRequired, inHeader: S.a.bool, label: S.a.string }, O.defaultProps = { inHeader: !1, label: "", coreAsset: "1.3.0" }, O = Object(s.a)(O), O = Object(v.a)(O, { propNames: ["fromAssets"], asList: !0 }); var P = function(e) { function t() { return C(this, t), z(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return B(t, n.a.Component), T(t, [{ key: "render", value: function() { var e = this.props.settings.get("unit") || "1.3.0"; return n.a.createElement(O, E({}, this.props, { toAsset: e })) } }]), t }(); P = Object(d.a)(P, { listenTo: function() { return [p.a, h.a] }, getProps: function() { return { allMarketStats: p.a.getState().allMarketStats, settings: h.a.getState().settings } } }); var j = function(e) { function t() { return C(this, t), z(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return B(t, n.a.Component), T(t, [{ key: "render", value: function() { var e = this.props , t = e.balances , r = e.collateral , a = e.debt , i = e.openOrders , o = e.inHeader , s = Object(m.List)() , l = []; for (var c in t.forEach(function(e) { e && (s = s.push(e.get("asset_type")), l.push({ asset_id: e.get("asset_type"), amount: parseInt(e.get("balance"), 10) })) }), r) s.includes(c) || (s = s.push(c)); for (var u in a) s.includes(u) || (s = s.push(u)); for (var d in i) s.includes(d) || (s = s.push(d)); return n.a.createElement(P, { label: this.props.label, hide_asset: this.props.hide_asset, noTip: this.props.noTip, inHeader: o, balances: l, openOrders: i, debt: a, collateral: r, fromAssets: s }) } }]), t }(); j.propTypes = { balances: o.a.ChainObjectsList }, j.defaultProps = { collateral: {}, debt: {}, openOrders: {} }, j = Object(s.a)(j); var I = function(e) { function t() { return C(this, t), z(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return B(t, n.a.Component), T(t, [{ key: "shouldComponentUpdate", value: function(e) { return !l.a.are_equal_shallow(e.accounts, this.props.accounts) || !l.a.are_equal_shallow(e.hiddenAssets.toJS(), this.props.hiddenAssets.toJS()) } }, { key: "render", value: function() { var e = this , t = Object(m.List)() , r = {} , a = {} , i = {}; return this.props.accounts.forEach(function(n) { if (n) { n.get("orders") && n.get("orders").forEach(function(e, t) { var r = u.ChainStore.getObject(e); if (r) { var a = r.getIn(["sell_price", "base", "asset_id"]); i[a] ? i[a] += parseInt(r.get("for_sale"), 10) : i[a] = parseInt(r.get("for_sale"), 10) } }), n.get("call_orders") && n.get("call_orders").forEach(function(e, t) { var n = u.ChainStore.getObject(e); if (n) { var i = n.getIn(["call_price", "base", "asset_id"]); r[i] ? r[i] += parseInt(n.get("collateral"), 10) : r[i] = parseInt(n.get("collateral"), 10); var o = n.getIn(["call_price", "quote", "asset_id"]); a[o] ? a[o] += parseInt(n.get("debt"), 10) : a[o] = parseInt(n.get("debt"), 10) } }); var o = n.get("balances"); o && o.forEach(function(r, a) { if (e.props.hiddenAssets.includes(a)) return null; var n = u.ChainStore.getObject(r); if (!n || !n.get("balance")) return null; t = t.push(r) }) } }), t.size || Object.keys(i).length || Object.keys(a).length ? n.a.createElement(j, E({}, this.props, { balances: t, openOrders: i, debt: a, collateral: r })) : n.a.createElement("span", null, this.props.label ? n.a.createElement("span", { className: "font-secondary" }, n.a.createElement(g.a, { content: this.props.label }), ":", " ") : null, " ", "0") } }]), t }(); I.propTypes = { accounts: o.a.ChainAccountsList.isRequired }, I = Object(s.a)(I), j.AccountWrapper = I, t.a = j } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(93) , o = r(67) , s = r(15) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.fromStatsIntervals = {}, e.directStatsIntervals = {}, e.toStatsInterval = null, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), l(t, [{ key: "_statsChanged", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return !!e.price && (!t.price || (e.volumeBase !== t.volumeBase || !e.price.equals(t.price))) } }, { key: "_useDirectMarket", value: function(e) { var t = e.fromAsset , r = e.toAsset , a = e.allMarketStats; if (!t) return !1; var n = o.a.getMarketName(r, t).marketName , i = a.get(n); return !i || 0 !== i.volumeBase } }, { key: "_checkDirectMarkets", value: function(e) { var t = this , r = e.fromAssets , a = e.fromAsset , n = e.toAsset , i = e.allMarketStats; return !r && a && (r = [a]), r.filter(function(e) { return !!e }).map(function(e) { return t._useDirectMarket({ fromAsset: e, toAsset: n, allMarketStats: i }) ? e.get("symbol") : null }).filter(function(e) { return !!e }) } }, { key: "componentWillMount", value: function() { this._startUpdates(this.props) } }, { key: "componentWillReceiveProps", value: function(e) { var t = this._checkDirectMarkets(this.props) , r = this._checkDirectMarkets(e); s.a.are_equal_shallow(t, r) || this._startUpdates(e), e.toAsset && this.props.asset && this.props.toAsset.get("symbol") !== e.asset.get("symbol") && this._startUpdates(e) } }, { key: "_startUpdates", value: function(e) { var t = this; if (!this.updatesTimer) { this.updatesTimer = setTimeout(function() { t.updatesTimer = null }, 1e4); var r = e.coreAsset , a = e.fromAssets , n = e.fromAsset , s = e.toAsset; !a && n && (a = [n]); var l = a.map(function(r) { var a = o.a.getMarketName(e.toAsset, r).marketName , n = t._useDirectMarket({ toAsset: s, fromAsset: r, allMarketStats: e.allMarketStats }); return n && s.get("id") !== r.get("id") && (t.directStatsIntervals[a] || setTimeout(function() { t.directStatsIntervals[a] = i.a.getMarketStatsInterval(3e5, r, s) }, 50)), n ? a : null }).filter(function(e) { return !!e }) , c = a.filter(function(t) { var r = o.a.getMarketName(e.toAsset, t).marketName; return -1 === l.indexOf(r) }); r && c.length && (c.forEach(function(e) { if (e && e.get("id") !== r.get("id")) { var a = o.a.getMarketName(r, e).marketName; t.fromStatsIntervals[a] || setTimeout(function() { t.fromStatsIntervals[a] = i.a.getMarketStatsInterval(3e5, r, e) }, 50) } }), e.toAsset.get("id") !== r.get("id") && (this.toStatsInterval = i.a.getMarketStatsInterval(3e5, r, e.toAsset))) } } }, { key: "_stopUpdates", value: function() { for (var e in this.fromStatsIntervals) this.fromStatsIntervals[e](), delete this.fromStatsIntervals[e]; for (var t in this.directStatsIntervals) this.directStatsIntervals[t](), delete this.directStatsIntervals[t]; this.toStatsInterval && this.toStatsInterval(), this.toStatsInterval = null } }, { key: "componentWillUnmount", value: function() { this._stopUpdates() } }, { key: "shouldComponentUpdate", value: function(e) { var t = this , r = this.props , a = r.fromAsset , n = r.fromAssets , i = o.a.getMarketName(e.toAsset, e.coreAsset).marketName; function s(e, t) { return e.map(function(e) { return e ? o.a.getMarketName(e, t).marketName : null }).filter(function(e) { return !!e }) } !n && a && (n = [a]); var l = s(n, e.toAsset) , c = s(n, e.coreAsset).reduce(function(r, a) { return r || t._statsChanged(e.allMarketStats.get(a), t.props.allMarketStats.get(a)) }, !1) , u = l.reduce(function(r, a) { return r || t._statsChanged(e.allMarketStats.get(a), t.props.allMarketStats.get(a)) }, !1); return this._statsChanged(e.allMarketStats.get(i), this.props.allMarketStats.get(i)) || c || u } }]), t }(); t.a = c } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2238) , o = r(31) , s = r(26) , l = r(2) , c = r.n(l) , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = r(1930) , p = r(1931) , h = r(1932) , m = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), u(t, [{ key: "render", value: function() { var e = void 0; return "lightTheme" === this.props.theme && (e = d), "darkTheme" === this.props.theme && (e = p), "midnightTheme" === this.props.theme && (e = h), n.a.createElement("div", { className: "page-404" }, n.a.createElement("div", { className: "page-404-container" }, n.a.createElement("div", { className: "page-404-logo" }, n.a.createElement("img", { src: e, alt: "Logo" })), n.a.createElement("div", { className: "page-404-title" }, n.a.createElement(c.a, { content: "page404.page_not_found_title" })), n.a.createElement("div", { className: "page-404-subtitle" }, n.a.createElement(c.a, { content: "page404." + this.props.subtitle })), n.a.createElement("div", { className: "page-404-button-back" }, n.a.createElement(i.a, { to: "/" }, n.a.createElement(c.a, { component: "button", className: "button", content: "page404.home" }))))) } }]), t }(); m.defaultProps = { subtitle: "page_not_found_subtitle" }, t.a = m = Object(o.a)(m, { listenTo: function() { return [s.a] }, getProps: function() { return { theme: s.a.getState().settings.get("themes") } } }) } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2238) , o = r(2) , s = r.n(o) , l = r(1) , c = r.n(l) , u = r(3) , d = r.n(u) , p = r(5) , h = r(7) , m = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function f(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function g(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function _(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var b = void 0; b = new Set(r(586).en.split(",")); var y = function(e) { function t() { f(this, t); var e = g(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { brnkey: "", loading: !0 }, e } return _(t, a["Component"]), m(t, [{ key: "componentWillMount", value: function() { this.setState({ loading: !1 }) } }, { key: "_checkBrainKey", value: function() { var e = []; this.state.brnkey.split(" ").forEach(function(t, r) { if ("" !== t) { var a = t.toLowerCase(); null === (a = a.match(/[a-z]+/)) || b.has(a[0]) ? e.push(n.a.createElement("span", { key: r, style: { padding: "1px", margin: "1px" } }, t)) : e.push(n.a.createElement(w, { key: r }, t)) } }); var t = void 0 , r = !0 , a = !0; return e.length > 0 && (this.state.brnkey.length < 50 ? (t = this.state.brnkey.length + " characters (50 minimum)", a = !1) : e.length < 16 ? t = e.length + " words (16 recommended)" : (t = e.length + " words", r = !1)), { warn: r, valid: a, word_count_label: t, checked_words: e } } }, { key: "render", value: function() { if (this.state.loading || !b) return n.a.createElement("div", { style: { padding: 20 } }, "Fetching dictionary...."); var e = this._checkBrainKey() , t = e.warn , r = e.word_count_label , a = e.checked_words; return n.a.createElement("span", { className: "" }, n.a.createElement("div", null, n.a.createElement(h.Input.TextArea, { tabIndex: this.props.tabIndex || 1, onChange: this.formChange.bind(this), value: this.state.brnkey, id: "brnkey", style: { height: 100, minWidth: 450 } }), n.a.createElement("div", { style: { textAlign: "left" }, className: "grid-content no-padding no-overflow" }, a), this.state.check_digits && !this.props.hideCheckDigits ? n.a.createElement("div", null, n.a.createElement("br", null), n.a.createElement("pre", { className: "no-overflow" }, this.state.check_digits, " * Check Digits"), n.a.createElement("br", null)) : null, n.a.createElement("p", null, n.a.createElement("i", { className: d()({ error: t }) }, r)))) } }, { key: "formChange", value: function(e) { var t = e.target , r = t.id , a = t.value , n = this._checkBrainKey().valid , i = {}; if (i[r] = a, "brnkey" === r) { var o = p.key.normalize_brainKey(a); this.props.onChange(o.length < 50 ? null : o), i.check_digits = o.length < 50 ? null : p.hash.sha1(o).toString("hex").substring(0, 4) } this.setState(i), this.props.errorCallback && this.props.errorCallback(n) } }]), t }(); y.propTypes = { onChange: c.a.func.isRequired }; var v = y , w = function(e) { function t() { return f(this, t), g(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return _(t, a["Component"]), m(t, [{ key: "render", value: function() { return n.a.createElement("span", { style: { borderBottom: "1px dotted #ff0000", padding: "1px", margin: "1px" } }, n.a.createElement("span", { style: { borderBottom: "1px dotted #ff0000" } }, this.props.children)) } }]), t }() , k = r(11) , x = r.n(k) , S = r(4) , A = r.n(S) , E = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var T = h.Form.Item , C = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.getInputNode = function(t) { e.firstPassword = t } , e.state = { password: "", confirm: "", errors: x.a.Map(), valid: !1 }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), E(t, [{ key: "componentDidMount", value: function() { this.firstPassword && this.firstPassword.focus() } }, { key: "formChange", value: function(e) { var t = {}; t["current-password" === e.target.id ? "password" : "confirm"] = e.target.value, this.setState(t, this.validate) } }, { key: "validate", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , t = e.password , r = e.confirm; r = r.trim(), t = t.trim(); var a = x.a.Map(); 0 !== t.length && t.length < 8 && (a = a.set("password_length", "Password must be 8 characters or more")), "" !== t && "" !== r && t !== r && (a = a.set("password_match", "Passwords do not match")); var n = t.length >= 8 && t === r; this.setState({ errors: a, valid: n }), this.props.onValid(n ? t : null) } }, { key: "render", value: function() { var e = this.state , t = e.password , r = e.confirm , a = e.errors , i = this.props.newPassword , o = 1; return n.a.createElement("div", { className: d()({ "has-error": a.size }) }, n.a.createElement(T, { label: A.a.translate(i ? "wallet.new_password" : "wallet.password") }, n.a.createElement("section", null, n.a.createElement(h.Input, { type: "password", id: "current-password", autoComplete: "current-password", ref: this.getInputNode(), onChange: this.formChange.bind(this), value: t, tabIndex: o++ }))), n.a.createElement(T, { label: A.a.translate(i ? "wallet.new_confirm" : "wallet.confirm") }, n.a.createElement("section", { className: d()({ "has-error": a.size }) }, n.a.createElement(h.Input, { type: "password", id: "new-password", autoComplete: "new-password", onChange: this.formChange.bind(this), value: r, tabIndex: o++ }), n.a.createElement("div", null, a.get("password_match") || a.get("password_length")))), this.props.children, n.a.createElement("br", null)) } }]), t }(); C.propTypes = { onValid: c.a.func.isRequired }; var z = C , B = r(19) , O = r(83) , P = r(64) , j = r(31) , I = r(25) , M = r(42); r.d(t, "b", function() { return U }), r.d(t, "a", function() { return W }); var N = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , R = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function q(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function D(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function L(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var F = function(e) { function t(e) { q(this, t); var r = D(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return r.onSubmit = function(e) { e.preventDefault(); var t = r.state , a = t.wallet_public_name , n = t.valid_password , i = t.custom_brainkey , o = t.errors; !n || o.wallet_public_name || i && !o.validBrainkey || (P.a.setWallet(a, n, r.state.brnkey), I.a.changeSetting({ setting: "passwordLogin", value: !1 }), r.setState({ create_submitted: !0 })) } , r.formChange = function(e) { var t = e.target.id , a = e.target.value; "wallet_public_name" === t && (a = a.toLowerCase(), /[^a-z0-9_-]/.test(a)) || (r.state[t] = a, r.setState(r.state), r.validate()) } , r.state = { wallet_public_name: "default", valid_password: null, errors: { validBrainkey: !1 }, isValid: !1, create_submitted: !1, custom_brainkey: e.restoreBrainkey || !1, brnkey: null }, r.validate = r.validate.bind(r), r } return L(t, a["Component"]), R(t, [{ key: "onBack", value: function(e) { e.preventDefault(), window.history.back() } }, { key: "onPassword", value: function(e) { e !== this.state.valid_password && this.setState({ valid_password: e }, this.validate) } }, { key: "onCustomBrainkey", value: function() { this.setState({ custom_brainkey: !0 }) } }, { key: "onBrainkey", value: function(e) { this.setState({ brnkey: e }, this.validate) } }, { key: "validate", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , t = e.errors , r = this.props.wallet_names; t.wallet_public_name = r.has(e.wallet_public_name) ? "Wallet " + e.wallet_public_name.toUpperCase() + " exists, please change the name" : null; var a = null === t.wallet_public_name && null !== e.valid_password; e.custom_brainkey && a && (a = null !== e.brnkey), this.setState({ isValid: a, errors: t }) } }, { key: "render", value: function() { var e = this , t = this.state.errors , r = !!this.props.current_wallet; return this.state.create_submitted && this.state.wallet_public_name === this.props.current_wallet ? n.a.createElement("div", null, n.a.createElement("h4", null, n.a.createElement(s.a, { content: "wallet.wallet_created" })), n.a.createElement(i.a, { to: "/" }, n.a.createElement("div", { className: "button success" }, n.a.createElement(s.a, { content: "wallet.done" })))) : n.a.createElement("div", { className: "wallet-create" }, n.a.createElement(h.Form, { style: { maxWidth: "40rem" }, onSubmit: this.onSubmit, onChange: this.formChange, noValidate: !0 }, n.a.createElement("div", { className: "grid-content", style: { textAlign: "left" } }, this.props.restoreBrainkey ? null : n.a.createElement(a.Fragment, null, n.a.createElement(s.a, { component: "p", content: "wallet.create_importkeys_text" }), n.a.createElement(s.a, { component: "p", content: "wallet.create_text", wallet_name: Object(M.m)() }))), n.a.createElement(z, { onValid: this.onPassword.bind(this) }), r ? n.a.createElement(h.Form.Item, { label: A.a.translate("wallet.name") }, n.a.createElement("div", { className: "no-overflow" }, n.a.createElement("section", null, n.a.createElement(h.Input, { tabIndex: 3, type: "text", id: "wallet_public_name", defaultValue: this.state.wallet_public_name }), n.a.createElement("div", { className: "has-error" }, t.wallet_public_name)))) : null, n.a.createElement("div", { className: "no-overflow" }, this.state.custom_brainkey ? n.a.createElement("div", null, n.a.createElement(h.Form.Item, { label: A.a.translate("wallet.brainkey") }, n.a.createElement(v, { tabIndex: 4, onChange: this.onBrainkey.bind(this), errorCallback: function(t) { var r = e.state.errors; r.validBrainkey = t, e.setState({ errors: r }) } }))) : null, n.a.createElement(h.Button, { type: "primary", htmlType: "submit", disabled: !this.state.isValid }, n.a.createElement(s.a, { content: "wallet.create_wallet" })), n.a.createElement(h.Button, { onClick: this.onBack.bind(this) }, n.a.createElement(s.a, { content: "wallet.cancel" }))), this.state.custom_brainkey ? null : n.a.createElement("div", { style: { paddingTop: 20 } }, n.a.createElement("label", null, n.a.createElement("a", { onClick: this.onCustomBrainkey.bind(this) }, n.a.createElement(s.a, { content: "wallet.custom_brainkey" })))))) } }]), t }(); F.propTypes = { hideTitle: c.a.bool }, F = Object(j.a)(F, { listenTo: function() { return [O.a] }, getProps: function() { return O.a.getState() } }); var U = function(e) { function t() { return q(this, t), D(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return L(t, a["Component"]), R(t, [{ key: "render", value: function() { return B.a.getWallet() && this.props.children ? n.a.createElement("div", null, this.props.children) : n.a.createElement(F, this.props) } }]), t }() , W = function(e) { var t = n.a.createElement(i.a, { to: "/help/introduction/wallets" }, A.a.translate("wallet.wallet_types")) , r = n.a.createElement(i.a, { to: "/help/introduction/backups" }, A.a.translate("wallet.backup_types")); return e.nested ? n.a.createElement(U, N({ restoreBrainkey: !0 }, e)) : n.a.createElement("div", { className: "grid-container", style: { paddingTop: 30 } }, n.a.createElement(s.a, { content: "settings.backup_brainkey", component: "h3" }), n.a.createElement(s.a, { content: "settings.restore_brainkey_text", component: "p", style: { maxWidth: "40rem" } }), n.a.createElement(s.a, { component: "p", style: { paddingBottom: 10 }, wallet: t, backup: r, content: "wallet.read_more" }), n.a.createElement(U, N({ restoreBrainkey: !0 }, e))) } } , , , , , , function(e) { e.exports = { en: "a,aa,aal,aalii,aam,aba,abac,abaca,abacate,abacay,abacist,aback,abactor,abacus,abaff,abaft,abaiser,abalone,abandon,abas,abase,abased,abaser,abash,abashed,abasia,abasic,abask,abate,abater,abatis,abaton,abator,abature,abave,abaxial,abaxile,abaze,abb,abbacy,abbas,abbasi,abbassi,abbess,abbey,abbot,abbotcy,abdal,abdat,abdest,abdomen,abduce,abduct,abeam,abear,abed,abeigh,abele,abelite,abet,abettal,abettor,abey,abeyant,abfarad,abhenry,abhor,abidal,abide,abider,abidi,abiding,abietic,abietin,abigail,abigeat,abigeus,abilao,ability,abilla,abilo,abiosis,abiotic,abir,abiston,abiuret,abject,abjoint,abjudge,abjure,abjurer,abkar,abkari,ablach,ablare,ablate,ablator,ablaut,ablaze,able,ableeze,abler,ablest,ablins,abloom,ablow,ablude,abluent,ablush,ably,abmho,abnet,aboard,abode,abody,abohm,aboil,abolish,abolla,aboma,abomine,aboon,aborad,aboral,abord,abort,aborted,abortin,abortus,abound,about,abouts,above,abox,abrade,abrader,abraid,abrasax,abrase,abrash,abraum,abraxas,abreact,abreast,abret,abrico,abridge,abrim,abrin,abroach,abroad,abrook,abrupt,abscess,abscind,abscise,absciss,abscond,absence,absent,absit,absmho,absohm,absolve,absorb,absorpt,abstain,absume,absurd,absvolt,abthain,abu,abucco,abulia,abulic,abuna,abura,aburban,aburst,aburton,abuse,abusee,abuser,abusion,abusive,abut,abuttal,abutter,abuzz,abvolt,abwab,aby,abysm,abysmal,abyss,abyssal,acaciin,acacin,academe,academy,acajou,acaleph,acana,acanth,acantha,acapnia,acapu,acara,acardia,acari,acarian,acarid,acarine,acaroid,acarol,acate,acatery,acaudal,acca,accede,acceder,accend,accent,accept,accerse,access,accidia,accidie,accinge,accite,acclaim,accloy,accoast,accoil,accolle,accompt,accord,accost,account,accoy,accrete,accrual,accrue,accruer,accurse,accusal,accuse,accused,accuser,ace,acedia,acedy,acephal,acerate,acerb,acerbic,acerdol,acerin,acerose,acerous,acerra,aceship,acetal,acetate,acetic,acetify,acetin,acetize,acetoin,acetol,acetone,acetose,acetous,acetum,acetyl,ach,achage,achar,achate,ache,achene,acher,achete,achieve,achigan,achill,achime,aching,achira,acholia,acholic,achor,achree,achroma,achtel,achy,achylia,achymia,acicula,acid,acider,acidic,acidify,acidite,acidity,acidize,acidly,acidoid,acidyl,acier,aciform,acinar,acinary,acinic,acinose,acinous,acinus,aciurgy,acker,ackey,ackman,acknow,acle,aclinal,aclinic,acloud,aclys,acmatic,acme,acmic,acmite,acne,acnemia,acnodal,acnode,acock,acocotl,acoin,acoine,acold,acology,acolous,acolyte,acoma,acomia,acomous,acone,aconic,aconin,aconine,aconite,acopic,acopon,acor,acorea,acoria,acorn,acorned,acosmic,acouasm,acouchi,acouchy,acoupa,acquest,acquire,acquist,acquit,acracy,acraein,acrasia,acratia,acrawl,acraze,acre,acreage,acreak,acream,acred,acreman,acrid,acridan,acridic,acridly,acridyl,acrinyl,acrisia,acritan,acrite,acritol,acroama,acrobat,acrogen,acron,acronyc,acronym,acronyx,acrook,acrose,across,acrotic,acryl,acrylic,acrylyl,act,acta,actable,actify,actin,actinal,actine,acting,actinic,actinon,action,active,activin,actless,acton,actor,actress,actu,actual,actuary,acture,acuate,acuity,aculea,aculeus,acumen,acushla,acutate,acute,acutely,acutish,acyclic,acyesis,acyetic,acyl,acylate,acyloin,acyloxy,acystia,ad,adactyl,adad,adage,adagial,adagio,adamant,adamas,adamine,adamite,adance,adangle,adapid,adapt,adapter,adaptor,adarme,adat,adati,adatom,adaunt,adaw,adawe,adawlut,adawn,adaxial,aday,adays,adazzle,adcraft,add,adda,addable,addax,added,addedly,addend,addenda,adder,addible,addict,addle,addlins,address,addrest,adduce,adducer,adduct,ade,adead,adeem,adeep,adeling,adelite,adenase,adenia,adenine,adenoid,adenoma,adenose,adenyl,adept,adermia,adermin,adet,adevism,adfix,adhaka,adharma,adhere,adherer,adhibit,adiate,adicity,adieu,adieux,adinole,adion,adipate,adipic,adipoid,adipoma,adipose,adipous,adipsia,adipsic,adipsy,adipyl,adit,adital,aditus,adjag,adject,adjiger,adjoin,adjoint,adjourn,adjudge,adjunct,adjure,adjurer,adjust,adlay,adless,adlet,adman,admi,admiral,admire,admired,admirer,admit,admix,adnate,adnex,adnexal,adnexed,adnoun,ado,adobe,adonin,adonite,adonize,adopt,adopted,adoptee,adopter,adoral,adorant,adore,adorer,adorn,adorner,adossed,adoulie,adown,adoxy,adoze,adpao,adpress,adread,adream,adreamt,adrenal,adrenin,adrift,adrip,adroit,adroop,adrop,adrowse,adrue,adry,adsbud,adsmith,adsorb,adtevac,adular,adulate,adult,adulter,adunc,adusk,adust,advance,advene,adverb,adverse,advert,advice,advisal,advise,advised,advisee,adviser,advisor,advowee,ady,adynamy,adyta,adyton,adytum,adz,adze,adzer,adzooks,ae,aecial,aecium,aedile,aedilic,aefald,aefaldy,aefauld,aegis,aenach,aenean,aeneous,aeolid,aeolina,aeoline,aeon,aeonial,aeonian,aeonist,aer,aerage,aerate,aerator,aerial,aeric,aerical,aerie,aeried,aerify,aero,aerobe,aerobic,aerobus,aerogel,aerogen,aerogun,aeronat,aeronef,aerose,aerosol,aerugo,aery,aes,aevia,aface,afaint,afar,afara,afear,afeard,afeared,afernan,afetal,affa,affable,affably,affair,affaite,affect,affeer,affeir,affiant,affinal,affine,affined,affirm,affix,affixal,affixer,afflict,afflux,afforce,afford,affray,affront,affuse,affy,afghani,afield,afire,aflame,aflare,aflat,aflaunt,aflight,afloat,aflow,aflower,aflush,afoam,afoot,afore,afoul,afraid,afreet,afresh,afret,afront,afrown,aft,aftaba,after,aftergo,aftmost,aftosa,aftward,aga,again,against,agal,agalaxy,agalite,agallop,agalma,agama,agamete,agami,agamian,agamic,agamid,agamoid,agamont,agamous,agamy,agape,agapeti,agar,agaric,agarita,agarwal,agasp,agate,agathin,agatine,agatize,agatoid,agaty,agavose,agaze,agazed,age,aged,agedly,agee,ageless,agelong,agen,agency,agenda,agendum,agent,agentry,ager,ageusia,ageusic,agger,aggrade,aggrate,aggress,aggroup,aggry,aggur,agha,aghanee,aghast,agile,agilely,agility,aging,agio,agist,agistor,agitant,agitate,agla,aglance,aglare,agleaf,agleam,aglet,agley,aglint,aglow,aglucon,agnail,agname,agnamed,agnate,agnatic,agnel,agnize,agnomen,agnosia,agnosis,agnosy,agnus,ago,agog,agoge,agogic,agogics,agoho,agoing,agon,agonal,agone,agonic,agonied,agonist,agonium,agonize,agony,agora,agouara,agouta,agouti,agpaite,agrah,agral,agre,agree,agreed,agreer,agrege,agria,agrin,agrise,agrito,agroan,agrom,agroof,agrope,aground,agrufe,agruif,agsam,agua,ague,aguey,aguish,agunah,agush,agust,agy,agynary,agynous,agyrate,agyria,ah,aha,ahaaina,ahaunch,ahead,aheap,ahem,ahey,ahimsa,ahind,ahint,ahmadi,aho,ahong,ahorse,ahoy,ahsan,ahu,ahuatle,ahull,ahum,ahungry,ahunt,ahura,ahush,ahwal,ahypnia,ai,aid,aidable,aidance,aidant,aide,aider,aidful,aidless,aiel,aiglet,ail,ailanto,aile,aileron,ailette,ailing,aillt,ailment,ailsyte,ailuro,ailweed,aim,aimara,aimer,aimful,aiming,aimless,ainaleh,ainhum,ainoi,ainsell,aint,aion,aionial,air,airable,airampo,airan,aircrew,airdock,airdrop,aire,airer,airfoil,airhead,airily,airing,airish,airless,airlift,airlike,airmail,airman,airmark,airpark,airport,airship,airsick,airt,airward,airway,airy,aisle,aisled,aisling,ait,aitch,aitesis,aition,aiwan,aizle,ajaja,ajangle,ajar,ajari,ajava,ajhar,ajivika,ajog,ajoint,ajowan,ak,aka,akala,akaroa,akasa,akazga,akcheh,ake,akeake,akebi,akee,akeki,akeley,akepiro,akerite,akey,akhoond,akhrot,akhyana,akia,akimbo,akin,akindle,akinete,akmudar,aknee,ako,akoasm,akoasma,akonge,akov,akpek,akra,aku,akule,akund,al,ala,alacha,alack,alada,alaihi,alaite,alala,alalite,alalus,alameda,alamo,alamoth,alan,aland,alangin,alani,alanine,alannah,alantic,alantin,alantol,alanyl,alar,alares,alarm,alarmed,alarum,alary,alas,alate,alated,alatern,alation,alb,alba,alban,albarco,albata,albe,albedo,albee,albeit,albetad,albify,albinal,albinic,albino,albite,albitic,albugo,album,albumen,albumin,alburn,albus,alcaide,alcalde,alcanna,alcazar,alchemy,alchera,alchimy,alchymy,alcine,alclad,alco,alcoate,alcogel,alcohol,alcosol,alcove,alcyon,aldane,aldazin,aldehol,alder,aldern,aldim,aldime,aldine,aldol,aldose,ale,aleak,alec,alecize,alecost,alecup,alee,alef,aleft,alegar,alehoof,alem,alemana,alembic,alemite,alemmal,alen,aleph,alephs,alepole,alepot,alerce,alerse,alert,alertly,alesan,aletap,alette,alevin,alewife,alexia,alexic,alexin,aleyard,alf,alfa,alfaje,alfalfa,alfaqui,alfet,alfiona,alfonso,alforja,alga,algae,algal,algalia,algate,algebra,algedo,algesia,algesic,algesis,algetic,algic,algid,algific,algin,algine,alginic,algist,algoid,algor,algosis,algous,algum,alhenna,alias,alibi,alible,alichel,alidade,alien,aliency,alienee,aliener,alienor,alif,aliform,alight,align,aligner,aliipoe,alike,alima,aliment,alimony,alin,aliofar,alipata,aliped,aliptes,aliptic,aliquot,alish,alisier,alismad,alismal,aliso,alison,alisp,alist,alit,alite,aliunde,alive,aliyah,alizari,aljoba,alk,alkali,alkalic,alkamin,alkane,alkanet,alkene,alkenna,alkenyl,alkide,alkine,alkool,alkoxy,alkoxyl,alky,alkyd,alkyl,alkylic,alkyne,all,allan,allay,allayer,allbone,allege,alleger,allegro,allele,allelic,allene,aller,allergy,alley,alleyed,allgood,allheal,allice,allied,allies,allness,allonym,alloquy,allose,allot,allotee,allover,allow,allower,alloxan,alloy,allseed,alltud,allude,allure,allurer,alluvia,allwork,ally,allyl,allylic,alma,almadia,almadie,almagra,almanac,alme,almemar,almique,almirah,almoign,almon,almond,almondy,almoner,almonry,almost,almous,alms,almsful,almsman,almuce,almud,almude,almug,almuten,aln,alnage,alnager,alnein,alnico,alnoite,alnuin,alo,alochia,alod,alodial,alodian,alodium,alody,aloe,aloed,aloesol,aloetic,aloft,alogia,alogism,alogy,aloid,aloin,aloma,alone,along,alongst,aloof,aloofly,aloose,alop,alopeke,alose,aloud,alow,alowe,alp,alpaca,alpeen,alpha,alphol,alphorn,alphos,alphyl,alpieu,alpine,alpist,alquier,alraun,already,alright,alroot,alruna,also,alsoon,alt,altaite,altar,altared,alter,alterer,altern,alterne,althea,althein,altho,althorn,altilik,altin,alto,altoun,altrose,altun,aludel,alula,alular,alulet,alum,alumic,alumina,alumine,alumish,alumite,alumium,alumna,alumnae,alumnal,alumni,alumnus,alunite,alupag,alure,aluta,alvar,alveary,alveloz,alveola,alveole,alveoli,alveus,alvine,alvite,alvus,alway,always,aly,alypin,alysson,am,ama,amaas,amadou,amaga,amah,amain,amakebe,amala,amalaka,amalgam,amaltas,amamau,amandin,amang,amani,amania,amanori,amanous,amapa,amar,amarin,amarine,amarity,amaroid,amass,amasser,amastia,amasty,amateur,amative,amatol,amatory,amaze,amazed,amazia,amazing,amba,ambage,ambalam,amban,ambar,ambaree,ambary,ambash,ambassy,ambatch,ambay,ambeer,amber,ambery,ambiens,ambient,ambier,ambit,ambital,ambitty,ambitus,amble,ambler,ambling,ambo,ambon,ambos,ambrain,ambrein,ambrite,ambroid,ambrose,ambry,ambsace,ambury,ambush,amchoor,ame,ameed,ameen,amelia,amellus,amelu,amelus,amen,amend,amende,amender,amends,amene,amenia,amenity,ament,amental,amentia,amentum,amerce,amercer,amerism,amesite,ametria,amgarn,amhar,amhran,ami,amiable,amiably,amianth,amic,amical,amice,amiced,amicron,amid,amidase,amidate,amide,amidic,amidid,amidide,amidin,amidine,amido,amidol,amidon,amidoxy,amidst,amil,amimia,amimide,amin,aminate,amine,amini,aminic,aminity,aminize,amino,aminoid,amir,amiray,amiss,amity,amixia,amla,amli,amlikar,amlong,amma,amman,ammelin,ammer,ammeter,ammine,ammo,ammonal,ammonia,ammonic,ammono,ammu,amnesia,amnesic,amnesty,amnia,amniac,amnic,amnion,amniote,amober,amobyr,amoeba,amoebae,amoeban,amoebic,amoebid,amok,amoke,amole,amomal,amomum,among,amongst,amor,amorado,amoraic,amoraim,amoral,amoret,amorism,amorist,amoroso,amorous,amorphy,amort,amotion,amotus,amount,amour,amove,ampalea,amper,ampere,ampery,amphid,amphide,amphora,amphore,ample,amplify,amply,ampoule,ampul,ampulla,amputee,ampyx,amra,amreeta,amrita,amsath,amsel,amt,amtman,amuck,amuguis,amula,amulet,amulla,amunam,amurca,amuse,amused,amusee,amuser,amusia,amusing,amusive,amutter,amuyon,amuyong,amuze,amvis,amy,amyelia,amyelic,amygdal,amyl,amylan,amylase,amylate,amylene,amylic,amylin,amylo,amyloid,amylom,amylon,amylose,amylum,amyous,amyrin,amyrol,amyroot,an,ana,anabata,anabo,anabong,anacara,anacard,anacid,anadem,anadrom,anaemia,anaemic,anagap,anagep,anagoge,anagogy,anagram,anagua,anahau,anal,analav,analgen,analgia,analgic,anally,analogy,analyse,analyst,analyze,anam,anama,anamite,anan,anana,ananas,ananda,ananym,anaphia,anapnea,anapsid,anaqua,anarch,anarchy,anareta,anarya,anatase,anatifa,anatine,anatomy,anatox,anatron,anaudia,anaxial,anaxon,anaxone,anay,anba,anbury,anchor,anchovy,ancient,ancile,ancilla,ancon,anconad,anconal,ancone,ancony,ancora,ancoral,and,anda,andante,andirin,andiron,andric,android,androl,andron,anear,aneath,anele,anemia,anemic,anemone,anemony,anend,anenst,anent,anepia,anergia,anergic,anergy,anerly,aneroid,anes,anesis,aneuria,aneuric,aneurin,anew,angaria,angary,angekok,angel,angelet,angelic,angelin,angelot,anger,angerly,angeyok,angico,angild,angili,angina,anginal,angioid,angioma,angle,angled,angler,angling,angloid,ango,angolar,angor,angrily,angrite,angry,angst,angster,anguid,anguine,anguis,anguish,angula,angular,anguria,anhang,anhima,anhinga,ani,anicut,anidian,aniente,anigh,anight,anights,anil,anilao,anilau,anile,anilic,anilid,anilide,aniline,anility,anilla,anima,animal,animate,anime,animi,animism,animist,animize,animous,animus,anion,anionic,anis,anisal,anisate,anise,aniseed,anisic,anisil,anisoin,anisole,anisoyl,anisum,anisyl,anither,anjan,ankee,anker,ankh,ankle,anklet,anklong,ankus,ankusha,anlace,anlaut,ann,anna,annal,annale,annals,annat,annates,annatto,anneal,annelid,annet,annex,annexa,annexal,annexer,annite,annona,annoy,annoyer,annual,annuary,annuent,annuity,annul,annular,annulet,annulus,anoa,anodal,anode,anodic,anodize,anodos,anodyne,anoesia,anoesis,anoetic,anoil,anoine,anoint,anole,anoli,anolian,anolyte,anomaly,anomite,anomy,anon,anonang,anonol,anonym,anonyma,anopia,anopsia,anorak,anorexy,anormal,anorth,anosmia,anosmic,another,anotia,anotta,anotto,anotus,anounou,anoxia,anoxic,ansa,ansar,ansate,ansu,answer,ant,anta,antacid,antal,antapex,antdom,ante,anteact,anteal,antefix,antenna,antes,antewar,anthela,anthem,anthema,anthemy,anther,anthill,anthine,anthoid,anthood,anthrax,anthrol,anthryl,anti,antiae,antiar,antic,antical,anticly,anticor,anticum,antifat,antigen,antigod,antihum,antiqua,antique,antired,antirun,antisun,antitax,antiwar,antiwit,antler,antlia,antling,antoeci,antonym,antra,antral,antre,antrin,antrum,antship,antu,antwise,anubing,anuloma,anuran,anuria,anuric,anurous,anury,anus,anusim,anvil,anxiety,anxious,any,anybody,anyhow,anyone,anyway,anyways,anywhen,anywhy,anywise,aogiri,aonach,aorist,aorta,aortal,aortic,aortism,aosmic,aoudad,apa,apace,apache,apadana,apagoge,apaid,apalit,apandry,apar,aparejo,apart,apasote,apatan,apathic,apathy,apatite,ape,apeak,apedom,apehood,apeiron,apelet,apelike,apeling,apepsia,apepsy,apeptic,aper,aperch,aperea,apert,apertly,apery,apetaly,apex,apexed,aphagia,aphakia,aphakic,aphasia,aphasic,aphemia,aphemic,aphesis,apheta,aphetic,aphid,aphides,aphidid,aphodal,aphodus,aphonia,aphonic,aphony,aphoria,aphotic,aphrite,aphtha,aphthic,aphylly,aphyric,apian,apiary,apiator,apicad,apical,apices,apicula,apiece,apieces,apii,apiin,apilary,apinch,aping,apinoid,apio,apioid,apiole,apiolin,apionol,apiose,apish,apishly,apism,apitong,apitpat,aplanat,aplasia,aplenty,aplite,aplitic,aplomb,aplome,apnea,apneal,apneic,apocarp,apocha,apocope,apod,apodal,apodan,apodema,apodeme,apodia,apodous,apogamy,apogeal,apogean,apogee,apogeic,apogeny,apohyal,apoise,apojove,apokrea,apolar,apology,aponia,aponic,apoop,apoplex,apopyle,aporia,aporose,aport,aposia,aposoro,apostil,apostle,apothem,apotome,apotype,apout,apozem,apozema,appall,apparel,appay,appeal,appear,appease,append,appet,appete,applaud,apple,applied,applier,applot,apply,appoint,apport,appose,apposer,apprend,apprise,apprize,approof,approve,appulse,apraxia,apraxic,apricot,apriori,apron,apropos,apse,apsidal,apsides,apsis,apt,apteral,apteran,aptly,aptness,aptote,aptotic,apulse,apyonin,apyrene,apyrexy,apyrous,aqua,aquabib,aquage,aquaria,aquatic,aquavit,aqueous,aquifer,aquiver,aquo,aquose,ar,ara,araba,araban,arabana,arabin,arabit,arable,araca,aracari,arachic,arachin,arad,arado,arain,arake,araliad,aralie,aralkyl,aramina,araneid,aranein,aranga,arango,arar,arara,ararao,arariba,araroba,arati,aration,aratory,arba,arbacin,arbalo,arbiter,arbor,arboral,arbored,arboret,arbute,arbutin,arbutus,arc,arca,arcade,arcana,arcanal,arcane,arcanum,arcate,arch,archae,archaic,arche,archeal,arched,archer,archery,arches,archeus,archfoe,archgod,archil,arching,archive,archly,archon,archont,archsee,archsin,archspy,archwag,archway,archy,arcing,arcked,arcking,arctian,arctic,arctiid,arctoid,arcual,arcuale,arcuate,arcula,ardeb,ardella,ardency,ardent,ardish,ardoise,ardor,ardri,ardu,arduous,are,area,areach,aread,areal,arear,areaway,arecain,ared,areek,areel,arefact,areito,arena,arenae,arend,areng,arenoid,arenose,arent,areola,areolar,areole,areolet,arete,argal,argala,argali,argans,argasid,argeers,argel,argenol,argent,arghan,arghel,arghool,argil,argo,argol,argolet,argon,argosy,argot,argotic,argue,arguer,argufy,argute,argyria,argyric,arhar,arhat,aria,aribine,aricine,arid,aridge,aridian,aridity,aridly,ariel,arienzo,arietta,aright,arigue,aril,ariled,arillus,ariose,arioso,ariot,aripple,arisard,arise,arisen,arist,arista,arite,arjun,ark,arkite,arkose,arkosic,arles,arm,armada,armbone,armed,armer,armet,armful,armhole,armhoop,armied,armiger,armil,armilla,arming,armless,armlet,armload,armoire,armor,armored,armorer,armory,armpit,armrack,armrest,arms,armscye,armure,army,arn,arna,arnee,arni,arnica,arnotta,arnotto,arnut,aroar,aroast,arock,aroeira,aroid,aroint,arolium,arolla,aroma,aroon,arose,around,arousal,arouse,arouser,arow,aroxyl,arpen,arpent,arrack,arrah,arraign,arrame,arrange,arrant,arras,arrased,arratel,arrau,array,arrayal,arrayer,arrear,arrect,arrent,arrest,arriage,arriba,arride,arridge,arrie,arriere,arrimby,arris,arrish,arrival,arrive,arriver,arroba,arrope,arrow,arrowed,arrowy,arroyo,arse,arsenal,arsenic,arseno,arsenyl,arses,arsheen,arshin,arshine,arsine,arsinic,arsino,arsis,arsle,arsoite,arson,arsonic,arsono,arsyl,art,artaba,artabe,artal,artar,artel,arterin,artery,artful,artha,arthel,arthral,artiad,article,artisan,artist,artiste,artless,artlet,artlike,artware,arty,aru,arui,aruke,arumin,arupa,arusa,arusha,arustle,arval,arvel,arx,ary,aryl,arylate,arzan,arzun,as,asaddle,asak,asale,asana,asaphia,asaphid,asaprol,asarite,asaron,asarone,asbest,asbolin,ascan,ascare,ascarid,ascaron,ascend,ascent,ascetic,ascham,asci,ascian,ascii,ascites,ascitic,asclent,ascoma,ascon,ascot,ascribe,ascript,ascry,ascula,ascus,asdic,ase,asearch,aseethe,aseity,asem,asemia,asepsis,aseptic,aseptol,asexual,ash,ashake,ashame,ashamed,ashamnu,ashcake,ashen,asherah,ashery,ashes,ashet,ashily,ashine,ashiver,ashkoko,ashlar,ashless,ashling,ashman,ashore,ashpan,ashpit,ashraf,ashrafi,ashur,ashweed,ashwort,ashy,asialia,aside,asideu,asiento,asilid,asimen,asimmer,asinego,asinine,asitia,ask,askable,askance,askant,askar,askari,asker,askew,askip,asklent,askos,aslant,aslaver,asleep,aslop,aslope,asmack,asmalte,asmear,asmile,asmoke,asnort,asoak,asocial,asok,asoka,asonant,asonia,asop,asor,asouth,asp,aspace,aspect,aspen,asper,asperge,asperse,asphalt,asphyxy,aspic,aspire,aspirer,aspirin,aspish,asport,aspout,asprawl,aspread,aspring,asprout,asquare,asquat,asqueal,asquint,asquirm,ass,assacu,assagai,assai,assail,assapan,assart,assary,assate,assault,assaut,assay,assayer,assbaa,asse,assegai,asself,assent,assert,assess,asset,assets,assever,asshead,assi,assify,assign,assilag,assis,assise,assish,assist,assize,assizer,assizes,asslike,assman,assoil,assort,assuade,assuage,assume,assumed,assumer,assure,assured,assurer,assurge,ast,asta,astalk,astare,astart,astasia,astatic,astay,asteam,asteep,asteer,asteism,astelic,astely,aster,asteria,asterin,astern,astheny,asthma,asthore,astilbe,astint,astir,astite,astomia,astony,astoop,astor,astound,astrain,astral,astrand,astray,astream,astrer,astrict,astride,astrier,astrild,astroid,astrut,astute,astylar,asudden,asunder,aswail,aswarm,asway,asweat,aswell,aswim,aswing,aswirl,aswoon,asyla,asylum,at,atabal,atabeg,atabek,atactic,atafter,ataman,atangle,atap,ataraxy,ataunt,atavi,atavic,atavism,atavist,atavus,ataxia,ataxic,ataxite,ataxy,atazir,atbash,ate,atebrin,atechny,ateeter,atef,atelets,atelier,atelo,ates,ateuchi,athanor,athar,atheism,atheist,atheize,athelia,athenee,athenor,atheous,athing,athirst,athlete,athodyd,athort,athrill,athrive,athrob,athrong,athwart,athymia,athymic,athymy,athyria,athyrid,atilt,atimon,atinga,atingle,atinkle,atip,atis,atlas,atlatl,atle,atlee,atloid,atma,atman,atmid,atmo,atmos,atocha,atocia,atokal,atoke,atokous,atoll,atom,atomerg,atomic,atomics,atomism,atomist,atomity,atomize,atomy,atonal,atone,atoner,atonia,atonic,atony,atop,atophan,atopic,atopite,atopy,atour,atoxic,atoxyl,atrail,atrepsy,atresia,atresic,atresy,atretic,atria,atrial,atrip,atrium,atrocha,atropal,atrophy,atropia,atropic,atrous,atry,atta,attacco,attach,attache,attack,attacus,attagen,attain,attaint,attaleh,attar,attask,attempt,attend,attent,atter,attern,attery,attest,attic,attid,attinge,attire,attired,attirer,attorn,attract,attrap,attrist,attrite,attune,atule,atumble,atune,atwain,atweel,atween,atwin,atwirl,atwist,atwitch,atwixt,atwo,atypic,atypy,auantic,aube,aubrite,auburn,auca,auchlet,auction,aucuba,audible,audibly,audient,audile,audio,audion,audit,auditor,auge,augen,augend,auger,augerer,augh,aught,augite,augitic,augment,augur,augural,augury,august,auh,auhuhu,auk,auklet,aula,aulae,auld,auletai,aulete,auletes,auletic,aulic,auloi,aulos,aulu,aum,aumaga,aumail,aumbry,aumery,aumil,aumous,aumrie,auncel,aune,aunt,auntie,auntish,auntly,aupaka,aura,aurae,aural,aurally,aurar,aurate,aurated,aureate,aureity,aurelia,aureola,aureole,aureous,auresca,aureus,auric,auricle,auride,aurific,aurify,aurigal,aurin,aurir,aurist,aurite,aurochs,auronal,aurora,aurorae,auroral,aurore,aurous,aurum,aurure,auryl,auscult,auslaut,auspex,auspice,auspicy,austere,austral,ausu,ausubo,autarch,autarky,aute,autecy,autem,author,autism,autist,auto,autobus,autocab,autocar,autoecy,autoist,automa,automat,autonym,autopsy,autumn,auxesis,auxetic,auxin,auxinic,auxotox,ava,avadana,avahi,avail,aval,avalent,avania,avarice,avast,avaunt,ave,avellan,aveloz,avenage,avener,avenge,avenger,avenin,avenous,avens,avenue,aver,avera,average,averah,averil,averin,averral,averse,avert,averted,averter,avian,aviary,aviate,aviatic,aviator,avichi,avicide,avick,avid,avidity,avidly,avidous,avidya,avigate,avijja,avine,aviso,avital,avitic,avives,avo,avocado,avocate,avocet,avodire,avoid,avoider,avolate,avouch,avow,avowal,avowant,avowed,avower,avowry,avoyer,avulse,aw,awa,awabi,awaft,awag,await,awaiter,awake,awaken,awald,awalim,awalt,awane,awapuhi,award,awarder,aware,awash,awaste,awat,awatch,awater,awave,away,awber,awd,awe,aweary,aweband,awee,aweek,aweel,aweigh,awesome,awest,aweto,awfu,awful,awfully,awheel,awheft,awhet,awhile,awhir,awhirl,awide,awiggle,awin,awing,awink,awiwi,awkward,awl,awless,awlwort,awmous,awn,awned,awner,awning,awnless,awnlike,awny,awoke,awork,awreck,awrist,awrong,awry,ax,axal,axe,axed,axenic,axes,axfetch,axhead,axial,axially,axiate,axiform,axil,axile,axilla,axillae,axillar,axine,axinite,axiom,axion,axis,axised,axite,axle,axled,axmaker,axman,axogamy,axoid,axolotl,axon,axonal,axonost,axseed,axstone,axtree,axunge,axweed,axwise,axwort,ay,ayah,aye,ayelp,ayin,ayless,aylet,ayllu,ayond,ayont,ayous,ayu,azafrin,azalea,azarole,azelaic,azelate,azide,azilut,azimene,azimide,azimine,azimino,azimuth,azine,aziola,azo,azoch,azofier,azofy,azoic,azole,azon,azonal,azonic,azonium,azophen,azorite,azotate,azote,azoted,azoth,azotic,azotine,azotite,azotize,azotous,azox,azoxime,azoxine,azoxy,azteca,azulene,azulite,azulmic,azumbre,azure,azurean,azured,azurine,azurite,azurous,azury,azygos,azygous,azyme,azymite,azymous,b,ba,baa,baal,baar,baba,babai,babasco,babassu,babbitt,babble,babbler,babbly,babby,babe,babelet,babery,babiche,babied,babish,bablah,babloh,baboen,baboo,baboon,baboot,babroot,babu,babudom,babuina,babuism,babul,baby,babydom,babyish,babyism,bac,bacaba,bacach,bacalao,bacao,bacca,baccae,baccara,baccate,bacchar,bacchic,bacchii,bach,bache,bachel,bacilli,back,backage,backcap,backed,backen,backer,backet,backie,backing,backjaw,backlet,backlog,backrun,backsaw,backset,backup,backway,baclin,bacon,baconer,bacony,bacula,bacule,baculi,baculum,baculus,bacury,bad,badan,baddish,baddock,bade,badge,badger,badiaga,badian,badious,badland,badly,badness,bae,baetuli,baetyl,bafaro,baff,baffeta,baffle,baffler,baffy,baft,bafta,bag,baga,bagani,bagasse,bagel,bagful,baggage,baggala,bagged,bagger,baggie,baggily,bagging,baggit,baggy,baglike,bagman,bagnio,bagnut,bago,bagonet,bagpipe,bagre,bagreef,bagroom,bagwig,bagworm,bagwyn,bah,bahan,bahar,bahay,bahera,bahisti,bahnung,baho,bahoe,bahoo,baht,bahur,bahut,baignet,baikie,bail,bailage,bailee,bailer,bailey,bailie,bailiff,bailor,bain,bainie,baioc,baiocco,bairagi,bairn,bairnie,bairnly,baister,bait,baiter,baith,baittle,baize,bajada,bajan,bajra,bajree,bajri,bajury,baka,bakal,bake,baked,baken,bakepan,baker,bakerly,bakery,bakie,baking,bakli,baktun,baku,bakula,bal,balafo,balagan,balai,balance,balanic,balanid,balao,balas,balata,balboa,balcony,bald,balden,balder,baldish,baldly,baldrib,baldric,baldy,bale,baleen,baleful,balei,baleise,baler,balete,bali,baline,balita,balk,balker,balky,ball,ballad,ballade,ballam,ballan,ballant,ballast,ballata,ballate,balldom,balled,baller,ballet,balli,ballist,ballium,balloon,ballot,ballow,ballup,bally,balm,balmily,balmony,balmy,balneal,balonea,baloney,baloo,balow,balsa,balsam,balsamo,balsamy,baltei,balter,balteus,balu,balut,balza,bam,bamban,bambini,bambino,bamboo,bamoth,ban,banaba,banago,banak,banal,banally,banana,banat,banc,banca,bancal,banchi,banco,bancus,band,banda,bandage,bandaka,bandala,bandar,bandbox,bande,bandeau,banded,bander,bandhu,bandi,bandie,banding,bandit,bandle,bandlet,bandman,bando,bandog,bandore,bandrol,bandy,bane,baneful,bang,banga,bange,banger,banghy,banging,bangkok,bangle,bangled,bani,banian,banig,banilad,banish,baniwa,baniya,banjo,banjore,banjuke,bank,banked,banker,bankera,banket,banking,bankman,banky,banner,bannet,banning,bannock,banns,bannut,banquet,banshee,bant,bantam,bantay,banteng,banter,bantery,banty,banuyo,banya,banyan,banzai,baobab,bap,baptism,baptize,bar,bara,barad,barauna,barb,barbal,barbary,barbas,barbate,barbe,barbed,barbel,barber,barbet,barbion,barblet,barbone,barbudo,barbule,bard,bardane,bardash,bardel,bardess,bardic,bardie,bardily,barding,bardish,bardism,bardlet,bardo,bardy,bare,bareca,barefit,barely,barer,baresma,baretta,barff,barfish,barfly,barful,bargain,barge,bargee,bargeer,barger,bargh,bargham,bari,baria,baric,barid,barie,barile,barilla,baring,baris,barish,barit,barite,barium,bark,barken,barker,barkery,barkey,barkhan,barking,barkle,barky,barless,barley,barling,barlock,barlow,barm,barmaid,barman,barmkin,barmote,barmy,barn,barnard,barney,barnful,barnman,barny,baroi,barolo,baron,baronet,barong,baronry,barony,baroque,baroto,barpost,barra,barrack,barrad,barrage,barras,barred,barrel,barren,barrer,barret,barrico,barrier,barring,barrio,barroom,barrow,barruly,barry,barse,barsom,barter,barth,barton,baru,baruria,barvel,barwal,barway,barways,barwise,barwood,barye,baryta,barytes,barytic,baryton,bas,basal,basale,basalia,basally,basalt,basaree,bascule,base,based,basely,baseman,basenji,bases,bash,bashaw,bashful,bashlyk,basial,basiate,basic,basidia,basify,basil,basilar,basilic,basin,basined,basinet,basion,basis,bask,basker,basket,basoid,bason,basos,basote,basque,basqued,bass,bassan,bassara,basset,bassie,bassine,bassist,basso,bassoon,bassus,bast,basta,bastard,baste,basten,baster,bastide,basting,bastion,bastite,basto,baston,bat,bataan,batad,batakan,batara,batata,batch,batcher,bate,batea,bateau,bateaux,bated,batel,bateman,bater,batfish,batfowl,bath,bathe,bather,bathic,bathing,bathman,bathmic,bathos,bathtub,bathyal,batik,batiker,bating,batino,batiste,batlan,batlike,batling,batlon,batman,batoid,baton,batonne,bats,batsman,batster,batt,batta,battel,batten,batter,battery,battik,batting,battish,battle,battled,battler,battue,batty,batule,batwing,batz,batzen,bauble,bauch,bauchle,bauckie,baud,baul,bauleah,baun,bauno,bauson,bausond,bauta,bauxite,bavaroy,bavary,bavian,baviere,bavin,bavoso,baw,bawbee,bawcock,bawd,bawdily,bawdry,bawl,bawler,bawley,bawn,bawtie,baxter,baxtone,bay,baya,bayal,bayamo,bayard,baybolt,baybush,baycuru,bayed,bayeta,baygall,bayhead,bayish,baylet,baylike,bayman,bayness,bayok,bayonet,bayou,baywood,bazaar,baze,bazoo,bazooka,bazzite,bdellid,be,beach,beached,beachy,beacon,bead,beaded,beader,beadily,beading,beadle,beadlet,beadman,beadrow,beady,beagle,beak,beaked,beaker,beakful,beaky,beal,beala,bealing,beam,beamage,beamed,beamer,beamful,beamily,beaming,beamish,beamlet,beamman,beamy,bean,beanbag,beancod,beanery,beanie,beano,beant,beany,bear,beard,bearded,bearder,beardie,beardom,beardy,bearer,bearess,bearing,bearish,bearlet,bearm,beast,beastie,beastly,beat,beata,beatae,beatee,beaten,beater,beath,beatify,beating,beatus,beau,beaufin,beauish,beauism,beauti,beauty,beaux,beaver,beavery,beback,bebait,bebang,bebar,bebaron,bebaste,bebat,bebathe,bebay,bebeast,bebed,bebeeru,bebilya,bebite,beblain,beblear,bebled,bebless,beblood,bebloom,bebog,bebop,beboss,bebotch,bebrave,bebrine,bebrush,bebump,bebusy,becall,becalm,becap,becard,becarve,becater,because,becense,bechalk,becharm,bechase,becheck,becher,bechern,bechirp,becivet,beck,becker,becket,beckon,beclad,beclang,beclart,beclasp,beclaw,becloak,beclog,becloud,beclout,beclown,becolme,becolor,become,becomes,becomma,becoom,becost,becovet,becram,becramp,becrawl,becreep,becrime,becroak,becross,becrowd,becrown,becrush,becrust,becry,becuiba,becuna,becurl,becurry,becurse,becut,bed,bedad,bedamn,bedamp,bedare,bedark,bedash,bedaub,bedawn,beday,bedaze,bedbug,bedcap,bedcase,bedcord,bedded,bedder,bedding,bedead,bedeaf,bedebt,bedeck,bedel,beden,bedene,bedevil,bedew,bedewer,bedfast,bedfoot,bedgery,bedgoer,bedgown,bedight,bedikah,bedim,bedin,bedip,bedirt,bedirty,bedizen,bedkey,bedlam,bedlar,bedless,bedlids,bedman,bedmate,bedog,bedolt,bedot,bedote,bedouse,bedown,bedoyo,bedpan,bedpost,bedrail,bedral,bedrape,bedress,bedrid,bedrift,bedrip,bedrock,bedroll,bedroom,bedrop,bedrown,bedrug,bedsick,bedside,bedsite,bedsock,bedsore,bedtick,bedtime,bedub,beduck,beduke,bedull,bedumb,bedunce,bedunch,bedung,bedur,bedusk,bedust,bedwarf,bedway,bedways,bedwell,bedye,bee,beearn,beech,beechen,beechy,beedged,beedom,beef,beefer,beefily,beefin,beefish,beefy,beehead,beeherd,beehive,beeish,beek,beekite,beelbow,beelike,beeline,beelol,beeman,been,beennut,beer,beerage,beerily,beerish,beery,bees,beest,beeswax,beet,beeth,beetle,beetled,beetler,beety,beeve,beevish,beeware,beeway,beeweed,beewise,beewort,befall,befame,befan,befancy,befavor,befilch,befile,befilth,befire,befist,befit,beflag,beflap,beflea,befleck,beflour,beflout,beflum,befoam,befog,befool,befop,before,befoul,befret,befrill,befriz,befume,beg,begad,begall,begani,begar,begari,begash,begat,begaud,begaudy,begay,begaze,begeck,begem,beget,beggar,beggary,begging,begift,begild,begin,begird,beglad,beglare,beglic,beglide,begloom,begloze,begluc,beglue,begnaw,bego,begob,begobs,begohm,begone,begonia,begorra,begorry,begoud,begowk,begrace,begrain,begrave,begray,begreen,begrett,begrim,begrime,begroan,begrown,beguard,beguess,beguile,beguine,begulf,begum,begun,begunk,begut,behale,behalf,behap,behave,behead,behear,behears,behedge,beheld,behelp,behen,behenic,behest,behind,behint,behn,behold,behoney,behoof,behoot,behoove,behorn,behowl,behung,behymn,beice,beige,being,beinked,beira,beisa,bejade,bejan,bejant,bejazz,bejel,bejewel,bejig,bekah,bekick,beking,bekiss,bekko,beknave,beknit,beknow,beknown,bel,bela,belabor,belaced,beladle,belady,belage,belah,belam,belanda,belar,belard,belash,belate,belated,belaud,belay,belayer,belch,belcher,beld,beldam,beleaf,beleap,beleave,belee,belfry,belga,belibel,belick,belie,belief,belier,believe,belight,beliked,belion,belite,belive,bell,bellboy,belle,belled,bellhop,bellied,belling,bellite,bellman,bellote,bellow,bellows,belly,bellyer,beloam,beloid,belong,belonid,belord,belout,belove,beloved,below,belsire,belt,belted,belter,beltie,beltine,belting,beltman,belton,beluga,belute,belve,bely,belying,bema,bemad,bemadam,bemail,bemaim,beman,bemar,bemask,bemat,bemata,bemaul,bemazed,bemeal,bemean,bemercy,bemire,bemist,bemix,bemoan,bemoat,bemock,bemoil,bemole,bemolt,bemoon,bemotto,bemoult,bemouth,bemuck,bemud,bemuddy,bemuse,bemused,bemusk,ben,bena,benab,bename,benami,benasty,benben,bench,bencher,benchy,bencite,bend,benda,bended,bender,bending,bendlet,bendy,bene,beneath,benefic,benefit,benempt,benet,beng,beni,benight,benign,benison,benj,benjy,benmost,benn,benne,bennel,bennet,benny,beno,benorth,benote,bensel,bensh,benshea,benshee,benshi,bent,bentang,benthal,benthic,benthon,benthos,benting,benty,benumb,benward,benweed,benzal,benzein,benzene,benzil,benzine,benzo,benzoic,benzoid,benzoin,benzol,benzole,benzoxy,benzoyl,benzyl,beode,bepaid,bepale,bepaper,beparch,beparse,bepart,bepaste,bepat,bepaw,bepearl,bepelt,bepen,bepewed,bepiece,bepile,bepill,bepinch,bepity,beprank,bepray,bepress,bepride,beprose,bepuff,bepun,bequalm,bequest,bequote,ber,berain,berakah,berake,berapt,berat,berate,beray,bere,bereave,bereft,berend,beret,berg,berger,berglet,bergut,bergy,bergylt,berhyme,beride,berinse,berith,berley,berlin,berline,berm,berne,berobed,beroll,beround,berret,berri,berried,berrier,berry,berseem,berserk,berth,berthed,berther,bertram,bertrum,berust,bervie,berycid,beryl,bes,besa,besagne,besaiel,besaint,besan,besauce,bescab,bescarf,bescent,bescorn,bescour,bescurf,beseam,besee,beseech,beseem,beseen,beset,beshade,beshag,beshake,beshame,beshear,beshell,beshine,beshlik,beshod,beshout,beshow,beshrew,beside,besides,besiege,besigh,besin,besing,besiren,besit,beslab,beslap,beslash,beslave,beslime,beslow,beslur,besmear,besmell,besmile,besmoke,besmut,besnare,besneer,besnow,besnuff,besogne,besoil,besom,besomer,besoot,besot,besoul,besour,bespate,bespawl,bespeak,besped,bespeed,bespell,bespend,bespete,bespew,bespice,bespill,bespin,bespit,besplit,bespoke,bespot,bespout,bespray,bespy,besquib,besra,best,bestab,bestain,bestamp,bestar,bestare,bestay,bestead,besteer,bester,bestial,bestick,bestill,bestink,bestir,bestock,bestore,bestorm,bestove,bestow,bestraw,bestrew,bestuck,bestud,besugar,besuit,besully,beswarm,beswim,bet,beta,betag,betail,betaine,betalk,betask,betaxed,betear,beteela,beteem,betel,beth,bethel,bethink,bethumb,bethump,betide,betimes,betinge,betire,betis,betitle,betoil,betoken,betone,betony,betoss,betowel,betrace,betrail,betrap,betray,betread,betrend,betrim,betroth,betrunk,betso,betted,better,betters,betting,bettong,bettor,betty,betulin,betutor,between,betwine,betwit,betwixt,beveil,bevel,beveled,beveler,bevenom,bever,beverse,beveto,bevined,bevomit,bevue,bevy,bewail,bewall,beware,bewash,bewaste,bewater,beweary,beweep,bewept,bewest,bewet,bewhig,bewhite,bewidow,bewig,bewired,bewitch,bewith,bework,beworm,beworn,beworry,bewrap,bewray,bewreck,bewrite,bey,beydom,beylic,beyond,beyship,bezant,bezanty,bezel,bezetta,bezique,bezoar,bezzi,bezzle,bezzo,bhabar,bhakta,bhakti,bhalu,bhandar,bhang,bhangi,bhara,bharal,bhat,bhava,bheesty,bhikku,bhikshu,bhoosa,bhoy,bhungi,bhut,biabo,biacid,biacuru,bialate,biallyl,bianco,biarchy,bias,biaxal,biaxial,bib,bibasic,bibb,bibber,bibble,bibbler,bibbons,bibcock,bibi,bibiri,bibless,biblus,bice,biceps,bicetyl,bichir,bichord,bichy,bick,bicker,bickern,bicolor,bicone,biconic,bicorn,bicorne,bicron,bicycle,bicyclo,bid,bidar,bidarka,bidcock,bidder,bidding,biddy,bide,bident,bider,bidet,biding,bidri,biduous,bield,bieldy,bien,bienly,biennia,bier,bietle,bifara,bifer,biff,biffin,bifid,bifidly,bifilar,biflex,bifocal,bifoil,bifold,bifolia,biform,bifront,big,biga,bigamic,bigamy,bigener,bigeye,bigg,biggah,biggen,bigger,biggest,biggin,biggish,bigha,bighead,bighorn,bight,biglot,bigness,bignou,bigot,bigoted,bigotry,bigotty,bigroot,bigwig,bija,bijasal,bijou,bijoux,bike,bikh,bikini,bilabe,bilalo,bilbie,bilbo,bilby,bilch,bilcock,bildar,bilders,bile,bilge,bilgy,biliary,biliate,bilic,bilify,bilimbi,bilio,bilious,bilith,bilk,bilker,bill,billa,billbug,billed,biller,billet,billety,billian,billing,billion,billman,billon,billot,billow,billowy,billy,billyer,bilo,bilobe,bilobed,bilsh,bilsted,biltong,bimalar,bimanal,bimane,bimasty,bimbil,bimeby,bimodal,bin,binal,binary,binate,bind,binder,bindery,binding,bindle,bindlet,bindweb,bine,bing,binge,bingey,binghi,bingle,bingo,bingy,binh,bink,binman,binna,binning,binnite,bino,binocle,binodal,binode,binotic,binous,bint,binukau,biod,biodyne,biogen,biogeny,bioherm,biolith,biology,biome,bion,bionomy,biopsic,biopsy,bioral,biorgan,bios,biose,biosis,biota,biotaxy,biotic,biotics,biotin,biotite,biotome,biotomy,biotope,biotype,bioxide,bipack,biparty,biped,bipedal,biphase,biplane,bipod,bipolar,biprism,biprong,birch,birchen,bird,birddom,birdeen,birder,birdie,birding,birdlet,birdman,birdy,bireme,biretta,biri,biriba,birk,birken,birkie,birl,birle,birler,birlie,birlinn,birma,birn,birny,birr,birse,birsle,birsy,birth,birthy,bis,bisabol,bisalt,biscuit,bisect,bisexed,bisext,bishop,bismar,bismite,bismuth,bisnaga,bison,bispore,bisque,bissext,bisson,bistate,bister,bisti,bistort,bistro,bit,bitable,bitch,bite,biter,biti,biting,bitless,bito,bitolyl,bitt,bitted,bitten,bitter,bittern,bitters,bittie,bittock,bitty,bitume,bitumed,bitumen,bitwise,bityite,bitypic,biune,biunial,biunity,biurate,biurea,biuret,bivalve,bivinyl,bivious,bivocal,bivouac,biwa,bixin,biz,bizarre,bizet,bizonal,bizone,bizz,blab,blabber,black,blacken,blacker,blackey,blackie,blackit,blackly,blacky,blad,bladder,blade,bladed,blader,blading,bladish,blady,blae,blaff,blaflum,blah,blain,blair,blake,blame,blamed,blamer,blaming,blan,blanc,blanca,blanch,blanco,bland,blanda,blandly,blank,blanked,blanket,blankly,blanky,blanque,blare,blarney,blarnid,blarny,blart,blas,blase,blash,blashy,blast,blasted,blaster,blastid,blastie,blasty,blat,blatant,blate,blately,blather,blatta,blatter,blatti,blattid,blaubok,blaver,blaw,blawort,blay,blaze,blazer,blazing,blazon,blazy,bleach,bleak,bleakly,bleaky,blear,bleared,bleary,bleat,bleater,bleaty,bleb,blebby,bleck,blee,bleed,bleeder,bleery,bleeze,bleezy,blellum,blemish,blench,blend,blende,blended,blender,blendor,blenny,blent,bleo,blesbok,bless,blessed,blesser,blest,blet,blewits,blibe,blick,blickey,blight,blighty,blimp,blimy,blind,blinded,blinder,blindly,blink,blinked,blinker,blinks,blinky,blinter,blintze,blip,bliss,blissom,blister,blite,blithe,blithen,blither,blitter,blitz,blizz,blo,bloat,bloated,bloater,blob,blobbed,blobber,blobby,bloc,block,blocked,blocker,blocky,blodite,bloke,blolly,blonde,blood,blooded,bloody,blooey,bloom,bloomer,bloomy,bloop,blooper,blore,blosmy,blossom,blot,blotch,blotchy,blotter,blotto,blotty,blouse,bloused,blout,blow,blowen,blower,blowfly,blowgun,blowing,blown,blowoff,blowout,blowth,blowup,blowy,blowze,blowzed,blowzy,blub,blubber,blucher,blue,bluecap,bluecup,blueing,blueleg,bluely,bluer,blues,bluet,bluetop,bluey,bluff,bluffer,bluffly,bluffy,bluggy,bluing,bluish,bluism,blunder,blunge,blunger,blunk,blunker,blunks,blunnen,blunt,blunter,bluntie,bluntly,blup,blur,blurb,blurred,blurrer,blurry,blurt,blush,blusher,blushy,bluster,blype,bo,boa,boagane,boar,board,boarder,boardly,boardy,boarish,boast,boaster,boat,boatage,boater,boatful,boatie,boating,boatlip,boatly,boatman,bob,boba,bobac,bobbed,bobber,bobbery,bobbin,bobbing,bobbish,bobble,bobby,bobcat,bobcoat,bobeche,bobfly,bobo,bobotie,bobsled,bobstay,bobtail,bobwood,bocal,bocardo,bocca,boccale,boccaro,bocce,boce,bocher,bock,bocking,bocoy,bod,bodach,bode,bodeful,bodega,boden,boder,bodge,bodger,bodgery,bodhi,bodice,bodiced,bodied,bodier,bodikin,bodily,boding,bodkin,bodle,bodock,body,bog,boga,bogan,bogard,bogart,bogey,boggart,boggin,boggish,boggle,boggler,boggy,boghole,bogie,bogier,bogland,bogle,boglet,bogman,bogmire,bogo,bogong,bogtrot,bogue,bogum,bogus,bogway,bogwood,bogwort,bogy,bogydom,bogyism,bohawn,bohea,boho,bohor,bohunk,boid,boil,boiled,boiler,boilery,boiling,boily,boist,bojite,bojo,bokadam,bokard,bokark,boke,bokom,bola,bolar,bold,bolden,boldine,boldly,boldo,bole,boled,boleite,bolero,bolete,bolide,bolimba,bolis,bolivar,bolivia,bolk,boll,bollard,bolled,boller,bolling,bollock,bolly,bolo,boloman,boloney,bolson,bolster,bolt,boltage,boltant,boltel,bolter,bolti,bolting,bolus,bom,boma,bomb,bombard,bombast,bombed,bomber,bombo,bombola,bombous,bon,bonaci,bonagh,bonaght,bonair,bonally,bonang,bonanza,bonasus,bonbon,bonce,bond,bondage,bondar,bonded,bonder,bonding,bondman,bonduc,bone,boned,bonedog,bonelet,boner,boneset,bonfire,bong,bongo,boniata,bonify,bonito,bonk,bonnaz,bonnet,bonnily,bonny,bonsai,bonus,bonxie,bony,bonze,bonzer,bonzery,bonzian,boo,boob,boobery,boobily,boobook,booby,bood,boodie,boodle,boodler,boody,boof,booger,boohoo,boojum,book,bookdom,booked,booker,bookery,bookful,bookie,booking,bookish,bookism,booklet,bookman,booky,bool,booly,boolya,boom,boomage,boomah,boomdas,boomer,booming,boomlet,boomy,boon,boonk,boopis,boor,boorish,boort,boose,boost,booster,boosy,boot,bootboy,booted,bootee,booter,bootery,bootful,booth,boother,bootied,booting,bootleg,boots,booty,booze,boozed,boozer,boozily,boozy,bop,bopeep,boppist,bopyrid,bor,bora,borable,boracic,borage,borak,boral,borasca,borate,borax,bord,bordage,bordar,bordel,border,bordure,bore,boread,boreal,borean,boredom,boree,boreen,boregat,boreism,borele,borer,borg,borgh,borh,boric,boride,borine,boring,borish,borism,bority,borize,borlase,born,borne,borneol,borning,bornite,bornyl,boro,boron,boronic,borough,borrel,borrow,borsch,borscht,borsht,bort,bortsch,borty,bortz,borwort,boryl,borzoi,boscage,bosch,bose,boser,bosh,bosher,bosk,bosker,bosket,bosky,bosn,bosom,bosomed,bosomer,bosomy,boss,bossage,bossdom,bossed,bosser,bosset,bossing,bossism,bosslet,bossy,boston,bostryx,bosun,bot,bota,botanic,botany,botargo,botch,botched,botcher,botchka,botchy,bote,botella,boterol,botfly,both,bother,bothros,bothway,bothy,botonee,botong,bott,bottine,bottle,bottled,bottler,bottom,botulin,bouchal,bouche,boucher,boud,boudoir,bougar,bouge,bouget,bough,boughed,bought,boughy,bougie,bouk,boukit,boulder,boule,boultel,boulter,boun,bounce,bouncer,bound,bounded,bounden,bounder,boundly,bounty,bouquet,bourbon,bourd,bourder,bourdon,bourg,bourn,bourock,bourse,bouse,bouser,bousy,bout,boutade,bouto,bouw,bovate,bovid,bovine,bovoid,bow,bowable,bowback,bowbent,bowboy,bowed,bowel,boweled,bowels,bower,bowery,bowet,bowfin,bowhead,bowie,bowing,bowk,bowkail,bowker,bowknot,bowl,bowla,bowleg,bowler,bowless,bowlful,bowlike,bowline,bowling,bowls,bowly,bowman,bowpin,bowshot,bowwood,bowwort,bowwow,bowyer,boxbush,boxcar,boxen,boxer,boxfish,boxful,boxhaul,boxhead,boxing,boxlike,boxman,boxty,boxwood,boxwork,boxy,boy,boyang,boyar,boyard,boycott,boydom,boyer,boyhood,boyish,boyism,boyla,boylike,boyship,boza,bozal,bozo,bozze,bra,brab,brabant,brabble,braca,braccia,braccio,brace,braced,bracer,bracero,braces,brach,brachet,bracing,brack,bracken,bracker,bracket,bracky,bract,bractea,bracted,brad,bradawl,bradsot,brae,braeman,brag,braggat,bragger,bragget,bragite,braid,braided,braider,brail,brain,brainer,brainge,brains,brainy,braird,brairo,braise,brake,braker,brakie,braky,bramble,brambly,bran,branch,branchi,branchy,brand,branded,brander,brandy,brangle,branial,brank,brankie,branle,branner,branny,bransle,brant,brash,brashy,brasque,brass,brasse,brasser,brasset,brassic,brassie,brassy,brat,brattie,brattle,brauna,bravade,bravado,brave,bravely,braver,bravery,braving,bravish,bravo,bravura,braw,brawl,brawler,brawly,brawlys,brawn,brawned,brawner,brawny,braws,braxy,bray,brayer,brayera,braza,braze,brazen,brazer,brazera,brazier,brazil,breach,breachy,bread,breaden,breadth,breaghe,break,breakax,breaker,breakup,bream,breards,breast,breath,breathe,breathy,breba,breccia,brecham,breck,brecken,bred,brede,bredi,bree,breech,breed,breeder,breedy,breek,breeze,breezy,bregma,brehon,brei,brekkle,brelaw,breme,bremely,brent,brephic,bret,breth,brett,breva,breve,brevet,brevier,brevit,brevity,brew,brewage,brewer,brewery,brewing,brewis,brewst,brey,briar,bribe,bribee,briber,bribery,brichen,brick,brickel,bricken,brickle,brickly,bricky,bricole,bridal,bridale,bride,bridely,bridge,bridged,bridger,bridle,bridled,bridler,bridoon,brief,briefly,briefs,brier,briered,briery,brieve,brig,brigade,brigand,bright,brill,brills,brim,brimful,briming,brimmed,brimmer,brin,brine,briner,bring,bringal,bringer,brinish,brinjal,brink,briny,brioche,brique,brisk,brisken,brisket,briskly,brisque,briss,bristle,bristly,brisure,brit,brith,brither,britska,britten,brittle,brizz,broach,broad,broadax,broaden,broadly,brob,brocade,brocard,broch,brochan,broche,brocho,brock,brocked,brocket,brockle,brod,brodder,brog,brogan,brogger,broggle,brogue,broguer,broider,broigne,broil,broiler,brokage,broke,broken,broker,broking,brolga,broll,brolly,broma,bromal,bromate,brome,bromic,bromide,bromine,bromism,bromite,bromize,bromoil,bromol,bromous,bronc,bronchi,bronco,bronk,bronze,bronzed,bronzen,bronzer,bronzy,broo,brooch,brood,brooder,broody,brook,brooked,brookie,brooky,brool,broom,broomer,broomy,broon,broose,brose,brosot,brosy,brot,brotan,brotany,broth,brothel,brother,brothy,brough,brought,brow,browden,browed,browis,browman,brown,browner,brownie,brownly,browny,browse,browser,browst,bruang,brucia,brucina,brucine,brucite,bruckle,brugh,bruin,bruise,bruiser,bruit,bruiter,bruke,brulee,brulyie,brumal,brumby,brume,brumous,brunch,brunet,brunt,bruscus,brush,brushed,brusher,brushes,brushet,brushy,brusque,brustle,brut,brutage,brutal,brute,brutely,brutify,bruting,brutish,brutism,brutter,bruzz,bryonin,bryony,bu,bual,buaze,bub,buba,bubal,bubalis,bubble,bubbler,bubbly,bubby,bubinga,bubo,buboed,bubonic,bubukle,bucare,bucca,buccal,buccan,buccate,buccina,buccula,buchite,buchu,buck,bucked,buckeen,bucker,bucket,buckety,buckeye,buckie,bucking,buckish,buckle,buckled,buckler,bucklum,bucko,buckpot,buckra,buckram,bucksaw,bucky,bucolic,bucrane,bud,buda,buddage,budder,buddhi,budding,buddle,buddler,buddy,budge,budger,budget,budless,budlet,budlike,budmash,budtime,budwood,budworm,budzat,bufagin,buff,buffalo,buffed,buffer,buffet,buffing,buffle,buffont,buffoon,buffy,bufidin,bufo,bug,bugaboo,bugan,bugbane,bugbear,bugbite,bugdom,bugfish,bugger,buggery,buggy,bughead,bugle,bugled,bugler,buglet,bugloss,bugre,bugseed,bugweed,bugwort,buhl,buhr,build,builder,buildup,built,buirdly,buisson,buist,bukh,bukshi,bulak,bulb,bulbar,bulbed,bulbil,bulblet,bulbose,bulbous,bulbul,bulbule,bulby,bulchin,bulge,bulger,bulgy,bulimia,bulimic,bulimy,bulk,bulked,bulker,bulkily,bulkish,bulky,bull,bulla,bullace,bullan,bullary,bullate,bullbat,bulldog,buller,bullet,bullety,bulling,bullion,bullish,bullism,bullit,bullnut,bullock,bullous,bullule,bully,bulrush,bulse,bult,bulter,bultey,bultong,bultow,bulwand,bulwark,bum,bumbaze,bumbee,bumble,bumbler,bumbo,bumboat,bumicky,bummalo,bummed,bummer,bummie,bumming,bummler,bummock,bump,bumpee,bumper,bumpily,bumping,bumpkin,bumpy,bumtrap,bumwood,bun,buna,buncal,bunce,bunch,buncher,bunchy,bund,bunder,bundle,bundler,bundlet,bundook,bundy,bung,bungee,bungey,bungfu,bungle,bungler,bungo,bungy,bunion,bunk,bunker,bunkery,bunkie,bunko,bunkum,bunnell,bunny,bunt,buntal,bunted,bunter,bunting,bunton,bunty,bunya,bunyah,bunyip,buoy,buoyage,buoyant,bur,buran,burao,burbank,burbark,burble,burbler,burbly,burbot,burbush,burd,burden,burdie,burdock,burdon,bure,bureau,bureaux,burel,burele,buret,burette,burfish,burg,burgage,burgall,burgee,burgeon,burgess,burgh,burghal,burgher,burglar,burgle,burgoo,burgul,burgus,burhead,buri,burial,burian,buried,burier,burin,burion,buriti,burka,burke,burker,burl,burlap,burled,burler,burlet,burlily,burly,burmite,burn,burned,burner,burnet,burnie,burning,burnish,burnous,burnout,burnt,burnut,burny,buro,burp,burr,burrah,burred,burrel,burrer,burring,burrish,burrito,burro,burrow,burry,bursa,bursal,bursar,bursary,bursate,burse,burseed,burst,burster,burt,burton,burucha,burweed,bury,burying,bus,busby,buscarl,bush,bushed,bushel,busher,bushful,bushi,bushily,bushing,bushlet,bushwa,bushy,busied,busily,busine,busk,busked,busker,busket,buskin,buskle,busky,busman,buss,busser,bussock,bussu,bust,bustard,busted,bustee,buster,bustic,bustle,bustled,bustler,busy,busying,busyish,but,butanal,butane,butanol,butch,butcher,butein,butene,butenyl,butic,butine,butler,butlery,butment,butoxy,butoxyl,butt,butte,butter,buttery,butting,buttle,buttock,button,buttons,buttony,butty,butyl,butylic,butyne,butyr,butyral,butyric,butyrin,butyryl,buxerry,buxom,buxomly,buy,buyable,buyer,buzane,buzz,buzzard,buzzer,buzzies,buzzing,buzzle,buzzwig,buzzy,by,bycoket,bye,byee,byeman,byepath,byerite,bygane,bygo,bygoing,bygone,byhand,bylaw,byname,byon,byous,byously,bypass,bypast,bypath,byplay,byre,byreman,byrlaw,byrnie,byroad,byrrus,bysen,byspell,byssal,byssin,byssine,byssoid,byssus,byth,bytime,bywalk,byway,bywoner,byword,bywork,c,ca,caam,caama,caaming,caapeba,cab,caba,cabaan,caback,cabaho,cabal,cabala,cabalic,caban,cabana,cabaret,cabas,cabbage,cabbagy,cabber,cabble,cabbler,cabby,cabda,caber,cabezon,cabin,cabinet,cabio,cable,cabled,cabler,cablet,cabling,cabman,cabob,cabocle,cabook,caboose,cabot,cabree,cabrit,cabuya,cacam,cacao,cachaza,cache,cachet,cachexy,cachou,cachrys,cacique,cack,cackle,cackler,cacodyl,cacoepy,caconym,cacoon,cacti,cactoid,cacur,cad,cadamba,cadaver,cadbait,cadbit,cadbote,caddice,caddie,caddis,caddish,caddle,caddow,caddy,cade,cadelle,cadence,cadency,cadent,cadenza,cader,caderas,cadet,cadetcy,cadette,cadew,cadge,cadger,cadgily,cadgy,cadi,cadism,cadjan,cadlock,cadmia,cadmic,cadmide,cadmium,cados,cadrans,cadre,cadua,caduac,caduca,cadus,cadweed,caeca,caecal,caecum,caeoma,caesura,cafeneh,cafenet,caffa,caffeic,caffeol,caffiso,caffle,caffoy,cafh,cafiz,caftan,cag,cage,caged,cageful,cageman,cager,cagey,caggy,cagily,cagit,cagmag,cahiz,cahoot,cahot,cahow,caickle,caid,caiman,caimito,cain,caique,caird,cairn,cairned,cairny,caisson,caitiff,cajeput,cajole,cajoler,cajuela,cajun,cajuput,cake,cakebox,caker,cakette,cakey,caky,cal,calaba,calaber,calade,calais,calalu,calamus,calash,calcar,calced,calcic,calcify,calcine,calcite,calcium,calculi,calden,caldron,calean,calends,calepin,calf,calfish,caliber,calibre,calices,calicle,calico,calid,caliga,caligo,calinda,calinut,calipee,caliper,caliph,caliver,calix,calk,calkage,calker,calkin,calking,call,callant,callboy,caller,callet,calli,callid,calling,callo,callose,callous,callow,callus,calm,calmant,calmer,calmly,calmy,calomba,calomel,calool,calor,caloric,calorie,caloris,calotte,caloyer,calp,calpac,calpack,caltrap,caltrop,calumba,calumet,calumny,calve,calved,calver,calves,calvish,calvity,calvous,calx,calyces,calycle,calymma,calypso,calyx,cam,camaca,camagon,camail,caman,camansi,camara,camass,camata,camb,cambaye,camber,cambial,cambism,cambist,cambium,cambrel,cambuca,came,cameist,camel,camelry,cameo,camera,cameral,camilla,camion,camise,camisia,camlet,cammed,cammock,camoodi,camp,campana,campane,camper,campho,camphol,camphor,campion,cample,campo,campody,campoo,campus,camus,camused,camwood,can,canaba,canada,canadol,canal,canamo,canape,canard,canari,canarin,canary,canasta,canaut,cancan,cancel,cancer,canch,cancrum,cand,candela,candent,candid,candied,candier,candify,candiru,candle,candler,candock,candor,candroy,candy,candys,cane,canel,canella,canelo,caner,canette,canful,cangan,cangia,cangle,cangler,cangue,canhoop,canid,canille,caninal,canine,caninus,canions,canjac,cank,canker,cankery,canman,canna,cannach,canned,cannel,canner,cannery,cannet,cannily,canning,cannon,cannot,cannula,canny,canoe,canon,canonic,canonry,canopic,canopy,canroy,canso,cant,cantala,cantar,cantara,cantaro,cantata,canted,canteen,canter,canthal,canthus,cantic,cantico,cantily,cantina,canting,cantion,cantish,cantle,cantlet,canto,canton,cantoon,cantor,cantred,cantref,cantrip,cantus,canty,canun,canvas,canvass,cany,canyon,canzon,caoba,cap,capable,capably,capanna,capanne,capax,capcase,cape,caped,capel,capelet,capelin,caper,caperer,capes,capful,caph,caphar,caphite,capias,capicha,capital,capitan,capivi,capkin,capless,caplin,capman,capmint,capomo,capon,caporal,capot,capote,capped,capper,cappie,capping,capple,cappy,caprate,capreol,capric,caprice,caprid,caprin,caprine,caproic,caproin,caprone,caproyl,capryl,capsa,capsid,capsize,capstan,capsula,capsule,captain,caption,captive,captor,capture,capuche,capulet,capulin,car,carabao,carabid,carabin,carabus,caracal,caracol,caract,carafe,caraibe,caraipi,caramba,caramel,caranda,carane,caranna,carapax,carapo,carat,caratch,caravan,caravel,caraway,carbarn,carbeen,carbene,carbide,carbine,carbo,carbon,carbona,carbora,carboxy,carboy,carbro,carbure,carbyl,carcake,carcass,carceag,carcel,carcoon,card,cardecu,carded,cardel,carder,cardia,cardiac,cardial,cardin,carding,cardo,cardol,cardon,cardona,cardoon,care,careen,career,careful,carene,carer,caress,carest,caret,carfare,carfax,carful,carga,cargo,carhop,cariama,caribou,carid,caries,carina,carinal,cariole,carious,cark,carking,carkled,carl,carless,carlet,carlie,carlin,carline,carling,carlish,carload,carlot,carls,carman,carmele,carmine,carmot,carnage,carnal,carnate,carneol,carney,carnic,carnify,carnose,carnous,caroa,carob,caroba,caroche,carol,caroler,caroli,carolin,carolus,carom,carone,caronic,caroome,caroon,carotic,carotid,carotin,carouse,carp,carpal,carpale,carpel,carpent,carper,carpet,carpid,carping,carpium,carport,carpos,carpus,carr,carrack,carrel,carrick,carried,carrier,carrion,carrizo,carroch,carrot,carroty,carrow,carry,carse,carshop,carsick,cart,cartage,carte,cartel,carter,cartful,cartman,carton,cartoon,cartway,carty,carua,carucal,carval,carve,carvel,carven,carvene,carver,carving,carvol,carvone,carvyl,caryl,casaba,casabe,casal,casalty,casate,casaun,casava,casave,casavi,casbah,cascade,cascado,cascara,casco,cascol,case,casease,caseate,casebox,cased,caseful,casefy,caseic,casein,caseose,caseous,caser,casern,caseum,cash,casha,cashaw,cashbox,cashboy,cashel,cashew,cashier,casing,casino,casiri,cask,casket,casking,casque,casqued,casquet,cass,cassady,casse,cassena,cassia,cassie,cassina,cassine,cassino,cassis,cassock,casson,cassoon,cast,caste,caster,castice,casting,castle,castled,castlet,castock,castoff,castor,castory,castra,castral,castrum,castuli,casual,casuary,casuist,casula,cat,catalpa,catan,catapan,cataria,catarrh,catasta,catbird,catboat,catcall,catch,catcher,catchup,catchy,catclaw,catdom,cate,catechu,catella,catena,catenae,cater,cateran,caterer,caterva,cateye,catface,catfall,catfish,catfoot,catgut,cathead,cathect,catheti,cathin,cathine,cathion,cathode,cathole,cathood,cathop,cathro,cation,cativo,catjang,catkin,catlap,catlike,catlin,catling,catmint,catnip,catpipe,catskin,catstep,catsup,cattabu,cattail,cattalo,cattery,cattily,catting,cattish,cattle,catty,catvine,catwalk,catwise,catwood,catwort,caubeen,cauboge,cauch,caucho,caucus,cauda,caudad,caudae,caudal,caudata,caudate,caudex,caudle,caught,cauk,caul,cauld,caules,cauline,caulis,caulome,caulote,caum,cauma,caunch,caup,caupo,caurale,causal,causate,cause,causer,causey,causing,causse,causson,caustic,cautel,cauter,cautery,caution,cautivo,cava,cavae,caval,cavalla,cavalry,cavate,cave,caveat,cavel,cavelet,cavern,cavetto,caviar,cavie,cavil,caviler,caving,cavings,cavish,cavity,caviya,cavort,cavus,cavy,caw,cawk,cawky,cawney,cawquaw,caxiri,caxon,cay,cayenne,cayman,caza,cazimi,ce,cearin,cease,ceasmic,cebell,cebian,cebid,cebil,cebine,ceboid,cebur,cecils,cecity,cedar,cedared,cedarn,cedary,cede,cedent,ceder,cedilla,cedrat,cedrate,cedre,cedrene,cedrin,cedrine,cedrium,cedrol,cedron,cedry,cedula,cee,ceibo,ceil,ceile,ceiler,ceilidh,ceiling,celadon,celemin,celery,celesta,celeste,celiac,celite,cell,cella,cellae,cellar,celled,cellist,cello,celloid,cellose,cellule,celsian,celt,celtium,celtuce,cembalo,cement,cenacle,cendre,cenoby,cense,censer,censive,censor,censual,censure,census,cent,centage,cental,centare,centaur,centavo,centena,center,centiar,centile,centime,centimo,centner,cento,centrad,central,centric,centrum,centry,centum,century,ceorl,cep,cepa,cepe,cephid,ceps,ceptor,cequi,cerago,ceral,ceramal,ceramic,ceras,cerasin,cerata,cerate,cerated,cercal,cerci,cercus,cere,cereal,cerebra,cered,cereous,cerer,ceresin,cerevis,ceria,ceric,ceride,cerillo,ceriman,cerin,cerine,ceriops,cerise,cerite,cerium,cermet,cern,cero,ceroma,cerote,cerotic,cerotin,cerous,cerrero,cerrial,cerris,certain,certie,certify,certis,certy,cerule,cerumen,ceruse,cervid,cervine,cervix,cervoid,ceryl,cesious,cesium,cess,cesser,cession,cessor,cesspit,cest,cestode,cestoid,cestrum,cestus,cetane,cetene,ceti,cetic,cetin,cetyl,cetylic,cevine,cha,chaa,chab,chabot,chabouk,chabuk,chacate,chack,chacker,chackle,chacma,chacona,chacte,chad,chaeta,chafe,chafer,chafery,chaff,chaffer,chaffy,chaft,chafted,chagan,chagrin,chaguar,chagul,chahar,chai,chain,chained,chainer,chainon,chair,chairer,chais,chaise,chaitya,chaja,chaka,chakar,chakari,chakazi,chakdar,chakobu,chakra,chakram,chaksi,chal,chalaco,chalana,chalaza,chalaze,chalcid,chalcon,chalcus,chalder,chalet,chalice,chalk,chalker,chalky,challah,challie,challis,chalmer,chalon,chalone,chalque,chalta,chalutz,cham,chamal,chamar,chamber,chambul,chamfer,chamiso,chamite,chamma,chamois,champ,champac,champer,champy,chance,chancel,chancer,chanche,chanco,chancre,chancy,chandam,chandi,chandoo,chandu,chandul,chang,changa,changar,change,changer,chank,channel,channer,chanson,chanst,chant,chanter,chantey,chantry,chao,chaos,chaotic,chap,chapah,chape,chapeau,chaped,chapel,chapin,chaplet,chapman,chapped,chapper,chappie,chappin,chappow,chappy,chaps,chapt,chapter,char,charac,charade,charas,charbon,chard,chare,charer,charet,charge,chargee,charger,charier,charily,chariot,charism,charity,chark,charka,charkha,charm,charmel,charmer,charnel,charpit,charpoy,charqui,charr,charry,chart,charter,charuk,chary,chase,chaser,chasing,chasm,chasma,chasmal,chasmed,chasmic,chasmy,chasse,chassis,chaste,chasten,chat,chataka,chateau,chati,chatta,chattel,chatter,chatty,chauk,chaus,chaute,chauth,chavish,chaw,chawan,chawer,chawk,chawl,chay,chaya,chayote,chazan,che,cheap,cheapen,cheaply,cheat,cheatee,cheater,chebec,chebel,chebog,chebule,check,checked,checker,checkup,checky,cheder,chee,cheecha,cheek,cheeker,cheeky,cheep,cheeper,cheepy,cheer,cheered,cheerer,cheerio,cheerly,cheery,cheese,cheeser,cheesy,cheet,cheetah,cheeter,cheetie,chef,chegoe,chegre,cheir,chekan,cheke,cheki,chekmak,chela,chelate,chelem,chelide,chello,chelone,chelp,chelys,chemic,chemis,chemise,chemism,chemist,chena,chende,cheng,chenica,cheque,cherem,cherish,cheroot,cherry,chert,cherte,cherty,cherub,chervil,cheson,chess,chessel,chesser,chest,chester,chesty,cheth,chettik,chetty,chevage,cheval,cheve,cheven,chevin,chevise,chevon,chevron,chevy,chew,chewer,chewink,chewy,cheyney,chhatri,chi,chia,chiasm,chiasma,chiaus,chibouk,chibrit,chic,chicane,chichi,chick,chicken,chicker,chicky,chicle,chico,chicory,chicot,chicote,chid,chidden,chide,chider,chiding,chidra,chief,chiefly,chield,chien,chiffer,chiffon,chiggak,chigger,chignon,chigoe,chih,chihfu,chikara,chil,child,childe,childed,childly,chile,chili,chiliad,chill,chilla,chilled,chiller,chillo,chillum,chilly,chiloma,chilver,chimble,chime,chimer,chimera,chimney,chin,china,chinar,chinch,chincha,chinche,chine,chined,ching,chingma,chinik,chinin,chink,chinker,chinkle,chinks,chinky,chinnam,chinned,chinny,chino,chinoa,chinol,chinse,chint,chintz,chip,chiplet,chipped,chipper,chippy,chips,chiral,chirata,chiripa,chirk,chirm,chiro,chirp,chirper,chirpy,chirr,chirrup,chisel,chit,chitak,chital,chitin,chiton,chitose,chitra,chitter,chitty,chive,chivey,chkalik,chlamyd,chlamys,chlor,chloral,chlore,chloric,chloryl,cho,choana,choate,choaty,chob,choca,chocard,chocho,chock,chocker,choel,choenix,choffer,choga,chogak,chogset,choice,choicy,choil,choiler,choir,chokage,choke,choker,choking,chokra,choky,chol,chola,cholane,cholate,chold,choleic,choler,cholera,choli,cholic,choline,cholla,choller,cholum,chomp,chondre,chonta,choop,choose,chooser,choosy,chop,chopa,chopin,chopine,chopped,chopper,choppy,choragy,choral,chord,chorda,chordal,chorded,chore,chorea,choreal,choree,choregy,choreic,choreus,chorial,choric,chorine,chorion,chorism,chorist,chorogi,choroid,chorook,chort,chorten,chortle,chorus,choryos,chose,chosen,chott,chough,chouka,choup,chous,chouse,chouser,chow,chowder,chowk,chowry,choya,chria,chrism,chrisma,chrisom,chroma,chrome,chromic,chromid,chromo,chromy,chromyl,chronal,chronic,chrotta,chrysal,chrysid,chrysin,chub,chubbed,chubby,chuck,chucker,chuckle,chucky,chuddar,chufa,chuff,chuffy,chug,chugger,chuhra,chukar,chukker,chukor,chulan,chullpa,chum,chummer,chummy,chump,chumpy,chun,chunari,chunga,chunk,chunky,chunner,chunnia,chunter,chupak,chupon,church,churchy,churel,churl,churled,churly,churm,churn,churr,churrus,chut,chute,chuter,chutney,chyack,chyak,chyle,chylify,chyloid,chylous,chymase,chyme,chymia,chymic,chymify,chymous,chypre,chytra,chytrid,cibol,cibory,ciboule,cicad,cicada,cicadid,cicala,cicely,cicer,cichlid,cidarid,cidaris,cider,cig,cigala,cigar,cigua,cilia,ciliary,ciliate,cilice,cilium,cimbia,cimelia,cimex,cimicid,cimline,cinch,cincher,cinclis,cinct,cinder,cindery,cine,cinel,cinema,cinene,cineole,cinerea,cingle,cinnyl,cinque,cinter,cinuran,cion,cipher,cipo,cipolin,cippus,circa,circle,circled,circler,circlet,circuit,circus,circusy,cirque,cirrate,cirri,cirrose,cirrous,cirrus,cirsoid,ciruela,cisco,cise,cisele,cissing,cissoid,cist,cista,cistae,cisted,cistern,cistic,cit,citable,citadel,citator,cite,citee,citer,citess,cithara,cither,citied,citify,citizen,citole,citral,citrate,citrean,citrene,citric,citril,citrin,citrine,citron,citrous,citrus,cittern,citua,city,citydom,cityful,cityish,cive,civet,civic,civics,civil,civilly,civism,civvy,cixiid,clabber,clachan,clack,clacker,clacket,clad,cladine,cladode,cladose,cladus,clag,claggum,claggy,claim,claimer,clairce,claith,claiver,clam,clamant,clamb,clamber,clame,clamer,clammed,clammer,clammy,clamor,clamp,clamper,clan,clang,clangor,clank,clanned,clap,clapnet,clapped,clapper,clapt,claque,claquer,clarain,claret,clarify,clarin,clarion,clarity,clark,claro,clart,clarty,clary,clash,clasher,clashy,clasp,clasper,claspt,class,classed,classer,classes,classic,classis,classy,clastic,clat,clatch,clatter,clatty,claught,clausal,clause,claut,clava,claval,clavate,clave,clavel,claver,clavial,clavier,claviol,clavis,clavola,clavus,clavy,claw,clawed,clawer,clawk,clawker,clay,clayen,clayer,clayey,clayish,clayman,claypan,cleach,clead,cleaded,cleam,cleamer,clean,cleaner,cleanly,cleanse,cleanup,clear,clearer,clearly,cleat,cleave,cleaver,cleche,cleck,cled,cledge,cledgy,clee,cleek,cleeked,cleeky,clef,cleft,clefted,cleg,clem,clement,clench,cleoid,clep,clergy,cleric,clerid,clerisy,clerk,clerkly,cleruch,cletch,cleuch,cleve,clever,clevis,clew,cliack,cliche,click,clicker,clicket,clicky,cliency,client,cliff,cliffed,cliffy,clift,clifty,clima,climata,climate,climath,climax,climb,climber,clime,clinal,clinch,cline,cling,clinger,clingy,clinia,clinic,clinium,clink,clinker,clinkum,clinoid,clint,clinty,clip,clipei,clipeus,clipped,clipper,clips,clipse,clipt,clique,cliquy,clisere,clit,clitch,clite,clites,clithe,clitia,clition,clitter,clival,clive,clivers,clivis,clivus,cloaca,cloacal,cloak,cloaked,cloam,cloamen,cloamer,clobber,clochan,cloche,clocher,clock,clocked,clocker,clod,clodder,cloddy,clodlet,cloff,clog,clogger,cloggy,cloghad,clogwyn,cloit,clomb,clomben,clonal,clone,clonic,clonism,clonus,cloof,cloop,cloot,clootie,clop,close,closed,closely,closen,closer,closet,closh,closish,closter,closure,clot,clotbur,clote,cloth,clothe,clothes,clothy,clotter,clotty,cloture,cloud,clouded,cloudy,clough,clour,clout,clouted,clouter,clouty,clove,cloven,clovene,clover,clovery,clow,clown,cloy,cloyer,cloying,club,clubbed,clubber,clubby,clubdom,clubman,cluck,clue,cluff,clump,clumpy,clumse,clumsy,clunch,clung,clunk,clupeid,cluster,clutch,cluther,clutter,cly,clyer,clype,clypeal,clypeus,clysis,clysma,clysmic,clyster,cnemial,cnemis,cnicin,cnida,coabode,coach,coachee,coacher,coachy,coact,coactor,coadapt,coadmit,coadore,coaged,coagent,coagula,coaid,coaita,coak,coakum,coal,coalbag,coalbin,coalbox,coaler,coalify,coalize,coalpit,coaly,coaming,coannex,coapt,coarb,coarse,coarsen,coast,coastal,coaster,coat,coated,coatee,coater,coati,coatie,coating,coax,coaxal,coaxer,coaxial,coaxing,coaxy,cob,cobaea,cobalt,cobang,cobbed,cobber,cobbing,cobble,cobbler,cobbly,cobbra,cobby,cobcab,cobego,cobhead,cobia,cobiron,coble,cobless,cobloaf,cobnut,cobola,cobourg,cobra,coburg,cobweb,cobwork,coca,cocaine,cocash,cocause,coccal,cocci,coccid,cocco,coccoid,coccous,coccule,coccus,coccyx,cochal,cochief,cochlea,cock,cockade,cockal,cocked,cocker,cocket,cockeye,cockily,cocking,cockish,cockle,cockled,cockler,cocklet,cockly,cockney,cockpit,cockshy,cockup,cocky,coco,cocoa,cocoach,coconut,cocoon,cocotte,coctile,coction,cocuisa,cocullo,cocuyo,cod,coda,codbank,codder,codding,coddle,coddler,code,codeine,coder,codex,codfish,codger,codhead,codical,codices,codicil,codify,codilla,codille,codist,codling,codman,codo,codol,codon,codworm,coe,coecal,coecum,coed,coelar,coelder,coelect,coelho,coelia,coeliac,coelian,coelin,coeline,coelom,coeloma,coempt,coenact,coenjoy,coenobe,coequal,coerce,coercer,coetus,coeval,coexert,coexist,coff,coffee,coffer,coffin,coffle,coffret,coft,cog,cogence,cogency,cogener,cogent,cogged,cogger,coggie,cogging,coggle,coggly,coghle,cogman,cognac,cognate,cognize,cogon,cogonal,cograil,cogroad,cogue,cogway,cogwood,cohabit,coheir,cohere,coherer,cohibit,coho,cohoba,cohol,cohort,cohosh,cohune,coif,coifed,coign,coigue,coil,coiled,coiler,coiling,coin,coinage,coiner,coinfer,coining,cointer,coiny,coir,coital,coition,coiture,coitus,cojudge,cojuror,coke,cokeman,coker,cokery,coking,coky,col,cola,colane,colarin,colate,colauxe,colback,cold,colder,coldish,coldly,cole,coletit,coleur,coli,colibri,colic,colical,colicky,colima,colin,coling,colitic,colitis,colk,coll,collage,collar,collard,collare,collate,collaud,collect,colleen,college,collery,collet,colley,collide,collie,collied,collier,collin,colline,colling,collins,collock,colloid,collop,collude,collum,colly,collyba,colmar,colobin,colon,colonel,colonic,colony,color,colored,colorer,colorin,colors,colory,coloss,colossi,colove,colp,colpeo,colport,colpus,colt,colter,coltish,colugo,columbo,column,colunar,colure,coly,colyone,colytic,colyum,colza,coma,comaker,comal,comamie,comanic,comart,comate,comb,combat,combed,comber,combine,combing,comble,comboy,combure,combust,comby,come,comedic,comedo,comedy,comely,comenic,comer,comes,comet,cometic,comfit,comfort,comfrey,comfy,comic,comical,comicry,coming,comino,comism,comital,comitia,comity,comma,command,commend,comment,commie,commit,commix,commixt,commode,common,commons,commot,commove,communa,commune,commute,comoid,comose,comourn,comous,compact,company,compare,compart,compass,compear,compeer,compel,compend,compete,compile,complex,complin,complot,comply,compo,compoer,compole,compone,compony,comport,compos,compose,compost,compote,compreg,compter,compute,comrade,con,conacre,conal,conamed,conatus,concave,conceal,concede,conceit,concent,concept,concern,concert,conch,concha,conchal,conche,conched,concher,conchy,concile,concise,concoct,concord,concupy,concur,concuss,cond,condemn,condign,condite,condole,condone,condor,conduce,conduct,conduit,condyle,cone,coned,coneen,coneine,conelet,coner,cones,confab,confact,confect,confess,confide,confine,confirm,confix,conflow,conflux,conform,confuse,confute,conga,congeal,congee,conger,congest,congius,congou,conic,conical,conicle,conics,conidia,conifer,conima,conin,conine,conject,conjoin,conjure,conjury,conk,conker,conkers,conky,conn,connach,connate,connect,conner,connex,conning,connive,connote,conoid,conopid,conquer,conred,consent,consign,consist,consol,console,consort,conspue,constat,consul,consult,consume,consute,contact,contain,conte,contect,contemn,content,conter,contest,context,contise,conto,contort,contour,contra,control,contund,contuse,conure,conus,conusee,conusor,conuzee,conuzor,convect,convene,convent,convert,conveth,convex,convey,convict,convive,convoke,convoy,cony,coo,cooba,coodle,cooee,cooer,coof,cooing,cooja,cook,cookdom,cookee,cooker,cookery,cooking,cookish,cookout,cooky,cool,coolant,coolen,cooler,coolie,cooling,coolish,coolly,coolth,coolung,cooly,coom,coomb,coomy,coon,cooncan,coonily,coontie,coony,coop,cooper,coopery,cooree,coorie,cooser,coost,coot,cooter,coothay,cootie,cop,copa,copable,copaene,copaiba,copaiye,copal,copalm,copart,coparty,cope,copei,copeman,copen,copepod,coper,coperta,copied,copier,copilot,coping,copious,copis,copist,copita,copolar,copped,copper,coppery,coppet,coppice,coppin,copping,copple,coppled,coppy,copr,copra,coprose,copse,copsing,copsy,copter,copula,copular,copus,copy,copycat,copyism,copyist,copyman,coque,coquet,coquina,coquita,coquito,cor,cora,corach,coracle,corah,coraise,coral,coraled,coram,coranto,corban,corbeau,corbeil,corbel,corbie,corbula,corcass,corcir,cord,cordage,cordant,cordate,cordax,corded,cordel,corder,cordial,cordies,cording,cordite,cordoba,cordon,cordy,cordyl,core,corebel,cored,coreid,coreign,corella,corer,corf,corge,corgi,corial,coriin,coring,corinne,corium,cork,corkage,corke,corked,corker,corking,corkish,corkite,corky,corm,cormel,cormoid,cormous,cormus,corn,cornage,cornbin,corncob,cornea,corneal,cornein,cornel,corner,cornet,corneum,cornic,cornice,cornin,corning,cornu,cornual,cornule,cornute,cornuto,corny,coroa,corody,corol,corolla,corona,coronad,coronae,coronal,coroner,coronet,corozo,corp,corpora,corps,corpse,corpus,corrade,corral,correal,correct,corrie,corrige,corrode,corrupt,corsac,corsage,corsair,corse,corset,corsie,corsite,corta,cortege,cortex,cortez,cortin,cortina,coruco,coruler,corupay,corver,corvina,corvine,corvoid,coryl,corylin,corymb,coryza,cos,cosaque,coscet,coseat,cosec,cosech,coseism,coset,cosh,cosher,coshery,cosily,cosine,cosmic,cosmism,cosmist,cosmos,coss,cossas,cosse,cosset,cossid,cost,costa,costal,costar,costard,costate,costean,coster,costing,costive,costly,costrel,costula,costume,cosy,cot,cotch,cote,coteful,coterie,coth,cothe,cothish,cothon,cothurn,cothy,cotidal,cotise,cotland,cotman,coto,cotoin,cotoro,cotrine,cotset,cotta,cottage,cotte,cotted,cotter,cottid,cottier,cottoid,cotton,cottony,cotty,cotuit,cotula,cotutor,cotwin,cotwist,cotyla,cotylar,cotype,couac,coucal,couch,couched,couchee,coucher,couchy,coude,coudee,coue,cougar,cough,cougher,cougnar,coul,could,coulee,coulomb,coulure,couma,coumara,council,counite,counsel,count,counter,countor,country,county,coup,coupage,coupe,couped,coupee,couper,couple,coupled,coupler,couplet,coupon,coupure,courage,courant,courap,courb,courge,courida,courier,couril,courlan,course,coursed,courser,court,courter,courtin,courtly,cousin,cousiny,coutel,couter,couth,couthie,coutil,couvade,couxia,covado,cove,coved,covent,cover,covered,coverer,covert,covet,coveter,covey,covid,covin,coving,covisit,covite,cow,cowal,coward,cowardy,cowbane,cowbell,cowbind,cowbird,cowboy,cowdie,coween,cower,cowfish,cowgate,cowgram,cowhage,cowheel,cowherb,cowherd,cowhide,cowhorn,cowish,cowitch,cowl,cowle,cowled,cowlick,cowlike,cowling,cowman,cowpath,cowpea,cowpen,cowpock,cowpox,cowrie,cowroid,cowshed,cowskin,cowslip,cowtail,cowweed,cowy,cowyard,cox,coxa,coxal,coxcomb,coxite,coxitis,coxy,coy,coyan,coydog,coyish,coyly,coyness,coynye,coyo,coyol,coyote,coypu,coyure,coz,coze,cozen,cozener,cozier,cozily,cozy,crab,crabbed,crabber,crabby,craber,crablet,crabman,crack,cracked,cracker,crackle,crackly,cracky,craddy,cradge,cradle,cradler,craft,crafty,crag,craggan,cragged,craggy,craichy,crain,craisey,craizey,crajuru,crake,crakow,cram,crambe,crambid,cramble,crambly,crambo,crammer,cramp,cramped,cramper,crampet,crampon,crampy,cran,cranage,crance,crane,craner,craney,crania,craniad,cranial,cranian,cranic,cranium,crank,cranked,cranker,crankle,crankly,crankum,cranky,crannog,cranny,crants,crap,crapaud,crape,crappie,crappin,crapple,crappo,craps,crapy,crare,crash,crasher,crasis,crass,crassly,cratch,crate,crater,craunch,cravat,crave,craven,craver,craving,cravo,craw,crawdad,crawful,crawl,crawler,crawley,crawly,crawm,crawtae,crayer,crayon,craze,crazed,crazily,crazy,crea,creagh,creaght,creak,creaker,creaky,cream,creamer,creamy,creance,creant,crease,creaser,creasy,creat,create,creatic,creator,creche,credent,credit,cree,creed,creedal,creeded,creek,creeker,creeky,creel,creeler,creem,creen,creep,creeper,creepie,creepy,creese,creesh,creeshy,cremate,cremone,cremor,cremule,crena,crenate,crenel,crenele,crenic,crenula,creole,creosol,crepe,crepine,crepon,crept,crepy,cresol,cresoxy,cress,cressed,cresset,cresson,cressy,crest,crested,cresyl,creta,cretic,cretify,cretin,cretion,crevice,crew,crewel,crewer,crewman,crib,cribber,cribble,cribo,cribral,cric,crick,cricket,crickey,crickle,cricoid,cried,crier,criey,crig,crile,crime,crimine,crimp,crimper,crimple,crimpy,crimson,crin,crinal,crine,crined,crinet,cringe,cringer,cringle,crinite,crink,crinkle,crinkly,crinoid,crinose,crinula,cripes,cripple,cripply,crises,crisic,crisis,crisp,crisped,crisper,crisply,crispy,criss,crissal,crissum,crista,critch,crith,critic,crizzle,cro,croak,croaker,croaky,croc,crocard,croceic,crocein,croche,crochet,croci,crocin,crock,crocker,crocket,crocky,crocus,croft,crofter,crome,crone,cronet,cronish,cronk,crony,crood,croodle,crook,crooked,crooken,crookle,crool,croon,crooner,crop,cropman,croppa,cropper,croppie,croppy,croquet,crore,crosa,crosier,crosnes,cross,crosse,crossed,crosser,crossly,crotal,crotalo,crotch,crotchy,crotin,crottle,crotyl,crouch,croup,croupal,croupe,croupy,crouse,crout,croute,crouton,crow,crowbar,crowd,crowded,crowder,crowdy,crower,crowhop,crowing,crowl,crown,crowned,crowner,crowtoe,croy,croyden,croydon,croze,crozer,crozzle,crozzly,crubeen,cruce,cruces,cruche,crucial,crucian,crucify,crucily,cruck,crude,crudely,crudity,cruel,cruelly,cruels,cruelty,cruent,cruet,cruety,cruise,cruiser,cruive,cruller,crum,crumb,crumber,crumble,crumbly,crumby,crumen,crumlet,crummie,crummy,crump,crumper,crumpet,crumple,crumply,crumpy,crunch,crunchy,crunk,crunkle,crunode,crunt,cruor,crupper,crural,crureus,crus,crusade,crusado,cruse,crush,crushed,crusher,crusie,crusily,crust,crusta,crustal,crusted,cruster,crusty,crutch,cruth,crutter,crux,cry,cryable,crybaby,crying,cryogen,cryosel,crypt,crypta,cryptal,crypted,cryptic,crystal,crystic,csardas,ctene,ctenoid,cuadra,cuarta,cub,cubage,cubbing,cubbish,cubby,cubdom,cube,cubeb,cubelet,cuber,cubhood,cubi,cubic,cubica,cubical,cubicle,cubicly,cubism,cubist,cubit,cubital,cubited,cubito,cubitus,cuboid,cuck,cuckold,cuckoo,cuculla,cud,cudava,cudbear,cudden,cuddle,cuddly,cuddy,cudgel,cudweed,cue,cueball,cueca,cueist,cueman,cuerda,cuesta,cuff,cuffer,cuffin,cuffy,cuinage,cuir,cuirass,cuisine,cuisse,cuissen,cuisten,cuke,culbut,culebra,culet,culeus,culgee,culicid,cull,culla,cullage,culler,cullet,culling,cullion,cullis,cully,culm,culmen,culmy,culotte,culpa,culpose,culprit,cult,cultch,cultic,cultish,cultism,cultist,cultual,culture,cultus,culver,culvert,cum,cumal,cumay,cumbent,cumber,cumbha,cumbly,cumbre,cumbu,cumene,cumenyl,cumhal,cumic,cumidin,cumin,cuminal,cuminic,cuminol,cuminyl,cummer,cummin,cumol,cump,cumshaw,cumular,cumuli,cumulus,cumyl,cuneal,cuneate,cunette,cuneus,cunila,cunjah,cunjer,cunner,cunning,cunye,cuorin,cup,cupay,cupcake,cupel,cupeler,cupful,cuphead,cupidon,cupless,cupman,cupmate,cupola,cupolar,cupped,cupper,cupping,cuppy,cuprene,cupric,cupride,cuprite,cuproid,cuprose,cuprous,cuprum,cupseed,cupula,cupule,cur,curable,curably,curacao,curacy,curare,curate,curatel,curatic,curator,curb,curber,curbing,curby,curcas,curch,curd,curdle,curdler,curdly,curdy,cure,curer,curette,curfew,curial,curiate,curie,curin,curine,curing,curio,curiosa,curioso,curious,curite,curium,curl,curled,curler,curlew,curlike,curlily,curling,curly,curn,curney,curnock,curple,curr,currach,currack,curragh,currant,current,curried,currier,currish,curry,cursal,curse,cursed,curser,curship,cursive,cursor,cursory,curst,curstly,cursus,curt,curtail,curtain,curtal,curtate,curtesy,curtly,curtsy,curua,curuba,curule,cururo,curvant,curvate,curve,curved,curver,curvet,curvity,curvous,curvy,cuscus,cusec,cush,cushag,cushat,cushaw,cushion,cushy,cusie,cusk,cusp,cuspal,cuspate,cusped,cuspid,cuspule,cuss,cussed,cusser,cusso,custard,custody,custom,customs,cut,cutaway,cutback,cutch,cutcher,cute,cutely,cutheal,cuticle,cutie,cutin,cutis,cutitis,cutlass,cutler,cutlery,cutlet,cutling,cutlips,cutoff,cutout,cutover,cuttage,cuttail,cutted,cutter,cutting,cuttle,cuttler,cuttoo,cutty,cutup,cutweed,cutwork,cutworm,cuvette,cuvy,cuya,cwierc,cwm,cyan,cyanate,cyanean,cyanic,cyanide,cyanin,cyanine,cyanite,cyanize,cyanol,cyanole,cyanose,cyanus,cyath,cyathos,cyathus,cycad,cyclane,cyclar,cyclas,cycle,cyclene,cycler,cyclian,cyclic,cyclide,cycling,cyclism,cyclist,cyclize,cycloid,cyclone,cyclope,cyclopy,cyclose,cyclus,cyesis,cygnet,cygnine,cyke,cylix,cyma,cymar,cymba,cymbal,cymbalo,cymbate,cyme,cymelet,cymene,cymling,cymoid,cymose,cymous,cymule,cynebot,cynic,cynical,cynipid,cynism,cynoid,cyp,cypre,cypres,cypress,cyprine,cypsela,cyrus,cyst,cystal,cysted,cystic,cystid,cystine,cystis,cystoid,cystoma,cystose,cystous,cytase,cytasic,cytitis,cytode,cytoid,cytoma,cyton,cytost,cytula,czar,czardas,czardom,czarian,czaric,czarina,czarish,czarism,czarist,d,da,daalder,dab,dabb,dabba,dabber,dabble,dabbler,dabby,dablet,daboia,daboya,dabster,dace,dacite,dacitic,dacker,dacoit,dacoity,dacryon,dactyl,dad,dada,dadap,dadder,daddle,daddock,daddy,dade,dado,dae,daedal,daemon,daemony,daer,daff,daffery,daffing,daffish,daffle,daffy,daft,daftly,dag,dagaba,dagame,dagassa,dagesh,dagga,dagger,daggers,daggle,daggly,daggy,daghesh,daglock,dagoba,dags,dah,dahoon,daidle,daidly,daiker,daikon,daily,daimen,daimio,daimon,dain,daincha,dainty,daira,dairi,dairy,dais,daisied,daisy,daitya,daiva,dak,daker,dakir,dal,dalar,dale,daleman,daler,daleth,dali,dalk,dallack,dalle,dalles,dallier,dally,dalt,dalteen,dalton,dam,dama,damage,damager,damages,daman,damask,damasse,dambose,dambrod,dame,damiana,damie,damier,damine,damlike,dammar,damme,dammer,dammish,damn,damned,damner,damnify,damning,damnous,damp,dampang,damped,dampen,damper,damping,dampish,damply,dampy,damsel,damson,dan,danaid,danaide,danaine,danaite,dance,dancer,dancery,dancing,dand,danda,dander,dandify,dandily,dandle,dandler,dandy,dang,danger,dangle,dangler,danglin,danio,dank,dankish,dankly,danli,danner,dannock,dansant,danta,danton,dao,daoine,dap,daphnin,dapicho,dapico,dapifer,dapper,dapple,dappled,dar,darac,daraf,darat,darbha,darby,dardaol,dare,dareall,dareful,darer,daresay,darg,dargah,darger,dargue,dari,daribah,daric,daring,dariole,dark,darken,darkful,darkish,darkle,darkly,darky,darling,darn,darned,darnel,darner,darnex,darning,daroga,daroo,darr,darrein,darst,dart,dartars,darter,darting,dartle,dartman,dartoic,dartoid,dartos,dartre,darts,darzee,das,dash,dashed,dashee,dasheen,dasher,dashing,dashpot,dashy,dasi,dasnt,dassie,dassy,dastard,dastur,dasturi,dasyure,data,datable,datably,dataria,datary,datch,datcha,date,dater,datil,dating,dation,datival,dative,dattock,datum,daturic,daub,daube,dauber,daubery,daubing,dauby,daud,daunch,dauncy,daunt,daunter,daunton,dauphin,daut,dautie,dauw,davach,daven,daver,daverdy,davit,davoch,davy,davyne,daw,dawdle,dawdler,dawdy,dawish,dawkin,dawn,dawning,dawny,dawtet,dawtit,dawut,day,dayal,daybeam,daybook,daydawn,dayfly,dayless,daylit,daylong,dayman,daymare,daymark,dayroom,days,daysman,daystar,daytale,daytide,daytime,dayward,daywork,daywrit,daze,dazed,dazedly,dazy,dazzle,dazzler,de,deacon,dead,deaden,deader,deadeye,deading,deadish,deadly,deadman,deadpan,deadpay,deaf,deafen,deafish,deafly,deair,deal,dealate,dealer,dealing,dealt,dean,deaner,deanery,deaness,dear,dearie,dearly,dearth,deary,deash,deasil,death,deathin,deathly,deathy,deave,deavely,deb,debacle,debadge,debar,debark,debase,debaser,debate,debater,debauch,debby,debeige,deben,debile,debind,debit,debord,debosh,debouch,debride,debrief,debris,debt,debtee,debtful,debtor,debunk,debus,debut,decad,decadal,decade,decadic,decafid,decagon,decal,decamp,decan,decanal,decane,decani,decant,decap,decapod,decarch,decare,decart,decast,decate,decator,decatyl,decay,decayed,decayer,decease,deceit,deceive,decence,decency,decene,decent,decenyl,decern,decess,deciare,decibel,decide,decided,decider,decidua,decil,decile,decima,decimal,deck,decke,decked,deckel,decker,deckie,decking,deckle,declaim,declare,declass,decline,declive,decoat,decoct,decode,decoic,decoke,decolor,decorum,decoy,decoyer,decream,decree,decreer,decreet,decrete,decrew,decrial,decried,decrier,decrown,decry,decuman,decuple,decuria,decurve,decury,decus,decyl,decylic,decyne,dedimus,dedo,deduce,deduct,dee,deed,deedbox,deedeed,deedful,deedily,deedy,deem,deemer,deemie,deep,deepen,deeping,deepish,deeply,deer,deerdog,deerlet,deevey,deface,defacer,defalk,defame,defamed,defamer,defassa,defat,default,defease,defeat,defect,defence,defend,defense,defer,defial,defiant,defiber,deficit,defier,defile,defiled,defiler,define,defined,definer,deflate,deflect,deflesh,deflex,defog,deforce,deform,defoul,defraud,defray,defrock,defrost,deft,deftly,defunct,defuse,defy,deg,degas,degauss,degerm,degged,degger,deglaze,degorge,degrade,degrain,degree,degu,degum,degust,dehair,dehisce,dehorn,dehors,dehort,dehull,dehusk,deice,deicer,deicide,deictic,deific,deifier,deiform,deify,deign,deink,deinos,deiseal,deism,deist,deistic,deity,deject,dejecta,dejeune,dekko,dekle,delaine,delapse,delate,delater,delator,delawn,delay,delayer,dele,delead,delenda,delete,delf,delft,delible,delict,delight,delime,delimit,delint,deliver,dell,deloul,delouse,delta,deltaic,deltal,deltic,deltoid,delude,deluder,deluge,deluxe,delve,delver,demagog,demal,demand,demarch,demark,demast,deme,demean,demency,dement,demerit,demesne,demi,demibob,demidog,demigod,demihag,demiman,demiowl,demiox,demiram,demirep,demise,demiss,demit,demivol,demob,demoded,demoid,demon,demonic,demonry,demos,demote,demotic,demount,demulce,demure,demy,den,denaro,denary,denat,denda,dendral,dendric,dendron,dene,dengue,denial,denier,denim,denizen,dennet,denote,dense,densely,densen,densher,densify,density,dent,dental,dentale,dentary,dentata,dentate,dentel,denter,dentex,dentil,dentile,dentin,dentine,dentist,dentoid,denture,denty,denude,denuder,deny,deodand,deodara,deota,depa,depaint,depark,depart,depas,depass,depend,depeter,dephase,depict,deplane,deplete,deplore,deploy,deplume,deplump,depoh,depone,deport,deposal,depose,deposer,deposit,depot,deprave,depress,deprint,deprive,depside,depth,depthen,depute,deputy,dequeen,derah,deraign,derail,derange,derat,derate,derater,deray,derby,dere,dereism,deric,deride,derider,derival,derive,derived,deriver,derm,derma,dermad,dermal,dermic,dermis,dermoid,dermol,dern,dernier,derout,derrick,derride,derries,derry,dertrum,derust,dervish,desalt,desand,descale,descant,descend,descent,descort,descry,deseed,deseret,desert,deserve,desex,desi,desight,design,desire,desired,desirer,desist,desize,desk,deslime,desma,desman,desmic,desmid,desmine,desmoid,desmoma,desmon,despair,despect,despise,despite,despoil,despond,despot,dess,dessa,dessert,dessil,destain,destine,destiny,destour,destroy,desuete,desugar,desyl,detach,detail,detain,detar,detax,detect,detent,deter,deterge,detest,detin,detinet,detinue,detour,detract,detrain,detrude,detune,detur,deuce,deuced,deul,deuton,dev,deva,devall,devalue,devance,devast,devata,develin,develop,devest,deviant,deviate,device,devil,deviled,deviler,devilet,devilry,devily,devious,devisal,devise,devisee,deviser,devisor,devoice,devoid,devoir,devolve,devote,devoted,devotee,devoter,devour,devout,devow,devvel,dew,dewan,dewanee,dewater,dewax,dewbeam,dewclaw,dewcup,dewdamp,dewdrop,dewer,dewfall,dewily,dewlap,dewless,dewlike,dewool,deworm,dewret,dewtry,dewworm,dewy,dexter,dextrad,dextral,dextran,dextrin,dextro,dey,deyship,dezinc,dha,dhabb,dhai,dhak,dhamnoo,dhan,dhangar,dhanuk,dhanush,dharana,dharani,dharma,dharna,dhaura,dhauri,dhava,dhaw,dheri,dhobi,dhole,dhoni,dhoon,dhoti,dhoul,dhow,dhu,dhunchi,dhurra,dhyal,dhyana,di,diabase,diacid,diacle,diacope,diact,diactin,diadem,diaderm,diaene,diagram,dial,dialect,dialer,dialin,dialing,dialist,dialkyl,diallel,diallyl,dialyze,diamb,diambic,diamide,diamine,diamond,dian,diander,dianite,diapase,diapasm,diaper,diaplex,diapsid,diarch,diarchy,diarial,diarian,diarist,diarize,diary,diastem,diaster,diasyrm,diatom,diaulic,diaulos,diaxial,diaxon,diazide,diazine,diazoic,diazole,diazoma,dib,dibase,dibasic,dibatag,dibber,dibble,dibbler,dibbuk,dibhole,dibrach,dibrom,dibs,dicast,dice,dicebox,dicecup,diceman,dicer,dicetyl,dich,dichas,dichord,dicing,dick,dickens,dicker,dickey,dicky,dicolic,dicolon,dicot,dicotyl,dicta,dictate,dictic,diction,dictum,dicycle,did,didder,diddle,diddler,diddy,didelph,didie,didine,didle,didna,didnt,didromy,didst,didym,didymia,didymus,die,dieb,dieback,diedral,diedric,diehard,dielike,diem,diene,dier,diesel,diesis,diet,dietal,dietary,dieter,diethyl,dietic,dietics,dietine,dietist,diewise,diffame,differ,diffide,difform,diffuse,dig,digamma,digamy,digenic,digeny,digest,digger,digging,dight,dighter,digit,digital,digitus,diglot,diglyph,digmeat,dignify,dignity,digram,digraph,digress,digs,dihalo,diiamb,diiodo,dika,dikage,dike,diker,diketo,dikkop,dilate,dilated,dilater,dilator,dildo,dilemma,dilker,dill,dilli,dillier,dilling,dillue,dilluer,dilly,dilo,dilogy,diluent,dilute,diluted,dilutee,diluter,dilutor,diluvia,dim,dimber,dimble,dime,dimer,dimeran,dimeric,dimeter,dimiss,dimit,dimity,dimly,dimmed,dimmer,dimmest,dimmet,dimmish,dimness,dimoric,dimorph,dimple,dimply,dimps,dimpsy,din,dinar,dinder,dindle,dine,diner,dineric,dinero,dinette,ding,dingar,dingbat,dinge,dingee,dinghee,dinghy,dingily,dingle,dingly,dingo,dingus,dingy,dinic,dinical,dining,dinitro,dink,dinkey,dinkum,dinky,dinmont,dinner,dinnery,dinomic,dinsome,dint,dinus,diobely,diobol,diocese,diode,diodont,dioecy,diol,dionise,dionym,diopter,dioptra,dioptry,diorama,diorite,diose,diosmin,diota,diotic,dioxane,dioxide,dioxime,dioxy,dip,dipetto,diphase,diphead,diplex,diploe,diploic,diploid,diplois,diploma,diplont,diplopy,dipnoan,dipnoid,dipode,dipodic,dipody,dipolar,dipole,diporpa,dipped,dipper,dipping,dipsas,dipsey,dipter,diptote,diptych,dipware,dipygus,dipylon,dipyre,dird,dirdum,dire,direct,direful,direly,dirempt,dirge,dirgler,dirhem,dirk,dirl,dirndl,dirt,dirten,dirtily,dirty,dis,disable,disagio,disally,disarm,disavow,disawa,disazo,disband,disbar,disbark,disbody,disbud,disbury,disc,discage,discal,discard,discase,discept,discern,discerp,discoid,discord,discous,discus,discuss,disdain,disdub,disease,disedge,diseme,disemic,disfame,disfen,disgig,disglut,disgood,disgown,disgulf,disgust,dish,dished,dishelm,disher,dishful,dishome,dishorn,dishpan,dishrag,disject,disjoin,disjune,disk,disleaf,dislike,dislimn,dislink,dislip,disload,dislove,dismain,dismal,disman,dismark,dismask,dismast,dismay,disme,dismiss,disna,disnest,disnew,disobey,disodic,disomic,disomus,disorb,disown,dispark,dispart,dispel,dispend,display,dispone,dispope,disport,dispose,dispost,dispulp,dispute,disrank,disrate,disring,disrobe,disroof,disroot,disrump,disrupt,diss,disseat,dissect,dissent,dissert,dissoul,dissuit,distad,distaff,distain,distal,distale,distant,distend,distent,distich,distill,distome,distort,distune,disturb,disturn,disuse,diswood,disyoke,dit,dita,dital,ditch,ditcher,dite,diter,dither,dithery,dithion,ditolyl,ditone,dittamy,dittany,dittay,dittied,ditto,ditty,diurnal,diurne,div,diva,divan,divata,dive,divel,diver,diverge,divers,diverse,divert,divest,divide,divided,divider,divine,diviner,diving,divinyl,divisor,divorce,divot,divoto,divulge,divulse,divus,divvy,diwata,dixie,dixit,dixy,dizain,dizen,dizoic,dizzard,dizzily,dizzy,djave,djehad,djerib,djersa,do,doab,doable,doarium,doat,doated,doater,doating,doatish,dob,dobbed,dobber,dobbin,dobbing,dobby,dobe,dobla,doblon,dobra,dobrao,dobson,doby,doc,docent,docible,docile,docity,dock,dockage,docken,docker,docket,dockize,dockman,docmac,doctor,doctrix,dod,dodd,doddart,dodded,dodder,doddery,doddie,dodding,doddle,doddy,dodecyl,dodge,dodger,dodgery,dodgily,dodgy,dodkin,dodlet,dodman,dodo,dodoism,dodrans,doe,doebird,doeglic,doer,does,doeskin,doesnt,doest,doff,doffer,dog,dogal,dogate,dogbane,dogbite,dogblow,dogboat,dogbolt,dogbush,dogcart,dogdom,doge,dogedom,dogface,dogfall,dogfish,dogfoot,dogged,dogger,doggery,doggess,doggish,doggo,doggone,doggrel,doggy,doghead,doghole,doghood,dogie,dogless,doglike,dogly,dogma,dogman,dogmata,dogs,dogship,dogskin,dogtail,dogtie,dogtrot,dogvane,dogwood,dogy,doigt,doiled,doily,doina,doing,doings,doit,doited,doitkin,doke,dokhma,dola,dolabra,dolcan,dolcian,dolcino,doldrum,dole,doleful,dolent,doless,doli,dolia,dolina,doline,dolium,doll,dollar,dolldom,dollier,dollish,dollop,dolly,dolman,dolmen,dolor,dolose,dolous,dolphin,dolt,doltish,dom,domain,domal,domba,dome,doment,domer,domett,domic,domical,domine,dominie,domino,dominus,domite,domitic,domn,domnei,domoid,dompt,domy,don,donable,donary,donate,donated,donatee,donator,donax,done,donee,doney,dong,donga,dongon,donjon,donkey,donna,donnert,donnish,donnism,donnot,donor,donship,donsie,dont,donum,doob,doocot,doodab,doodad,doodle,doodler,dooja,dook,dooket,dookit,dool,doolee,dooley,dooli,doolie,dooly,doom,doomage,doomer,doomful,dooms,doon,door,doorba,doorboy,doored,doorman,doorway,dop,dopa,dopatta,dope,doper,dopey,dopper,doppia,dor,dorab,dorad,dorado,doree,dorhawk,doria,dorje,dorlach,dorlot,dorm,dormant,dormer,dormie,dormy,dorn,dorneck,dornic,dornick,dornock,dorp,dorsad,dorsal,dorsale,dorsel,dorser,dorsum,dorter,dorts,dorty,doruck,dory,dos,dosa,dosadh,dosage,dose,doser,dosis,doss,dossal,dossel,dosser,dossier,dossil,dossman,dot,dotage,dotal,dotard,dotardy,dotate,dotchin,dote,doted,doter,doting,dotish,dotkin,dotless,dotlike,dotted,dotter,dottily,dotting,dottle,dottler,dotty,doty,douar,double,doubled,doubler,doublet,doubly,doubt,doubter,douc,douce,doucely,doucet,douche,doucin,doucine,doudle,dough,dought,doughty,doughy,doum,doup,douping,dour,dourine,dourly,douse,douser,dout,douter,doutous,dove,dovecot,dovekey,dovekie,dovelet,dover,dovish,dow,dowable,dowager,dowcet,dowd,dowdily,dowdy,dowed,dowel,dower,doweral,dowery,dowf,dowie,dowily,dowitch,dowl,dowlas,dowless,down,downby,downcry,downcut,downer,downily,downlie,downset,downway,downy,dowp,dowry,dowse,dowser,dowset,doxa,doxy,doze,dozed,dozen,dozener,dozenth,dozer,dozily,dozy,dozzled,drab,drabbet,drabble,drabby,drably,drachm,drachma,dracma,draff,draffy,draft,draftee,drafter,drafty,drag,dragade,dragbar,dragged,dragger,draggle,draggly,draggy,dragman,dragnet,drago,dragon,dragoon,dragsaw,drail,drain,draine,drained,drainer,drake,dram,drama,dramm,dramme,drammed,drammer,drang,drank,drant,drape,draper,drapery,drassid,drastic,drat,drate,dratted,draught,dravya,draw,drawarm,drawbar,drawboy,drawcut,drawee,drawer,drawers,drawing,drawk,drawl,drawler,drawly,drawn,drawnet,drawoff,drawout,drawrod,dray,drayage,drayman,drazel,dread,dreader,dreadly,dream,dreamer,dreamsy,dreamt,dreamy,drear,drearly,dreary,dredge,dredger,dree,dreep,dreepy,dreg,dreggy,dregs,drench,dreng,dress,dressed,dresser,dressy,drest,drew,drewite,drias,drib,dribble,driblet,driddle,dried,drier,driest,drift,drifter,drifty,drill,driller,drillet,dringle,drink,drinker,drinn,drip,dripper,dripple,drippy,drisk,drivage,drive,drivel,driven,driver,driving,drizzle,drizzly,droddum,drogh,drogher,drogue,droit,droll,drolly,drome,dromic,dromond,dromos,drona,dronage,drone,droner,drongo,dronish,drony,drool,droop,drooper,droopt,droopy,drop,droplet,dropman,dropout,dropper,droppy,dropsy,dropt,droshky,drosky,dross,drossel,drosser,drossy,drostdy,droud,drought,drouk,drove,drover,drovy,drow,drown,drowner,drowse,drowsy,drub,drubber,drubbly,drucken,drudge,drudger,druery,drug,drugger,drugget,druggy,drugman,druid,druidic,druidry,druith,drum,drumble,drumlin,drumly,drummer,drummy,drung,drungar,drunk,drunken,drupal,drupe,drupel,druse,drusy,druxy,dry,dryad,dryadic,dryas,drycoal,dryfoot,drying,dryish,dryly,dryness,dryster,dryth,duad,duadic,dual,duali,dualin,dualism,dualist,duality,dualize,dually,duarch,duarchy,dub,dubash,dubb,dubba,dubbah,dubber,dubbing,dubby,dubiety,dubious,dubs,ducal,ducally,ducape,ducat,ducato,ducdame,duces,duchess,duchy,duck,ducker,duckery,duckie,ducking,duckpin,duct,ducted,ductile,duction,ductor,ductule,dud,dudaim,dudder,duddery,duddies,dude,dudeen,dudgeon,dudine,dudish,dudism,dudler,dudley,dudman,due,duel,dueler,dueling,duelist,duello,dueness,duenna,duer,duet,duff,duffel,duffer,duffing,dufoil,dufter,duftery,dug,dugal,dugdug,duggler,dugong,dugout,dugway,duhat,duiker,duim,duit,dujan,duke,dukedom,dukely,dukery,dukhn,dukker,dulbert,dulcet,dulcian,dulcify,dulcose,duledge,duler,dulia,dull,dullard,duller,dullery,dullify,dullish,dullity,dully,dulosis,dulotic,dulse,dult,dultie,duly,dum,duma,dumaist,dumb,dumba,dumbcow,dumbly,dumdum,dummel,dummy,dumose,dump,dumpage,dumper,dumpily,dumping,dumpish,dumple,dumpoke,dumpy,dumsola,dun,dunair,dunal,dunbird,dunce,duncery,dunch,duncify,duncish,dunder,dune,dunfish,dung,dungeon,dunger,dungol,dungon,dungy,dunite,dunk,dunker,dunlin,dunnage,dunne,dunner,dunness,dunnish,dunnite,dunnock,dunny,dunst,dunt,duntle,duny,duo,duodena,duodene,duole,duopod,duopoly,duotone,duotype,dup,dupable,dupe,dupedom,duper,dupery,dupion,dupla,duple,duplet,duplex,duplify,duplone,duppy,dura,durable,durably,durain,dural,duramen,durance,durant,durax,durbar,dure,durene,durenol,duress,durgan,durian,during,durity,durmast,durn,duro,durra,durrie,durrin,durry,durst,durwaun,duryl,dusack,duscle,dush,dusio,dusk,dusken,duskily,duskish,duskly,dusky,dust,dustbin,dustbox,dustee,duster,dustily,dusting,dustman,dustpan,dustuck,dusty,dutch,duteous,dutied,dutiful,dutra,duty,duumvir,duvet,duvetyn,dux,duyker,dvaita,dvandva,dwale,dwalm,dwang,dwarf,dwarfy,dwell,dwelled,dweller,dwelt,dwindle,dwine,dyad,dyadic,dyarchy,dyaster,dyce,dye,dyeable,dyeing,dyer,dyester,dyeware,dyeweed,dyewood,dying,dyingly,dyke,dyker,dynamic,dynamis,dynamo,dynast,dynasty,dyne,dyphone,dyslogy,dysnomy,dyspnea,dystome,dysuria,dysuric,dzeren,e,ea,each,eager,eagerly,eagle,eagless,eaglet,eagre,ean,ear,earache,earbob,earcap,eardrop,eardrum,eared,earful,earhole,earing,earl,earlap,earldom,earless,earlet,earlike,earlish,earlock,early,earmark,earn,earner,earnest,earnful,earning,earpick,earplug,earring,earshot,earsore,eartab,earth,earthed,earthen,earthly,earthy,earwax,earwig,earworm,earwort,ease,easeful,easel,easer,easier,easiest,easily,easing,east,easter,eastern,easting,easy,eat,eatable,eatage,eaten,eater,eatery,eating,eats,eave,eaved,eaver,eaves,ebb,ebbman,eboe,ebon,ebonist,ebonite,ebonize,ebony,ebriate,ebriety,ebrious,ebulus,eburine,ecad,ecanda,ecarte,ecbatic,ecbole,ecbolic,ecdemic,ecderon,ecdysis,ecesic,ecesis,eche,echea,echelon,echidna,echinal,echinid,echinus,echo,echoer,echoic,echoism,echoist,echoize,ecize,ecklein,eclair,eclat,eclegm,eclegma,eclipse,eclogue,ecoid,ecole,ecology,economy,ecotone,ecotype,ecphore,ecru,ecstasy,ectad,ectal,ectally,ectasia,ectasis,ectatic,ectene,ecthyma,ectiris,ectopia,ectopic,ectopy,ectozoa,ectypal,ectype,eczema,edacity,edaphic,edaphon,edder,eddish,eddo,eddy,edea,edeagra,edeitis,edema,edemic,edenite,edental,edestan,edestin,edge,edged,edgeman,edger,edging,edgrew,edgy,edh,edible,edict,edictal,edicule,edifice,edifier,edify,edit,edital,edition,editor,educand,educate,educe,educive,educt,eductor,eegrass,eel,eelboat,eelbob,eelcake,eeler,eelery,eelfare,eelfish,eellike,eelpot,eelpout,eelshop,eelskin,eelware,eelworm,eely,eer,eerie,eerily,effable,efface,effacer,effect,effects,effendi,effete,effigy,efflate,efflux,efform,effort,effulge,effund,effuse,eft,eftest,egad,egality,egence,egeran,egest,egesta,egg,eggcup,egger,eggfish,egghead,egghot,egging,eggler,eggless,egglike,eggnog,eggy,egilops,egipto,egma,ego,egohood,egoism,egoist,egoity,egoize,egoizer,egol,egomism,egotism,egotist,egotize,egress,egret,eh,eheu,ehlite,ehuawa,eident,eider,eidetic,eidolic,eidolon,eight,eighth,eighty,eigne,eimer,einkorn,eisodic,either,eject,ejecta,ejector,ejoo,ekaha,eke,eker,ekerite,eking,ekka,ekphore,ektene,ektenes,el,elaidic,elaidin,elain,elaine,elance,eland,elanet,elapid,elapine,elapoid,elapse,elastic,elastin,elatcha,elate,elated,elater,elation,elative,elator,elb,elbow,elbowed,elbower,elbowy,elcaja,elchee,eld,elder,elderly,eldest,eldin,elding,eldress,elect,electee,electly,elector,electro,elegant,elegiac,elegist,elegit,elegize,elegy,eleidin,element,elemi,elemin,elench,elenchi,elenge,elevate,eleven,elevon,elf,elfhood,elfic,elfin,elfish,elfkin,elfland,elflike,elflock,elfship,elfwife,elfwort,elicit,elide,elision,elisor,elite,elixir,elk,elkhorn,elkslip,elkwood,ell,ellagic,elle,elleck,ellfish,ellipse,ellops,ellwand,elm,elmy,elocute,elod,eloge,elogium,eloign,elope,eloper,elops,els,else,elsehow,elsin,elt,eluate,elude,eluder,elusion,elusive,elusory,elute,elution,elutor,eluvial,eluvium,elvan,elver,elves,elvet,elvish,elysia,elytral,elytrin,elytron,elytrum,em,emanant,emanate,emanium,emarcid,emball,embalm,embank,embar,embargo,embark,embassy,embathe,embay,embed,embelic,ember,embind,embira,emblaze,emblem,emblema,emblic,embody,embog,embole,embolic,embolo,embolum,embolus,emboly,embosom,emboss,embound,embow,embowed,embowel,embower,embox,embrace,embrail,embroil,embrown,embryo,embryon,embuia,embus,embusk,emcee,eme,emeer,emend,emender,emerald,emerge,emerize,emerse,emersed,emery,emesis,emetic,emetine,emgalla,emigree,eminent,emir,emirate,emit,emitter,emma,emmenic,emmer,emmet,emodin,emoloa,emote,emotion,emotive,empall,empanel,empaper,empark,empasm,empathy,emperor,empery,empire,empiric,emplace,emplane,employ,emplume,emporia,empower,empress,emprise,empt,emptier,emptily,emptins,emption,emptor,empty,empyema,emu,emulant,emulate,emulous,emulsin,emulsor,emyd,emydian,en,enable,enabler,enact,enactor,enaena,enage,enalid,enam,enamber,enamdar,enamel,enamor,enapt,enarbor,enarch,enarm,enarme,enate,enatic,enation,enbrave,encage,encake,encamp,encase,encash,encauma,encave,encell,enchain,enchair,enchant,enchase,enchest,encina,encinal,encist,enclasp,enclave,encloak,enclose,encloud,encoach,encode,encoil,encolor,encomia,encomic,encoop,encore,encowl,encraal,encraty,encreel,encrisp,encrown,encrust,encrypt,encup,encurl,encyst,end,endable,endarch,endaze,endear,ended,endemic,ender,endere,enderon,endevil,endew,endgate,ending,endite,endive,endless,endlong,endmost,endogen,endome,endopod,endoral,endore,endorse,endoss,endotys,endow,endower,endozoa,endue,endura,endure,endurer,endways,endwise,endyma,endymal,endysis,enema,enemy,energic,energid,energy,eneuch,eneugh,enface,enfelon,enfeoff,enfever,enfile,enfiled,enflesh,enfoil,enfold,enforce,enfork,enfoul,enframe,enfree,engage,engaged,engager,engaol,engarb,engaud,engaze,engem,engild,engine,engird,engirt,englad,englobe,engloom,englory,englut,englyn,engobe,engold,engore,engorge,engrace,engraff,engraft,engrail,engrain,engram,engrasp,engrave,engreen,engross,enguard,engulf,enhalo,enhance,enhat,enhaunt,enheart,enhedge,enhelm,enherit,enhusk,eniac,enigma,enisle,enjail,enjamb,enjelly,enjewel,enjoin,enjoy,enjoyer,enkraal,enlace,enlard,enlarge,enleaf,enlief,enlife,enlight,enlink,enlist,enliven,enlock,enlodge,enmask,enmass,enmesh,enmist,enmity,enmoss,ennead,ennerve,enniche,ennoble,ennoic,ennomic,ennui,enocyte,enodal,enoil,enol,enolate,enolic,enolize,enomoty,enoplan,enorm,enough,enounce,enow,enplane,enquire,enquiry,enrace,enrage,enraged,enrange,enrank,enrapt,enray,enrib,enrich,enring,enrive,enrobe,enrober,enrol,enroll,enroot,enrough,enruin,enrut,ens,ensaint,ensand,ensate,enscene,ense,enseam,enseat,enseem,enserf,ensete,enshade,enshawl,enshell,ensign,ensile,ensky,enslave,ensmall,ensnare,ensnarl,ensnow,ensoul,enspell,enstamp,enstar,enstate,ensteel,enstool,enstore,ensuant,ensue,ensuer,ensure,ensurer,ensweep,entach,entad,entail,ental,entame,entasia,entasis,entelam,entente,enter,enteral,enterer,enteria,enteric,enteron,entheal,enthral,enthuse,entia,entice,enticer,entify,entire,entiris,entitle,entity,entoil,entomb,entomic,entone,entopic,entotic,entozoa,entrail,entrain,entrant,entrap,entreat,entree,entropy,entrust,entry,entwine,entwist,enure,enurny,envapor,envault,enveil,envelop,envenom,envied,envier,envious,environ,envoy,envy,envying,enwiden,enwind,enwisen,enwoman,enwomb,enwood,enwound,enwrap,enwrite,enzone,enzooty,enzym,enzyme,enzymic,eoan,eolith,eon,eonism,eophyte,eosate,eoside,eosin,eosinic,eozoon,epacme,epacrid,epact,epactal,epagoge,epanody,eparch,eparchy,epaule,epaulet,epaxial,epee,epeeist,epeiric,epeirid,epergne,epha,ephah,ephebe,ephebic,ephebos,ephebus,ephelis,ephetae,ephete,ephetic,ephod,ephor,ephoral,ephoric,ephorus,ephyra,epibole,epiboly,epic,epical,epicarp,epicede,epicele,epicene,epichil,epicism,epicist,epicly,epicure,epicyte,epidemy,epiderm,epidote,epigeal,epigean,epigeic,epigene,epigone,epigram,epigyne,epigyny,epihyal,epikeia,epilate,epilobe,epimer,epimere,epimyth,epinaos,epinine,epiotic,epipial,episode,epistle,epitaph,epitela,epithem,epithet,epitoke,epitome,epiural,epizoa,epizoal,epizoan,epizoic,epizoon,epoch,epocha,epochal,epode,epodic,eponym,eponymy,epopee,epopt,epoptes,epoptic,epos,epsilon,epulary,epulis,epulo,epuloid,epural,epurate,equable,equably,equal,equally,equant,equate,equator,equerry,equid,equine,equinia,equinox,equinus,equip,equiped,equison,equites,equity,equoid,er,era,erade,eral,eranist,erase,erased,eraser,erasion,erasure,erbia,erbium,erd,erdvark,ere,erect,erecter,erectly,erector,erelong,eremic,eremite,erenach,erenow,erepsin,erept,ereptic,erethic,erg,ergal,ergasia,ergates,ergodic,ergoism,ergon,ergot,ergoted,ergotic,ergotin,ergusia,eria,eric,ericad,erical,ericius,ericoid,erika,erikite,erineum,erinite,erinose,eristic,erizo,erlking,ermelin,ermine,ermined,erminee,ermines,erne,erode,eroded,erodent,erogeny,eros,erose,erosely,erosion,erosive,eroteme,erotic,erotica,erotism,err,errable,errancy,errand,errant,errata,erratic,erratum,errhine,erring,errite,error,ers,ersatz,erth,erthen,erthly,eruc,eruca,erucic,erucin,eruct,erudit,erudite,erugate,erupt,eryngo,es,esca,escalan,escalin,escalop,escape,escapee,escaper,escarp,eschar,eschara,escheat,eschew,escoba,escolar,escort,escribe,escrol,escrow,escudo,esculin,esere,eserine,esexual,eshin,esker,esne,esodic,esotery,espadon,esparto,espave,espial,espier,espinal,espino,esplees,espouse,espy,esquire,ess,essang,essay,essayer,essed,essence,essency,essling,essoin,estadal,estadio,estado,estamp,estate,esteem,ester,estevin,estival,estmark,estoc,estoile,estop,estrade,estray,estre,estreat,estrepe,estrin,estriol,estrone,estrous,estrual,estuary,estufa,estuous,estus,eta,etacism,etacist,etalon,etamine,etch,etcher,etching,eternal,etesian,ethal,ethanal,ethane,ethanol,ethel,ethene,ethenic,ethenol,ethenyl,ether,ethered,etheric,etherin,ethic,ethical,ethics,ethid,ethide,ethine,ethiops,ethmoid,ethnal,ethnic,ethnize,ethnos,ethos,ethoxyl,ethrog,ethyl,ethylic,ethylin,ethyne,ethynyl,etiolin,etna,ettle,etua,etude,etui,etym,etymic,etymon,etypic,eu,euaster,eucaine,euchre,euchred,euclase,eucone,euconic,eucrasy,eucrite,euge,eugenic,eugenol,eugeny,eulalia,eulogia,eulogic,eulogy,eumenid,eunicid,eunomy,eunuch,euonym,euonymy,euouae,eupad,eupathy,eupepsy,euphemy,euphon,euphone,euphony,euphory,euphroe,eupione,euploid,eupnea,eureka,euripus,eurite,eurobin,euryon,eusol,eustyle,eutaxic,eutaxy,eutexia,eutony,evacue,evacuee,evade,evader,evalue,evangel,evanish,evase,evasion,evasive,eve,evejar,evelong,even,evener,evening,evenly,evens,event,eveque,ever,evert,evertor,everwho,every,evestar,evetide,eveweed,evict,evictor,evident,evil,evilly,evince,evirate,evisite,evitate,evocate,evoe,evoke,evoker,evolute,evolve,evolver,evovae,evulse,evzone,ewder,ewe,ewer,ewerer,ewery,ewry,ex,exact,exacter,exactly,exactor,exalate,exalt,exalted,exalter,exam,examen,examine,example,exarate,exarch,exarchy,excamb,excave,exceed,excel,except,excerpt,excess,excide,exciple,excise,excisor,excite,excited,exciter,excitor,exclaim,exclave,exclude,excreta,excrete,excurse,excusal,excuse,excuser,excuss,excyst,exdie,exeat,execute,exedent,exedra,exegete,exempt,exequy,exergue,exert,exes,exeunt,exflect,exhale,exhaust,exhibit,exhort,exhume,exhumer,exigent,exile,exiler,exilian,exilic,exility,exist,exister,exit,exite,exition,exitus,exlex,exocarp,exocone,exode,exoderm,exodic,exodist,exodos,exodus,exody,exogamy,exogen,exogeny,exomion,exomis,exon,exoner,exopod,exordia,exormia,exosmic,exostra,exotic,exotism,expand,expanse,expect,expede,expel,expend,expense,expert,expiate,expire,expiree,expirer,expiry,explain,explant,explode,exploit,explore,expone,export,exposal,expose,exposed,exposer,exposit,expound,express,expugn,expulse,expunge,expurge,exradio,exscind,exsect,exsert,exship,exsurge,extant,extend,extense,extent,exter,extern,externe,extima,extinct,extine,extol,extoll,extort,extra,extract,extrait,extreme,extrude,extund,exudate,exude,exult,exultet,exuviae,exuvial,ey,eyah,eyalet,eyas,eye,eyeball,eyebalm,eyebar,eyebeam,eyebolt,eyebree,eyebrow,eyecup,eyed,eyedot,eyedrop,eyeflap,eyeful,eyehole,eyelash,eyeless,eyelet,eyelid,eyelike,eyeline,eyemark,eyen,eyepit,eyer,eyeroot,eyeseed,eyeshot,eyesome,eyesore,eyespot,eyewash,eyewear,eyewink,eyewort,eyey,eying,eyn,eyne,eyot,eyoty,eyra,eyre,eyrie,eyrir,ezba,f,fa,fabella,fabes,fable,fabled,fabler,fabliau,fabling,fabric,fabular,facadal,facade,face,faced,faceman,facer,facet,facete,faceted,facia,facial,faciend,facient,facies,facile,facing,fack,fackins,facks,fact,factful,faction,factish,factive,factor,factory,factrix,factual,factum,facture,facty,facula,facular,faculty,facund,facy,fad,fadable,faddish,faddism,faddist,faddle,faddy,fade,faded,fadedly,faden,fader,fadge,fading,fady,fae,faerie,faery,faff,faffle,faffy,fag,fagald,fage,fager,fagger,faggery,fagging,fagine,fagot,fagoter,fagoty,faham,fahlerz,fahlore,faience,fail,failing,faille,failure,fain,fainly,fains,faint,fainter,faintly,faints,fainty,faipule,fair,fairer,fairily,fairing,fairish,fairly,fairm,fairway,fairy,faith,faitour,fake,faker,fakery,fakir,faky,falbala,falcade,falcate,falcer,falces,falcial,falcon,falcula,faldage,faldfee,fall,fallace,fallacy,fallage,fallen,faller,falling,fallow,fallway,fally,falsary,false,falsely,falsen,falser,falsie,falsify,falsism,faltche,falter,falutin,falx,fam,famble,fame,fameful,familia,family,famine,famish,famous,famulus,fan,fana,fanal,fanam,fanatic,fanback,fancied,fancier,fancify,fancy,fand,fandom,fanega,fanfare,fanfoot,fang,fanged,fangle,fangled,fanglet,fangot,fangy,fanion,fanlike,fanman,fannel,fanner,fannier,fanning,fanon,fant,fantail,fantast,fantasy,fantod,fanweed,fanwise,fanwork,fanwort,faon,far,farad,faraday,faradic,faraway,farce,farcer,farcial,farcied,farcify,farcing,farcist,farcy,farde,fardel,fardh,fardo,fare,farer,farfara,farfel,fargood,farina,faring,farish,farl,farleu,farm,farmage,farmer,farmery,farming,farmost,farmy,farness,faro,farrago,farrand,farrier,farrow,farruca,farse,farseer,farset,farther,fasces,fascet,fascia,fascial,fascine,fascis,fascism,fascist,fash,fasher,fashery,fashion,fass,fast,fasten,faster,fasting,fastish,fastus,fat,fatal,fatally,fatbird,fate,fated,fateful,fathead,father,fathmur,fathom,fatidic,fatigue,fatiha,fatil,fatless,fatling,fatly,fatness,fatsia,fatten,fatter,fattily,fattish,fatty,fatuism,fatuity,fatuoid,fatuous,fatwood,faucal,fauces,faucet,faucial,faucre,faugh,fauld,fault,faulter,faulty,faun,faunal,faunish,faunist,faunule,fause,faust,fautor,fauve,favella,favilla,favism,favissa,favn,favor,favored,favorer,favose,favous,favus,fawn,fawner,fawnery,fawning,fawny,fay,fayles,faze,fazenda,fe,feague,feak,feal,fealty,fear,feared,fearer,fearful,feasor,feast,feasten,feaster,feat,feather,featly,featous,feature,featy,feaze,febrile,fecal,feces,feck,feckful,feckly,fecula,fecund,fed,feddan,federal,fee,feeable,feeble,feebly,feed,feedbin,feedbox,feeder,feeding,feedman,feedway,feedy,feel,feeler,feeless,feeling,feer,feere,feering,feetage,feeze,fegary,fei,feif,feigher,feign,feigned,feigner,feil,feint,feis,feist,feisty,felid,feline,fell,fellage,fellah,fellen,feller,fellic,felling,felloe,fellow,felly,feloid,felon,felonry,felony,fels,felsite,felt,felted,felter,felting,felty,felucca,felwort,female,feme,femic,feminal,feminie,feminin,femora,femoral,femur,fen,fenbank,fence,fencer,fenchyl,fencing,fend,fender,fendy,fenite,fenks,fenland,fenman,fennec,fennel,fennig,fennish,fenny,fensive,fent,fenter,feod,feodal,feodary,feoff,feoffee,feoffor,feower,feral,feralin,ferash,ferdwit,ferfet,feria,ferial,feridgi,ferie,ferine,ferity,ferk,ferling,ferly,fermail,ferme,ferment,fermery,fermila,fern,ferned,fernery,ferny,feroher,ferrado,ferrate,ferrean,ferret,ferrety,ferri,ferric,ferrier,ferrite,ferrous,ferrule,ferrum,ferry,fertile,feru,ferula,ferule,ferulic,fervent,fervid,fervor,fescue,fess,fessely,fest,festal,fester,festine,festive,festoon,festuca,fet,fetal,fetch,fetched,fetcher,fetial,fetid,fetidly,fetish,fetlock,fetlow,fetor,fetter,fettle,fettler,fetus,feu,feuage,feuar,feucht,feud,feudal,feudee,feudist,feued,feuille,fever,feveret,few,fewness,fewsome,fewter,fey,feyness,fez,fezzed,fezzy,fi,fiacre,fiance,fiancee,fiar,fiard,fiasco,fiat,fib,fibber,fibbery,fibdom,fiber,fibered,fibril,fibrin,fibrine,fibroid,fibroin,fibroma,fibrose,fibrous,fibry,fibster,fibula,fibulae,fibular,ficary,fice,ficelle,fiche,fichu,fickle,fickly,fico,ficoid,fictile,fiction,fictive,fid,fidalgo,fidate,fiddle,fiddler,fiddley,fide,fideism,fideist,fidfad,fidge,fidget,fidgety,fiducia,fie,fiefdom,field,fielded,fielder,fieldy,fiend,fiendly,fient,fierce,fiercen,fierily,fiery,fiesta,fife,fifer,fifie,fifish,fifo,fifteen,fifth,fifthly,fifty,fig,figaro,figbird,figent,figged,figgery,figging,figgle,figgy,fight,fighter,figless,figlike,figment,figural,figure,figured,figurer,figury,figworm,figwort,fike,fikie,filace,filacer,filao,filar,filaria,filasse,filate,filator,filbert,filch,filcher,file,filemot,filer,filet,filial,filiate,filibeg,filical,filicic,filicin,filiety,filing,filings,filippo,filite,fill,filled,filler,fillet,filleul,filling,fillip,fillock,filly,film,filmdom,filmet,filmic,filmily,filmish,filmist,filmize,filmy,filo,filose,fils,filter,filth,filthy,fimble,fimbria,fin,finable,finagle,final,finale,finally,finance,finback,finch,finched,find,findal,finder,finding,findjan,fine,fineish,finely,finer,finery,finesse,finetop,finfish,finfoot,fingent,finger,fingery,finial,finical,finick,finific,finify,finikin,fining,finis,finish,finite,finity,finjan,fink,finkel,finland,finless,finlet,finlike,finnac,finned,finner,finnip,finny,fiord,fiorded,fiorin,fiorite,fip,fipenny,fipple,fique,fir,firca,fire,firearm,firebox,fireboy,firebug,fired,firedog,firefly,firelit,fireman,firer,firetop,firing,firk,firker,firkin,firlot,firm,firman,firmer,firmly,firn,firring,firry,first,firstly,firth,fisc,fiscal,fise,fisetin,fish,fishbed,fished,fisher,fishery,fishet,fisheye,fishful,fishgig,fishify,fishily,fishing,fishlet,fishman,fishpot,fishway,fishy,fisnoga,fissate,fissile,fission,fissive,fissure,fissury,fist,fisted,fister,fistful,fistic,fistify,fisting,fistuca,fistula,fistule,fisty,fit,fitch,fitched,fitchee,fitcher,fitchet,fitchew,fitful,fitly,fitment,fitness,fitout,fitroot,fittage,fitted,fitten,fitter,fitters,fittily,fitting,fitty,fitweed,five,fivebar,fiver,fives,fix,fixable,fixage,fixate,fixatif,fixator,fixed,fixedly,fixer,fixing,fixity,fixture,fixure,fizgig,fizz,fizzer,fizzle,fizzy,fjeld,flabby,flabrum,flaccid,flack,flacked,flacker,flacket,flaff,flaffer,flag,flagger,flaggy,flaglet,flagman,flagon,flail,flair,flaith,flak,flakage,flake,flaker,flakily,flaky,flam,flamant,flamb,flame,flamed,flamen,flamer,flamfew,flaming,flamy,flan,flanch,flandan,flane,flange,flanger,flank,flanked,flanker,flanky,flannel,flanque,flap,flapper,flare,flaring,flary,flaser,flash,flasher,flashet,flashly,flashy,flask,flasker,flasket,flasque,flat,flatcap,flatcar,flatdom,flated,flathat,flatlet,flatly,flatman,flatten,flatter,flattie,flattop,flatus,flatway,flaught,flaunt,flaunty,flavedo,flavic,flavid,flavin,flavine,flavo,flavone,flavor,flavory,flavour,flaw,flawed,flawful,flawn,flawy,flax,flaxen,flaxman,flaxy,flay,flayer,flea,fleam,fleay,flebile,fleche,fleck,flecken,flecker,flecky,flector,fled,fledge,fledgy,flee,fleece,fleeced,fleecer,fleech,fleecy,fleer,fleerer,fleet,fleeter,fleetly,flemish,flench,flense,flenser,flerry,flesh,fleshed,fleshen,flesher,fleshly,fleshy,flet,fletch,flether,fleuret,fleury,flew,flewed,flewit,flews,flex,flexed,flexile,flexion,flexor,flexure,fley,flick,flicker,flicky,flidder,flier,fligger,flight,flighty,flimmer,flimp,flimsy,flinch,flinder,fling,flinger,flingy,flint,flinter,flinty,flioma,flip,flipe,flipper,flirt,flirter,flirty,flisk,flisky,flit,flitch,flite,fliting,flitter,flivver,flix,float,floater,floaty,flob,flobby,floc,floccus,flock,flocker,flocky,flocoon,flodge,floe,floey,flog,flogger,flokite,flong,flood,flooded,flooder,floody,floor,floorer,floozy,flop,flopper,floppy,flora,floral,floran,florate,floreal,florent,flores,floret,florid,florin,florist,floroon,florula,flory,flosh,floss,flosser,flossy,flot,flota,flotage,flotant,flotsam,flounce,flour,floury,flouse,flout,flouter,flow,flowage,flower,flowery,flowing,flown,flowoff,flu,fluate,fluavil,flub,flubdub,flucan,flue,flued,flueman,fluency,fluent,fluer,fluey,fluff,fluffer,fluffy,fluible,fluid,fluidal,fluidic,fluidly,fluke,fluked,flukily,fluking,fluky,flume,flummer,flummox,flump,flung,flunk,flunker,flunky,fluor,fluoran,fluoric,fluoryl,flurn,flurr,flurry,flush,flusher,flushy,flusk,flusker,fluster,flute,fluted,fluter,flutina,fluting,flutist,flutter,fluty,fluvial,flux,fluxer,fluxile,fluxion,fly,flyable,flyaway,flyback,flyball,flybane,flybelt,flyblow,flyboat,flyboy,flyer,flyflap,flying,flyleaf,flyless,flyman,flyness,flype,flytail,flytier,flytrap,flyway,flywort,foal,foaly,foam,foambow,foamer,foamily,foaming,foamy,fob,focal,focally,foci,focoids,focsle,focus,focuser,fod,fodda,fodder,foder,fodge,fodgel,fodient,foe,foehn,foeish,foeless,foelike,foeman,foeship,fog,fogbow,fogdog,fogdom,fogey,foggage,fogged,fogger,foggily,foggish,foggy,foghorn,fogle,fogless,fogman,fogo,fogon,fogou,fogram,fogus,fogy,fogydom,fogyish,fogyism,fohat,foible,foil,foiler,foiling,foining,foison,foist,foister,foisty,foiter,fold,foldage,folded,folden,folder,folding,foldure,foldy,fole,folia,foliage,folial,foliar,foliary,foliate,folie,folio,foliole,foliose,foliot,folious,folium,folk,folkmot,folksy,folkway,folky,folles,follis,follow,folly,foment,fomes,fomites,fondak,fondant,fondish,fondle,fondler,fondly,fondu,fondue,fonduk,fonly,fonnish,fono,fons,font,fontal,fonted,fontful,fontlet,foo,food,fooder,foodful,foody,fool,fooldom,foolery,fooless,fooling,foolish,fooner,fooster,foot,footage,footboy,footed,footer,footful,foothot,footing,footle,footler,footman,footpad,foots,footway,footy,foozle,foozler,fop,fopling,foppery,foppish,foppy,fopship,for,fora,forage,forager,foramen,forane,foray,forayer,forb,forbade,forbar,forbear,forbid,forbit,forbled,forblow,forbore,forbow,forby,force,forced,forceps,forcer,forche,forcing,ford,fordays,fording,fordo,fordone,fordy,fore,foreact,forearm,forebay,forecar,foreday,forefin,forefit,forego,foreign,forel,forelay,foreleg,foreman,forepad,forepaw,foreran,forerib,forerun,foresay,foresee,foreset,foresin,forest,foresty,foretop,foreuse,forever,forevow,forfar,forfare,forfars,forfeit,forfend,forge,forged,forger,forgery,forget,forgie,forging,forgive,forgo,forgoer,forgot,forgrow,forhoo,forhooy,forhow,forint,fork,forked,forker,forkful,forkman,forky,forleft,forlet,forlorn,form,formal,formant,format,formate,forme,formed,formee,formel,formene,former,formful,formic,formin,forming,formose,formula,formule,formy,formyl,fornent,fornix,forpet,forpine,forpit,forrad,forrard,forride,forrit,forrue,forsake,forset,forslow,fort,forte,forth,forthgo,forthy,forties,fortify,fortin,fortis,fortlet,fortune,forty,forum,forward,forwean,forwent,fosh,fosie,fossa,fossage,fossane,fosse,fossed,fossick,fossil,fossor,fossula,fossule,fostell,foster,fot,fotch,fother,fotmal,fotui,fou,foud,fouette,fougade,fought,foughty,foujdar,foul,foulage,foulard,fouler,fouling,foulish,foully,foumart,foun,found,founder,foundry,fount,four,fourble,fourche,fourer,fourre,fourth,foussa,foute,fouter,fouth,fovea,foveal,foveate,foveola,foveole,fow,fowk,fowl,fowler,fowlery,fowling,fox,foxbane,foxchop,foxer,foxery,foxfeet,foxfish,foxhole,foxily,foxing,foxish,foxlike,foxship,foxskin,foxtail,foxwood,foxy,foy,foyaite,foyboat,foyer,fozy,fra,frab,frabbit,frabous,fracas,frache,frack,fracted,frae,fraghan,fragile,fraid,fraik,frail,frailly,frailty,fraise,fraiser,frame,framea,framed,framer,framing,frammit,franc,franco,frank,franker,frankly,frantic,franzy,frap,frappe,frasco,frase,frasier,frass,frat,fratch,fratchy,frater,fratery,fratry,fraud,fraught,frawn,fraxin,fray,frayed,fraying,frayn,fraze,frazer,frazil,frazzle,freak,freaky,fream,freath,freck,frecken,frecket,freckle,freckly,free,freed,freedom,freeing,freeish,freely,freeman,freer,freet,freety,freeway,freeze,freezer,freight,freir,freit,freity,fremd,fremdly,frenal,frenate,frenum,frenzy,fresco,fresh,freshen,freshet,freshly,fresnel,fresno,fret,fretful,frett,frette,fretted,fretter,fretty,fretum,friable,friand,friar,friarly,friary,frib,fribble,fribby,fried,friend,frier,frieze,friezer,friezy,frig,frigate,friggle,fright,frighty,frigid,frijol,frike,frill,frilled,friller,frilly,frim,fringe,fringed,fringy,frisca,frisk,frisker,frisket,frisky,frison,frist,frisure,frit,frith,fritt,fritter,frivol,frixion,friz,frize,frizer,frizz,frizzer,frizzle,frizzly,frizzy,fro,frock,froe,frog,frogbit,frogeye,frogged,froggy,frogleg,froglet,frogman,froise,frolic,from,frond,fronded,front,frontad,frontal,fronted,fronter,froom,frore,frory,frosh,frost,frosted,froster,frosty,frot,froth,frother,frothy,frotton,frough,froughy,frounce,frow,froward,frower,frowl,frown,frowner,frowny,frowst,frowsty,frowy,frowze,frowzly,frowzy,froze,frozen,fructed,frugal,fruggan,fruit,fruited,fruiter,fruity,frump,frumple,frumpy,frush,frustum,frutify,fry,fryer,fu,fub,fubby,fubsy,fucate,fuchsin,fuci,fucoid,fucosan,fucose,fucous,fucus,fud,fuddle,fuddler,fuder,fudge,fudger,fudgy,fuel,fueler,fuerte,fuff,fuffy,fugal,fugally,fuggy,fugient,fugle,fugler,fugu,fugue,fuguist,fuidhir,fuji,fulcral,fulcrum,fulfill,fulgent,fulgid,fulgide,fulgor,fulham,fulk,full,fullam,fuller,fullery,fulling,fullish,fullom,fully,fulmar,fulmine,fulsome,fulth,fulvene,fulvid,fulvous,fulwa,fulyie,fulzie,fum,fumado,fumage,fumaric,fumaryl,fumble,fumbler,fume,fumer,fumet,fumette,fumily,fuming,fumose,fumous,fumy,fun,fund,fundal,funded,funder,fundi,fundic,funds,fundus,funeral,funest,fungal,fungate,fungi,fungian,fungic,fungin,fungo,fungoid,fungose,fungous,fungus,fungusy,funicle,funis,funk,funker,funky,funnel,funnily,funny,funori,funt,fur,fural,furan,furazan,furbish,furca,furcal,furcate,furcula,furdel,furfur,furiant,furied,furify,furil,furilic,furiosa,furioso,furious,furison,furl,furler,furless,furlong,furnace,furnage,furner,furnish,furoic,furoid,furoin,furole,furor,furore,furphy,furred,furrier,furrily,furring,furrow,furrowy,furry,further,furtive,fury,furyl,furze,furzed,furzery,furzy,fusain,fusate,fusc,fuscin,fuscous,fuse,fused,fusee,fusht,fusible,fusibly,fusil,fusilly,fusion,fusoid,fuss,fusser,fussify,fussily,fussock,fussy,fust,fustee,fustet,fustian,fustic,fustily,fustin,fustle,fusty,fusuma,fusure,fut,futchel,fute,futhorc,futile,futtock,futural,future,futuric,futwa,fuye,fuze,fuzz,fuzzily,fuzzy,fyke,fylfot,fyrd,g,ga,gab,gabbard,gabber,gabble,gabbler,gabbro,gabby,gabelle,gabgab,gabi,gabion,gable,gablet,gablock,gaby,gad,gadbee,gadbush,gadded,gadder,gaddi,gadding,gaddish,gade,gadfly,gadge,gadger,gadget,gadid,gadling,gadman,gadoid,gadroon,gadsman,gaduin,gadwall,gaen,gaet,gaff,gaffe,gaffer,gaffle,gag,gagate,gage,gagee,gageite,gager,gagger,gaggery,gaggle,gaggler,gagman,gagor,gagroot,gahnite,gaiassa,gaiety,gaily,gain,gainage,gaine,gainer,gainful,gaining,gainly,gains,gainsay,gainset,gainst,gair,gait,gaited,gaiter,gaiting,gaize,gaj,gal,gala,galah,galanas,galanga,galant,galany,galatea,galaxy,galban,gale,galea,galeage,galeate,galee,galeeny,galeid,galena,galenic,galeoid,galera,galerum,galerus,galet,galey,galgal,gali,galilee,galiot,galipot,gall,galla,gallah,gallant,gallate,galled,gallein,galleon,galler,gallery,gallet,galley,gallfly,gallic,galline,galling,gallium,gallnut,gallon,galloon,gallop,gallous,gallows,gally,galoot,galop,galore,galosh,galp,galt,galumph,galuth,galyac,galyak,gam,gamahe,gamasid,gamb,gamba,gambade,gambado,gambang,gambeer,gambet,gambia,gambier,gambist,gambit,gamble,gambler,gamboge,gambol,gambrel,game,gamebag,gameful,gamely,gamene,gametal,gamete,gametic,gamic,gamily,gamin,gaming,gamma,gammer,gammick,gammock,gammon,gammy,gamont,gamori,gamp,gamut,gamy,gan,ganam,ganch,gander,gandul,gandum,gane,ganef,gang,ganga,gangan,gangava,gangdom,gange,ganger,ganging,gangism,ganglia,gangly,gangman,gangrel,gangue,gangway,ganja,ganner,gannet,ganoid,ganoin,ganosis,gansel,gansey,gansy,gant,ganta,gantang,gantlet,ganton,gantry,gantsl,ganza,ganzie,gaol,gaoler,gap,gapa,gape,gaper,gapes,gaping,gapo,gappy,gapy,gar,gara,garad,garage,garance,garava,garawi,garb,garbage,garbel,garbell,garbill,garble,garbler,garboil,garbure,garce,gardant,gardeen,garden,gardeny,gardy,gare,gareh,garetta,garfish,garget,gargety,gargle,gargol,garial,gariba,garish,garland,garle,garlic,garment,garn,garnel,garner,garnet,garnets,garnett,garnetz,garnice,garniec,garnish,garoo,garrafa,garran,garret,garrot,garrote,garrupa,garse,garsil,garston,garten,garter,garth,garum,garvey,garvock,gas,gasbag,gaseity,gaseous,gash,gashes,gashful,gashly,gashy,gasify,gasket,gaskin,gasking,gaskins,gasless,gaslit,gaslock,gasman,gasp,gasper,gasping,gaspy,gasser,gassing,gassy,gast,gaster,gastral,gastric,gastrin,gat,gata,gatch,gate,gateado,gateage,gated,gateman,gater,gateway,gather,gating,gator,gatter,gau,gaub,gauby,gauche,gaud,gaudery,gaudful,gaudily,gaudy,gaufer,gauffer,gauffre,gaufre,gauge,gauger,gauging,gaulin,gault,gaulter,gaum,gaumish,gaumy,gaun,gaunt,gaunted,gauntly,gauntry,gaunty,gaup,gaupus,gaur,gaus,gauss,gauster,gaut,gauze,gauzily,gauzy,gavall,gave,gavel,gaveler,gavial,gavotte,gavyuti,gaw,gawby,gawcie,gawk,gawkily,gawkish,gawky,gawm,gawn,gawney,gawsie,gay,gayal,gayatri,gaybine,gaycat,gayish,gayment,gayness,gaysome,gayyou,gaz,gazabo,gaze,gazebo,gazee,gazel,gazelle,gazer,gazette,gazi,gazing,gazon,gazy,ge,geal,gean,gear,gearbox,geared,gearing,gearman,gearset,gease,geason,geat,gebang,gebanga,gebbie,gebur,geck,gecko,geckoid,ged,gedackt,gedder,gedeckt,gedrite,gee,geebong,geebung,geejee,geek,geelbec,geerah,geest,geet,geezer,gegg,geggee,gegger,geggery,gein,geira,geisha,geison,geitjie,gel,gelable,gelada,gelatin,geld,geldant,gelder,gelding,gelid,gelidly,gelilah,gell,gelly,gelong,gelose,gelosin,gelt,gem,gemauve,gemel,gemeled,gemless,gemlike,gemma,gemmae,gemmate,gemmer,gemmily,gemmoid,gemmula,gemmule,gemmy,gemot,gemsbok,gemul,gemuti,gemwork,gen,gena,genal,genapp,genarch,gender,gene,genear,geneat,geneki,genep,genera,general,generic,genesic,genesis,genet,genetic,geneva,genial,genian,genic,genie,genii,genin,genion,genip,genipa,genipap,genista,genital,genitor,genius,genizah,genoese,genom,genome,genomic,genos,genre,genro,gens,genson,gent,genteel,gentes,gentian,gentile,gentle,gently,gentman,gentry,genty,genu,genua,genual,genuine,genus,genys,geo,geobios,geodal,geode,geodesy,geodete,geodic,geodist,geoduck,geoform,geogeny,geogony,geoid,geoidal,geology,geomaly,geomant,geomyid,geonoma,geopony,georama,georgic,geosid,geoside,geotaxy,geotic,geoty,ger,gerah,geranic,geranyl,gerate,gerated,geratic,geraty,gerb,gerbe,gerbil,gercrow,gerefa,gerenda,gerent,gerenuk,gerim,gerip,germ,germal,german,germane,germen,germin,germina,germing,germon,germule,germy,gernitz,geront,geronto,gers,gersum,gerund,gerusia,gervao,gesith,gesning,gesso,gest,gestant,gestate,geste,gested,gesten,gestic,gestion,gesture,get,geta,getah,getaway,gether,getling,getter,getting,getup,geum,gewgaw,gewgawy,gey,geyan,geyser,gez,ghafir,ghaist,ghalva,gharial,gharnao,gharry,ghastly,ghat,ghatti,ghatwal,ghazi,ghazism,ghebeta,ghee,gheleem,gherkin,ghetti,ghetto,ghizite,ghoom,ghost,ghoster,ghostly,ghosty,ghoul,ghrush,ghurry,giant,giantly,giantry,giardia,giarra,giarre,gib,gibaro,gibbals,gibbed,gibber,gibbet,gibbles,gibbon,gibbose,gibbous,gibbus,gibby,gibe,gibel,giber,gibing,gibleh,giblet,giblets,gibus,gid,giddap,giddea,giddify,giddily,giddy,gidgee,gie,gied,gien,gif,gift,gifted,giftie,gig,gigback,gigeria,gigful,gigger,giggish,giggit,giggle,giggler,giggly,giglet,giglot,gigman,gignate,gigolo,gigot,gigsman,gigster,gigtree,gigunu,gilbert,gild,gilded,gilden,gilder,gilding,gilguy,gilia,gilim,gill,gilled,giller,gillie,gilling,gilly,gilo,gilpy,gilse,gilt,giltcup,gim,gimbal,gimble,gimel,gimlet,gimlety,gimmal,gimmer,gimmick,gimp,gimped,gimper,gimping,gin,ging,ginger,gingery,gingham,gingili,gingiva,gink,ginkgo,ginned,ginner,ginners,ginnery,ginney,ginning,ginnle,ginny,ginseng,ginward,gio,gip,gipon,gipper,gipser,gipsire,giraffe,girasol,girba,gird,girder,girding,girdle,girdler,girl,girleen,girlery,girlie,girling,girlish,girlism,girly,girn,girny,giro,girr,girse,girsh,girsle,girt,girth,gisarme,gish,gisla,gisler,gist,git,gitalin,gith,gitonin,gitoxin,gittern,gittith,give,given,giver,givey,giving,gizz,gizzard,gizzen,gizzern,glace,glaceed,glacial,glacier,glacis,glack,glad,gladden,gladdon,gladdy,glade,gladeye,gladful,gladify,gladii,gladius,gladly,glady,glaga,glaieul,glaik,glaiket,glair,glairy,glaive,glaived,glaked,glaky,glam,glamour,glance,glancer,gland,glandes,glans,glar,glare,glarily,glaring,glarry,glary,glashan,glass,glassen,glasser,glasses,glassie,glassy,glaucin,glaum,glaur,glaury,glaver,glaze,glazed,glazen,glazer,glazier,glazily,glazing,glazy,gleam,gleamy,glean,gleaner,gleary,gleba,glebal,glebe,glebous,glede,gledy,glee,gleed,gleeful,gleek,gleeman,gleet,gleety,gleg,glegly,glen,glenoid,glent,gleyde,glia,gliadin,glial,glib,glibly,glidder,glide,glider,gliding,gliff,glime,glimmer,glimpse,glink,glint,glioma,gliosa,gliosis,glirine,glisk,glisky,glisten,glister,glitter,gloam,gloat,gloater,global,globate,globe,globed,globin,globoid,globose,globous,globule,globy,glochid,glochis,gloea,gloeal,glom,glome,glommox,glomus,glonoin,gloom,gloomth,gloomy,glop,gloppen,glor,glore,glorify,glory,gloss,glossa,glossal,glossed,glosser,glossic,glossy,glost,glottal,glottic,glottid,glottis,glout,glove,glover,glovey,gloving,glow,glower,glowfly,glowing,gloy,gloze,glozing,glub,glucase,glucid,glucide,glucina,glucine,gluck,glucose,glue,glued,gluepot,gluer,gluey,glug,gluish,glum,gluma,glumal,glume,glumly,glummy,glumose,glump,glumpy,glunch,glusid,gluside,glut,glutch,gluteal,gluten,gluteus,glutin,glutoid,glutose,glutter,glutton,glycid,glycide,glycine,glycol,glycose,glycyl,glyoxal,glyoxim,glyoxyl,glyph,glyphic,glyptic,glyster,gnabble,gnar,gnarl,gnarled,gnarly,gnash,gnat,gnathal,gnathic,gnatter,gnatty,gnaw,gnawer,gnawing,gnawn,gneiss,gneissy,gnome,gnomed,gnomic,gnomide,gnomish,gnomist,gnomon,gnosis,gnostic,gnu,go,goa,goad,goaf,goal,goalage,goalee,goalie,goanna,goat,goatee,goateed,goatish,goatly,goaty,goave,gob,goback,goban,gobang,gobbe,gobber,gobbet,gobbin,gobbing,gobble,gobbler,gobby,gobelin,gobi,gobiid,gobioid,goblet,goblin,gobline,gobo,gobony,goburra,goby,gocart,god,goddard,godded,goddess,goddize,gode,godet,godhead,godhood,godkin,godless,godlet,godlike,godlily,godling,godly,godown,godpapa,godsend,godship,godson,godwit,goeduck,goel,goelism,goer,goes,goetia,goetic,goety,goff,goffer,goffle,gog,gogga,goggan,goggle,goggled,goggler,goggly,goglet,gogo,goi,going,goitcho,goiter,goitral,gol,gola,golach,goladar,gold,goldbug,goldcup,golden,golder,goldie,goldin,goldish,goldtit,goldy,golee,golem,golf,golfdom,golfer,goli,goliard,goliath,golland,gollar,golly,goloe,golpe,gomari,gomart,gomavel,gombay,gombeen,gomer,gomeral,gomlah,gomuti,gon,gonad,gonadal,gonadic,gonagra,gonakie,gonal,gonapod,gondang,gondite,gondola,gone,goner,gong,gongman,gonia,goniac,gonial,goniale,gonid,gonidia,gonidic,gonimic,gonion,gonitis,gonium,gonne,gony,gonys,goo,goober,good,gooding,goodish,goodly,goodman,goods,goody,goof,goofer,goofily,goofy,googly,googol,googul,gook,gool,goolah,gools,gooma,goon,goondie,goonie,goose,goosery,goosish,goosy,gopher,gopura,gor,gora,goracco,goral,goran,gorb,gorbal,gorbet,gorble,gorce,gorcock,gorcrow,gore,gorer,gorevan,gorfly,gorge,gorged,gorger,gorget,gorglin,gorhen,goric,gorilla,gorily,goring,gorlin,gorlois,gormaw,gormed,gorra,gorraf,gorry,gorse,gorsedd,gorsy,gory,gos,gosain,goschen,gosh,goshawk,goslet,gosling,gosmore,gospel,gosport,gossan,gossard,gossip,gossipy,gossoon,gossy,got,gotch,gote,gothite,gotra,gotraja,gotten,gouaree,gouge,gouger,goujon,goulash,goumi,goup,gourami,gourd,gourde,gourdy,gourmet,gousty,gout,goutify,goutily,goutish,goutte,gouty,gove,govern,gowan,gowdnie,gowf,gowfer,gowk,gowked,gowkit,gowl,gown,gownlet,gowpen,goy,goyim,goyin,goyle,gozell,gozzard,gra,grab,grabber,grabble,graben,grace,gracer,gracile,grackle,grad,gradal,gradate,graddan,grade,graded,gradely,grader,gradin,gradine,grading,gradual,gradus,graff,graffer,graft,grafted,grafter,graham,grail,grailer,grain,grained,grainer,grainy,graip,graisse,graith,grallic,gram,grama,grame,grammar,gramme,gramp,grampa,grampus,granada,granage,granary,granate,granch,grand,grandam,grandee,grandly,grandma,grandpa,grane,grange,granger,granite,grank,grannom,granny,grano,granose,grant,grantee,granter,grantor,granula,granule,granza,grape,graped,grapery,graph,graphic,graphy,graping,grapnel,grappa,grapple,grapy,grasp,grasper,grass,grassed,grasser,grasset,grassy,grat,grate,grater,grather,gratify,grating,gratis,gratten,graupel,grave,graved,gravel,gravely,graven,graver,gravic,gravid,graving,gravity,gravure,gravy,grawls,gray,grayfly,grayish,graylag,grayly,graze,grazer,grazier,grazing,grease,greaser,greasy,great,greaten,greater,greatly,greave,greaved,greaves,grebe,grece,gree,greed,greedy,green,greener,greeney,greenly,greenth,greenuk,greeny,greet,greeter,gregal,gregale,grege,greggle,grego,greige,grein,greisen,gremial,gremlin,grenade,greund,grew,grey,greyly,gribble,grice,grid,griddle,gride,griece,grieced,grief,grieve,grieved,griever,griff,griffe,griffin,griffon,grift,grifter,grig,grignet,grigri,grike,grill,grille,grilled,griller,grilse,grim,grimace,grime,grimful,grimily,grimly,grimme,grimp,grimy,grin,grinch,grind,grinder,grindle,gringo,grinner,grinny,grip,gripe,griper,griping,gripman,grippal,grippe,gripper,gripple,grippy,gripy,gris,grisard,griskin,grisly,grison,grist,grister,gristle,gristly,gristy,grit,grith,grits,gritten,gritter,grittle,gritty,grivet,grivna,grizzle,grizzly,groan,groaner,groat,groats,grobian,grocer,grocery,groff,grog,groggy,grogram,groin,groined,grommet,groom,groomer,groomy,groop,groose,groot,grooty,groove,groover,groovy,grope,groper,groping,gropple,gros,groser,groset,gross,grossen,grosser,grossly,grosso,grosz,groszy,grot,grotto,grouch,grouchy,grouf,grough,ground,grounds,groundy,group,grouped,grouper,grouse,grouser,grousy,grout,grouter,grouts,grouty,grouze,grove,groved,grovel,grovy,grow,growan,growed,grower,growing,growl,growler,growly,grown,grownup,growse,growth,growthy,grozart,grozet,grr,grub,grubbed,grubber,grubby,grubs,grudge,grudger,grue,gruel,grueler,gruelly,gruff,gruffly,gruffs,gruffy,grufted,grugru,gruine,grum,grumble,grumbly,grume,grumly,grummel,grummet,grumose,grumous,grump,grumph,grumphy,grumpy,grun,grundy,grunion,grunt,grunter,gruntle,grush,grushie,gruss,grutch,grutten,gryde,grylli,gryllid,gryllos,gryllus,grysbok,guaba,guacimo,guacin,guaco,guaiac,guaiol,guaka,guama,guan,guana,guanaco,guanase,guanay,guango,guanine,guanize,guano,guanyl,guao,guapena,guar,guara,guarabu,guarana,guarani,guard,guarded,guarder,guardo,guariba,guarri,guasa,guava,guavina,guayaba,guayabi,guayabo,guayule,guaza,gubbo,gucki,gud,gudame,guddle,gude,gudge,gudgeon,gudget,gudok,gue,guebucu,guemal,guenepe,guenon,guepard,guerdon,guereza,guess,guesser,guest,guesten,guester,gufa,guff,guffaw,guffer,guffin,guffy,gugal,guggle,gugglet,guglet,guglia,guglio,gugu,guhr,guib,guiba,guidage,guide,guider,guidman,guidon,guige,guignol,guijo,guild,guilder,guildic,guildry,guile,guilery,guilt,guilty,guily,guimpe,guinea,guipure,guisard,guise,guiser,guising,guitar,gul,gula,gulae,gulaman,gular,gularis,gulch,gulden,gule,gules,gulf,gulfy,gulgul,gulix,gull,gullery,gullet,gullion,gullish,gully,gulonic,gulose,gulp,gulper,gulpin,gulping,gulpy,gulsach,gum,gumbo,gumboil,gumby,gumdrop,gumihan,gumless,gumlike,gumly,gumma,gummage,gummata,gummed,gummer,gumming,gummite,gummose,gummous,gummy,gump,gumpus,gumshoe,gumweed,gumwood,gun,guna,gunate,gunboat,gundi,gundy,gunebo,gunfire,gunge,gunite,gunj,gunk,gunl,gunless,gunlock,gunman,gunnage,gunne,gunnel,gunner,gunnery,gunnies,gunning,gunnung,gunny,gunong,gunplay,gunrack,gunsel,gunshop,gunshot,gunsman,gunster,gunter,gunwale,gunyah,gunyang,gunyeh,gup,guppy,gur,gurdle,gurge,gurgeon,gurges,gurgle,gurglet,gurgly,gurjun,gurk,gurl,gurly,gurnard,gurnet,gurniad,gurr,gurrah,gurry,gurt,guru,gush,gusher,gushet,gushily,gushing,gushy,gusla,gusle,guss,gusset,gussie,gust,gustful,gustily,gusto,gusty,gut,gutless,gutlike,gutling,gutt,gutta,guttate,gutte,gutter,guttery,gutti,guttide,guttie,guttle,guttler,guttula,guttule,guttus,gutty,gutweed,gutwise,gutwort,guy,guydom,guyer,guz,guze,guzzle,guzzler,gwag,gweduc,gweed,gweeon,gwely,gwine,gwyniad,gyle,gym,gymel,gymnast,gymnic,gymnics,gymnite,gymnure,gympie,gyn,gyne,gynecic,gynic,gynics,gyp,gype,gypper,gyps,gypsine,gypsite,gypsous,gypster,gypsum,gypsy,gypsyfy,gypsyry,gyral,gyrally,gyrant,gyrate,gyrator,gyre,gyrene,gyri,gyric,gyrinid,gyro,gyrocar,gyroma,gyron,gyronny,gyrose,gyrous,gyrus,gyte,gytling,gyve,h,ha,haab,haaf,habble,habeas,habena,habenal,habenar,habile,habille,habit,habitan,habitat,habited,habitue,habitus,habnab,haboob,habu,habutai,hache,hachure,hack,hackbut,hacked,hackee,hacker,hackery,hackin,hacking,hackle,hackler,hacklog,hackly,hackman,hackney,hacksaw,hacky,had,hadbot,hadden,haddie,haddo,haddock,hade,hading,hadj,hadji,hadland,hadrome,haec,haem,haemony,haet,haff,haffet,haffle,hafiz,hafnium,hafnyl,haft,hafter,hag,hagboat,hagborn,hagbush,hagdon,hageen,hagfish,haggada,haggard,hagged,hagger,haggis,haggish,haggle,haggler,haggly,haggy,hagi,hagia,haglet,haglike,haglin,hagride,hagrope,hagseed,hagship,hagweed,hagworm,hah,haik,haikai,haikal,haikwan,hail,hailer,hailse,haily,hain,haine,hair,haircut,hairdo,haire,haired,hairen,hairif,hairlet,hairpin,hairup,hairy,haje,hajib,hajilij,hak,hakam,hakdar,hake,hakeem,hakim,hako,haku,hala,halakah,halakic,halal,halberd,halbert,halch,halcyon,hale,halebi,haler,halerz,half,halfer,halfman,halfway,halibiu,halibut,halide,halidom,halite,halitus,hall,hallage,hallah,hallan,hallel,hallex,halling,hallman,halloo,hallow,hallux,hallway,halma,halo,halogen,haloid,hals,halse,halsen,halt,halter,halting,halurgy,halutz,halvans,halve,halved,halver,halves,halyard,ham,hamal,hamald,hamate,hamated,hamatum,hamble,hame,hameil,hamel,hamfat,hami,hamlah,hamlet,hammada,hammam,hammer,hammock,hammy,hamose,hamous,hamper,hamsa,hamster,hamular,hamule,hamulus,hamus,hamza,han,hanaper,hanbury,hance,hanced,hanch,hand,handbag,handbow,handcar,handed,hander,handful,handgun,handily,handle,handled,handler,handout,handsaw,handsel,handset,handy,hangar,hangby,hangdog,hange,hangee,hanger,hangie,hanging,hangle,hangman,hangout,hangul,hanif,hank,hanker,hankie,hankle,hanky,hanna,hansa,hanse,hansel,hansom,hant,hantle,hao,haole,haoma,haori,hap,hapless,haplite,haploid,haploma,haplont,haply,happen,happier,happify,happily,happing,happy,hapten,haptene,haptere,haptic,haptics,hapu,hapuku,harass,haratch,harbi,harbor,hard,harden,harder,hardily,hardim,hardish,hardly,hardock,hardpan,hardy,hare,harebur,harelip,harem,harfang,haricot,harish,hark,harka,harl,harling,harlock,harlot,harm,harmal,harmala,harman,harmel,harmer,harmful,harmine,harmony,harmost,harn,harness,harnpan,harp,harpago,harper,harpier,harpist,harpoon,harpula,harr,harrier,harrow,harry,harsh,harshen,harshly,hart,hartal,hartin,hartite,harvest,hasan,hash,hashab,hasher,hashish,hashy,hask,hasky,haslet,haslock,hasp,hassar,hassel,hassle,hassock,hasta,hastate,hastati,haste,hasten,haster,hastily,hastish,hastler,hasty,hat,hatable,hatband,hatbox,hatbrim,hatch,hatchel,hatcher,hatchet,hate,hateful,hater,hatful,hath,hathi,hatless,hatlike,hatpin,hatrack,hatrail,hatred,hatress,hatt,hatted,hatter,hattery,hatting,hattock,hatty,hau,hauberk,haugh,haught,haughty,haul,haulage,hauld,hauler,haulier,haulm,haulmy,haunch,haunchy,haunt,haunter,haunty,hause,hausen,hausse,hautboy,hauteur,havage,have,haveage,havel,haven,havener,havenet,havent,haver,haverel,haverer,havers,havier,havoc,haw,hawbuck,hawer,hawk,hawkbit,hawked,hawker,hawkery,hawkie,hawking,hawkish,hawknut,hawky,hawm,hawok,hawse,hawser,hay,haya,hayband,haybird,haybote,haycap,haycart,haycock,hayey,hayfork,haylift,hayloft,haymow,hayrack,hayrake,hayrick,hayseed,haysel,haysuck,haytime,hayward,hayweed,haywire,hayz,hazard,haze,hazel,hazeled,hazelly,hazen,hazer,hazily,hazing,hazle,hazy,hazzan,he,head,headcap,headed,header,headful,headily,heading,headman,headset,headway,heady,heaf,heal,heald,healder,healer,healful,healing,health,healthy,heap,heaper,heaps,heapy,hear,hearer,hearing,hearken,hearsay,hearse,hearst,heart,hearted,hearten,hearth,heartly,hearts,hearty,heat,heater,heatful,heath,heathen,heather,heathy,heating,heaume,heaumer,heave,heaven,heavens,heaver,heavies,heavily,heaving,heavity,heavy,hebamic,hebenon,hebete,hebetic,hech,heck,heckle,heckler,hectare,hecte,hectic,hector,heddle,heddler,hedebo,heder,hederic,hederin,hedge,hedger,hedging,hedgy,hedonic,heed,heeder,heedful,heedily,heedy,heehaw,heel,heelcap,heeled,heeler,heeltap,heer,heeze,heezie,heezy,heft,hefter,heftily,hefty,hegari,hegemon,hegira,hegumen,hei,heiau,heifer,heigh,height,heii,heimin,heinous,heir,heirdom,heiress,heitiki,hekteus,helbeh,helcoid,helder,hele,helenin,heliast,helical,heliced,helices,helicin,helicon,helide,heling,helio,helioid,helium,helix,hell,hellbox,hellcat,helldog,heller,helleri,hellhag,hellier,hellion,hellish,hello,helluo,helly,helm,helmage,helmed,helmet,helodes,heloe,heloma,helonin,helosis,helotry,help,helper,helpful,helping,helply,helve,helvell,helver,helvite,hem,hemad,hemal,hemapod,hemase,hematal,hematic,hematid,hematin,heme,hemen,hemera,hemiamb,hemic,hemin,hemina,hemine,heminee,hemiope,hemipic,heml,hemlock,hemmel,hemmer,hemocry,hemoid,hemol,hemopod,hemp,hempen,hempy,hen,henad,henbane,henbill,henbit,hence,hencoop,hencote,hend,hendly,henfish,henism,henlike,henna,hennery,hennin,hennish,henny,henotic,henpeck,henpen,henry,hent,henter,henware,henwife,henwise,henyard,hep,hepar,heparin,hepatic,hepcat,heppen,hepper,heptace,heptad,heptal,heptane,heptene,heptine,heptite,heptoic,heptose,heptyl,heptyne,her,herald,herb,herbage,herbal,herbane,herbary,herbish,herbist,herblet,herbman,herbose,herbous,herby,herd,herdboy,herder,herdic,herding,here,hereat,hereby,herein,herem,hereof,hereon,heresy,heretic,hereto,herile,heriot,heritor,herl,herling,herma,hermaic,hermit,hern,hernani,hernant,herne,hernia,hernial,hero,heroess,heroic,heroid,heroify,heroin,heroine,heroism,heroize,heron,heroner,heronry,herpes,herring,hers,herse,hersed,herself,hership,hersir,hertz,hessite,hest,hestern,het,hetaera,hetaery,heteric,hetero,hething,hetman,hetter,heuau,heugh,heumite,hevi,hew,hewable,hewel,hewer,hewhall,hewn,hewt,hex,hexa,hexace,hexacid,hexact,hexad,hexadic,hexagon,hexagyn,hexane,hexaped,hexapla,hexapod,hexarch,hexene,hexer,hexerei,hexeris,hexine,hexis,hexitol,hexode,hexogen,hexoic,hexone,hexonic,hexosan,hexose,hexyl,hexylic,hexyne,hey,heyday,hi,hia,hiant,hiatal,hiate,hiation,hiatus,hibbin,hic,hicatee,hiccup,hick,hickey,hickory,hidable,hidage,hidalgo,hidated,hidden,hide,hided,hideous,hider,hidling,hie,hieder,hield,hiemal,hieron,hieros,higdon,higgle,higgler,high,highboy,higher,highest,highish,highly,highman,hight,hightop,highway,higuero,hijack,hike,hiker,hilch,hilding,hill,hiller,hillet,hillman,hillock,hilltop,hilly,hilsa,hilt,hilum,hilus,him,himp,himself,himward,hin,hinau,hinch,hind,hinder,hing,hinge,hinger,hingle,hinney,hinny,hinoid,hinoki,hint,hinter,hiodont,hip,hipbone,hipe,hiper,hiphalt,hipless,hipmold,hipped,hippen,hippian,hippic,hipping,hippish,hipple,hippo,hippoid,hippus,hippy,hipshot,hipwort,hirable,hircine,hire,hired,hireman,hirer,hirmos,hiro,hirple,hirse,hirsel,hirsle,hirsute,his,hish,hisn,hispid,hiss,hisser,hissing,hist,histie,histoid,histon,histone,history,histrio,hit,hitch,hitcher,hitchy,hithe,hither,hitless,hitter,hive,hiver,hives,hizz,ho,hoar,hoard,hoarder,hoarily,hoarish,hoarse,hoarsen,hoary,hoast,hoatzin,hoax,hoaxee,hoaxer,hob,hobber,hobbet,hobbil,hobble,hobbler,hobbly,hobby,hoblike,hobnail,hobnob,hobo,hoboism,hocco,hock,hocker,hocket,hockey,hocky,hocus,hod,hodden,hodder,hoddle,hoddy,hodful,hodman,hoe,hoecake,hoedown,hoeful,hoer,hog,hoga,hogan,hogback,hogbush,hogfish,hogged,hogger,hoggery,hogget,hoggie,hoggin,hoggish,hoggism,hoggy,hogherd,hoghide,hoghood,hoglike,hogling,hogmace,hognose,hognut,hogpen,hogship,hogskin,hogsty,hogward,hogwash,hogweed,hogwort,hogyard,hoi,hoick,hoin,hoise,hoist,hoister,hoit,hoju,hokey,hokum,holard,holcad,hold,holdall,holden,holder,holding,holdout,holdup,hole,holeman,holer,holey,holia,holiday,holily,holing,holism,holl,holla,holler,hollin,hollo,hollock,hollong,hollow,holly,holm,holmia,holmic,holmium,holmos,holour,holster,holt,holy,holyday,homage,homager,home,homelet,homely,homelyn,homeoid,homer,homey,homily,hominal,hominid,hominy,homish,homo,homodox,homogen,homonym,homrai,homy,honda,hondo,hone,honest,honesty,honey,honeyed,hong,honied,honily,honk,honker,honor,honoree,honorer,hontish,hontous,hooch,hood,hoodcap,hooded,hoodful,hoodie,hoodlum,hoodman,hoodoo,hoodshy,hooey,hoof,hoofed,hoofer,hoofish,hooflet,hoofrot,hoofs,hoofy,hook,hookah,hooked,hooker,hookers,hookish,hooklet,hookman,hooktip,hookum,hookup,hooky,hoolock,hooly,hoon,hoop,hooped,hooper,hooping,hoopla,hoople,hoopman,hoopoe,hoose,hoosh,hoot,hootay,hooter,hoove,hooven,hoovey,hop,hopbine,hopbush,hope,hoped,hopeful,hopeite,hoper,hopi,hoplite,hopoff,hopped,hopper,hoppers,hoppet,hoppity,hopple,hoppy,hoptoad,hopvine,hopyard,hora,horal,horary,hordary,horde,hordein,horizon,horme,hormic,hormigo,hormion,hormist,hormone,hormos,horn,horned,horner,hornet,hornety,hornful,hornify,hornily,horning,hornish,hornist,hornito,hornlet,horntip,horny,horrent,horreum,horrid,horrify,horror,horse,horser,horsify,horsily,horsing,horst,horsy,hortite,hory,hosanna,hose,hosed,hosel,hoseman,hosier,hosiery,hospice,host,hostage,hostel,hoster,hostess,hostie,hostile,hosting,hostler,hostly,hostry,hot,hotbed,hotbox,hotch,hotel,hotfoot,hothead,hoti,hotly,hotness,hotspur,hotter,hottery,hottish,houbara,hough,hougher,hounce,hound,hounder,houndy,hour,hourful,houri,hourly,housage,housal,house,housel,houser,housing,housty,housy,houtou,houvari,hove,hovel,hoveler,hoven,hover,hoverer,hoverly,how,howadji,howbeit,howdah,howder,howdie,howdy,howe,howel,however,howff,howish,howk,howkit,howl,howler,howlet,howling,howlite,howso,hox,hoy,hoyden,hoyle,hoyman,huaca,huaco,huarizo,hub,hubb,hubba,hubber,hubble,hubbly,hubbub,hubby,hubshi,huchen,hucho,huck,huckle,hud,huddle,huddler,huddock,huddup,hue,hued,hueful,hueless,huer,huff,huffier,huffily,huffish,huffle,huffler,huffy,hug,huge,hugely,hugeous,hugger,hugging,huggle,hugsome,huh,huia,huipil,huitain,huke,hula,huldee,hulk,hulkage,hulking,hulky,hull,huller,hullock,hulloo,hulsite,hulster,hulu,hulver,hum,human,humane,humanly,humate,humble,humbler,humblie,humbly,humbo,humbug,humbuzz,humdrum,humect,humeral,humeri,humerus,humet,humetty,humhum,humic,humid,humidly,humidor,humific,humify,humin,humite,humlie,hummel,hummer,hummie,humming,hummock,humor,humoral,humous,hump,humped,humph,humpty,humpy,humus,hunch,hunchet,hunchy,hundi,hundred,hung,hunger,hungry,hunh,hunk,hunker,hunkers,hunkies,hunks,hunky,hunt,hunting,hup,hura,hurdies,hurdis,hurdle,hurdler,hurds,hure,hureek,hurgila,hurkle,hurl,hurled,hurler,hurley,hurling,hurlock,hurly,huron,hurr,hurrah,hurried,hurrier,hurrock,hurroo,hurry,hurst,hurt,hurted,hurter,hurtful,hurting,hurtle,hurty,husband,huse,hush,hushaby,husheen,hushel,husher,hushful,hushing,hushion,husho,husk,husked,husker,huskily,husking,husky,huso,huspil,huss,hussar,hussy,husting,hustle,hustler,hut,hutch,hutcher,hutchet,huthold,hutia,hutlet,hutment,huvelyk,huzoor,huzz,huzza,huzzard,hyaena,hyaline,hyalite,hyaloid,hybosis,hybrid,hydatid,hydnoid,hydrant,hydrate,hydrazo,hydria,hydric,hydride,hydro,hydroa,hydroid,hydrol,hydrome,hydrone,hydrops,hydrous,hydroxy,hydrula,hyena,hyenic,hyenine,hyenoid,hyetal,hygeist,hygiene,hygric,hygrine,hygroma,hying,hyke,hyle,hyleg,hylic,hylism,hylist,hyloid,hymen,hymenal,hymenic,hymn,hymnal,hymnary,hymner,hymnic,hymnist,hymnode,hymnody,hynde,hyne,hyoid,hyoidal,hyoidan,hyoides,hyp,hypate,hypaton,hyper,hypha,hyphal,hyphema,hyphen,hypho,hypnody,hypnoid,hypnone,hypo,hypogee,hypoid,hyponym,hypopus,hyporit,hyppish,hypural,hyraces,hyracid,hyrax,hyson,hyssop,i,iamb,iambi,iambic,iambist,iambize,iambus,iao,iatric,iba,iberite,ibex,ibices,ibid,ibidine,ibis,ibolium,ibota,icaco,ice,iceberg,iceboat,icebone,icebox,icecap,iced,icefall,icefish,iceland,iceleaf,iceless,icelike,iceman,iceroot,icework,ich,ichnite,icho,ichor,ichthus,ichu,icica,icicle,icicled,icily,iciness,icing,icon,iconic,iconism,icosian,icotype,icteric,icterus,ictic,ictuate,ictus,icy,id,idalia,idant,iddat,ide,idea,ideaed,ideaful,ideal,ideally,ideate,ideist,identic,ides,idgah,idiasm,idic,idiocy,idiom,idiot,idiotcy,idiotic,idiotry,idite,iditol,idle,idleful,idleman,idler,idleset,idlety,idlish,idly,idol,idola,idolify,idolism,idolist,idolize,idolous,idolum,idoneal,idorgan,idose,idryl,idyl,idyler,idylism,idylist,idylize,idyllic,ie,if,ife,iffy,igloo,ignatia,ignavia,igneous,ignify,ignite,igniter,ignitor,ignoble,ignobly,ignore,ignorer,ignote,iguana,iguanid,ihi,ihleite,ihram,iiwi,ijma,ijolite,ikat,ikey,ikona,ikra,ileac,ileitis,ileon,ilesite,ileum,ileus,ilex,ilia,iliac,iliacus,iliahi,ilial,iliau,ilicic,ilicin,ilima,ilium,ilk,ilka,ilkane,ill,illapse,illeck,illegal,illeism,illeist,illess,illfare,illicit,illish,illium,illness,illocal,illogic,illoyal,illth,illude,illuder,illume,illumer,illupi,illure,illusor,illy,ilot,ilvaite,image,imager,imagery,imagine,imagism,imagist,imago,imam,imamah,imamate,imamic,imaret,imban,imband,imbarge,imbark,imbarn,imbased,imbat,imbauba,imbe,imbed,imber,imbibe,imbiber,imbondo,imbosom,imbower,imbrex,imbrue,imbrute,imbue,imburse,imi,imide,imidic,imine,imino,imitant,imitate,immane,immask,immense,immerd,immerge,immerit,immerse,immew,immi,immit,immix,immoral,immound,immund,immune,immure,immute,imonium,imp,impack,impact,impages,impaint,impair,impala,impale,impaler,impall,impalm,impalsy,impane,impanel,impar,impark,imparl,impart,impasse,impaste,impasto,impave,impavid,impawn,impeach,impearl,impede,impeder,impel,impen,impend,impent,imperia,imperil,impest,impetre,impetus,imphee,impi,impiety,impinge,impious,impish,implant,implate,implead,implete,implex,implial,impling,implode,implore,implume,imply,impofo,impone,impoor,import,imposal,impose,imposer,impost,impot,impound,impreg,impregn,impresa,imprese,impress,imprest,imprime,imprint,improof,improve,impship,impubic,impugn,impulse,impure,impute,imputer,impy,imshi,imsonic,imu,in,inachid,inadept,inagile,inaja,inane,inanely,inanga,inanity,inapt,inaptly,inarch,inarm,inaugur,inaxon,inbe,inbeing,inbent,inbirth,inblow,inblown,inboard,inbond,inborn,inbound,inbread,inbreak,inbred,inbreed,inbring,inbuilt,inburnt,inburst,inby,incarn,incase,incast,incense,incept,incest,inch,inched,inchpin,incide,incisal,incise,incisor,incite,inciter,incivic,incline,inclip,inclose,include,inclusa,incluse,incog,income,incomer,inconnu,incrash,increep,increst,incross,incrust,incubi,incubus,incudal,incudes,incult,incur,incurse,incurve,incus,incuse,incut,indaba,indan,indane,indart,indazin,indazol,inde,indebt,indeed,indeedy,indene,indent,index,indexed,indexer,indic,indican,indices,indicia,indict,indign,indigo,indite,inditer,indium,indogen,indole,indoles,indolyl,indoor,indoors,indorse,indoxyl,indraft,indrawn,indri,induce,induced,inducer,induct,indue,indulge,indult,indulto,induna,indwell,indy,indyl,indylic,inearth,inept,ineptly,inequal,inerm,inert,inertia,inertly,inesite,ineunt,inexact,inexist,inface,infall,infame,infamy,infancy,infand,infang,infant,infanta,infante,infarct,infare,infaust,infect,infeed,infeft,infelt,infer,infern,inferno,infest,infidel,infield,infill,infilm,infirm,infit,infix,inflame,inflate,inflect,inflex,inflict,inflood,inflow,influx,infold,inform,infra,infract,infula,infuse,infuser,ing,ingate,ingenit,ingenue,ingest,ingesta,ingiver,ingle,inglobe,ingoing,ingot,ingraft,ingrain,ingrate,ingress,ingross,ingrow,ingrown,inguen,ingulf,inhabit,inhale,inhaler,inhaul,inhaust,inhere,inherit,inhiate,inhibit,inhuman,inhume,inhumer,inial,iniome,inion,initial,initis,initive,inject,injelly,injunct,injure,injured,injurer,injury,ink,inkbush,inken,inker,inket,inkfish,inkhorn,inkish,inkle,inkless,inklike,inkling,inknot,inkosi,inkpot,inkroot,inks,inkshed,inkweed,inkwell,inkwood,inky,inlaid,inlaik,inlake,inland,inlaut,inlaw,inlawry,inlay,inlayer,inleak,inlet,inlier,inlook,inly,inlying,inmate,inmeats,inmost,inn,innate,inneity,inner,innerly,innerve,inness,innest,innet,inning,innless,innyard,inocyte,inogen,inoglia,inolith,inoma,inone,inopine,inorb,inosic,inosin,inosite,inower,inphase,inport,inpour,inpush,input,inquest,inquiet,inquire,inquiry,inring,inro,inroad,inroll,inrub,inrun,inrush,insack,insane,insculp,insea,inseam,insect,insee,inseer,insense,insert,inset,inshave,inshell,inship,inshoe,inshoot,inshore,inside,insider,insight,insigne,insipid,insist,insnare,insofar,insole,insolid,insooth,insorb,insoul,inspan,inspeak,inspect,inspire,inspoke,install,instant,instar,instate,instead,insteam,insteep,instep,instill,insula,insular,insulin,insulse,insult,insunk,insure,insured,insurer,insurge,inswamp,inswell,inswept,inswing,intact,intake,intaker,integer,inteind,intend,intense,intent,inter,interim,intern,intext,inthrow,intil,intima,intimal,intine,into,intoed,intone,intoner,intort,intown,intrada,intrait,intrant,intreat,intrine,introit,intrude,intruse,intrust,intube,intue,intuent,intuit,inturn,intwist,inula,inulase,inulin,inuloid,inunct,inure,inured,inurn,inutile,invade,invader,invalid,inveigh,inveil,invein,invent,inverse,invert,invest,invigor,invised,invital,invite,invitee,inviter,invivid,invoice,invoke,invoker,involve,inwale,inwall,inward,inwards,inweave,inweed,inwick,inwind,inwit,inwith,inwood,inwork,inworn,inwound,inwoven,inwrap,inwrit,inyoite,inyoke,io,iodate,iodic,iodide,iodine,iodism,iodite,iodize,iodizer,iodo,iodol,iodoso,iodous,iodoxy,iolite,ion,ionic,ionium,ionize,ionizer,ionogen,ionone,iota,iotize,ipecac,ipid,ipil,ipomea,ipseand,ipseity,iracund,irade,irate,irately,ire,ireful,ireless,irene,irenic,irenics,irian,irid,iridal,iridate,irides,iridial,iridian,iridic,iridin,iridine,iridite,iridium,iridize,iris,irised,irisin,iritic,iritis,irk,irksome,irok,iroko,iron,irone,ironer,ironice,ironish,ironism,ironist,ironize,ironly,ironman,irony,irrisor,irrupt,is,isagoge,isagon,isamine,isatate,isatic,isatide,isatin,isazoxy,isba,ischiac,ischial,ischium,ischury,iserine,iserite,isidium,isidoid,island,islandy,islay,isle,islet,isleted,islot,ism,ismal,ismatic,ismdom,ismy,iso,isoamyl,isobar,isobare,isobase,isobath,isochor,isocola,isocrat,isodont,isoflor,isogamy,isogen,isogeny,isogon,isogram,isohel,isohyet,isolate,isology,isomer,isomere,isomery,isoneph,isonomy,isonym,isonymy,isopag,isopod,isopoly,isoptic,isopyre,isotac,isotely,isotome,isotony,isotope,isotopy,isotron,isotype,isoxime,issei,issite,issuant,issue,issuer,issuing,ist,isthmi,isthmic,isthmus,istle,istoke,isuret,isuroid,it,itacism,itacist,italics,italite,itch,itching,itchy,itcze,item,iteming,itemize,itemy,iter,iterant,iterate,ither,itmo,itoubou,its,itself,iturite,itzebu,iva,ivied,ivin,ivoried,ivorine,ivorist,ivory,ivy,ivylike,ivyweed,ivywood,ivywort,iwa,iwaiwa,iwis,ixodian,ixodic,ixodid,iyo,izar,izard,izle,izote,iztle,izzard,j,jab,jabbed,jabber,jabbing,jabble,jabers,jabia,jabiru,jabot,jabul,jacal,jacamar,jacami,jacamin,jacana,jacare,jacate,jacchus,jacent,jacinth,jack,jackal,jackass,jackbox,jackboy,jackdaw,jackeen,jacker,jacket,jackety,jackleg,jackman,jacko,jackrod,jacksaw,jacktan,jacobus,jacoby,jaconet,jactant,jacu,jacuaru,jadder,jade,jaded,jadedly,jadeite,jadery,jadish,jady,jaeger,jag,jagat,jager,jagged,jagger,jaggery,jaggy,jagir,jagla,jagless,jagong,jagrata,jagua,jaguar,jail,jailage,jaildom,jailer,jailish,jajman,jake,jakes,jako,jalap,jalapa,jalapin,jalkar,jalopy,jalouse,jam,jama,jaman,jamb,jambeau,jambo,jambone,jambool,jambosa,jamdani,jami,jamlike,jammer,jammy,jampan,jampani,jamwood,janapa,janapan,jane,jangada,jangkar,jangle,jangler,jangly,janitor,jank,janker,jann,jannock,jantu,janua,jaob,jap,japan,jape,japer,japery,japing,japish,jaquima,jar,jara,jaragua,jarbird,jarble,jarbot,jarfly,jarful,jarg,jargon,jarkman,jarl,jarldom,jarless,jarnut,jarool,jarra,jarrah,jarring,jarry,jarvey,jasey,jaseyed,jasmine,jasmone,jasper,jaspery,jaspis,jaspoid,jass,jassid,jassoid,jatha,jati,jato,jaudie,jauk,jaun,jaunce,jaunder,jaunt,jauntie,jaunty,jaup,javali,javelin,javer,jaw,jawab,jawbone,jawed,jawfall,jawfish,jawfoot,jawless,jawy,jay,jayhawk,jaypie,jaywalk,jazz,jazzer,jazzily,jazzy,jealous,jean,jeans,jecoral,jecorin,jed,jedcock,jedding,jeddock,jeel,jeep,jeer,jeerer,jeering,jeery,jeff,jehu,jehup,jejunal,jejune,jejunum,jelab,jelick,jell,jellica,jellico,jellied,jellify,jellily,jelloid,jelly,jemadar,jemmily,jemmy,jenkin,jenna,jennet,jennier,jenny,jeofail,jeopard,jerboa,jereed,jerez,jerib,jerk,jerker,jerkily,jerkin,jerkish,jerky,jerl,jerm,jerque,jerquer,jerry,jersey,jert,jervia,jervina,jervine,jess,jessamy,jessant,jessed,jessur,jest,jestee,jester,jestful,jesting,jet,jetbead,jete,jetsam,jettage,jetted,jetter,jettied,jetton,jetty,jetware,jewbird,jewbush,jewel,jeweler,jewelry,jewely,jewfish,jezail,jeziah,jharal,jheel,jhool,jhow,jib,jibbah,jibber,jibby,jibe,jibhead,jibi,jibman,jiboa,jibstay,jicama,jicara,jiff,jiffle,jiffy,jig,jigger,jiggers,jigget,jiggety,jiggish,jiggle,jiggly,jiggy,jiglike,jigman,jihad,jikungu,jillet,jilt,jiltee,jilter,jiltish,jimbang,jimjam,jimmy,jimp,jimply,jina,jing,jingal,jingle,jingled,jingler,jinglet,jingly,jingo,jinja,jinjili,jink,jinker,jinket,jinkle,jinks,jinn,jinni,jinny,jinriki,jinx,jipper,jiqui,jirble,jirga,jiti,jitneur,jitney,jitro,jitter,jitters,jittery,jiva,jive,jixie,jo,job,jobade,jobarbe,jobber,jobbery,jobbet,jobbing,jobbish,jobble,jobless,jobman,jobo,joch,jock,jocker,jockey,jocko,jocoque,jocose,jocote,jocu,jocular,jocum,jocuma,jocund,jodel,jodelr,joe,joebush,joewood,joey,jog,jogger,joggle,joggler,joggly,johnin,join,joinant,joinder,joiner,joinery,joining,joint,jointed,jointer,jointly,jointy,joist,jojoba,joke,jokelet,joker,jokish,jokist,jokul,joky,joll,jollier,jollify,jollily,jollity,jollop,jolly,jolt,jolter,jolting,jolty,jonque,jonquil,joola,joom,jordan,joree,jorum,joseite,josh,josher,joshi,josie,joskin,joss,josser,jostle,jostler,jot,jota,jotisi,jotter,jotting,jotty,joubarb,joug,jough,jouk,joule,joulean,jounce,journal,journey,jours,joust,jouster,jovial,jow,jowar,jowari,jowel,jower,jowery,jowl,jowler,jowlish,jowlop,jowly,jowpy,jowser,jowter,joy,joyance,joyancy,joyant,joyful,joyhop,joyleaf,joyless,joylet,joyous,joysome,joyweed,juba,jubate,jubbah,jubbe,jube,jubilee,jubilus,juck,juckies,jud,judcock,judex,judge,judger,judices,judo,jufti,jug,jugal,jugale,jugate,jugated,juger,jugerum,jugful,jugger,juggins,juggle,juggler,juglone,jugular,jugulum,jugum,juice,juicily,juicy,jujitsu,juju,jujube,jujuism,jujuist,juke,jukebox,julep,julid,julidan,julio,juloid,julole,julolin,jumart,jumba,jumble,jumbler,jumbly,jumbo,jumbuck,jumby,jumelle,jument,jumfru,jumma,jump,jumper,jumpy,juncite,juncous,june,jungle,jungled,jungli,jungly,juniata,junior,juniper,junk,junker,junket,junking,junkman,junt,junta,junto,jupati,jupe,jupon,jural,jurally,jurant,jurara,jurat,jurator,jure,jurel,juridic,juring,jurist,juror,jury,juryman,jussel,jussion,jussive,jussory,just,justen,justice,justify,justly,justo,jut,jute,jutka,jutting,jutty,juvenal,juvia,juvite,jyngine,jynx,k,ka,kabaya,kabel,kaberu,kabiet,kabuki,kachin,kadaya,kadein,kados,kaffir,kafir,kafirin,kafiz,kafta,kago,kagu,kaha,kahar,kahau,kahili,kahu,kahuna,kai,kaid,kaik,kaikara,kail,kainga,kainite,kainsi,kainyn,kairine,kaiser,kaitaka,kaiwi,kajawah,kaka,kakapo,kakar,kaki,kakkak,kakke,kala,kalasie,kale,kalema,kalends,kali,kalian,kalium,kallah,kallege,kalo,kalon,kalong,kalpis,kamahi,kamala,kamansi,kamao,kamas,kamassi,kambal,kamboh,kame,kamerad,kamias,kamichi,kamik,kampong,kan,kana,kanae,kanagi,kanap,kanara,kanari,kanat,kanchil,kande,kandol,kaneh,kang,kanga,kangani,kankie,kannume,kanoon,kans,kantele,kanten,kaolin,kapa,kapai,kapeika,kapok,kapp,kappa,kappe,kapur,kaput,karagan,karaka,karakul,karamu,karaoke,karate,karaya,karbi,karch,kareao,kareeta,karela,karite,karma,karmic,karo,kaross,karou,karree,karri,karroo,karsha,karst,karstic,kartel,kartos,karwar,karyon,kasa,kasbah,kasbeke,kasher,kashga,kashi,kashima,kasida,kasm,kassu,kastura,kat,katar,katcina,kath,katha,kathal,katipo,katmon,katogle,katsup,katuka,katun,katurai,katydid,kauri,kava,kavaic,kavass,kawaka,kawika,kay,kayak,kayaker,kayles,kayo,kazi,kazoo,kea,keach,keacorn,keawe,keb,kebab,kebbie,kebbuck,kechel,keck,keckle,kecksy,kecky,ked,keddah,kedge,kedger,kedlock,keech,keek,keeker,keel,keelage,keeled,keeler,keelfat,keelie,keeling,keelman,keelson,keen,keena,keened,keener,keenly,keep,keeper,keeping,keest,keet,keeve,kef,keffel,kefir,kefiric,keg,kegler,kehaya,keita,keitloa,kekuna,kelchin,keld,kele,kelebe,keleh,kelek,kelep,kelk,kell,kella,kellion,kelly,keloid,kelp,kelper,kelpie,kelpy,kelt,kelter,kelty,kelvin,kemb,kemp,kempite,kemple,kempt,kempy,ken,kenaf,kenareh,kench,kend,kendir,kendyr,kenlore,kenmark,kennel,kenner,kenning,kenno,keno,kenosis,kenotic,kenspac,kent,kenyte,kep,kepi,kept,kerana,kerasin,kerat,keratin,keratto,kerchoo,kerchug,kerel,kerf,kerflap,kerflop,kermes,kermis,kern,kernel,kerner,kernish,kernite,kernos,kerogen,kerrie,kerril,kerrite,kerry,kersey,kerslam,kerugma,kerwham,kerygma,kestrel,ket,keta,ketal,ketch,ketchup,keten,ketene,ketipic,keto,ketogen,ketol,ketole,ketone,ketonic,ketose,ketosis,kette,ketting,kettle,kettler,ketty,ketuba,ketupa,ketyl,keup,kevalin,kevel,kewpie,kex,kexy,key,keyage,keyed,keyhole,keyless,keylet,keylock,keynote,keyway,khaddar,khadi,khahoon,khaiki,khair,khaja,khajur,khaki,khakied,khalifa,khalsa,khamsin,khan,khanate,khanda,khanjar,khanjee,khankah,khanum,khar,kharaj,kharua,khass,khat,khatib,khatri,khediva,khedive,khepesh,khet,khilat,khir,khirka,khoja,khoka,khot,khu,khubber,khula,khutbah,khvat,kiack,kiaki,kialee,kiang,kiaugh,kibber,kibble,kibbler,kibe,kibei,kibitka,kibitz,kiblah,kibosh,kiby,kick,kickee,kicker,kicking,kickish,kickoff,kickout,kickup,kidder,kiddier,kiddish,kiddush,kiddy,kidhood,kidlet,kidling,kidnap,kidney,kidskin,kidsman,kiekie,kiel,kier,kieye,kikar,kike,kiki,kiku,kikuel,kikumon,kil,kiladja,kilah,kilan,kildee,kileh,kilerg,kiley,kilhig,kiliare,kilim,kill,killas,killcu,killeen,killer,killick,killing,killy,kiln,kilneye,kilnman,kilnrib,kilo,kilobar,kiloton,kilovar,kilp,kilt,kilter,kiltie,kilting,kim,kimbang,kimnel,kimono,kin,kina,kinah,kinase,kinbote,kinch,kinchin,kincob,kind,kindle,kindler,kindly,kindred,kinepox,kinesic,kinesis,kinetic,king,kingcob,kingcup,kingdom,kinglet,kingly,kingpin,kingrow,kink,kinkhab,kinkily,kinkle,kinkled,kinkly,kinky,kinless,kino,kinship,kinsman,kintar,kioea,kiosk,kiotome,kip,kipage,kipe,kippeen,kipper,kippy,kipsey,kipskin,kiri,kirimon,kirk,kirker,kirkify,kirking,kirkman,kirmew,kirn,kirombo,kirsch,kirtle,kirtled,kirve,kirver,kischen,kish,kishen,kishon,kishy,kismet,kisra,kiss,kissage,kissar,kisser,kissing,kissy,kist,kistful,kiswa,kit,kitab,kitabis,kitar,kitcat,kitchen,kite,kith,kithe,kitish,kitling,kittel,kitten,kitter,kittle,kittles,kittly,kittock,kittul,kitty,kiva,kiver,kivu,kiwi,kiyas,kiyi,klafter,klam,klavern,klaxon,klepht,kleptic,klicket,klip,klipbok,klipdas,klippe,klippen,klister,klom,klop,klops,klosh,kmet,knab,knabble,knack,knacker,knacky,knag,knagged,knaggy,knap,knape,knappan,knapper,knar,knark,knarred,knarry,knave,knavery,knavess,knavish,knawel,knead,kneader,knee,kneecap,kneed,kneel,kneeler,kneelet,kneepad,kneepan,knell,knelt,knet,knew,knez,knezi,kniaz,kniazi,knick,knicker,knife,knifer,knight,knit,knitch,knitted,knitter,knittle,knived,knivey,knob,knobbed,knobber,knobble,knobbly,knobby,knock,knocker,knockup,knoll,knoller,knolly,knop,knopite,knopped,knopper,knoppy,knosp,knosped,knot,knotted,knotter,knotty,knout,know,knowe,knower,knowing,known,knub,knubbly,knubby,knublet,knuckle,knuckly,knur,knurl,knurled,knurly,knut,knutty,knyaz,knyazi,ko,koa,koae,koala,koali,kob,koban,kobi,kobird,kobold,kobong,kobu,koda,kodak,kodaker,kodakry,kodro,koel,koff,koft,koftgar,kohemp,kohl,kohua,koi,koil,koila,koilon,koine,koinon,kojang,kokako,kokam,kokan,kokil,kokio,koklas,koklass,koko,kokoon,kokowai,kokra,koku,kokum,kokumin,kola,kolach,kolea,kolhoz,kolkhos,kolkhoz,kollast,koller,kolo,kolobus,kolsun,komatik,kombu,kommos,kompeni,kon,kona,konak,kongoni,kongu,konini,konjak,kooka,kookery,kookri,koolah,koombar,koomkie,kootcha,kop,kopeck,koph,kopi,koppa,koppen,koppite,kor,kora,koradji,korait,korakan,korari,kore,korec,koreci,korero,kori,korin,korona,korova,korrel,koruna,korzec,kos,kosher,kosin,kosong,koswite,kotal,koto,kotuku,kotwal,kotyle,kotylos,kou,koulan,kouza,kovil,kowhai,kowtow,koyan,kozo,kra,kraal,kraft,krait,kraken,kral,krama,kran,kras,krasis,krausen,kraut,kreis,krelos,kremlin,krems,kreng,krieker,krimmer,krina,krocket,krome,krona,krone,kronen,kroner,kronor,kronur,kroon,krosa,krypsis,kryptic,kryptol,krypton,kuan,kuba,kubba,kuchen,kudize,kudos,kudu,kudzu,kuei,kuge,kugel,kuichua,kukri,kuku,kukui,kukupa,kula,kulack,kulah,kulaite,kulak,kulang,kulimit,kulm,kulmet,kumbi,kumhar,kumiss,kummel,kumquat,kumrah,kunai,kung,kunk,kunkur,kunzite,kuphar,kupper,kurbash,kurgan,kuruma,kurung,kurus,kurvey,kusa,kusam,kusha,kuskite,kuskos,kuskus,kusti,kusum,kutcha,kuttab,kuttar,kuttaur,kuvasz,kvass,kvint,kvinter,kwamme,kwan,kwarta,kwazoku,kyack,kyah,kyar,kyat,kyaung,kyl,kyle,kylite,kylix,kyrine,kyte,l,la,laager,laang,lab,labara,labarum,labba,labber,labefy,label,labeler,labella,labia,labial,labiate,labile,labiose,labis,labium,lablab,labor,labored,laborer,labour,labra,labral,labret,labroid,labrose,labrum,labrys,lac,lacca,laccaic,laccase,laccol,lace,laced,laceman,lacepod,lacer,lacery,lacet,lache,laches,lachsa,lacily,lacing,lacinia,lacis,lack,lacker,lackey,lackwit,lacmoid,lacmus,laconic,lacquer,lacrym,lactam,lactant,lactary,lactase,lactate,lacteal,lactean,lactic,lactid,lactide,lactify,lactim,lacto,lactoid,lactol,lactone,lactose,lactyl,lacuna,lacunae,lacunal,lacunar,lacune,lacwork,lacy,lad,ladakin,ladanum,ladder,laddery,laddess,laddie,laddish,laddock,lade,lademan,laden,lader,ladhood,ladies,ladify,lading,ladkin,ladle,ladler,ladrone,lady,ladybug,ladydom,ladyfly,ladyfy,ladyish,ladyism,ladykin,ladyly,laet,laeti,laetic,lag,lagan,lagarto,lagen,lagena,lagend,lager,lagetto,laggar,laggard,lagged,laggen,lagger,laggin,lagging,laglast,lagna,lagoon,lagwort,lai,laic,laical,laich,laicism,laicity,laicize,laid,laigh,lain,laine,laiose,lair,lairage,laird,lairdie,lairdly,lairman,lairy,laity,lak,lakatoi,lake,lakelet,laker,lakie,laking,lakish,lakism,lakist,laky,lalang,lall,lalling,lalo,lam,lama,lamaic,lamany,lamb,lamba,lambale,lambda,lambeau,lambent,lamber,lambert,lambie,lambish,lambkin,lambly,lamboys,lamby,lame,lamedh,lamel,lamella,lamely,lament,lameter,lametta,lamia,lamiger,lamiid,lamin,lamina,laminae,laminar,lamish,lamiter,lammas,lammer,lammock,lammy,lamnid,lamnoid,lamp,lampad,lampas,lamper,lampern,lampers,lampfly,lampful,lamping,lampion,lampist,lamplet,lamplit,lampman,lampoon,lamprey,lan,lanas,lanate,lanated,lanaz,lance,lanced,lancely,lancer,lances,lancet,lancha,land,landau,landed,lander,landing,landman,landmil,lane,lanete,laneway,laney,langaha,langca,langi,langite,langle,langoon,langsat,langued,languet,languid,languor,langur,laniary,laniate,lanific,lanioid,lanista,lank,lanket,lankily,lankish,lankly,lanky,lanner,lanolin,lanose,lansat,lanseh,lanson,lant,lantaca,lantern,lantum,lanugo,lanum,lanx,lanyard,lap,lapacho,lapcock,lapel,lapeler,lapful,lapillo,lapon,lappage,lapped,lapper,lappet,lapping,lapse,lapsed,lapser,lapsi,lapsing,lapwing,lapwork,laquear,laqueus,lar,larceny,larch,larchen,lard,larder,lardite,lardon,lardy,large,largely,largen,largess,largish,largo,lari,lariat,larick,larid,larigo,larigot,lariid,larin,larine,larixin,lark,larker,larking,larkish,larky,larmier,larnax,laroid,larrup,larry,larva,larvae,larval,larvate,larve,larvule,larynx,las,lasa,lascar,laser,lash,lasher,lask,lasket,lasque,lass,lasset,lassie,lasso,lassock,lassoer,last,lastage,laster,lasting,lastly,lastre,lasty,lat,lata,latah,latch,latcher,latchet,late,latebra,lated,lateen,lately,laten,latence,latency,latent,later,latera,laterad,lateral,latest,latex,lath,lathe,lathee,lathen,lather,lathery,lathing,lathy,latices,latigo,lation,latish,latitat,latite,latomy,latrant,latria,latrine,latro,latrobe,latron,latten,latter,lattice,latus,lauan,laud,lauder,laudist,laugh,laughee,laugher,laughy,lauia,laun,launce,launch,laund,launder,laundry,laur,laura,laurate,laurel,lauric,laurin,laurite,laurone,lauryl,lava,lavable,lavabo,lavacre,lavage,lavanga,lavant,lavaret,lavatic,lave,laveer,laver,lavic,lavish,lavolta,law,lawbook,lawful,lawing,lawish,lawk,lawless,lawlike,lawman,lawn,lawned,lawner,lawnlet,lawny,lawsuit,lawter,lawyer,lawyery,lawzy,lax,laxate,laxism,laxist,laxity,laxly,laxness,lay,layaway,layback,layboy,layer,layered,layery,layette,laying,layland,layman,layne,layoff,layout,layover,layship,laystow,lazar,lazaret,lazarly,laze,lazily,lazule,lazuli,lazy,lazyish,lea,leach,leacher,leachy,lead,leadage,leaded,leaden,leader,leadin,leading,leadman,leadoff,leadout,leadway,leady,leaf,leafage,leafboy,leafcup,leafdom,leafed,leafen,leafer,leafery,leafit,leaflet,leafy,league,leaguer,leak,leakage,leaker,leaky,leal,lealand,leally,lealty,leam,leamer,lean,leaner,leaning,leanish,leanly,leant,leap,leaper,leaping,leapt,lear,learn,learned,learner,learnt,lease,leaser,leash,leasing,leasow,least,leat,leath,leather,leatman,leave,leaved,leaven,leaver,leaves,leaving,leavy,leawill,leban,lebbek,lecama,lech,lecher,lechery,lechwe,leck,lecker,lectern,lection,lector,lectual,lecture,lecyth,led,lede,leden,ledge,ledged,ledger,ledging,ledgy,ledol,lee,leech,leecher,leeches,leed,leefang,leek,leekish,leeky,leep,leepit,leer,leerily,leerish,leery,lees,leet,leetman,leewan,leeward,leeway,leewill,left,leftish,leftism,leftist,leg,legacy,legal,legally,legate,legatee,legato,legator,legend,legenda,leger,leges,legged,legger,legging,leggy,leghorn,legible,legibly,legific,legion,legist,legit,legitim,leglen,legless,leglet,leglike,legman,legoa,legpull,legrope,legua,leguan,legume,legumen,legumin,lehr,lehrman,lehua,lei,leister,leisure,lek,lekach,lekane,lekha,leman,lemel,lemma,lemmata,lemming,lemnad,lemon,lemony,lempira,lemur,lemures,lemurid,lenad,lenard,lench,lend,lendee,lender,lene,length,lengthy,lenient,lenify,lenis,lenitic,lenity,lennow,leno,lens,lensed,lent,lenth,lentigo,lentil,lentisc,lentisk,lento,lentoid,lentor,lentous,lenvoi,lenvoy,leonine,leonite,leopard,leotard,lepa,leper,lepered,leporid,lepra,lepric,leproid,leproma,leprose,leprosy,leprous,leptid,leptite,leptome,lepton,leptus,lerot,lerp,lerret,lesche,lesion,lesiy,less,lessee,lessen,lesser,lessive,lessn,lesson,lessor,lest,lestrad,let,letch,letchy,letdown,lete,lethal,letoff,letten,letter,lettrin,lettuce,letup,leu,leuch,leucine,leucism,leucite,leuco,leucoid,leucoma,leucon,leucous,leucyl,leud,leuk,leuma,lev,levance,levant,levator,levee,level,leveler,levelly,lever,leverer,leveret,levers,levier,levin,levir,levity,levo,levulic,levulin,levy,levyist,lew,lewd,lewdly,lewis,lewth,lexia,lexical,lexicon,ley,leyland,leysing,li,liable,liaison,liana,liang,liar,liard,libant,libate,libber,libbet,libbra,libel,libelee,libeler,liber,liberal,liberty,libido,libken,libra,libral,library,librate,licca,license,lich,licham,lichen,licheny,lichi,licit,licitly,lick,licker,licking,licorn,licorne,lictor,lid,lidded,lidder,lidgate,lidless,lie,lied,lief,liege,liegely,lieger,lien,lienal,lienee,lienic,lienor,lier,lierne,lierre,liesh,lieu,lieue,lieve,life,lifeday,lifeful,lifelet,lifer,lifey,lifo,lift,lifter,lifting,liftman,ligable,ligas,ligate,ligator,ligger,light,lighten,lighter,lightly,ligne,lignify,lignin,lignite,lignone,lignose,lignum,ligula,ligular,ligule,ligulin,ligure,liin,lija,likable,like,likely,liken,liker,likin,liking,liknon,lilac,lilacin,lilacky,lile,lilied,lill,lilt,lily,lilyfy,lim,limacel,limacon,liman,limb,limbal,limbat,limbate,limbeck,limbed,limber,limbers,limbic,limbie,limbo,limbous,limbus,limby,lime,limeade,limeman,limen,limer,limes,limetta,limey,liminal,liming,limit,limital,limited,limiter,limma,limmer,limmock,limmu,limn,limner,limnery,limniad,limnite,limoid,limonin,limose,limous,limp,limper,limpet,limpid,limpily,limpin,limping,limpish,limpkin,limply,limpsy,limpy,limsy,limu,limulid,limy,lin,lina,linable,linaga,linage,linaloa,linalol,linch,linchet,linctus,lindane,linden,linder,lindo,line,linea,lineage,lineal,linear,lineate,linecut,lined,linelet,lineman,linen,liner,ling,linga,linge,lingel,linger,lingo,lingtow,lingua,lingual,linguet,lingula,lingy,linha,linhay,linie,linin,lining,linitis,liniya,linja,linje,link,linkage,linkboy,linked,linker,linking,linkman,links,linky,linn,linnet,lino,linolic,linolin,linon,linous,linoxin,linoxyn,linpin,linseed,linsey,lint,lintel,linten,linter,lintern,lintie,linty,linwood,liny,lion,lioncel,lionel,lioness,lionet,lionism,lionize,lionly,lip,lipa,liparid,lipase,lipemia,lipide,lipin,lipless,liplet,liplike,lipoid,lipoma,lipopod,liposis,lipped,lippen,lipper,lipping,lippy,lipuria,lipwork,liquate,liquefy,liqueur,liquid,liquidy,liquor,lira,lirate,lire,lirella,lis,lisere,lish,lisk,lisle,lisp,lisper,lispund,liss,lissom,lissome,list,listed,listel,listen,lister,listing,listred,lit,litany,litas,litch,litchi,lite,liter,literal,lith,lithe,lithely,lithi,lithia,lithic,lithify,lithite,lithium,litho,lithoid,lithous,lithy,litmus,litotes,litra,litster,litten,litter,littery,little,lituite,liturgy,litus,lituus,litz,livable,live,lived,livedo,lively,liven,liver,livered,livery,livid,lividly,livier,living,livor,livre,liwan,lixive,lizard,llama,llano,llautu,llyn,lo,loa,loach,load,loadage,loaded,loaden,loader,loading,loaf,loafer,loafing,loaflet,loam,loamily,loaming,loamy,loan,loaner,loanin,loath,loathe,loather,loathly,loave,lob,lobal,lobar,lobate,lobated,lobber,lobbish,lobby,lobbyer,lobcock,lobe,lobed,lobelet,lobelin,lobfig,lobing,lobiped,lobo,lobola,lobose,lobster,lobtail,lobular,lobule,lobworm,loca,locable,local,locale,locally,locanda,locate,locator,loch,lochage,lochan,lochia,lochial,lochus,lochy,loci,lock,lockage,lockbox,locked,locker,locket,lockful,locking,lockjaw,locklet,lockman,lockout,lockpin,lockram,lockup,locky,loco,locoism,locular,locule,loculus,locum,locus,locust,locusta,locutor,lod,lode,lodge,lodged,lodger,lodging,loess,loessal,loessic,lof,loft,lofter,loftily,lofting,loftman,lofty,log,loganin,logbook,logcock,loge,logeion,logeum,loggat,logged,logger,loggia,loggin,logging,loggish,loghead,logia,logic,logical,logie,login,logion,logium,loglet,loglike,logman,logoi,logos,logroll,logway,logwise,logwood,logwork,logy,lohan,lohoch,loimic,loin,loined,loir,loiter,loka,lokao,lokaose,loke,loket,lokiec,loll,loller,lollop,lollopy,lolly,loma,lombard,lomboy,loment,lomita,lommock,lone,lonely,long,longa,longan,longbow,longe,longear,longer,longfin,longful,longing,longish,longjaw,longly,longs,longue,longway,lontar,loo,looby,lood,loof,loofah,loofie,look,looker,looking,lookout,lookum,loom,loomer,loomery,looming,loon,loonery,looney,loony,loop,looper,loopful,looping,loopist,looplet,loopy,loose,loosely,loosen,looser,loosing,loosish,loot,looten,looter,lootie,lop,lope,loper,lophiid,lophine,loppard,lopper,loppet,lopping,loppy,lopseed,loquat,loquent,lora,loral,loran,lorate,lorcha,lord,lording,lordkin,lordlet,lordly,lordy,lore,loreal,lored,lori,loric,lorica,lorilet,lorimer,loriot,loris,lormery,lorn,loro,lorry,lors,lorum,lory,losable,lose,losel,loser,losh,losing,loss,lost,lot,lota,lotase,lote,lotic,lotion,lotment,lotrite,lots,lotter,lottery,lotto,lotus,lotusin,louch,loud,louden,loudish,loudly,louey,lough,louk,loukoum,loulu,lounder,lounge,lounger,loungy,loup,loupe,lour,lourdy,louse,lousily,louster,lousy,lout,louter,louther,loutish,louty,louvar,louver,lovable,lovably,lovage,love,loveful,lovely,loveman,lover,lovered,loverly,loving,low,lowa,lowan,lowbell,lowborn,lowboy,lowbred,lowdah,lowder,loweite,lower,lowerer,lowery,lowish,lowland,lowlily,lowly,lowmen,lowmost,lown,lowness,lownly,lowth,lowwood,lowy,lox,loxia,loxic,loxotic,loy,loyal,loyally,loyalty,lozenge,lozengy,lubber,lube,lubra,lubric,lubrify,lucanid,lucarne,lucban,luce,lucence,lucency,lucent,lucern,lucerne,lucet,lucible,lucid,lucida,lucidly,lucifee,lucific,lucigen,lucivee,luck,lucken,luckful,luckie,luckily,lucky,lucre,lucrify,lucule,lucumia,lucy,ludden,ludibry,ludo,lue,lues,luetic,lufbery,luff,lug,luge,luger,luggage,luggar,lugged,lugger,luggie,lugmark,lugsail,lugsome,lugworm,luhinga,luigino,luke,lukely,lulab,lull,lullaby,luller,lulu,lum,lumbago,lumbang,lumbar,lumber,lumen,luminal,lumine,lummox,lummy,lump,lumper,lumpet,lumpily,lumping,lumpish,lumpkin,lumpman,lumpy,luna,lunacy,lunar,lunare,lunary,lunate,lunatic,lunatum,lunch,luncher,lune,lunes,lunette,lung,lunge,lunged,lunger,lungful,lungi,lungie,lungis,lungy,lunn,lunoid,lunt,lunula,lunular,lunule,lunulet,lupe,lupeol,lupeose,lupine,lupinin,lupis,lupoid,lupous,lupulic,lupulin,lupulus,lupus,lura,lural,lurch,lurcher,lurdan,lure,lureful,lurer,lurg,lurid,luridly,lurk,lurker,lurky,lurrier,lurry,lush,lusher,lushly,lushy,lusk,lusky,lusory,lust,luster,lustful,lustily,lustra,lustral,lustrum,lusty,lut,lutany,lute,luteal,lutecia,lutein,lutelet,luteo,luteoma,luteous,luter,luteway,lutfisk,luthern,luthier,luting,lutist,lutose,lutrin,lutrine,lux,luxate,luxe,luxury,luxus,ly,lyam,lyard,lyceal,lyceum,lycid,lycopin,lycopod,lycosid,lyctid,lyddite,lydite,lye,lyery,lygaeid,lying,lyingly,lymph,lymphad,lymphy,lyncean,lynch,lyncher,lyncine,lynx,lyra,lyrate,lyrated,lyraway,lyre,lyreman,lyric,lyrical,lyrism,lyrist,lys,lysate,lyse,lysin,lysine,lysis,lysogen,lyssa,lyssic,lytic,lytta,lyxose,m,ma,maam,mabi,mabolo,mac,macabre,macaco,macadam,macan,macana,macao,macaque,macaw,macco,mace,maceman,macer,machan,machar,machete,machi,machila,machin,machine,machree,macies,mack,mackins,mackle,macle,macled,maco,macrame,macro,macron,macuca,macula,macular,macule,macuta,mad,madam,madame,madcap,madden,madder,madding,maddish,maddle,made,madefy,madhuca,madid,madling,madly,madman,madnep,madness,mado,madoqua,madrier,madrona,madship,maduro,madweed,madwort,mae,maenad,maestri,maestro,maffia,maffick,maffle,mafflin,mafic,mafoo,mafura,mag,magadis,magani,magas,mage,magenta,magged,maggle,maggot,maggoty,magi,magic,magical,magiric,magma,magnate,magnes,magnet,magneta,magneto,magnify,magnum,magot,magpie,magpied,magsman,maguari,maguey,maha,mahaleb,mahalla,mahant,mahar,maharao,mahatma,mahmal,mahmudi,mahoe,maholi,mahone,mahout,mahseer,mahua,mahuang,maid,maidan,maiden,maidish,maidism,maidkin,maidy,maiefic,maigre,maiid,mail,mailbag,mailbox,mailed,mailer,mailie,mailman,maim,maimed,maimer,maimon,main,mainly,mainour,mainpin,mains,maint,maintop,maioid,maire,maize,maizer,majagua,majesty,majo,majoon,major,makable,make,makedom,maker,makhzan,maki,making,makluk,mako,makuk,mal,mala,malacia,malacon,malady,malagma,malaise,malakin,malambo,malanga,malapi,malar,malaria,malarin,malate,malati,malax,malduck,male,malease,maleate,maleic,malella,maleo,malfed,mali,malic,malice,malicho,malign,malik,maline,malines,malism,malison,malist,malkin,mall,mallard,malleal,mallear,mallee,mallein,mallet,malleus,mallow,mallum,mallus,malm,malmsey,malmy,malo,malodor,malonic,malonyl,malouah,malpais,malt,maltase,malter,maltha,malting,maltman,maltose,malty,mamba,mambo,mamma,mammal,mammary,mammate,mammee,mammer,mammock,mammon,mammoth,mammula,mammy,mamo,man,mana,manacle,manage,managee,manager,manaism,manakin,manal,manas,manatee,manavel,manbird,manbot,manche,manchet,mancono,mancus,mand,mandala,mandant,mandate,mandil,mandola,mandom,mandora,mandore,mandra,mandrel,mandrin,mandua,mandyas,mane,maned,manege,manei,manent,manes,maness,maney,manful,mang,manga,mangal,mange,mangeao,mangel,manger,mangi,mangily,mangle,mangler,mango,mangona,mangue,mangy,manhead,manhole,manhood,mani,mania,maniac,manic,manid,manify,manikin,manila,manilla,manille,manioc,maniple,manism,manist,manito,maniu,manjak,mank,mankin,mankind,manless,manlet,manlike,manlily,manling,manly,manna,mannan,manner,manners,manness,mannide,mannie,mannify,manning,mannish,mannite,mannose,manny,mano,manoc,manomin,manor,manque,manred,manrent,manroot,manrope,mansard,manse,manship,mansion,manso,mant,manta,mantal,manteau,mantel,manter,mantes,mantic,mantid,mantis,mantle,mantled,mantlet,manto,mantoid,mantra,mantrap,mantua,manual,manuao,manuka,manul,manuma,manumea,manumit,manure,manurer,manus,manward,manway,manweed,manwise,many,manzana,manzil,mao,maomao,map,mapach,mapau,mapland,maple,mapo,mapper,mappist,mappy,mapwise,maqui,maquis,mar,marabou,maraca,maracan,marae,maral,marang,marara,mararie,marasca,maraud,marble,marbled,marbler,marbles,marbly,marc,marcel,march,marcher,marcid,marco,marconi,marcor,mardy,mare,maremma,marengo,marfire,margay,marge,margent,margin,margosa,marhala,maria,marid,marimba,marina,marine,mariner,mariola,maris,marish,marital,mark,marka,marked,marker,market,markhor,marking,markka,markman,markup,marl,marled,marler,marli,marlin,marline,marlite,marlock,marlpit,marly,marm,marmit,marmite,marmose,marmot,maro,marok,maroon,marplot,marque,marquee,marquis,marrano,marree,marrer,married,marrier,marron,marrot,marrow,marrowy,marry,marryer,marsh,marshal,marshy,marsoon,mart,martel,marten,martext,martial,martin,martite,martlet,martyr,martyry,maru,marvel,marver,mary,marybud,mas,masa,mascara,mascled,mascot,masculy,masdeu,mash,masha,mashal,masher,mashie,mashing,mashman,mashru,mashy,masjid,mask,masked,masker,maskoid,maslin,mason,masoned,masoner,masonic,masonry,masooka,masoola,masque,masquer,mass,massa,massage,masse,massel,masser,masseur,massier,massif,massily,massive,massoy,massula,massy,mast,mastaba,mastage,mastax,masted,master,mastery,mastful,mastic,mastiff,masting,mastman,mastoid,masty,masu,mat,mataco,matador,matai,matalan,matanza,matapan,matapi,matara,matax,match,matcher,matchy,mate,mately,mater,matey,math,mathes,matico,matin,matinal,matinee,mating,matins,matipo,matka,matless,matlow,matra,matral,matrass,matreed,matric,matris,matrix,matron,matross,matsu,matsuri,matta,mattaro,matte,matted,matter,mattery,matti,matting,mattock,mattoid,mattoir,mature,maturer,matweed,maty,matzo,matzoon,matzos,matzoth,mau,maud,maudle,maudlin,mauger,maugh,maul,mauler,mauley,mauling,maumet,maun,maund,maunder,maundy,maunge,mauther,mauve,mauvine,maux,mavis,maw,mawk,mawkish,mawky,mawp,maxilla,maxim,maxima,maximal,maximed,maximum,maximus,maxixe,maxwell,may,maya,maybe,maybush,maycock,mayday,mayfish,mayhap,mayhem,maynt,mayor,mayoral,maypop,maysin,mayten,mayweed,maza,mazame,mazard,maze,mazed,mazedly,mazeful,mazer,mazic,mazily,mazuca,mazuma,mazurka,mazut,mazy,mazzard,mbalolo,mbori,me,meable,mead,meader,meadow,meadowy,meager,meagre,meak,meal,mealer,mealies,mealily,mealman,mealy,mean,meander,meaned,meaner,meaning,meanish,meanly,meant,mease,measle,measled,measles,measly,measure,meat,meatal,meated,meatily,meatman,meatus,meaty,mecate,mecon,meconic,meconin,medal,medaled,medalet,meddle,meddler,media,mediacy,mediad,medial,median,mediant,mediate,medic,medical,medico,mediety,medimn,medimno,medino,medio,medium,medius,medlar,medley,medrick,medulla,medusal,medusan,meebos,meece,meed,meek,meeken,meekly,meered,meerkat,meese,meet,meeten,meeter,meeting,meetly,megabar,megaerg,megafog,megapod,megaron,megaton,megerg,megilp,megmho,megohm,megrim,mehalla,mehari,mehtar,meile,mein,meinie,meio,meiobar,meiosis,meiotic,meith,mel,mela,melada,melagra,melam,melamed,melange,melanic,melanin,melano,melasma,melch,meld,melder,meldrop,mele,melee,melena,melene,melenic,melic,melilot,meline,melisma,melitis,mell,mellate,mellay,meller,mellit,mellite,mellon,mellow,mellowy,melodia,melodic,melody,meloe,meloid,melon,melonry,melos,melosa,melt,meltage,melted,melter,melters,melting,melton,mem,member,membral,memento,meminna,memo,memoir,memoria,memory,men,menace,menacer,menacme,menage,menald,mend,mendee,mender,mending,mendole,mends,menfolk,meng,menhir,menial,meninx,menkind,mennom,mensa,mensal,mense,menses,mensk,mensual,mental,mentary,menthol,menthyl,mention,mentor,mentum,menu,meny,menyie,menzie,merbaby,mercal,mercer,mercery,merch,merchet,mercy,mere,merel,merely,merfold,merfolk,merge,merger,mergh,meriah,merice,meril,merism,merist,merit,merited,meriter,merk,merkhet,merkin,merl,merle,merlin,merlon,mermaid,merman,mero,merop,meropia,meros,merrily,merrow,merry,merse,mesa,mesad,mesail,mesal,mesally,mesange,mesarch,mescal,mese,mesem,mesenna,mesh,meshed,meshy,mesiad,mesial,mesian,mesic,mesilla,mesion,mesityl,mesne,meso,mesobar,mesode,mesodic,mesole,meson,mesonic,mesopic,mespil,mess,message,messan,messe,messer,messet,messily,messin,messing,messman,messor,messrs,messtin,messy,mestee,mester,mestiza,mestizo,mestome,met,meta,metad,metage,metal,metaler,metamer,metanym,metate,metayer,mete,metel,meteor,meter,methane,methene,mether,methid,methide,methine,method,methyl,metic,metier,metis,metochy,metonym,metope,metopic,metopon,metra,metreta,metrete,metria,metric,metrics,metrify,metrist,mettar,mettle,mettled,metusia,metze,meuse,meute,mew,meward,mewer,mewl,mewler,mezcal,mezuzah,mezzo,mho,mi,miamia,mian,miaow,miaower,mias,miasm,miasma,miasmal,miasmic,miaul,miauler,mib,mica,micate,mice,micelle,miche,micher,miching,micht,mick,mickle,mico,micrify,micro,microbe,microhm,micron,miction,mid,midday,midden,middle,middler,middy,mide,midge,midget,midgety,midgy,midiron,midland,midleg,midmain,midmorn,midmost,midnoon,midpit,midrash,midrib,midriff,mids,midship,midst,midtap,midvein,midward,midway,midweek,midwife,midwise,midyear,mien,miff,miffy,mig,might,mightnt,mighty,miglio,mignon,migrant,migrate,mihrab,mijl,mikado,mike,mikie,mil,mila,milady,milch,milcher,milchy,mild,milden,milder,mildew,mildewy,mildish,mildly,mile,mileage,miler,mileway,milfoil,milha,miliary,milieu,militia,milium,milk,milken,milker,milkily,milking,milkman,milksop,milky,mill,milla,millage,milldam,mille,milled,miller,millet,millful,milliad,millile,milline,milling,million,millman,milner,milo,milord,milpa,milreis,milsey,milsie,milt,milter,milty,milvine,mim,mima,mimbar,mimble,mime,mimeo,mimer,mimesis,mimetic,mimic,mimical,mimicry,mimine,mimly,mimmest,mimmock,mimmood,mimmoud,mimosis,mimp,mimsey,min,mina,minable,minar,minaret,minaway,mince,mincer,mincing,mind,minded,minder,mindful,minding,mine,miner,mineral,minery,mines,minette,ming,minge,mingle,mingler,mingy,minhag,minhah,miniate,minibus,minicam,minify,minikin,minim,minima,minimal,minimum,minimus,mining,minion,minish,minium,miniver,minivet,mink,minkery,minkish,minnie,minning,minnow,minny,mino,minoize,minor,minot,minster,mint,mintage,minter,mintman,minty,minuend,minuet,minus,minute,minuter,minutia,minx,minxish,miny,minyan,miqra,mir,mirach,miracle,mirador,mirage,miragy,mirate,mirbane,mird,mirdaha,mire,mirid,mirific,mirish,mirk,miro,mirror,mirrory,mirth,miry,mirza,misact,misadd,misaim,misally,misbias,misbill,misbind,misbode,misborn,misbusy,miscall,miscast,mischio,miscoin,miscook,miscrop,miscue,miscut,misdate,misdaub,misdeal,misdeed,misdeem,misdiet,misdo,misdoer,misdraw,mise,misease,misedit,miser,miserly,misery,misfare,misfile,misfire,misfit,misfond,misform,misgive,misgo,misgrow,mishap,mishmee,misjoin,miskeep,misken,miskill,misknow,misky,mislay,mislead,mislear,misled,mislest,mislike,mislive,mismade,mismake,mismate,mismove,misname,misobey,mispage,mispart,mispay,mispick,misplay,misput,misrate,misread,misrule,miss,missal,missay,misseem,missel,misset,missile,missing,mission,missis,missish,missive,misstay,misstep,missy,mist,mistake,mistbow,misted,mistell,mistend,mister,misterm,mistful,mistic,mistide,mistify,mistily,mistime,mistle,mistone,mistook,mistral,mistry,misturn,misty,misura,misuse,misuser,miswed,miswish,misword,misyoke,mite,miter,mitered,miterer,mitis,mitome,mitosis,mitotic,mitra,mitral,mitrate,mitre,mitrer,mitt,mitten,mitty,mity,miurus,mix,mixable,mixed,mixedly,mixen,mixer,mixhill,mixible,mixite,mixtion,mixture,mixy,mizmaze,mizzen,mizzle,mizzler,mizzly,mizzy,mneme,mnemic,mnesic,mnestic,mnioid,mo,moan,moanful,moaning,moat,mob,mobable,mobber,mobbish,mobbism,mobbist,mobby,mobcap,mobed,mobile,moble,moblike,mobship,mobsman,mobster,mocha,mochras,mock,mockado,mocker,mockery,mockful,mocmain,mocuck,modal,modally,mode,model,modeler,modena,modern,modest,modesty,modicum,modify,modish,modist,modiste,modius,modular,module,modulo,modulus,moellon,mofette,moff,mog,mogador,mogdad,moggan,moggy,mogo,moguey,moha,mohabat,mohair,mohar,mohel,moho,mohr,mohur,moider,moidore,moieter,moiety,moil,moiler,moiles,moiley,moiling,moineau,moio,moire,moise,moist,moisten,moistly,moisty,moit,moity,mojarra,mojo,moke,moki,moko,moksha,mokum,moky,mola,molal,molar,molary,molassy,molave,mold,molder,moldery,molding,moldy,mole,moleism,moler,molest,molimen,moline,molka,molland,molle,mollie,mollify,mollusk,molly,molman,moloid,moloker,molompi,molosse,molpe,molt,molten,molter,moly,mombin,momble,mome,moment,momenta,momism,momme,mommet,mommy,momo,mon,mona,monad,monadic,monaene,monal,monarch,monas,monase,monaxon,mone,monel,monepic,moner,moneral,moneran,moneric,moneron,monesia,money,moneyed,moneyer,mong,monger,mongery,mongler,mongrel,mongst,monial,moniker,monism,monist,monitor,monk,monkdom,monkery,monkess,monkey,monkish,monkism,monkly,monny,mono,monoazo,monocle,monocot,monodic,monody,monoid,monomer,mononch,monont,mononym,monose,monotic,monsoon,monster,montage,montana,montane,montant,monte,montem,month,monthly,monthon,montjoy,monton,monture,moo,mooch,moocha,moocher,mood,mooder,moodily,moodish,moodle,moody,mooing,mool,moolet,mools,moolum,moon,moonack,mooned,mooner,moonery,mooneye,moonily,mooning,moonish,moonite,moonja,moonjah,moonlet,moonlit,moonman,moonset,moonway,moony,moop,moor,moorage,mooring,moorish,moorman,moorn,moorpan,moors,moorup,moory,moosa,moose,moosey,moost,moot,mooter,mooth,mooting,mootman,mop,mopane,mope,moper,moph,mophead,moping,mopish,mopla,mopper,moppet,moppy,mopsy,mopus,mor,mora,moraine,moral,morale,morally,morals,morass,morassy,morat,morate,moray,morbid,morbify,mordant,mordent,mordore,more,moreen,moreish,morel,morella,morello,mores,morfrey,morg,morga,morgan,morgay,morgen,morglay,morgue,moric,moriche,morin,morinel,morion,morkin,morlop,mormaor,mormo,mormon,mormyr,mormyre,morn,morne,morned,morning,moro,moroc,morocco,moron,moroncy,morong,moronic,moronry,morose,morosis,morph,morphea,morphew,morphia,morphic,morphon,morris,morrow,morsal,morse,morsel,morsing,morsure,mort,mortal,mortar,mortary,morth,mortier,mortify,mortise,morula,morular,morule,morvin,morwong,mosaic,mosaist,mosette,mosey,mosker,mosque,moss,mossed,mosser,mossery,mossful,mossy,most,moste,mostly,mot,mote,moted,motel,moter,motet,motey,moth,mothed,mother,mothery,mothy,motif,motific,motile,motion,motive,motley,motmot,motor,motored,motoric,motory,mott,motte,mottle,mottled,mottler,motto,mottoed,motyka,mou,mouche,moud,moudie,moudy,mouflon,mouille,moujik,moul,mould,moulded,moule,moulin,mouls,moulter,mouly,mound,moundy,mount,mounted,mounter,moup,mourn,mourner,mouse,mouser,mousery,mousey,mousily,mousing,mousle,mousmee,mousse,moustoc,mousy,mout,moutan,mouth,mouthed,mouther,mouthy,mouton,mouzah,movable,movably,movant,move,mover,movie,moving,mow,mowable,mowana,mowburn,mowch,mowcht,mower,mowha,mowie,mowing,mowland,mown,mowra,mowrah,mowse,mowt,mowth,moxa,moy,moyen,moyenne,moyite,moyle,moyo,mozing,mpret,mu,muang,mubarat,mucago,mucaro,mucedin,much,muchly,mucic,mucid,mucific,mucigen,mucin,muck,mucker,mucket,muckite,muckle,muckman,muckna,mucksy,mucky,mucluc,mucoid,muconic,mucopus,mucor,mucosa,mucosal,mucose,mucous,mucro,mucus,mucusin,mud,mudar,mudbank,mudcap,mudd,mudde,mudden,muddify,muddily,mudding,muddish,muddle,muddler,muddy,mudee,mudfish,mudflow,mudhead,mudhole,mudir,mudiria,mudland,mudlark,mudless,mudra,mudsill,mudweed,mudwort,muermo,muezzin,muff,muffed,muffet,muffin,muffish,muffle,muffled,muffler,mufflin,muffy,mufti,mufty,mug,muga,mugful,mugg,mugger,mugget,muggily,muggins,muggish,muggles,muggy,mugient,mugweed,mugwort,mugwump,muid,muir,muist,mukluk,muktar,mukti,mulatta,mulatto,mulch,mulcher,mulct,mulder,mule,muleman,muleta,muletta,muley,mulga,mulier,mulish,mulism,mulita,mulk,mull,mulla,mullah,mullar,mullein,muller,mullet,mullets,mulley,mullid,mullion,mullite,mullock,mulloid,mulmul,mulse,mulsify,mult,multum,multure,mum,mumble,mumbler,mummer,mummery,mummick,mummied,mummify,mumming,mummy,mumness,mump,mumper,mumpish,mumps,mun,munch,muncher,munchet,mund,mundane,mundic,mundify,mundil,mundle,mung,munga,munge,mungey,mungo,mungofa,munguba,mungy,munific,munity,munj,munjeet,munnion,munshi,munt,muntin,muntjac,mura,murage,mural,muraled,murally,murchy,murder,murdrum,mure,murex,murexan,murga,murgavi,murgeon,muriate,muricid,murid,murine,murinus,muriti,murium,murk,murkily,murkish,murkly,murky,murlin,murly,murmur,murphy,murra,murrain,murre,murrey,murrina,murshid,muruxi,murva,murza,musal,musang,musar,muscade,muscat,muscid,muscle,muscled,muscly,muscoid,muscone,muscose,muscot,muscovy,muscule,muse,mused,museful,museist,muser,musery,musette,museum,mush,musha,mushaa,mushed,musher,mushily,mushla,mushru,mushy,music,musical,musico,musie,musily,musimon,musing,musk,muskat,muskeg,musket,muskie,muskish,muskrat,musky,muslin,musnud,musquaw,musrol,muss,mussal,mussel,mussily,mussuk,mussy,must,mustang,mustard,mustee,muster,mustify,mustily,mustnt,musty,muta,mutable,mutably,mutage,mutant,mutase,mutate,mutch,mute,mutedly,mutely,muth,mutic,mutiny,mutism,mutist,mutive,mutsje,mutt,mutter,mutton,muttony,mutual,mutuary,mutule,mutuum,mux,muyusa,muzhik,muzz,muzzily,muzzle,muzzler,muzzy,my,myal,myalgia,myalgic,myalism,myall,myarian,myatony,mycele,mycelia,mycoid,mycose,mycosin,mycosis,mycotic,mydine,myelic,myelin,myeloic,myeloid,myeloma,myelon,mygale,mygalid,myiasis,myiosis,myitis,mykiss,mymarid,myna,myocele,myocyte,myogen,myogram,myoid,myology,myoma,myomere,myoneme,myope,myophan,myopia,myopic,myops,myopy,myosin,myosis,myosote,myotic,myotome,myotomy,myotony,myowun,myoxine,myrcene,myrcia,myriad,myriare,myrica,myricin,myricyl,myringa,myron,myronic,myrosin,myrrh,myrrhed,myrrhic,myrrhol,myrrhy,myrtal,myrtle,myrtol,mysel,myself,mysell,mysid,mysoid,mysost,myst,mystax,mystery,mystes,mystic,mystify,myth,mythify,mythism,mythist,mythize,mythos,mythus,mytilid,myxa,myxemia,myxo,myxoid,myxoma,myxopod,myzont,n,na,naa,naam,nab,nabak,nabber,nabk,nabla,nable,nabob,nabobry,nabs,nacarat,nace,nacelle,nach,nachani,nacket,nacre,nacred,nacrine,nacrite,nacrous,nacry,nadder,nadir,nadiral,nae,naebody,naegate,nael,naether,nag,naga,nagaika,nagana,nagara,nagger,naggin,nagging,naggish,naggle,naggly,naggy,naght,nagmaal,nagman,nagnag,nagnail,nagor,nagsman,nagster,nagual,naiad,naiant,naid,naif,naifly,naig,naigie,naik,nail,nailbin,nailer,nailery,nailing,nailrod,naily,nain,nainsel,naio,naipkin,nairy,nais,naish,naither,naive,naively,naivete,naivety,nak,nake,naked,nakedly,naker,nakhod,nakhoda,nako,nakong,nakoo,nallah,nam,namable,namaqua,namaz,namda,name,namely,namer,naming,nammad,nan,nana,nancy,nandi,nandine,nandow,nandu,nane,nanes,nanga,nanism,nankeen,nankin,nanny,nanoid,nanpie,nant,nantle,naology,naos,nap,napa,napal,napalm,nape,napead,naperer,napery,naphtha,naphtho,naphtol,napkin,napless,napoo,nappe,napped,napper,napping,nappy,napron,napu,nar,narcism,narcist,narcoma,narcose,narcous,nard,nardine,nardoo,nares,nargil,narial,naric,narica,narine,nark,narky,narr,narra,narras,narrate,narrow,narrowy,narthex,narwhal,nary,nasab,nasal,nasalis,nasally,nasard,nascent,nasch,nash,nashgab,nashgob,nasi,nasial,nasion,nasitis,nasrol,nast,nastic,nastika,nastily,nasty,nasus,nasute,nasutus,nat,nataka,natal,natals,natant,natator,natch,nates,nathe,nather,nation,native,natr,natrium,natron,natter,nattily,nattle,natty,natuary,natural,nature,naucrar,nauger,naught,naughty,naumk,naunt,nauntle,nausea,naut,nautch,nauther,nautic,nautics,naval,navally,navar,navarch,nave,navel,naveled,navet,navette,navew,navite,navvy,navy,naw,nawab,nawt,nay,nayaur,naysay,nayward,nayword,naze,nazim,nazir,ne,nea,neal,neanic,neap,neaped,nearby,nearest,nearish,nearly,neat,neaten,neath,neatify,neatly,neb,neback,nebbed,nebbuck,nebbuk,nebby,nebel,nebris,nebula,nebulae,nebular,nebule,neck,neckar,necked,necker,neckful,necking,necklet,necktie,necrose,nectar,nectary,nedder,neddy,nee,neebor,neebour,need,needer,needful,needham,needily,needing,needle,needled,needler,needles,needly,needs,needy,neeger,neeld,neele,neem,neep,neepour,neer,neese,neet,neetup,neeze,nef,nefast,neffy,neftgil,negate,negator,neger,neglect,negrine,negro,negus,nei,neif,neigh,neigher,neiper,neist,neither,nekton,nelson,nema,nematic,nemeses,nemesic,nemoral,nenta,neo,neocyte,neogamy,neolith,neology,neon,neonate,neorama,neossin,neoteny,neotype,neoza,nep,neper,nephele,nephesh,nephew,nephria,nephric,nephron,nephros,nepman,nepotal,nepote,nepotic,nereite,nerine,neritic,nerval,nervate,nerve,nerver,nervid,nervily,nervine,nerving,nervish,nervism,nervose,nervous,nervule,nervure,nervy,nese,nesh,neshly,nesiote,ness,nest,nestage,nester,nestful,nestle,nestler,nesty,net,netball,netbush,netcha,nete,neter,netful,neth,nether,neti,netleaf,netlike,netman,netop,netsman,netsuke,netted,netter,netting,nettle,nettler,nettly,netty,netwise,network,neuma,neume,neumic,neurad,neural,neurale,neuric,neurin,neurine,neurism,neurite,neuroid,neuroma,neuron,neurone,neurula,neuter,neutral,neutron,neve,nevel,never,nevo,nevoid,nevoy,nevus,new,newcal,newcome,newel,newelty,newing,newings,newish,newly,newness,news,newsboy,newsful,newsman,newsy,newt,newtake,newton,nexal,next,nextly,nexum,nexus,neyanda,ngai,ngaio,ngapi,ni,niacin,niata,nib,nibbana,nibbed,nibber,nibble,nibbler,nibby,niblick,niblike,nibong,nibs,nibsome,nice,niceish,nicely,nicety,niche,nicher,nick,nickel,nicker,nickey,nicking,nickle,nicky,nicolo,nicotia,nicotic,nictate,nid,nidal,nidana,niddick,niddle,nide,nidge,nidget,nidgety,nidi,nidify,niding,nidor,nidulus,nidus,niece,nielled,niello,niepa,nieve,nieveta,nife,niffer,nific,nifle,nifling,nifty,nig,niggard,nigger,niggery,niggle,niggler,niggly,nigh,nighly,night,nighted,nightie,nightly,nights,nignay,nignye,nigori,nigre,nigrify,nigrine,nigrous,nigua,nikau,nil,nilgai,nim,nimb,nimbed,nimbi,nimble,nimbly,nimbose,nimbus,nimiety,niminy,nimious,nimmer,nimshi,nincom,nine,ninepin,nineted,ninety,ninny,ninon,ninth,ninthly,nintu,ninut,niobate,niobic,niobite,niobium,niobous,niog,niota,nip,nipa,nipper,nippers,nippily,nipping,nipple,nippy,nipter,nirles,nirvana,nisei,nishiki,nisnas,nispero,nisse,nisus,nit,nitch,nitency,niter,nitered,nither,nithing,nitid,nito,niton,nitrate,nitric,nitride,nitrify,nitrile,nitrite,nitro,nitrous,nitryl,nitter,nitty,nitwit,nival,niveous,nix,nixie,niyoga,nizam,nizamut,nizy,njave,no,noa,nob,nobber,nobbily,nobble,nobbler,nobbut,nobby,noble,nobley,nobly,nobody,nobs,nocake,nocent,nock,nocket,nocktat,noctuid,noctule,nocturn,nocuity,nocuous,nod,nodal,nodated,nodder,nodding,noddle,noddy,node,noded,nodi,nodiak,nodical,nodose,nodous,nodular,nodule,noduled,nodulus,nodus,noel,noetic,noetics,nog,nogada,nogal,noggen,noggin,nogging,noghead,nohow,noil,noilage,noiler,noily,noint,noir,noise,noisily,noisome,noisy,nokta,noll,nolle,nolo,noma,nomad,nomadic,nomancy,nomarch,nombril,nome,nomial,nomic,nomina,nominal,nominee,nominy,nomism,nomisma,nomos,non,nonacid,nonact,nonage,nonagon,nonaid,nonair,nonane,nonary,nonbase,nonce,noncock,noncom,noncome,noncon,nonda,nondo,none,nonego,nonene,nonent,nonepic,nones,nonet,nonevil,nonfact,nonfarm,nonfat,nonfood,nonform,nonfrat,nongas,nongod,nongold,nongray,nongrey,nonhero,nonic,nonion,nonius,nonjury,nonlife,nonly,nonnant,nonnat,nonoic,nonoily,nonomad,nonpaid,nonpar,nonpeak,nonplus,nonpoet,nonport,nonrun,nonsale,nonsane,nonself,nonsine,nonskid,nonslip,nonstop,nonsuit,nontan,nontax,nonterm,nonuple,nonuse,nonuser,nonwar,nonya,nonyl,nonylic,nonzero,noodle,nook,nooked,nookery,nooking,nooklet,nooky,noology,noon,noonday,nooning,noonlit,noop,noose,nooser,nopal,nopalry,nope,nor,norard,norate,noreast,norelin,norgine,nori,noria,norie,norimon,norite,norland,norm,norma,normal,norsel,north,norther,norward,norwest,nose,nosean,nosed,nosegay,noser,nosey,nosine,nosing,nosism,nostic,nostril,nostrum,nosy,not,notable,notably,notaeal,notaeum,notal,notan,notary,notate,notator,notch,notched,notchel,notcher,notchy,note,noted,notedly,notekin,notelet,noter,nother,nothing,nothous,notice,noticer,notify,notion,notitia,notour,notself,notum,nougat,nought,noun,nounal,nounize,noup,nourice,nourish,nous,nouther,nova,novalia,novate,novator,novcic,novel,novelet,novella,novelly,novelry,novelty,novem,novena,novene,novice,novity,now,nowaday,noway,noways,nowed,nowel,nowhat,nowhen,nowhere,nowhit,nowise,nowness,nowt,nowy,noxa,noxal,noxally,noxious,noy,noyade,noyau,nozzle,nozzler,nth,nu,nuance,nub,nubbin,nubble,nubbly,nubby,nubia,nubile,nucal,nucha,nuchal,nucin,nucleal,nuclear,nuclei,nuclein,nucleon,nucleus,nuclide,nucule,nuculid,nudate,nuddle,nude,nudely,nudge,nudger,nudiped,nudish,nudism,nudist,nudity,nugator,nuggar,nugget,nuggety,nugify,nuke,nul,null,nullah,nullify,nullism,nullity,nullo,numb,number,numbing,numble,numbles,numbly,numda,numdah,numen,numeral,numero,nummary,nummi,nummus,numud,nun,nunatak,nunbird,nunch,nuncio,nuncle,nundine,nunhood,nunky,nunlet,nunlike,nunnari,nunnery,nunni,nunnify,nunnish,nunship,nuptial,nuque,nuraghe,nurhag,nurly,nurse,nurser,nursery,nursing,nursle,nursy,nurture,nusfiah,nut,nutant,nutate,nutcake,nutgall,nuthook,nutlet,nutlike,nutmeg,nutpick,nutria,nutrice,nutrify,nutseed,nutted,nutter,nuttery,nuttily,nutting,nuttish,nutty,nuzzer,nuzzle,nyanza,nye,nylast,nylon,nymil,nymph,nympha,nymphae,nymphal,nymphet,nymphic,nymphid,nymphly,nyxis,o,oadal,oaf,oafdom,oafish,oak,oaken,oaklet,oaklike,oakling,oakum,oakweb,oakwood,oaky,oam,oar,oarage,oarcock,oared,oarfish,oarhole,oarial,oaric,oaritic,oaritis,oarium,oarless,oarlike,oarlock,oarlop,oarman,oarsman,oarweed,oary,oasal,oasean,oases,oasis,oasitic,oast,oat,oatbin,oatcake,oatear,oaten,oatfowl,oath,oathay,oathed,oathful,oathlet,oatland,oatlike,oatmeal,oatseed,oaty,oban,obclude,obe,obeah,obeche,obeism,obelia,obeliac,obelial,obelion,obelisk,obelism,obelize,obelus,obese,obesely,obesity,obex,obey,obeyer,obi,obispo,obit,obitual,object,objure,oblate,obley,oblige,obliged,obligee,obliger,obligor,oblique,oblong,obloquy,oboe,oboist,obol,obolary,obole,obolet,obolus,oboval,obovate,obovoid,obscene,obscure,obsede,obsequy,observe,obsess,obtain,obtect,obtest,obtrude,obtund,obtuse,obverse,obvert,obviate,obvious,obvolve,ocarina,occamy,occiput,occlude,occluse,occult,occupy,occur,ocean,oceaned,oceanet,oceanic,ocellar,ocelli,ocellus,oceloid,ocelot,och,ochava,ochavo,ocher,ochery,ochone,ochrea,ochro,ochroid,ochrous,ocht,ock,oclock,ocote,ocque,ocracy,ocrea,ocreate,octad,octadic,octagon,octan,octane,octant,octapla,octarch,octary,octaval,octave,octavic,octavo,octene,octet,octic,octine,octoad,octoate,octofid,octoic,octoid,octonal,octoon,octoped,octopi,octopod,octopus,octose,octoyl,octroi,octroy,octuor,octuple,octuply,octyl,octyne,ocuby,ocular,oculary,oculate,oculist,oculus,od,oda,odacoid,odal,odalisk,odaller,odalman,odd,oddish,oddity,oddlegs,oddly,oddman,oddment,oddness,odds,oddsman,ode,odel,odelet,odeon,odeum,odic,odinite,odious,odist,odium,odology,odontic,odoom,odor,odorant,odorate,odored,odorful,odorize,odorous,odso,odum,odyl,odylic,odylism,odylist,odylize,oe,oecist,oecus,oenin,oenolin,oenomel,oer,oersted,oes,oestrid,oestrin,oestrum,oestrus,of,off,offal,offbeat,offcast,offcome,offcut,offend,offense,offer,offeree,offerer,offeror,offhand,office,officer,offing,offish,offlet,offlook,offscum,offset,offtake,offtype,offward,oflete,oft,often,oftens,ofter,oftest,oftly,oftness,ofttime,ogaire,ogam,ogamic,ogdoad,ogdoas,ogee,ogeed,ogham,oghamic,ogival,ogive,ogived,ogle,ogler,ogmic,ogre,ogreish,ogreism,ogress,ogrish,ogrism,ogtiern,ogum,oh,ohelo,ohia,ohm,ohmage,ohmic,oho,ohoy,oidioid,oii,oil,oilbird,oilcan,oilcoat,oilcup,oildom,oiled,oiler,oilery,oilfish,oilhole,oilily,oilless,oillet,oillike,oilman,oilseed,oilskin,oilway,oily,oilyish,oime,oinomel,oint,oisin,oitava,oka,okapi,okee,okenite,oket,oki,okia,okonite,okra,okrug,olam,olamic,old,olden,older,oldish,oldland,oldness,oldster,oldwife,oleana,olease,oleate,olefin,olefine,oleic,olein,olena,olenid,olent,oleo,oleose,oleous,olfact,olfacty,oliban,olid,oligist,olio,olitory,oliva,olivary,olive,olived,olivet,olivil,olivile,olivine,olla,ollamh,ollapod,ollock,olm,ologist,ology,olomao,olona,oloroso,olpe,oltonde,oltunna,olycook,olykoek,om,omagra,omalgia,omao,omasum,omber,omega,omegoid,omelet,omen,omened,omental,omentum,omer,omicron,omina,ominous,omit,omitis,omitter,omlah,omneity,omniana,omnibus,omnific,omnify,omnist,omnium,on,ona,onager,onagra,onanism,onanist,onca,once,oncetta,oncia,oncin,oncome,oncosis,oncost,ondatra,ondine,ondy,one,onefold,onegite,onehow,oneiric,oneism,onement,oneness,oner,onerary,onerous,onery,oneself,onetime,oneyer,onfall,onflow,ongaro,ongoing,onicolo,onion,onionet,oniony,onium,onkos,onlay,onlepy,onliest,onlook,only,onmarch,onrush,ons,onset,onshore,onside,onsight,onstand,onstead,onsweep,ontal,onto,onus,onward,onwards,onycha,onychia,onychin,onym,onymal,onymity,onymize,onymous,onymy,onyx,onyxis,onza,ooblast,oocyst,oocyte,oodles,ooecial,ooecium,oofbird,ooftish,oofy,oogamy,oogeny,ooglea,oogone,oograph,ooid,ooidal,oolak,oolemma,oolite,oolitic,oolly,oologic,oology,oolong,oomancy,oometer,oometry,oons,oont,oopak,oophore,oophyte,ooplasm,ooplast,oopod,oopodal,oorali,oord,ooscope,ooscopy,oosperm,oospore,ootheca,ootid,ootype,ooze,oozily,oozooid,oozy,opacate,opacify,opacite,opacity,opacous,opah,opal,opaled,opaline,opalish,opalize,opaloid,opaque,ope,opelet,open,opener,opening,openly,opera,operae,operand,operant,operate,opercle,operose,ophic,ophioid,ophite,ophitic,ophryon,opianic,opianyl,opiate,opiatic,opiism,opinant,opine,opiner,opinion,opium,opossum,oppidan,oppose,opposed,opposer,opposit,oppress,oppugn,opsonic,opsonin,opsy,opt,optable,optably,optant,optate,optic,optical,opticon,optics,optimal,optime,optimum,option,optive,opulent,opulus,opus,oquassa,or,ora,orach,oracle,orad,orage,oral,oraler,oralism,oralist,orality,oralize,orally,oralogy,orang,orange,oranger,orangey,orant,orarian,orarion,orarium,orary,orate,oration,orator,oratory,oratrix,orb,orbed,orbic,orbical,orbicle,orbific,orbit,orbital,orbitar,orbite,orbless,orblet,orby,orc,orcanet,orcein,orchard,orchat,orchel,orchic,orchid,orchil,orcin,orcinol,ordain,ordeal,order,ordered,orderer,orderly,ordinal,ordinar,ordinee,ordines,ordu,ordure,ore,oread,orectic,orellin,oreman,orenda,oreweed,orewood,orexis,orf,orfgild,organ,organal,organdy,organer,organic,organon,organry,organum,orgasm,orgeat,orgia,orgiac,orgiacs,orgiasm,orgiast,orgic,orgue,orgy,orgyia,oribi,oriel,oriency,orient,orifice,oriform,origan,origin,orignal,orihon,orillon,oriole,orison,oristic,orle,orlean,orlet,orlo,orlop,ormer,ormolu,orna,ornate,ornery,ornis,ornoite,oroanal,orogen,orogeny,oroide,orology,oronoco,orotund,orphan,orpheon,orpheum,orphrey,orpine,orrery,orrhoid,orris,orsel,orselle,ort,ortalid,ortet,orthal,orthian,orthic,orthid,orthite,ortho,orthose,orthron,ortiga,ortive,ortolan,ortygan,ory,oryssid,os,osamin,osamine,osazone,oscella,oscheal,oscin,oscine,oscnode,oscular,oscule,osculum,ose,osela,oshac,oside,osier,osiered,osiery,osmate,osmatic,osmesis,osmetic,osmic,osmin,osmina,osmious,osmium,osmose,osmosis,osmotic,osmous,osmund,osone,osophy,osprey,ossal,osse,ossein,osselet,osseous,ossicle,ossific,ossify,ossuary,osteal,ostein,ostemia,ostent,osteoid,osteoma,ostial,ostiary,ostiate,ostiole,ostitis,ostium,ostmark,ostosis,ostrich,otalgia,otalgic,otalgy,otarian,otarine,otary,otate,other,othmany,otiant,otiatry,otic,otidine,otidium,otiose,otitic,otitis,otkon,otocyst,otolite,otolith,otology,otosis,ototomy,ottar,otter,otterer,otto,oturia,ouabain,ouabaio,ouabe,ouakari,ouch,ouenite,ouf,ough,ought,oughtnt,oukia,oulap,ounce,ounds,ouphe,ouphish,our,ourie,ouroub,ours,ourself,oust,ouster,out,outact,outage,outarde,outask,outawe,outback,outbake,outban,outbar,outbark,outbawl,outbeam,outbear,outbeg,outbent,outbid,outblot,outblow,outbond,outbook,outborn,outbow,outbowl,outbox,outbrag,outbray,outbred,outbud,outbulk,outburn,outbuy,outbuzz,outby,outcant,outcase,outcast,outcity,outcome,outcrop,outcrow,outcry,outcull,outcure,outcut,outdare,outdate,outdo,outdoer,outdoor,outdraw,outdure,outeat,outecho,outed,outedge,outen,outer,outerly,outeye,outeyed,outface,outfall,outfame,outfast,outfawn,outfeat,outfish,outfit,outflow,outflue,outflux,outfly,outfold,outfool,outfoot,outform,outfort,outgain,outgame,outgang,outgas,outgate,outgaze,outgive,outglad,outglow,outgnaw,outgo,outgoer,outgone,outgrin,outgrow,outgun,outgush,outhaul,outhear,outheel,outher,outhire,outhiss,outhit,outhold,outhowl,outhue,outhunt,outhurl,outhut,outhymn,outing,outish,outjazz,outjest,outjet,outjinx,outjump,outjut,outkick,outkill,outking,outkiss,outknee,outlaid,outland,outlash,outlast,outlaw,outlay,outlean,outleap,outler,outlet,outlie,outlier,outlimb,outlimn,outline,outlip,outlive,outlook,outlord,outlove,outlung,outly,outman,outmate,outmode,outmost,outmove,outname,outness,outnook,outoven,outpace,outpage,outpart,outpass,outpath,outpay,outpeal,outpeep,outpeer,outpick,outpipe,outpity,outplan,outplay,outplod,outplot,outpoll,outpomp,outpop,outport,outpost,outpour,outpray,outpry,outpull,outpurl,outpush,output,outrace,outrage,outrail,outrank,outrant,outrap,outrate,outrave,outray,outre,outread,outrede,outrick,outride,outrig,outring,outroar,outroll,outroot,outrove,outrow,outrun,outrush,outsail,outsay,outsea,outseam,outsee,outseek,outsell,outsert,outset,outshot,outshow,outshut,outside,outsift,outsigh,outsin,outsing,outsit,outsize,outskip,outsoar,outsole,outspan,outspin,outspit,outspue,outstay,outstep,outsuck,outsulk,outsum,outswim,outtalk,outtask,outtear,outtell,outtire,outtoil,outtop,outtrot,outturn,outvie,outvier,outvote,outwait,outwake,outwale,outwalk,outwall,outwar,outward,outwash,outwave,outwear,outweed,outweep,outwell,outwent,outwick,outwile,outwill,outwind,outwing,outwish,outwit,outwith,outwoe,outwood,outword,outwore,outwork,outworn,outyard,outyell,outyelp,outzany,ouzel,ova,oval,ovalish,ovalize,ovally,ovaloid,ovant,ovarial,ovarian,ovarin,ovarium,ovary,ovate,ovated,ovately,ovation,oven,ovenful,ovenly,ovenman,over,overact,overage,overall,overapt,overarm,overawe,overawn,overbet,overbid,overbig,overbit,overbow,overbuy,overby,overcap,overcow,overcoy,overcry,overcup,overcut,overdo,overdry,overdue,overdye,overeat,overegg,overeye,overfag,overfar,overfat,overfed,overfee,overfew,overfit,overfix,overfly,overget,overgo,overgod,overgun,overhit,overhot,overink,overjob,overjoy,overlap,overlax,overlay,overleg,overlie,overlip,overlow,overly,overman,overmix,overnet,overnew,overpay,overpet,overply,overpot,overrim,overrun,oversad,oversea,oversee,overset,oversew,oversot,oversow,overt,overtax,overtip,overtly,overtoe,overtop,overuse,overway,overweb,overwet,overwin,ovest,ovey,ovicell,ovicide,ovicyst,oviduct,oviform,ovigerm,ovile,ovine,ovinia,ovipara,ovisac,ovism,ovist,ovistic,ovocyte,ovoid,ovoidal,ovolo,ovology,ovular,ovulary,ovulate,ovule,ovulist,ovum,ow,owd,owe,owelty,ower,owerby,owght,owing,owk,owl,owldom,owler,owlery,owlet,owlhead,owling,owlish,owlism,owllike,owly,own,owner,ownhood,ownness,ownself,owrehip,owrelay,owse,owsen,owser,owtchah,ox,oxacid,oxalan,oxalate,oxalic,oxalite,oxalyl,oxamate,oxamic,oxamid,oxamide,oxan,oxanate,oxane,oxanic,oxazine,oxazole,oxbane,oxberry,oxbird,oxbiter,oxblood,oxbow,oxboy,oxbrake,oxcart,oxcheek,oxea,oxeate,oxen,oxeote,oxer,oxetone,oxeye,oxfly,oxgang,oxgoad,oxhead,oxheal,oxheart,oxhide,oxhoft,oxhorn,oxhouse,oxhuvud,oxidant,oxidase,oxidate,oxide,oxidic,oxidize,oximate,oxime,oxland,oxlike,oxlip,oxman,oxonic,oxonium,oxozone,oxphony,oxreim,oxshoe,oxskin,oxtail,oxter,oxwort,oxy,oxyacid,oxygas,oxygen,oxyl,oxymel,oxyntic,oxyopia,oxysalt,oxytone,oyapock,oyer,oyster,ozena,ozonate,ozone,ozoned,ozonic,ozonide,ozonify,ozonize,ozonous,ozophen,ozotype,p,pa,paal,paar,paauw,pabble,pablo,pabouch,pabular,pabulum,pac,paca,pacable,pacate,pacay,pacaya,pace,paced,pacer,pachak,pachisi,pacific,pacify,pack,package,packer,packery,packet,packly,packman,packway,paco,pact,paction,pad,padder,padding,paddle,paddled,paddler,paddock,paddy,padella,padfoot,padge,padle,padlike,padlock,padnag,padre,padtree,paean,paegel,paegle,paenula,paeon,paeonic,paga,pagan,paganic,paganly,paganry,page,pageant,pagedom,pageful,pager,pagina,paginal,pagoda,pagrus,pagurid,pagus,pah,paha,pahi,pahlavi,pahmi,paho,pahutan,paigle,paik,pail,pailful,pailou,pain,pained,painful,paining,paint,painted,painter,painty,paip,pair,paired,pairer,pais,paisa,paiwari,pajama,pajock,pakchoi,pakeha,paktong,pal,palace,palaced,paladin,palaite,palama,palame,palanka,palar,palas,palatal,palate,palated,palatic,palaver,palay,palazzi,palch,pale,palea,paleate,paled,palely,paleola,paler,palet,paletot,palette,paletz,palfrey,palgat,pali,palikar,palila,palinal,paling,palisfy,palish,palkee,pall,palla,pallae,pallah,pallall,palled,pallet,palli,pallial,pallid,pallion,pallium,pallone,pallor,pally,palm,palma,palmad,palmar,palmary,palmate,palmed,palmer,palmery,palmful,palmist,palmite,palmito,palmo,palmula,palmus,palmy,palmyra,palolo,palp,palpal,palpate,palped,palpi,palpon,palpus,palsied,palster,palsy,palt,palter,paltry,paludal,paludic,palule,palulus,palus,paly,pam,pament,pamment,pampas,pampean,pamper,pampero,pampre,pan,panace,panacea,panache,panada,panade,panama,panaris,panary,panax,pancake,pand,panda,pandal,pandan,pandect,pandemy,pander,pandita,pandle,pandora,pandour,pandrop,pandura,pandy,pane,paned,paneity,panel,panela,paneler,panfil,panfish,panful,pang,pangamy,pangane,pangen,pangene,pangful,pangi,panhead,panic,panical,panicky,panicle,panisc,panisca,panisic,pank,pankin,panman,panmixy,panmug,pannade,pannage,pannam,panne,pannel,panner,pannery,pannier,panning,pannose,pannum,pannus,panocha,panoche,panoply,panoram,panse,panside,pansied,pansy,pant,pantas,panter,panther,pantie,panties,pantile,panting,pantle,pantler,panto,pantod,panton,pantoon,pantoum,pantry,pants,pantun,panty,panung,panurgy,panyar,paolo,paon,pap,papa,papable,papabot,papacy,papain,papal,papally,papalty,papane,papaw,papaya,papboat,pape,paper,papered,paperer,papern,papery,papess,papey,papilla,papion,papish,papism,papist,papize,papless,papmeat,papoose,pappi,pappose,pappox,pappus,pappy,papreg,paprica,paprika,papula,papular,papule,papyr,papyral,papyri,papyrin,papyrus,paquet,par,para,parable,paracme,parade,parader,parado,parados,paradox,parafle,parage,paragon,parah,paraiba,parale,param,paramo,parang,parao,parapet,paraph,parapod,pararek,parasol,paraspy,parate,paraxon,parbake,parboil,parcel,parch,parcher,parchy,parcook,pard,pardao,parded,pardesi,pardine,pardner,pardo,pardon,pare,parel,parella,paren,parent,parer,paresis,paretic,parfait,pargana,parge,parget,pargo,pari,pariah,parial,parian,paries,parify,parilla,parine,paring,parish,parisis,parison,parity,park,parka,parkee,parker,parkin,parking,parkish,parkway,parky,parlay,parle,parley,parling,parlish,parlor,parlous,parly,parma,parmak,parnas,parnel,paroch,parode,parodic,parodos,parody,paroecy,parol,parole,parolee,paroli,paronym,parotic,parotid,parotis,parous,parpal,parquet,parr,parrel,parrier,parrock,parrot,parroty,parry,parse,parsec,parser,parsley,parsnip,parson,parsony,part,partake,partan,parted,parter,partial,partile,partite,partlet,partly,partner,parto,partook,parture,party,parulis,parure,paruria,parvenu,parvis,parvule,pasan,pasang,paschal,pascual,pash,pasha,pashm,pasi,pasmo,pasquil,pasquin,pass,passade,passado,passage,passant,passe,passee,passen,passer,passewa,passing,passion,passir,passive,passkey,passman,passo,passout,passus,passway,past,paste,pasted,pastel,paster,pastern,pasteur,pastil,pastile,pastime,pasting,pastor,pastose,pastry,pasture,pasty,pasul,pat,pata,pataca,patacao,pataco,patagon,pataka,patamar,patao,patapat,pataque,patas,patball,patch,patcher,patchy,pate,patefy,patel,patella,paten,patency,patener,patent,pater,patera,patesi,path,pathed,pathema,pathic,pathlet,pathos,pathway,pathy,patible,patient,patina,patine,patined,patio,patly,patness,pato,patois,patola,patonce,patria,patrial,patrice,patrico,patrin,patriot,patrist,patrix,patrol,patron,patroon,patta,patte,pattee,patten,patter,pattern,pattu,patty,patu,patwari,paty,pau,paucify,paucity,paughty,paukpan,paular,paulie,paulin,paunch,paunchy,paup,pauper,pausal,pause,pauser,paussid,paut,pauxi,pavage,pavan,pavane,pave,paver,pavid,pavier,paving,pavior,paviour,pavis,paviser,pavisor,pavy,paw,pawdite,pawer,pawing,pawk,pawkery,pawkily,pawkrie,pawky,pawl,pawn,pawnage,pawnee,pawner,pawnie,pawnor,pawpaw,pax,paxilla,paxiuba,paxwax,pay,payable,payably,payday,payed,payee,payeny,payer,paying,payment,paynim,payoff,payong,payor,payroll,pea,peace,peach,peachen,peacher,peachy,peacoat,peacock,peacod,peafowl,peag,peage,peahen,peai,peaiism,peak,peaked,peaker,peakily,peaking,peakish,peaky,peal,pealike,pean,peanut,pear,pearl,pearled,pearler,pearlet,pearlin,pearly,peart,pearten,peartly,peasant,peasen,peason,peasy,peat,peatery,peatman,peaty,peavey,peavy,peba,pebble,pebbled,pebbly,pebrine,pecan,peccant,peccary,peccavi,pech,pecht,pecite,peck,pecked,pecker,pecket,peckful,peckish,peckle,peckled,peckly,pecky,pectase,pectate,pecten,pectic,pectin,pectize,pectora,pectose,pectous,pectus,ped,peda,pedage,pedagog,pedal,pedaler,pedant,pedary,pedate,pedated,pedder,peddle,peddler,pedee,pedes,pedesis,pedicab,pedicel,pedicle,pedion,pedlar,pedlary,pedocal,pedrail,pedrero,pedro,pedule,pedum,pee,peed,peek,peel,peele,peeled,peeler,peeling,peelman,peen,peenge,peeoy,peep,peeper,peepeye,peepy,peer,peerage,peerdom,peeress,peerie,peerly,peery,peesash,peeve,peeved,peever,peevish,peewee,peg,pega,pegall,pegasid,pegbox,pegged,pegger,pegging,peggle,peggy,pegless,peglet,peglike,pegman,pegwood,peho,peine,peisage,peise,peiser,peixere,pekan,pekin,pekoe,peladic,pelage,pelagic,pelamyd,pelanos,pelean,pelecan,pelf,pelican,pelick,pelike,peliom,pelioma,pelisse,pelite,pelitic,pell,pellage,pellar,pellard,pellas,pellate,peller,pellet,pellety,pellile,pellock,pelmet,pelon,peloria,peloric,pelorus,pelota,peloton,pelt,pelta,peltast,peltate,pelter,pelting,peltry,pelu,peludo,pelves,pelvic,pelvis,pembina,pemican,pen,penal,penally,penalty,penance,penang,penates,penbard,pence,pencel,pencil,pend,penda,pendant,pendent,pending,pendle,pendom,pendule,penfold,penful,pengo,penguin,penhead,penial,penide,penile,penis,penk,penlike,penman,penna,pennae,pennage,pennant,pennate,penner,pennet,penni,pennia,pennied,pennill,penning,pennon,penny,penrack,penship,pensile,pension,pensive,penster,pensum,pensy,pent,penta,pentace,pentad,pentail,pentane,pentene,pentine,pentit,pentite,pentode,pentoic,pentol,pentose,pentrit,pentyl,pentyne,penuchi,penult,penury,peon,peonage,peonism,peony,people,peopler,peoplet,peotomy,pep,pepful,pepino,peplos,peplum,peplus,pepo,pepper,peppery,peppily,peppin,peppy,pepsin,pepsis,peptic,peptide,peptize,peptone,per,peracid,peract,perbend,percale,percent,percept,perch,percha,percher,percid,percoct,percoid,percur,percuss,perdu,perdure,pereion,pereira,peres,perfect,perfidy,perform,perfume,perfumy,perfuse,pergola,perhaps,peri,periapt,peridot,perigee,perigon,peril,perine,period,periost,perique,perish,perit,perite,periwig,perjink,perjure,perjury,perk,perkily,perkin,perking,perkish,perky,perle,perlid,perlite,perloir,perm,permit,permute,pern,pernine,pernor,pernyi,peroba,peropod,peropus,peroral,perosis,perotic,peroxy,peroxyl,perpend,perpera,perplex,perrier,perron,perry,persalt,perse,persico,persis,persist,person,persona,pert,pertain,perten,pertish,pertly,perturb,pertuse,perty,peruke,perula,perule,perusal,peruse,peruser,pervade,pervert,pes,pesa,pesade,pesage,peseta,peshkar,peshwa,peskily,pesky,peso,pess,pessary,pest,peste,pester,pestful,pestify,pestle,pet,petal,petaled,petalon,petaly,petard,petary,petasos,petasus,petcock,pete,peteca,peteman,peter,petful,petiole,petit,petite,petitor,petkin,petling,peto,petrary,petre,petrean,petrel,petrie,petrify,petrol,petrosa,petrous,petted,petter,pettily,pettish,pettle,petty,petune,petwood,petzite,peuhl,pew,pewage,pewdom,pewee,pewful,pewing,pewit,pewless,pewmate,pewter,pewtery,pewy,peyote,peyotl,peyton,peytrel,pfennig,pfui,pfund,phacoid,phaeism,phaeton,phage,phalanx,phalera,phallic,phallin,phallus,phanic,phano,phantom,phare,pharmic,pharos,pharynx,phase,phaseal,phasemy,phases,phasic,phasis,phasm,phasma,phasmid,pheal,phellem,phemic,phenate,phene,phenene,phenic,phenin,phenol,phenyl,pheon,phew,phi,phial,phiale,philter,philtra,phit,phiz,phizes,phizog,phlegm,phlegma,phlegmy,phloem,phloxin,pho,phobiac,phobic,phobism,phobist,phoby,phoca,phocal,phocid,phocine,phocoid,phoebe,phoenix,phoh,pholad,pholcid,pholido,phon,phonal,phonate,phone,phoneme,phonic,phonics,phonism,phono,phony,phoo,phoresy,phoria,phorid,phorone,phos,phose,phosis,phospho,phossy,phot,photal,photic,photics,photism,photo,photoma,photon,phragma,phrasal,phrase,phraser,phrasy,phrator,phratry,phrenic,phrynid,phrynin,phthor,phu,phugoid,phulwa,phut,phycite,phyla,phyle,phylic,phyllin,phylon,phylum,phyma,phymata,physic,physics,phytase,phytic,phytin,phytoid,phytol,phytoma,phytome,phyton,phytyl,pi,pia,piaba,piacaba,piacle,piaffe,piaffer,pial,pialyn,pian,pianic,pianino,pianism,pianist,piannet,piano,pianola,piaster,piastre,piation,piazine,piazza,pibcorn,pibroch,pic,pica,picador,pical,picamar,picara,picarel,picaro,picary,piccolo,pice,picene,piceous,pichi,picine,pick,pickage,pickax,picked,pickee,pickeer,picker,pickery,picket,pickle,pickler,pickman,pickmaw,pickup,picky,picnic,pico,picoid,picot,picotah,picotee,picra,picrate,picric,picrite,picrol,picryl,pict,picture,pictury,picuda,picudo,picul,piculet,pidan,piddle,piddler,piddock,pidgin,pie,piebald,piece,piecen,piecer,piecing,pied,piedly,pieless,pielet,pielum,piemag,pieman,pien,piend,piepan,pier,pierage,pierce,pierced,piercel,piercer,pierid,pierine,pierrot,pieshop,piet,pietas,pietic,pietism,pietist,pietose,piety,piewife,piewipe,piezo,piff,piffle,piffler,pifine,pig,pigdan,pigdom,pigeon,pigface,pigfish,pigfoot,pigful,piggery,piggin,pigging,piggish,piggle,piggy,pighead,pigherd,pightle,pigless,piglet,pigling,pigly,pigman,pigment,pignon,pignus,pignut,pigpen,pigroot,pigskin,pigsney,pigsty,pigtail,pigwash,pigweed,pigyard,piitis,pik,pika,pike,piked,pikel,pikelet,pikeman,piker,pikey,piki,piking,pikle,piky,pilage,pilapil,pilar,pilary,pilau,pilaued,pilch,pilcher,pilcorn,pilcrow,pile,pileata,pileate,piled,pileous,piler,piles,pileus,pilfer,pilger,pilgrim,pili,pilifer,piligan,pilikai,pilin,piline,piling,pilkins,pill,pillage,pillar,pillary,pillas,pillbox,pilled,pillet,pilleus,pillion,pillory,pillow,pillowy,pilm,pilmy,pilon,pilori,pilose,pilosis,pilot,pilotee,pilotry,pilous,pilpul,piltock,pilula,pilular,pilule,pilum,pilus,pily,pimaric,pimelic,pimento,pimlico,pimola,pimp,pimpery,pimping,pimpish,pimple,pimpled,pimplo,pimploe,pimply,pin,pina,pinaces,pinacle,pinacol,pinang,pinax,pinball,pinbone,pinbush,pincase,pincer,pincers,pinch,pinche,pinched,pinchem,pincher,pind,pinda,pinder,pindy,pine,pineal,pined,pinene,piner,pinery,pinesap,pinetum,piney,pinfall,pinfish,pinfold,ping,pingle,pingler,pingue,pinguid,pinguin,pinhead,pinhold,pinhole,pinhook,pinic,pining,pinion,pinite,pinitol,pinjane,pinjra,pink,pinked,pinkeen,pinken,pinker,pinkeye,pinkie,pinkify,pinkily,pinking,pinkish,pinkly,pinky,pinless,pinlock,pinna,pinnace,pinnae,pinnal,pinnate,pinned,pinnel,pinner,pinnet,pinning,pinnock,pinnula,pinnule,pinny,pino,pinole,pinolia,pinolin,pinon,pinonic,pinrail,pinsons,pint,pinta,pintado,pintail,pintano,pinte,pintle,pinto,pintura,pinulus,pinweed,pinwing,pinwork,pinworm,piny,pinyl,pinyon,pioneer,pioted,piotine,piotty,pioury,pious,piously,pip,pipa,pipage,pipal,pipe,pipeage,piped,pipeful,pipeman,piper,piperic,piperly,piperno,pipery,pipet,pipette,pipi,piping,pipiri,pipit,pipkin,pipless,pipped,pipper,pippin,pippy,piprine,piproid,pipy,piquant,pique,piquet,piquia,piqure,pir,piracy,piragua,piranha,pirate,piraty,pirl,pirn,pirner,pirnie,pirny,pirogue,pirol,pirr,pirrmaw,pisaca,pisang,pisay,piscary,piscian,piscina,piscine,pisco,pise,pish,pishaug,pishu,pisk,pisky,pismire,piso,piss,pissant,pist,pistic,pistil,pistle,pistol,pistole,piston,pistrix,pit,pita,pitanga,pitapat,pitarah,pitau,pitaya,pitch,pitcher,pitchi,pitchy,piteous,pitfall,pith,pithful,pithily,pithole,pithos,pithy,pitier,pitiful,pitless,pitlike,pitman,pitmark,pitmirk,pitpan,pitpit,pitside,pitted,pitter,pittine,pitting,pittite,pittoid,pituite,pituri,pitwood,pitwork,pity,pitying,piuri,pivalic,pivot,pivotal,pivoter,pix,pixie,pixy,pize,pizza,pizzle,placard,placate,place,placebo,placer,placet,placid,plack,placket,placode,placoid,placula,plaga,plagal,plagate,plage,plagium,plagose,plague,plagued,plaguer,plaguy,plaice,plaid,plaided,plaidie,plaidy,plain,plainer,plainly,plaint,plait,plaited,plaiter,plak,plakat,plan,planaea,planar,planate,planch,plandok,plane,planer,planet,planeta,planful,plang,plangor,planish,planity,plank,planker,planky,planner,plant,planta,plantad,plantal,plantar,planter,planula,planury,planxty,plap,plaque,plash,plasher,plashet,plashy,plasm,plasma,plasmic,plasome,plass,plasson,plaster,plastic,plastid,plastin,plat,platan,platane,platano,platch,plate,platea,plateau,plated,platen,plater,platery,platic,platina,plating,platode,platoid,platoon,platted,platten,platter,platty,platy,plaud,plaudit,play,playa,playbox,playboy,playday,player,playful,playlet,playman,playock,playpen,plaza,plea,pleach,plead,pleader,please,pleaser,pleat,pleater,pleb,plebe,plebify,plebs,pleck,plectre,pled,pledge,pledgee,pledger,pledget,pledgor,pleion,plenary,plenipo,plenish,plenism,plenist,plenty,plenum,pleny,pleon,pleonal,pleonic,pleopod,pleroma,plerome,plessor,pleura,pleural,pleuric,pleuron,pleurum,plew,plex,plexal,plexor,plexure,plexus,pliable,pliably,pliancy,pliant,plica,plical,plicate,plied,plier,plies,pliers,plight,plim,plinth,pliskie,plisky,ploat,ploce,plock,plod,plodder,plodge,plomb,plook,plop,plosion,plosive,plot,plote,plotful,plotted,plotter,plotty,plough,plouk,plouked,plouky,plounce,plout,plouter,plover,plovery,plow,plowboy,plower,plowing,plowman,ploy,pluck,plucked,plucker,plucky,plud,pluff,pluffer,pluffy,plug,plugged,plugger,pluggy,plugman,plum,pluma,plumach,plumade,plumage,plumate,plumb,plumber,plumbet,plumbic,plumbog,plumbum,plumcot,plume,plumed,plumer,plumery,plumet,plumier,plumify,plumist,plumlet,plummer,plummet,plummy,plumose,plumous,plump,plumpen,plumper,plumply,plumps,plumpy,plumula,plumule,plumy,plunder,plunge,plunger,plunk,plup,plural,pluries,plurify,plus,plush,plushed,plushy,pluteal,plutean,pluteus,pluvial,pluvian,pluvine,ply,plyer,plying,plywood,pneuma,po,poach,poacher,poachy,poalike,pob,pobby,pobs,pochade,pochard,pochay,poche,pock,pocket,pockety,pockily,pocky,poco,pocosin,pod,podagra,podal,podalic,podatus,podded,podder,poddish,poddle,poddy,podeon,podesta,podex,podge,podger,podgily,podgy,podial,podical,podices,podite,poditic,poditti,podium,podler,podley,podlike,podogyn,podsol,poduran,podurid,podware,podzol,poe,poem,poemet,poemlet,poesie,poesis,poesy,poet,poetdom,poetess,poetic,poetics,poetito,poetize,poetly,poetry,pogge,poggy,pogonip,pogrom,pogy,poh,poha,pohna,poi,poietic,poignet,poil,poilu,poind,poinder,point,pointed,pointel,pointer,pointy,poise,poised,poiser,poison,poitrel,pokable,poke,poked,pokeful,pokeout,poker,pokey,pokily,poking,pokomoo,pokunt,poky,pol,polacca,polack,polacre,polar,polaric,polarly,polaxis,poldavy,polder,pole,polearm,poleax,poleaxe,polecat,poleman,polemic,polenta,poler,poley,poliad,police,policed,policy,poligar,polio,polis,polish,polite,politic,polity,polk,polka,poll,pollack,polladz,pollage,pollam,pollan,pollard,polled,pollen,pollent,poller,pollex,polling,pollock,polloi,pollute,pollux,polo,poloist,polony,polos,polska,polt,poltina,poly,polyact,polyad,polygam,polygon,polygyn,polymer,polyose,polyp,polyped,polypi,polypod,polypus,pom,pomace,pomade,pomane,pomate,pomato,pomatum,pombe,pombo,pome,pomelo,pomey,pomfret,pomme,pommee,pommel,pommet,pommey,pommy,pomonal,pomonic,pomp,pompa,pompal,pompano,pompey,pomphus,pompier,pompion,pompist,pompon,pompous,pomster,pon,ponce,ponceau,poncho,pond,pondage,ponder,pondful,pondlet,pondman,pondok,pondus,pondy,pone,ponent,ponerid,poney,pong,ponga,pongee,poniard,ponica,ponier,ponja,pont,pontage,pontal,pontee,pontes,pontic,pontiff,pontify,pontil,pontile,pontin,pontine,pontist,ponto,ponton,pontoon,pony,ponzite,pooa,pooch,pooder,poodle,poof,poogye,pooh,pook,pooka,pookaun,pookoo,pool,pooler,pooli,pooly,poon,poonac,poonga,poop,pooped,poor,poorish,poorly,poot,pop,popadam,popal,popcorn,popdock,pope,popedom,popeism,popeler,popely,popery,popess,popeye,popeyed,popgun,popify,popinac,popish,popjoy,poplar,poplin,popover,poppa,poppean,poppel,popper,poppet,poppied,poppin,popple,popply,poppy,popshop,popular,populin,popweed,poral,porcate,porch,porched,porcine,pore,pored,porer,porge,porger,porgy,poring,porism,porite,pork,porker,porkery,porket,porkish,porkman,porkpie,porky,porogam,poroma,poros,porose,porosis,porotic,porous,porr,porrect,porret,porrigo,porry,port,porta,portage,portail,portal,portass,ported,portend,portent,porter,portia,portico,portify,portio,portion,portlet,portly,portman,porto,portray,portway,porty,porule,porus,pory,posca,pose,poser,poseur,posey,posh,posing,posit,positor,positum,posnet,posole,poss,posse,possess,posset,possum,post,postage,postal,postbag,postbox,postboy,posted,posteen,poster,postern,postfix,postic,postil,posting,postman,posture,postwar,posy,pot,potable,potamic,potash,potass,potassa,potate,potato,potator,potbank,potboil,potboy,potch,potcher,potdar,pote,poteen,potence,potency,potent,poter,poteye,potful,potgirl,potgun,pothead,potheen,pother,potherb,pothery,pothole,pothook,pothunt,potifer,potion,potleg,potlid,potlike,potluck,potman,potong,potoo,potoroo,potpie,potrack,pott,pottage,pottagy,pottah,potted,potter,pottery,potting,pottle,pottled,potto,potty,potware,potwork,potwort,pouce,poucer,poucey,pouch,pouched,pouchy,pouf,poulard,poulp,poulpe,poult,poulter,poultry,pounamu,pounce,pounced,pouncer,pouncet,pound,poundal,pounder,pour,pourer,pourie,pouring,pouser,pout,pouter,poutful,pouting,pouty,poverty,pow,powder,powdery,powdike,powdry,power,powered,powitch,pownie,powwow,pox,poxy,poy,poyou,praam,prabble,prabhu,practic,prad,praecox,praetor,prairie,praise,praiser,prajna,praline,pram,prana,prance,prancer,prancy,prank,pranked,pranker,prankle,pranky,prase,prasine,prasoid,prastha,prat,pratal,prate,prater,pratey,prating,prattle,prattly,prau,pravity,prawn,prawner,prawny,praxis,pray,praya,prayer,prayful,praying,preach,preachy,preacid,preact,preaged,preally,preanal,prearm,preaver,prebake,prebend,prebid,prebill,preboil,preborn,preburn,precant,precary,precast,precava,precede,precent,precept,preces,precess,precipe,precis,precise,precite,precoil,precook,precool,precopy,precox,precure,precut,precyst,predamn,predark,predata,predate,predawn,preday,predefy,predeny,predial,predict,prediet,predine,predoom,predraw,predry,predusk,preen,preener,preeze,prefab,preface,prefect,prefer,prefine,prefix,prefool,preform,pregain,pregust,prehaps,preheal,preheat,prehend,preidea,preknit,preknow,prelacy,prelate,prelect,prelim,preloan,preloss,prelude,premake,premate,premial,premier,premise,premiss,premium,premix,premold,premove,prename,prender,prendre,preomit,preopen,preoral,prep,prepare,prepave,prepay,prepink,preplan,preplot,prepose,prepuce,prepupa,prerent,prerich,prerupt,presage,presay,preseal,presee,presell,present,preses,preset,preship,preshow,preside,presift,presign,prespur,press,pressel,presser,pressor,prest,prester,presto,presume,pretan,pretell,pretend,pretest,pretext,pretire,pretone,pretry,pretty,pretzel,prevail,prevene,prevent,preverb,preveto,previde,preview,previse,prevoid,prevote,prevue,prewar,prewarn,prewash,prewhip,prewire,prewrap,prexy,prey,preyer,preyful,prezone,price,priced,pricer,prich,prick,pricked,pricker,pricket,prickle,prickly,pricks,pricky,pride,pridian,priding,pridy,pried,prier,priest,prig,prigdom,prigger,prigman,prill,prim,prima,primacy,primage,primal,primar,primary,primate,prime,primely,primer,primero,primine,priming,primly,primost,primp,primsie,primula,primus,primy,prince,princox,prine,pringle,prink,prinker,prinkle,prinky,print,printed,printer,prion,prionid,prior,prioral,priorly,priory,prisage,prisal,priscan,prism,prismal,prismed,prismy,prison,priss,prissy,pritch,prithee,prius,privacy,privant,private,privet,privily,privity,privy,prize,prizer,prizery,pro,proa,proal,proarmy,prob,probabl,probal,probang,probant,probate,probe,probeer,prober,probity,problem,procarp,proceed,process,proctal,proctor,procure,prod,prodder,proddle,prodigy,produce,product,proem,proetid,prof,profane,profert,profess,proffer,profile,profit,profuse,prog,progeny,progger,progne,program,project,proke,proker,prolan,prolate,proleg,prolify,proline,prolix,prolong,prolyl,promic,promise,promote,prompt,pronaos,pronate,pronavy,prone,pronely,proneur,prong,pronged,pronger,pronic,pronoun,pronpl,pronto,pronuba,proo,proof,proofer,proofy,prop,propago,propale,propane,propend,propene,proper,prophet,propine,proplex,propone,propons,propose,propoxy,propper,props,propupa,propyl,propyne,prorata,prorate,prore,prorean,prorsad,prorsal,prosaic,prosar,prose,prosect,proser,prosify,prosily,prosing,prosish,prosist,proso,prosode,prosody,prosoma,prosper,pross,prossy,prosy,protax,prote,protea,protead,protean,protect,protege,proteic,protein,protend,protest,protext,prothyl,protide,protist,protium,proto,protoma,protome,proton,protone,protore,protyl,protyle,protype,proudly,provand,provant,prove,provect,proved,proven,prover,proverb,provide,provine,proving,proviso,provoke,provost,prow,prowar,prowed,prowess,prowl,prowler,proxeny,proximo,proxy,proxysm,prozone,prude,prudely,prudent,prudery,prudish,prudist,prudity,pruh,prunase,prune,prunell,pruner,pruning,prunt,prunted,prurigo,prussic,prut,prutah,pry,pryer,prying,pryler,pryse,prytany,psalis,psalm,psalmic,psalmy,psaloid,psalter,psaltes,pschent,pseudo,psha,pshaw,psi,psiloi,psoadic,psoas,psoatic,psocid,psocine,psoitis,psora,psoric,psoroid,psorous,pst,psych,psychal,psyche,psychic,psychid,psychon,psykter,psylla,psyllid,ptarmic,ptereal,pteric,pterion,pteroid,pteroma,pteryla,ptinid,ptinoid,ptisan,ptomain,ptosis,ptotic,ptyalin,ptyxis,pu,pua,puan,pub,pubal,pubble,puberal,puberty,pubes,pubian,pubic,pubis,public,publish,puccoon,puce,pucelle,puchero,puck,pucka,pucker,puckery,puckish,puckle,puckrel,pud,puddee,pudder,pudding,puddle,puddled,puddler,puddly,puddock,puddy,pudency,pudenda,pudent,pudge,pudgily,pudgy,pudiano,pudic,pudical,pudsey,pudsy,pudu,pueblo,puerer,puerile,puerman,puff,puffed,puffer,puffery,puffily,puffin,puffing,pufflet,puffwig,puffy,pug,pugged,pugger,puggi,pugging,puggish,puggle,puggree,puggy,pugh,pugil,pugman,pugmill,puisne,puist,puistie,puja,puka,pukatea,puke,pukeko,puker,pukish,pukras,puku,puky,pul,pulahan,pulasan,pule,pulegol,puler,puli,pulicat,pulicid,puling,pulish,pulk,pulka,pull,pulldoo,pullen,puller,pullery,pullet,pulley,pulli,pullus,pulp,pulpal,pulper,pulpify,pulpily,pulpit,pulpous,pulpy,pulque,pulsant,pulsate,pulse,pulsion,pulsive,pulton,pulu,pulvic,pulvil,pulvino,pulwar,puly,puma,pumice,pumiced,pumicer,pummel,pummice,pump,pumpage,pumper,pumpkin,pumple,pumpman,pun,puna,punaise,punalua,punatoo,punch,puncher,punchy,punct,punctal,punctum,pundit,pundita,pundum,puneca,pung,punga,pungar,pungent,punger,pungey,pungi,pungle,pungled,punicin,punily,punish,punjum,punk,punkah,punkie,punky,punless,punlet,punnage,punner,punnet,punnic,punster,punt,punta,puntal,puntel,punter,punti,puntil,puntist,punto,puntout,punty,puny,punyish,punyism,pup,pupa,pupal,pupate,pupelo,pupil,pupilar,pupiled,pupoid,puppet,puppify,puppily,puppy,pupulo,pupunha,pur,purana,puranic,puraque,purdah,purdy,pure,pured,puree,purely,purer,purfle,purfled,purfler,purfly,purga,purge,purger,purgery,purging,purify,purine,puriri,purism,purist,purity,purl,purler,purlieu,purlin,purlman,purloin,purpart,purple,purply,purport,purpose,purpura,purpure,purr,purre,purree,purreic,purrel,purrer,purring,purrone,purry,purse,pursed,purser,pursily,purslet,pursley,pursual,pursue,pursuer,pursuit,pursy,purusha,purvey,purview,purvoe,pus,push,pusher,pushful,pushing,pushpin,puss,pusscat,pussley,pussy,pustule,put,putage,putamen,putback,putchen,putcher,puteal,putelee,puther,puthery,putid,putidly,putlog,putois,putrefy,putrid,putt,puttee,putter,puttier,puttock,putty,puture,puxy,puzzle,puzzled,puzzler,pya,pyal,pyche,pycnia,pycnial,pycnid,pycnite,pycnium,pyelic,pyemia,pyemic,pygal,pygarg,pygidid,pygmoid,pygmy,pygofer,pygopod,pyic,pyin,pyjama,pyke,pyknic,pyla,pylar,pylic,pylon,pyloric,pylorus,pyocele,pyocyst,pyocyte,pyoid,pyosis,pyr,pyral,pyralid,pyralis,pyramid,pyran,pyranyl,pyre,pyrena,pyrene,pyrenic,pyrenin,pyretic,pyrex,pyrexia,pyrexic,pyrgom,pyridic,pyridyl,pyrite,pyrites,pyritic,pyro,pyrogen,pyroid,pyrone,pyrope,pyropen,pyropus,pyrosis,pyrotic,pyrrhic,pyrrol,pyrrole,pyrroyl,pyrryl,pyruvic,pyruvil,pyruvyl,python,pyuria,pyvuril,pyx,pyxides,pyxie,pyxis,q,qasida,qere,qeri,qintar,qoph,qua,quab,quabird,quachil,quack,quackle,quacky,quad,quadded,quaddle,quadra,quadral,quadrat,quadric,quadrum,quaedam,quaff,quaffer,quag,quagga,quaggle,quaggy,quahog,quail,quaily,quaint,quake,quaker,quaking,quaky,quale,qualify,quality,qualm,qualmy,quan,quandy,quannet,quant,quanta,quantic,quantum,quar,quare,quark,quarl,quarle,quarred,quarrel,quarry,quart,quartan,quarter,quartet,quartic,quarto,quartz,quartzy,quash,quashey,quashy,quasi,quasky,quassin,quat,quata,quatch,quatern,quaters,quatral,quatre,quatrin,quattie,quatuor,quauk,quave,quaver,quavery,quaw,quawk,quay,quayage,quayful,quayman,qubba,queach,queachy,queak,queal,quean,queasom,queasy,quedful,queechy,queen,queenly,queer,queerer,queerly,queery,queest,queet,queeve,quegh,quei,quelch,quell,queller,quemado,queme,quemely,quench,quercic,quercin,querent,querier,querist,querken,querl,quern,quernal,query,quest,quester,questor,quet,quetch,quetzal,queue,quey,quiapo,quib,quibble,quiblet,quica,quick,quicken,quickie,quickly,quid,quidder,quiddit,quiddle,quiesce,quiet,quieten,quieter,quietly,quietus,quiff,quila,quiles,quilkin,quill,quillai,quilled,quiller,quillet,quilly,quilt,quilted,quilter,quin,quina,quinary,quinate,quince,quinch,quinia,quinic,quinin,quinina,quinine,quinism,quinite,quinize,quink,quinnat,quinnet,quinoa,quinoid,quinol,quinone,quinova,quinoyl,quinse,quinsy,quint,quintad,quintal,quintan,quinte,quintet,quintic,quintin,quinto,quinton,quintus,quinyl,quinze,quip,quipful,quipo,quipper,quippy,quipu,quira,quire,quirk,quirky,quirl,quirt,quis,quisby,quiscos,quisle,quit,quitch,quite,quits,quitted,quitter,quittor,quiver,quivery,quiz,quizzee,quizzer,quizzy,quo,quod,quoin,quoined,quoit,quoiter,quoits,quondam,quoniam,quop,quorum,quot,quota,quote,quotee,quoter,quoth,quotha,quotity,quotum,r,ra,raad,raash,rab,raband,rabanna,rabat,rabatte,rabbet,rabbi,rabbin,rabbit,rabbity,rabble,rabbler,rabboni,rabic,rabid,rabidly,rabies,rabific,rabinet,rabitic,raccoon,raccroc,race,raceme,racemed,racemic,racer,raceway,rach,rache,rachial,rachis,racial,racily,racing,racism,racist,rack,rackan,racker,racket,rackett,rackety,rackful,racking,rackle,rackway,racloir,racon,racoon,racy,rad,rada,radar,raddle,radial,radiale,radian,radiant,radiate,radical,radicel,radices,radicle,radii,radio,radiode,radish,radium,radius,radix,radman,radome,radon,radula,raff,raffe,raffee,raffery,raffia,raffing,raffish,raffle,raffler,raft,raftage,rafter,raftman,rafty,rag,raga,rage,rageful,rageous,rager,ragfish,ragged,raggedy,raggee,ragger,raggery,raggety,raggil,raggily,ragging,raggle,raggled,raggy,raging,raglan,raglet,raglin,ragman,ragout,ragshag,ragtag,ragtime,ragule,raguly,ragweed,ragwort,rah,rahdar,raia,raid,raider,rail,railage,railer,railing,railly,railman,railway,raiment,rain,rainbow,rainer,rainful,rainily,rainy,raioid,rais,raise,raised,raiser,raisin,raising,raisiny,raj,raja,rajah,rakan,rake,rakeage,rakeful,raker,rakery,rakh,raki,rakily,raking,rakish,rakit,raku,rallier,ralline,rally,ralph,ram,ramada,ramage,ramal,ramanas,ramass,ramate,rambeh,ramble,rambler,rambong,rame,rameal,ramed,ramekin,rament,rameous,ramet,ramex,ramhead,ramhood,rami,ramie,ramify,ramlike,ramline,rammack,rammel,rammer,rammish,rammy,ramose,ramous,ramp,rampage,rampant,rampart,ramped,ramper,rampick,rampike,ramping,rampion,rampire,rampler,ramplor,ramrace,ramrod,ramsch,ramson,ramstam,ramtil,ramular,ramule,ramulus,ramus,ran,rana,ranal,rance,rancel,rancer,ranch,ranche,rancher,rancho,rancid,rancor,rand,randan,randem,rander,randing,randir,randle,random,randy,rane,rang,range,ranged,ranger,rangey,ranging,rangle,rangler,rangy,rani,ranid,ranine,rank,ranked,ranker,rankish,rankle,rankly,rann,rannel,ranny,ransack,ransel,ransom,rant,rantan,ranter,ranting,rantock,ranty,ranula,ranular,rap,rape,rapeful,raper,raphany,raphe,raphide,raphis,rapic,rapid,rapidly,rapier,rapillo,rapine,rapiner,raping,rapinic,rapist,raploch,rappage,rappe,rappel,rapper,rapping,rappist,rapport,rapt,raptly,raptor,raptril,rapture,raptury,raptus,rare,rarebit,rarefy,rarely,rarish,rarity,ras,rasa,rasant,rascal,rasceta,rase,rasen,raser,rasgado,rash,rasher,rashful,rashing,rashly,rasion,rasp,rasped,rasper,rasping,raspish,raspite,raspy,rasse,rassle,raster,rastik,rastle,rasure,rat,rata,ratable,ratably,ratafee,ratafia,ratal,ratbite,ratch,ratchel,ratcher,ratchet,rate,rated,ratel,rater,ratfish,rath,rathe,rathed,rathely,rather,rathest,rathite,rathole,ratify,ratine,rating,ratio,ration,ratite,ratlike,ratline,ratoon,rattage,rattail,rattan,ratteen,ratten,ratter,rattery,ratti,rattish,rattle,rattled,rattler,rattles,rattly,ratton,rattrap,ratty,ratwa,ratwood,raucid,raucity,raucous,raught,rauk,raukle,rauli,raun,raunge,raupo,rauque,ravage,ravager,rave,ravel,raveler,ravelin,ravelly,raven,ravener,ravenry,ravens,raver,ravin,ravine,ravined,raviney,raving,ravioli,ravish,ravison,raw,rawhead,rawhide,rawish,rawness,rax,ray,raya,rayage,rayed,rayful,rayless,raylet,rayon,raze,razee,razer,razoo,razor,razz,razzia,razzly,re,rea,reaal,reabuse,reach,reacher,reachy,react,reactor,read,readapt,readd,reader,readily,reading,readmit,readopt,readorn,ready,reagent,reagin,reagree,reak,real,realarm,reales,realest,realgar,realign,realism,realist,reality,realive,realize,reallot,reallow,really,realm,realter,realtor,realty,ream,reamage,reamass,reamend,reamer,reamuse,reamy,reannex,reannoy,reanvil,reap,reaper,reapply,rear,rearer,reargue,rearise,rearm,rearray,reask,reason,reassay,reasty,reasy,reatus,reaudit,reavail,reave,reaver,reavoid,reavow,reawait,reawake,reaward,reaware,reb,rebab,reback,rebag,rebait,rebake,rebale,reban,rebar,rebase,rebasis,rebate,rebater,rebathe,rebato,rebawl,rebear,rebeat,rebec,rebeck,rebed,rebeg,rebeget,rebegin,rebel,rebelly,rebend,rebeset,rebia,rebias,rebid,rebill,rebind,rebirth,rebite,reblade,reblame,reblast,reblend,rebless,reblock,rebloom,reblot,reblow,reblue,rebluff,reboant,reboard,reboast,rebob,reboil,reboise,rebold,rebolt,rebone,rebook,rebop,rebore,reborn,rebound,rebox,rebrace,rebraid,rebrand,rebreed,rebrew,rebribe,rebrick,rebring,rebrown,rebrush,rebud,rebuff,rebuild,rebuilt,rebuke,rebuker,rebulk,rebunch,rebuoy,reburn,reburst,rebury,rebus,rebush,rebusy,rebut,rebute,rebuy,recable,recage,recalk,recall,recant,recap,recarry,recart,recarve,recase,recash,recast,recatch,recce,recco,reccy,recede,receder,receipt,receive,recency,recense,recent,recept,recess,rechafe,rechain,rechal,rechant,rechaos,rechar,rechase,rechaw,recheat,recheck,recheer,rechew,rechip,rechuck,rechurn,recipe,recital,recite,reciter,reck,reckla,reckon,reclaim,reclama,reclang,reclasp,reclass,reclean,reclear,reclimb,recline,reclose,recluse,recoach,recoal,recoast,recoat,recock,recoct,recode,recoil,recoin,recoke,recolor,recomb,recon,recook,recool,recopy,record,recork,recount,recoup,recover,recramp,recrank,recrate,recrew,recroon,recrop,recross,recrowd,recrown,recruit,recrush,rect,recta,rectal,recti,rectify,rection,recto,rector,rectory,rectrix,rectum,rectus,recur,recure,recurl,recurse,recurve,recuse,recut,recycle,red,redact,redan,redare,redarn,redart,redate,redaub,redawn,redback,redbait,redbill,redbird,redbone,redbuck,redbud,redcap,redcoat,redd,redden,redder,redding,reddish,reddock,reddy,rede,redeal,redebit,redeck,redeed,redeem,redefer,redefy,redeify,redelay,redeny,redeye,redfin,redfish,redfoot,redhead,redhoop,redia,redient,redig,redip,redive,redleg,redlegs,redly,redness,redo,redock,redoom,redoubt,redound,redowa,redox,redpoll,redraft,redrag,redrape,redraw,redream,redress,redrill,redrive,redroot,redry,redsear,redskin,redtab,redtail,redtop,redub,reduce,reduced,reducer,reduct,redue,redux,redward,redware,redweed,redwing,redwood,redye,ree,reechy,reed,reeded,reeden,reeder,reedily,reeding,reedish,reedman,reedy,reef,reefer,reefing,reefy,reek,reeker,reeky,reel,reeled,reeler,reem,reeming,reemish,reen,reenge,reeper,reese,reeshle,reesk,reesle,reest,reester,reestle,reesty,reet,reetam,reetle,reeve,ref,reface,refall,refan,refavor,refect,refeed,refeel,refeign,refel,refence,refer,referee,refetch,refight,refill,refilm,refind,refine,refined,refiner,refire,refit,refix,reflag,reflame,reflash,reflate,reflect,reflee,reflex,refling,refloat,reflog,reflood,refloor,reflow,reflush,reflux,refly,refocus,refold,refont,refool,refoot,reforce,reford,reforge,reform,refound,refract,refrain,reframe,refresh,refront,reft,refuel,refuge,refugee,refulge,refund,refurl,refusal,refuse,refuser,refutal,refute,refuter,reg,regain,regal,regale,regaler,regalia,regally,regard,regatta,regauge,regency,regent,reges,reget,regia,regift,regild,regill,regime,regimen,regin,reginal,region,regive,reglair,reglaze,regle,reglet,regloss,reglove,reglow,reglue,regma,regnal,regnant,regorge,regrade,regraft,regrant,regrasp,regrass,regrate,regrede,regreen,regreet,regress,regret,regrind,regrip,regroup,regrow,reguard,reguide,regula,regular,reguli,regulus,regur,regurge,regush,reh,rehair,rehale,rehang,reharm,rehash,rehaul,rehead,reheal,reheap,rehear,reheat,rehedge,reheel,rehoe,rehoist,rehonor,rehood,rehook,rehoop,rehouse,rehung,reif,reify,reign,reim,reimage,reimpel,reimply,rein,reina,reincur,reindue,reinfer,reins,reinter,reis,reissue,reit,reitbok,reiter,reiver,rejail,reject,rejerk,rejoice,rejoin,rejolt,rejudge,rekick,rekill,reking,rekiss,reknit,reknow,rel,relabel,relace,relade,reladen,relais,relamp,reland,relap,relapse,relast,relata,relatch,relate,related,relater,relator,relatum,relax,relaxed,relaxer,relay,relbun,relead,releap,relearn,release,relend,relent,relet,relevel,relevy,reliant,relic,relick,relict,relief,relier,relieve,relievo,relift,relight,relime,relimit,reline,reliner,relink,relish,relishy,relist,relive,reload,reloan,relock,relodge,relook,relose,relost,relot,relove,relower,reluct,relume,rely,remade,remail,remain,remains,remake,remaker,reman,remand,remanet,remap,remarch,remark,remarry,remask,remass,remast,rematch,remble,remeant,remede,remedy,remeet,remelt,remend,remerge,remetal,remex,remica,remicle,remiges,remill,remimic,remind,remint,remiped,remise,remiss,remit,remix,remnant,remock,remodel,remold,remop,remora,remord,remorse,remote,remould,remount,removal,remove,removed,remover,renable,renably,renail,renal,rename,rend,render,reneg,renege,reneger,renegue,renerve,renes,renet,renew,renewal,renewer,renin,renish,renk,renky,renne,rennet,rennin,renown,rent,rentage,rental,rented,rentee,renter,renvoi,renvoy,reoccur,reoffer,reoil,reomit,reopen,reorder,reown,rep,repace,repack,repage,repaint,repair,repale,repand,repanel,repaper,repark,repass,repast,repaste,repatch,repave,repawn,repay,repayal,repeal,repeat,repeg,repel,repen,repent,repew,rephase,repic,repick,repiece,repile,repin,repine,repiner,repipe,repique,repitch,repkie,replace,replait,replan,replane,replant,replate,replay,replead,repleat,replete,replevy,replica,replier,replod,replot,replow,replum,replume,reply,repoint,repoll,repolon,repone,repope,report,reposal,repose,reposed,reposer,reposit,repost,repot,repound,repour,repp,repped,repray,repress,reprice,reprime,reprint,reprise,reproof,reprove,reprune,reps,reptant,reptile,repuff,repugn,repulse,repump,repurge,repute,reputed,requeen,request,requiem,requin,require,requit,requite,requiz,requote,rerack,rerail,reraise,rerake,rerank,rerate,reread,reredos,reree,rereel,rereeve,rereign,rerent,rerig,rering,rerise,rerival,rerivet,rerob,rerobe,reroll,reroof,reroot,rerope,reroute,rerow,rerub,rerun,resaca,resack,resail,resale,resalt,resaw,resawer,resay,rescan,rescind,rescore,rescrub,rescue,rescuer,reseal,reseam,reseat,resect,reseda,resee,reseed,reseek,reseise,reseize,reself,resell,resend,resene,resent,reserve,reset,resever,resew,resex,resh,reshake,reshape,reshare,reshave,reshear,reshift,reshine,reship,reshoe,reshoot,reshun,reshunt,reshut,reside,resider,residua,residue,resift,resigh,resign,resile,resin,resina,resiner,resing,resinic,resink,resinol,resiny,resist,resize,resizer,reskin,reslash,reslate,reslay,reslide,reslot,resmell,resmelt,resmile,resnap,resnub,resoak,resoap,resoil,resole,resolve,resorb,resort,resound,resow,resp,respace,respade,respan,respeak,respect,respell,respin,respire,respite,resplit,respoke,respond,respot,respray,respue,ressala,ressaut,rest,restack,restaff,restain,restake,restamp,restant,restart,restate,restaur,resteal,resteel,resteep,restem,restep,rester,restes,restful,restiad,restiff,resting,restir,restis,restive,restock,restore,restow,restrap,restrip,restudy,restuff,resty,restyle,resuck,resue,resuing,resuit,result,resume,resumer,resun,resup,resurge,reswage,resward,reswarm,reswear,resweat,resweep,reswell,reswill,reswim,ret,retable,retack,retag,retail,retain,retake,retaker,retalk,retama,retame,retan,retape,retard,retare,retaste,retax,retch,reteach,retell,retem,retempt,retene,retent,retest,rethank,rethaw,rethe,rethink,rethrow,retia,retial,retiary,reticle,retie,retier,retile,retill,retime,retin,retina,retinal,retinol,retinue,retip,retiral,retire,retired,retirer,retoast,retold,retomb,retook,retool,retooth,retort,retoss,retotal,retouch,retour,retrace,retrack,retract,retrad,retrade,retrain,retral,retramp,retread,retreat,retree,retrial,retrim,retrip,retrot,retrude,retrue,retrust,retry,retted,retter,rettery,retting,rettory,retube,retuck,retune,returf,return,retuse,retwine,retwist,retying,retype,retzian,reune,reunify,reunion,reunite,reurge,reuse,reutter,rev,revalue,revamp,revary,reve,reveal,reveil,revel,reveler,revelly,revelry,revend,revenge,revent,revenue,rever,reverb,revere,revered,reverer,reverie,revers,reverse,reversi,reverso,revert,revery,revest,revet,revete,revie,review,revile,reviler,revisal,revise,revisee,reviser,revisit,revisor,revival,revive,reviver,revivor,revoice,revoke,revoker,revolt,revolve,revomit,revote,revue,revuist,rewade,rewager,rewake,rewaken,rewall,reward,rewarm,rewarn,rewash,rewater,rewave,rewax,rewayle,rewear,reweave,rewed,reweigh,reweld,rewend,rewet,rewhelp,rewhirl,rewiden,rewin,rewind,rewire,rewish,rewood,reword,rework,rewound,rewove,rewoven,rewrap,rewrite,rex,rexen,reyield,reyoke,reyouth,rhabdom,rhabdos,rhabdus,rhagite,rhagon,rhagose,rhamn,rhamnal,rhason,rhatany,rhe,rhea,rhebok,rheeboc,rheebok,rheen,rheic,rhein,rheinic,rhema,rheme,rhenium,rheotan,rhesian,rhesus,rhetor,rheum,rheumed,rheumic,rheumy,rhexis,rhinal,rhine,rhinion,rhino,rhizine,rhizoid,rhizoma,rhizome,rhizote,rho,rhodic,rhoding,rhodite,rhodium,rhomb,rhombic,rhombos,rhombus,rhubarb,rhumb,rhumba,rhyme,rhymer,rhymery,rhymic,rhymist,rhymy,rhyptic,rhythm,rhyton,ria,rial,riancy,riant,riantly,riata,rib,ribald,riband,ribat,ribband,ribbed,ribber,ribbet,ribbing,ribble,ribbon,ribbony,ribby,ribe,ribless,riblet,riblike,ribonic,ribose,ribskin,ribwork,ribwort,rice,ricer,ricey,rich,richdom,richen,riches,richly,richt,ricin,ricine,ricinic,ricinus,rick,ricker,rickets,rickety,rickey,rickle,ricksha,ricrac,rictal,rictus,rid,ridable,ridably,riddam,riddel,ridden,ridder,ridding,riddle,riddler,ride,rideau,riden,rident,rider,ridered,ridge,ridged,ridgel,ridger,ridgil,ridging,ridgy,riding,ridotto,rie,riem,riempie,rier,rife,rifely,riff,riffle,riffler,rifle,rifler,riflery,rifling,rift,rifter,rifty,rig,rigbane,riggald,rigger,rigging,riggish,riggite,riggot,right,righten,righter,rightle,rightly,righto,righty,rigid,rigidly,rigling,rignum,rigol,rigor,rigsby,rikisha,rikk,riksha,rikshaw,rilawa,rile,riley,rill,rillet,rillett,rillock,rilly,rim,rima,rimal,rimate,rimbase,rime,rimer,rimfire,rimland,rimless,rimmed,rimmer,rimose,rimous,rimpi,rimple,rimrock,rimu,rimula,rimy,rinceau,rinch,rincon,rind,rinded,rindle,rindy,rine,ring,ringe,ringed,ringent,ringer,ringeye,ringing,ringite,ringle,ringlet,ringman,ringtaw,ringy,rink,rinka,rinker,rinkite,rinner,rinse,rinser,rinsing,rio,riot,rioter,rioting,riotist,riotous,riotry,rip,ripa,ripal,ripcord,ripe,ripely,ripen,ripener,riper,ripgut,ripieno,ripier,ripost,riposte,ripper,rippet,rippier,ripping,rippit,ripple,rippler,ripplet,ripply,rippon,riprap,ripsack,ripsaw,ripup,risala,risberm,rise,risen,riser,rishi,risible,risibly,rising,risk,risker,riskful,riskily,riskish,risky,risp,risper,risque,risquee,rissel,risser,rissle,rissoid,rist,ristori,rit,rita,rite,ritling,ritual,ritzy,riva,rivage,rival,rivalry,rive,rivel,rivell,riven,river,rivered,riverly,rivery,rivet,riveter,riving,rivose,rivulet,rix,rixy,riyal,rizzar,rizzle,rizzom,roach,road,roadbed,roaded,roader,roading,roadite,roadman,roadway,roam,roamage,roamer,roaming,roan,roanoke,roar,roarer,roaring,roast,roaster,rob,robalo,roband,robber,robbery,robbin,robbing,robe,rober,roberd,robin,robinet,robing,robinin,roble,robomb,robot,robotry,robur,robust,roc,rocher,rochet,rock,rockaby,rocker,rockery,rocket,rockety,rocking,rockish,rocklay,rocklet,rockman,rocky,rococo,rocta,rod,rodd,roddin,rodding,rode,rodent,rodeo,rodge,rodham,roding,rodless,rodlet,rodlike,rodman,rodney,rodsman,rodster,rodwood,roe,roebuck,roed,roelike,roer,roey,rog,rogan,roger,roggle,rogue,roguery,roguing,roguish,rohan,rohob,rohun,rohuna,roi,roid,roil,roily,roister,roit,roka,roke,rokeage,rokee,rokelay,roker,rokey,roky,role,roleo,roll,rolled,roller,rolley,rollick,rolling,rollix,rollmop,rollock,rollway,roloway,romaika,romaine,romal,romance,romancy,romanza,romaunt,rombos,romeite,romero,rommack,romp,romper,romping,rompish,rompu,rompy,roncet,ronco,rond,ronde,rondeau,rondel,rondino,rondle,rondo,rondure,rone,rongeur,ronquil,rontgen,ronyon,rood,roodle,roof,roofage,roofer,roofing,rooflet,roofman,roofy,rooibok,rooinek,rook,rooker,rookery,rookie,rookish,rooklet,rooky,rool,room,roomage,roomed,roomer,roomful,roomie,roomily,roomlet,roomth,roomthy,roomy,roon,roosa,roost,roosted,rooster,root,rootage,rootcap,rooted,rooter,rootery,rootle,rootlet,rooty,roove,ropable,rope,ropeman,roper,ropery,ropes,ropeway,ropily,roping,ropish,ropp,ropy,roque,roquer,roquet,roquist,roral,roric,rorqual,rorty,rory,rosal,rosario,rosary,rosated,roscid,rose,roseal,roseate,rosebay,rosebud,rosed,roseine,rosel,roselet,rosella,roselle,roseola,roseous,rosery,roset,rosetan,rosette,rosetty,rosetum,rosety,rosied,rosier,rosilla,rosillo,rosily,rosin,rosiny,rosland,rosoli,rosolic,rosolio,ross,rosser,rossite,rostel,roster,rostra,rostral,rostrum,rosular,rosy,rot,rota,rotal,rotaman,rotan,rotang,rotary,rotate,rotated,rotator,rotch,rote,rotella,roter,rotge,rotgut,rother,rotifer,roto,rotor,rottan,rotten,rotter,rotting,rottle,rottock,rottolo,rotula,rotulad,rotular,rotulet,rotulus,rotund,rotunda,rotundo,roub,roucou,roud,roue,rouelle,rouge,rougeau,rougeot,rough,roughen,rougher,roughet,roughie,roughly,roughy,rougy,rouille,rouky,roulade,rouleau,roun,rounce,rouncy,round,rounded,roundel,rounder,roundly,roundup,roundy,roup,rouper,roupet,roupily,roupit,roupy,rouse,rouser,rousing,roust,rouster,rout,route,router,routh,routhie,routhy,routine,routing,routous,rove,rover,rovet,rovetto,roving,row,rowable,rowan,rowboat,rowdily,rowdy,rowed,rowel,rowen,rower,rowet,rowing,rowlet,rowlock,rowport,rowty,rowy,rox,roxy,royal,royale,royalet,royally,royalty,royet,royt,rozum,ruach,ruana,rub,rubasse,rubato,rubbed,rubber,rubbers,rubbery,rubbing,rubbish,rubble,rubbler,rubbly,rubdown,rubelet,rubella,rubelle,rubeola,rubiate,rubican,rubidic,rubied,rubific,rubify,rubine,rubious,ruble,rublis,rubor,rubric,rubrica,rubrify,ruby,ruche,ruching,ruck,rucker,ruckle,rucksey,ruckus,rucky,ruction,rud,rudas,rudd,rudder,ruddied,ruddily,ruddle,ruddock,ruddy,rude,rudely,ruderal,rudesby,rudge,rudish,rudity,rue,rueful,ruelike,ruelle,ruen,ruer,ruesome,ruewort,ruff,ruffed,ruffer,ruffian,ruffin,ruffle,ruffled,ruffler,ruffly,rufous,rufter,rufus,rug,ruga,rugate,rugged,rugging,ruggle,ruggy,ruglike,rugosa,rugose,rugous,ruin,ruinate,ruined,ruiner,ruing,ruinous,rukh,rulable,rule,ruledom,ruler,ruling,rull,ruller,rullion,rum,rumal,rumble,rumbler,rumbly,rumbo,rumen,ruminal,rumkin,rumless,rumly,rummage,rummagy,rummer,rummily,rummish,rummy,rumness,rumney,rumor,rumorer,rump,rumpad,rumpade,rumple,rumply,rumpus,rumshop,run,runaway,runback,runby,runch,rundale,rundle,rundlet,rune,runed,runer,runfish,rung,runic,runite,runkle,runkly,runless,runlet,runman,runnel,runner,runnet,running,runny,runoff,runout,runover,runrig,runt,runted,runtee,runtish,runty,runway,rupa,rupee,rupia,rupiah,rupial,rupie,rupitic,ruptile,ruption,ruptive,rupture,rural,rurally,rurban,ruru,ruse,rush,rushed,rushen,rusher,rushing,rushlit,rushy,rusine,rusk,ruskin,rusky,rusma,rusot,ruspone,russel,russet,russety,russia,russud,rust,rustful,rustic,rustily,rustle,rustler,rustly,rustre,rustred,rusty,ruswut,rut,rutate,rutch,ruth,ruther,ruthful,rutic,rutile,rutin,ruttee,rutter,ruttish,rutty,rutyl,ruvid,rux,ryal,ryania,rybat,ryder,rye,ryen,ryme,rynd,rynt,ryot,ryotwar,rype,rypeck,s,sa,saa,sab,sabalo,sabanut,sabbat,sabbath,sabe,sabeca,sabella,saber,sabered,sabicu,sabina,sabine,sabino,sable,sably,sabora,sabot,saboted,sabra,sabulum,saburra,sabutan,sabzi,sac,sacaton,sacatra,saccade,saccate,saccos,saccule,saccus,sachem,sachet,sack,sackage,sackbag,sackbut,sacked,sacken,sacker,sackful,sacking,sackman,saclike,saco,sacope,sacque,sacra,sacrad,sacral,sacred,sacring,sacrist,sacro,sacrum,sad,sadden,saddik,saddish,saddle,saddled,saddler,sade,sadh,sadhe,sadhu,sadic,sadiron,sadism,sadist,sadly,sadness,sado,sadr,saecula,saeter,saeume,safari,safe,safely,safen,safener,safety,saffian,safflor,safflow,saffron,safrole,saft,sag,saga,sagaie,sagaman,sagathy,sage,sagely,sagene,sagger,sagging,saggon,saggy,saging,sagitta,sagless,sago,sagoin,saguaro,sagum,saguran,sagwire,sagy,sah,sahh,sahib,sahme,sahukar,sai,saic,said,saiga,sail,sailage,sailed,sailer,sailing,sailor,saily,saim,saimiri,saimy,sain,saint,sainted,saintly,saip,sair,sairly,sairve,sairy,saithe,saj,sajou,sake,sakeber,sakeen,saker,sakeret,saki,sakieh,sakulya,sal,salaam,salable,salably,salacot,salad,salago,salal,salamo,salar,salary,salat,salay,sale,salele,salema,salep,salfern,salic,salicin,salicyl,salient,salify,saligot,salina,saline,salite,salited,saliva,salival,salix,salle,sallee,sallet,sallier,salloo,sallow,sallowy,sally,salma,salmiac,salmine,salmis,salmon,salol,salomon,salon,saloon,saloop,salp,salpa,salpian,salpinx,salpoid,salse,salsify,salt,salta,saltant,saltary,saltate,saltcat,salted,saltee,salten,salter,saltern,saltery,saltfat,saltier,saltine,salting,saltish,saltly,saltman,saltpan,saltus,salty,saluki,salung,salute,saluter,salvage,salve,salver,salviol,salvo,salvor,salvy,sam,samadh,samadhi,samaj,saman,samara,samaria,samarra,samba,sambal,sambar,sambo,sambuk,sambuke,same,samekh,samel,samely,samen,samh,samhita,samiel,samiri,samisen,samite,samkara,samlet,sammel,sammer,sammier,sammy,samovar,samp,sampan,sampi,sample,sampler,samsara,samshu,samson,samurai,san,sanable,sanai,sancho,sanct,sancta,sanctum,sand,sandak,sandal,sandan,sandbag,sandbin,sandbox,sandboy,sandbur,sanded,sander,sanders,sandhi,sanding,sandix,sandman,sandust,sandy,sane,sanely,sang,sanga,sangar,sangei,sanger,sangha,sangley,sangrel,sangsue,sanicle,sanies,sanify,sanious,sanity,sanjak,sank,sankha,sannup,sans,sansei,sansi,sant,santal,santene,santimi,santims,santir,santon,sao,sap,sapa,sapajou,sapan,sapbush,sapek,sapful,saphead,saphena,saphie,sapid,sapient,sapin,sapinda,saple,sapless,sapling,sapo,saponin,sapor,sapota,sapote,sappare,sapper,sapphic,sapping,sapples,sappy,saprine,sapsago,sapsuck,sapwood,sapwort,sar,saraad,saraf,sarangi,sarcasm,sarcast,sarcine,sarcle,sarcler,sarcode,sarcoid,sarcoma,sarcous,sard,sardel,sardine,sardius,sare,sargo,sargus,sari,sarif,sarigue,sarinda,sarip,sark,sarkar,sarkful,sarkine,sarking,sarkit,sarlak,sarlyk,sarment,sarna,sarod,saron,sarong,saronic,saros,sarpler,sarpo,sarra,sarraf,sarsa,sarsen,sart,sartage,sartain,sartor,sarus,sarwan,sasa,sasan,sasani,sash,sashay,sashery,sashing,sasin,sasine,sassaby,sassy,sat,satable,satan,satang,satanic,satara,satchel,sate,sateen,satiate,satient,satiety,satin,satine,satined,satiny,satire,satiric,satisfy,satlijk,satrap,satrapy,satron,sattle,sattva,satura,satyr,satyric,sauce,saucer,saucily,saucy,sauf,sauger,saugh,saughen,sauld,saulie,sault,saulter,saum,saumon,saumont,sauna,saunter,sauqui,saur,saurel,saurian,saury,sausage,saut,saute,sauteur,sauty,sauve,savable,savacu,savage,savanna,savant,savarin,save,saved,saveloy,saver,savin,saving,savior,savola,savor,savored,savorer,savory,savour,savoy,savoyed,savssat,savvy,saw,sawah,sawali,sawarra,sawback,sawbill,sawbuck,sawbwa,sawder,sawdust,sawed,sawer,sawfish,sawfly,sawing,sawish,sawlike,sawman,sawmill,sawmon,sawmont,sawn,sawney,sawt,sawway,sawwort,sawyer,sax,saxhorn,saxten,saxtie,saxtuba,say,saya,sayable,sayer,sayette,sayid,saying,sazen,sblood,scab,scabbed,scabble,scabby,scabid,scabies,scabish,scabrid,scad,scaddle,scads,scaff,scaffer,scaffie,scaffle,scaglia,scala,scalage,scalar,scalare,scald,scalded,scalder,scaldic,scaldy,scale,scaled,scalena,scalene,scaler,scales,scaling,scall,scalled,scallom,scallop,scalma,scaloni,scalp,scalpel,scalper,scalt,scaly,scam,scamble,scamell,scamler,scamles,scamp,scamper,scan,scandal,scandia,scandic,scanmag,scanner,scant,scantle,scantly,scanty,scap,scape,scapel,scapha,scapoid,scapose,scapple,scapula,scapus,scar,scarab,scarce,scarcen,scare,scarer,scarf,scarfed,scarfer,scarfy,scarid,scarify,scarily,scarlet,scarman,scarn,scaroid,scarp,scarred,scarrer,scarry,scart,scarth,scarus,scarved,scary,scase,scasely,scat,scatch,scathe,scatter,scatty,scatula,scaul,scaum,scaup,scauper,scaur,scaurie,scaut,scavage,scavel,scaw,scawd,scawl,scazon,sceat,scena,scenary,scend,scene,scenery,scenic,scenist,scenite,scent,scented,scenter,scepsis,scepter,sceptic,sceptry,scerne,schanz,schappe,scharf,schelly,schema,scheme,schemer,schemy,schene,schepel,schepen,scherm,scherzi,scherzo,schesis,schism,schisma,schist,schloop,schmelz,scho,schola,scholae,scholar,scholia,schone,school,schoon,schorl,schorly,schout,schtoff,schuh,schuhe,schuit,schule,schuss,schute,schwa,schwarz,sciapod,sciarid,sciatic,scibile,science,scient,scincid,scind,sciniph,scintle,scion,scious,scirrhi,scissel,scissor,sciurid,sclaff,sclate,sclater,sclaw,scler,sclera,scleral,sclere,scliff,sclim,sclimb,scoad,scob,scobby,scobs,scoff,scoffer,scog,scoggan,scogger,scoggin,scoke,scolb,scold,scolder,scolex,scolia,scoliid,scolion,scolite,scollop,scolog,sconce,sconcer,scone,scoon,scoop,scooped,scooper,scoot,scooter,scopa,scopate,scope,scopet,scopic,scopine,scopola,scops,scopula,scorch,score,scored,scorer,scoria,scoriac,scoriae,scorify,scoring,scorn,scorned,scorner,scorny,scorper,scorse,scot,scotale,scotch,scote,scoter,scotia,scotino,scotoma,scotomy,scouch,scouk,scoup,scour,scoured,scourer,scourge,scoury,scouse,scout,scouter,scouth,scove,scovel,scovy,scow,scowder,scowl,scowler,scowman,scrab,scrabe,scrae,scrag,scraggy,scraily,scram,scran,scranch,scrank,scranky,scranny,scrap,scrape,scraped,scraper,scrapie,scrappy,scrapy,scrat,scratch,scrath,scrauch,scraw,scrawk,scrawl,scrawly,scrawm,scrawny,scray,scraze,screak,screaky,scream,screamy,scree,screech,screed,screek,screel,screen,screeny,screet,screeve,screich,screigh,screve,screver,screw,screwed,screwer,screwy,scribal,scribe,scriber,scride,scrieve,scrike,scrim,scrime,scrimer,scrimp,scrimpy,scrin,scrinch,scrine,scringe,scrip,scripee,script,scritch,scrive,scriven,scriver,scrob,scrobe,scrobis,scrod,scroff,scrog,scroggy,scrolar,scroll,scrolly,scroo,scrooch,scrooge,scroop,scrota,scrotal,scrotum,scrouge,scrout,scrow,scroyle,scrub,scrubby,scruf,scruff,scruffy,scruft,scrum,scrump,scrunch,scrunge,scrunt,scruple,scrush,scruto,scruze,scry,scryer,scud,scudder,scuddle,scuddy,scudi,scudler,scudo,scuff,scuffed,scuffer,scuffle,scuffly,scuffy,scuft,scufter,scug,sculch,scull,sculler,scullog,sculp,sculper,sculpin,sculpt,sculsh,scum,scumber,scumble,scummed,scummer,scummy,scun,scunder,scunner,scup,scupful,scupper,scuppet,scur,scurdy,scurf,scurfer,scurfy,scurry,scurvy,scuse,scut,scuta,scutage,scutal,scutate,scutch,scute,scutel,scutter,scuttle,scutty,scutula,scutum,scybala,scye,scypha,scyphae,scyphi,scyphoi,scyphus,scyt,scytale,scythe,sdeath,se,sea,seadog,seafare,seafolk,seafowl,seagirt,seagoer,seah,seak,seal,sealant,sealch,sealed,sealer,sealery,sealess,sealet,sealike,sealine,sealing,seam,seaman,seamark,seamed,seamer,seaming,seamlet,seamost,seamrog,seamy,seance,seaport,sear,searce,searcer,search,seared,searer,searing,seary,seasick,seaside,season,seat,seatang,seated,seater,seathe,seating,seatron,seave,seavy,seawant,seaward,seaware,seaway,seaweed,seawife,seaworn,seax,sebacic,sebait,sebate,sebific,sebilla,sebkha,sebum,sebundy,sec,secable,secalin,secancy,secant,secede,seceder,secern,secesh,sech,seck,seclude,secluse,secohm,second,seconde,secos,secpar,secque,secre,secrecy,secret,secreta,secrete,secreto,sect,sectary,sectile,section,sectism,sectist,sective,sector,secular,secund,secure,securer,sedan,sedate,sedent,sedge,sedged,sedging,sedgy,sedile,sedilia,seduce,seducee,seducer,seduct,sedum,see,seeable,seech,seed,seedage,seedbed,seedbox,seeded,seeder,seedful,seedily,seedkin,seedlet,seedlip,seedman,seedy,seege,seeing,seek,seeker,seeking,seel,seelful,seely,seem,seemer,seeming,seemly,seen,seenie,seep,seepage,seeped,seepy,seer,seeress,seerpaw,seesaw,seesee,seethe,seg,seggar,seggard,segged,seggrom,segment,sego,segol,seiche,seidel,seine,seiner,seise,seism,seismal,seismic,seit,seity,seize,seizer,seizin,seizing,seizor,seizure,sejant,sejoin,sejunct,sekos,selah,selamin,seldom,seldor,sele,select,selenic,self,selfdom,selfful,selfish,selfism,selfist,selfly,selion,sell,sella,sellar,sellate,seller,sellie,selling,sellout,selly,selsyn,selt,selva,selvage,semarum,sematic,semball,semble,seme,semeed,semeia,semeion,semen,semence,semese,semi,semiape,semiarc,semibay,semic,semicup,semidry,semiegg,semifib,semifit,semify,semigod,semihot,seminal,seminar,semiorb,semiped,semipro,semiraw,semis,semita,semitae,semital,semiurn,semmet,semmit,semola,semsem,sen,senaite,senam,senary,senate,senator,sence,sencion,send,sendal,sendee,sender,sending,senega,senegin,senesce,senile,senior,senna,sennet,sennit,sennite,sensa,sensal,sensate,sense,sensed,sensify,sensile,sension,sensism,sensist,sensive,sensize,senso,sensor,sensory,sensual,sensum,sensyne,sent,sentry,sepad,sepal,sepaled,sephen,sepia,sepian,sepiary,sepic,sepioid,sepion,sepiost,sepium,sepone,sepoy,seppuku,seps,sepsine,sepsis,sept,septa,septal,septan,septane,septate,septave,septet,septic,septier,septile,septime,septoic,septole,septum,septuor,sequa,sequel,sequela,sequent,sequest,sequin,ser,sera,serab,seragli,serai,serail,seral,serang,serape,seraph,serau,seraw,sercial,serdab,sere,sereh,serene,serf,serfage,serfdom,serfish,serfism,serge,serger,serging,serial,seriary,seriate,sericea,sericin,seriema,series,serif,serific,serin,serine,seringa,serio,serious,serment,sermo,sermon,sero,serolin,seron,seroon,seroot,seropus,serosa,serous,serow,serpent,serphid,serpigo,serpula,serra,serrage,serran,serrana,serrano,serrate,serried,serry,sert,serta,sertule,sertum,serum,serumal,serut,servage,serval,servant,serve,server,servery,servet,service,servile,serving,servist,servo,sesame,sesma,sesqui,sess,sessile,session,sestet,sesti,sestiad,sestina,sestine,sestole,sestuor,set,seta,setae,setal,setback,setbolt,setdown,setfast,seth,sethead,setier,setline,setness,setoff,seton,setose,setous,setout,setover,setsman,sett,settee,setter,setting,settle,settled,settler,settlor,setula,setule,setup,setwall,setwise,setwork,seugh,seven,sevener,seventh,seventy,sever,several,severe,severer,severy,sew,sewable,sewage,sewan,sewed,sewen,sewer,sewered,sewery,sewing,sewless,sewn,sex,sexed,sexern,sexfid,sexfoil,sexhood,sexifid,sexiped,sexless,sexlike,sexly,sext,sextain,sextan,sextans,sextant,sextar,sextary,sextern,sextet,sextic,sextile,sexto,sextole,sexton,sextry,sextula,sexual,sexuale,sexuous,sexy,sey,sfoot,sh,sha,shab,shabash,shabbed,shabble,shabby,shachle,shachly,shack,shackle,shackly,shacky,shad,shade,shaded,shader,shadily,shadine,shading,shadkan,shadoof,shadow,shadowy,shady,shaffle,shaft,shafted,shafter,shafty,shag,shagbag,shagged,shaggy,shaglet,shagrag,shah,shahdom,shahi,shahin,shaikh,shaitan,shake,shaken,shaker,shakers,shakha,shakily,shaking,shako,shakti,shaku,shaky,shale,shall,shallal,shallon,shallop,shallot,shallow,shallu,shalom,shalt,shalwar,shaly,sham,shama,shamal,shamalo,shaman,shamba,shamble,shame,shamed,shamer,shamir,shammed,shammer,shammy,shampoo,shan,shandry,shandy,shangan,shank,shanked,shanker,shanna,shanny,shansa,shant,shanty,shap,shape,shaped,shapely,shapen,shaper,shaping,shaps,shapy,shard,sharded,shardy,share,sharer,shargar,shark,sharky,sharn,sharny,sharp,sharpen,sharper,sharpie,sharply,sharps,sharpy,sharrag,sharry,shaster,shastra,shastri,shat,shatan,shatter,shaugh,shaul,shaup,shauri,shauwe,shave,shaved,shavee,shaven,shaver,shavery,shaving,shaw,shawl,shawled,shawm,shawny,shawy,shay,she,shea,sheaf,sheafy,sheal,shear,sheard,shearer,shears,sheat,sheath,sheathe,sheathy,sheave,sheaved,shebang,shebeen,shed,shedded,shedder,sheder,shedman,shee,sheely,sheen,sheenly,sheeny,sheep,sheepy,sheer,sheered,sheerly,sheet,sheeted,sheeter,sheety,sheik,sheikly,shekel,shela,sheld,shelder,shelf,shelfy,shell,shellac,shelled,sheller,shellum,shelly,shelta,shelter,shelty,shelve,shelver,shelvy,shend,sheng,sheolic,sheppey,sher,sherbet,sheriat,sherif,sherifa,sheriff,sherifi,sherify,sherry,sheth,sheugh,sheva,shevel,shevri,shewa,shewel,sheyle,shi,shibah,shibar,shice,shicer,shicker,shide,shied,shiel,shield,shier,shies,shiest,shift,shifter,shifty,shigram,shih,shikar,shikara,shikari,shikimi,shikken,shiko,shikra,shilf,shilfa,shill,shilla,shillet,shilloo,shilpit,shim,shimal,shimmer,shimmy,shimose,shimper,shin,shindig,shindle,shindy,shine,shiner,shingle,shingly,shinily,shining,shinner,shinny,shinty,shiny,shinza,ship,shipboy,shipful,shiplap,shiplet,shipman,shipped,shipper,shippo,shippon,shippy,shipway,shire,shirk,shirker,shirky,shirl,shirpit,shirr,shirt,shirty,shish,shisham,shisn,shita,shither,shittah,shittim,shiv,shive,shiver,shivery,shivey,shivoo,shivy,sho,shoad,shoader,shoal,shoaler,shoaly,shoat,shock,shocker,shod,shodden,shoddy,shode,shoder,shoe,shoeboy,shoeing,shoeman,shoer,shoful,shog,shogaol,shoggie,shoggle,shoggly,shogi,shogun,shohet,shoji,shola,shole,shone,shoneen,shoo,shood,shoofa,shoofly,shooi,shook,shool,shooler,shoop,shoor,shoot,shootee,shooter,shop,shopboy,shopful,shophar,shoplet,shopman,shoppe,shopper,shoppy,shoq,shor,shoran,shore,shored,shorer,shoring,shorn,short,shorten,shorter,shortly,shorts,shot,shote,shotgun,shotman,shott,shotted,shotten,shotter,shotty,shou,should,shout,shouter,shoval,shove,shovel,shover,show,showdom,shower,showery,showily,showing,showish,showman,shown,showup,showy,shoya,shrab,shradh,shraf,shrag,shram,shrank,shrap,shrave,shravey,shred,shreddy,shree,shreeve,shrend,shrew,shrewd,shrewdy,shrewly,shriek,shrieky,shrift,shrike,shrill,shrilly,shrimp,shrimpi,shrimpy,shrinal,shrine,shrink,shrinky,shrip,shrite,shrive,shrivel,shriven,shriver,shroff,shrog,shroud,shroudy,shrove,shrover,shrub,shrubby,shruff,shrug,shrunk,shrups,shuba,shuck,shucker,shucks,shudder,shuff,shuffle,shug,shul,shuler,shumac,shun,shune,shunner,shunt,shunter,shure,shurf,shush,shusher,shut,shutoff,shutout,shutten,shutter,shuttle,shy,shyer,shyish,shyly,shyness,shyster,si,siak,sial,sialic,sialid,sialoid,siamang,sib,sibbed,sibbens,sibber,sibby,sibilus,sibling,sibness,sibrede,sibship,sibyl,sibylic,sibylla,sic,sicca,siccant,siccate,siccity,sice,sick,sickbed,sicken,sicker,sickish,sickle,sickled,sickler,sickly,sicsac,sicula,sicular,sidder,siddur,side,sideage,sidearm,sidecar,sided,sider,sideral,siderin,sides,sideway,sidhe,sidi,siding,sidle,sidler,sidling,sidth,sidy,sie,siege,sieger,sienna,sier,siering,sierra,sierran,siesta,sieve,siever,sievy,sifac,sifaka,sife,siffle,sifflet,sifflot,sift,siftage,sifted,sifter,sifting,sig,sigger,sigh,sigher,sighful,sighing,sight,sighted,sighten,sighter,sightly,sighty,sigil,sigla,siglos,sigma,sigmate,sigmoid,sign,signal,signary,signate,signee,signer,signet,signify,signior,signist,signman,signory,signum,sika,sikar,sikatch,sike,sikerly,siket,sikhara,sikhra,sil,silage,silane,sile,silen,silence,silency,sileni,silenic,silent,silenus,silesia,silex,silica,silicam,silicic,silicle,silico,silicon,silicyl,siliqua,silique,silk,silked,silken,silker,silkie,silkily,silkman,silky,sill,sillar,siller,sillily,sillock,sillon,silly,silo,siloist,silphid,silt,siltage,silting,silty,silurid,silva,silvan,silver,silvern,silvery,silvics,silyl,sima,simal,simar,simball,simbil,simblin,simblot,sime,simiad,simial,simian,similar,simile,similor,simioid,simious,simity,simkin,simlin,simling,simmer,simmon,simnel,simony,simool,simoom,simoon,simous,simp,simpai,simper,simple,simpler,simplex,simply,simsim,simson,simular,simuler,sin,sina,sinaite,sinal,sinamay,sinapic,sinapis,sinawa,since,sincere,sind,sinder,sindle,sindoc,sindon,sindry,sine,sinew,sinewed,sinewy,sinful,sing,singe,singed,singer,singey,singh,singing,single,singled,singler,singles,singlet,singly,singult,sinh,sink,sinkage,sinker,sinking,sinky,sinless,sinlike,sinnen,sinner,sinnet,sinopia,sinople,sinsion,sinsyne,sinter,sintoc,sinuate,sinuose,sinuous,sinus,sinusal,sinward,siol,sion,sip,sipage,sipe,siper,siphoid,siphon,sipid,siping,sipling,sipper,sippet,sippio,sir,sircar,sirdar,sire,siren,sirene,sirenic,sireny,siress,sirgang,sirian,siricid,sirih,siris,sirkeer,sirki,sirky,sirloin,siroc,sirocco,sirpea,sirple,sirpoon,sirrah,sirree,sirship,sirup,siruped,siruper,sirupy,sis,sisal,sise,sisel,sish,sisham,sisi,siskin,siss,sissify,sissoo,sissy,sist,sister,sistern,sistle,sistrum,sit,sitao,sitar,sitch,site,sitfast,sith,sithe,sithens,sitient,sitio,sittee,sitten,sitter,sittine,sitting,situal,situate,situla,situlae,situs,siva,siver,sivvens,siwash,six,sixain,sixer,sixfoil,sixfold,sixsome,sixte,sixteen,sixth,sixthet,sixthly,sixty,sizable,sizably,sizal,sizar,size,sized,sizeman,sizer,sizes,sizing,sizy,sizygia,sizz,sizzard,sizzing,sizzle,sjambok,skaddle,skaff,skaffie,skag,skair,skal,skance,skart,skasely,skat,skate,skater,skatiku,skating,skatist,skatole,skaw,skean,skedge,skee,skeed,skeeg,skeel,skeely,skeen,skeer,skeered,skeery,skeet,skeeter,skeezix,skeg,skegger,skeif,skeigh,skeily,skein,skeiner,skeipp,skel,skelder,skelf,skelic,skell,skellat,skeller,skellum,skelly,skelp,skelper,skelpin,skelter,skemmel,skemp,sken,skene,skeo,skeough,skep,skepful,skeptic,sker,skere,skerret,skerry,sketch,sketchy,skete,skevish,skew,skewed,skewer,skewl,skewly,skewy,skey,ski,skiapod,skibby,skice,skid,skidded,skidder,skiddoo,skiddy,skidpan,skidway,skied,skieppe,skier,skies,skiff,skift,skiing,skijore,skil,skilder,skill,skilled,skillet,skilly,skilpot,skilts,skim,skime,skimmed,skimmer,skimp,skimpy,skin,skinch,skinful,skink,skinker,skinkle,skinned,skinner,skinny,skip,skipman,skippel,skipper,skippet,skipple,skippy,skirl,skirp,skirr,skirreh,skirret,skirt,skirted,skirter,skirty,skit,skite,skiter,skither,skitter,skittle,skitty,skiv,skive,skiver,skiving,sklate,sklater,sklent,skoal,skoo,skookum,skoptsy,skout,skraigh,skrike,skrupul,skua,skulk,skulker,skull,skulled,skully,skulp,skun,skunk,skunky,skuse,sky,skybal,skyey,skyful,skyish,skylark,skyless,skylike,skylook,skyman,skyphoi,skyphos,skyre,skysail,skyugle,skyward,skyway,sla,slab,slabbed,slabber,slabby,slabman,slack,slacked,slacken,slacker,slackly,slad,sladang,slade,slae,slag,slagger,slaggy,slagman,slain,slainte,slait,slake,slaker,slaking,slaky,slam,slamp,slander,slane,slang,slangy,slank,slant,slantly,slap,slape,slapper,slare,slart,slarth,slash,slashed,slasher,slashy,slat,slatch,slate,slater,slath,slather,slatify,slating,slatish,slatted,slatter,slaty,slaum,slave,slaved,slaver,slavery,slavey,slaving,slavish,slaw,slay,slayer,slaying,sleathy,sleave,sleaved,sleazy,sleck,sled,sledded,sledder,sledful,sledge,sledger,slee,sleech,sleechy,sleek,sleeken,sleeker,sleekit,sleekly,sleeky,sleep,sleeper,sleepry,sleepy,sleer,sleet,sleety,sleeve,sleeved,sleever,sleigh,sleight,slender,slent,slepez,slept,slete,sleuth,slew,slewed,slewer,slewing,sley,sleyer,slice,sliced,slicer,slich,slicht,slicing,slick,slicken,slicker,slickly,slid,slidage,slidden,slidder,slide,slided,slider,sliding,slifter,slight,slighty,slim,slime,slimer,slimily,slimish,slimly,slimpsy,slimsy,slimy,sline,sling,slinge,slinger,slink,slinker,slinky,slip,slipe,slipman,slipped,slipper,slippy,slipway,slirt,slish,slit,slitch,slite,slither,slithy,slitted,slitter,slitty,slive,sliver,slivery,sliving,sloan,slob,slobber,slobby,slock,slocken,slod,slodder,slodge,slodger,sloe,slog,slogan,slogger,sloka,sloke,slon,slone,slonk,sloo,sloom,sloomy,sloop,sloosh,slop,slope,sloped,slopely,sloper,sloping,slopped,sloppy,slops,slopy,slorp,slosh,slosher,sloshy,slot,slote,sloted,sloth,slotted,slotter,slouch,slouchy,slough,sloughy,slour,sloush,sloven,slow,slowish,slowly,slowrie,slows,sloyd,slub,slubber,slubby,slud,sludder,sludge,sludged,sludger,sludgy,slue,sluer,slug,slugged,slugger,sluggy,sluice,sluicer,sluicy,sluig,sluit,slum,slumber,slumdom,slumgum,slummer,slummy,slump,slumpy,slung,slunge,slunk,slunken,slur,slurbow,slurp,slurry,slush,slusher,slushy,slut,slutch,slutchy,sluther,slutter,slutty,sly,slyish,slyly,slyness,slype,sma,smack,smackee,smacker,smaik,small,smallen,smaller,smalls,smally,smalm,smalt,smalter,smalts,smaragd,smarm,smarmy,smart,smarten,smartly,smarty,smash,smasher,smashup,smatter,smaze,smear,smeared,smearer,smeary,smectic,smectis,smeddum,smee,smeech,smeek,smeeky,smeer,smeeth,smegma,smell,smelled,smeller,smelly,smelt,smelter,smeth,smethe,smeuse,smew,smich,smicker,smicket,smiddie,smiddum,smidge,smidgen,smilax,smile,smiler,smilet,smiling,smily,smirch,smirchy,smiris,smirk,smirker,smirkle,smirkly,smirky,smirtle,smit,smitch,smite,smiter,smith,smitham,smither,smithy,smiting,smitten,smock,smocker,smog,smoke,smoked,smoker,smokery,smokily,smoking,smokish,smoky,smolder,smolt,smooch,smoochy,smoodge,smook,smoot,smooth,smopple,smore,smote,smother,smotter,smouch,smous,smouse,smouser,smout,smriti,smudge,smudged,smudger,smudgy,smug,smuggle,smugism,smugly,smuisty,smur,smurr,smurry,smuse,smush,smut,smutch,smutchy,smutted,smutter,smutty,smyth,smytrie,snab,snabbie,snabble,snack,snackle,snaff,snaffle,snafu,snag,snagged,snagger,snaggy,snagrel,snail,snails,snaily,snaith,snake,snaker,snakery,snakily,snaking,snakish,snaky,snap,snapbag,snape,snaper,snapped,snapper,snapps,snappy,snaps,snapy,snare,snarer,snark,snarl,snarler,snarly,snary,snaste,snatch,snatchy,snath,snathe,snavel,snavvle,snaw,snead,sneak,sneaker,sneaky,sneap,sneath,sneathe,sneb,sneck,snecker,snecket,sned,snee,sneer,sneerer,sneery,sneesh,sneest,sneesty,sneeze,sneezer,sneezy,snell,snelly,snerp,snew,snib,snibble,snibel,snicher,snick,snicker,snicket,snickey,snickle,sniddle,snide,sniff,sniffer,sniffle,sniffly,sniffy,snift,snifter,snifty,snig,snigger,sniggle,snip,snipe,sniper,sniping,snipish,snipper,snippet,snippy,snipy,snirl,snirt,snirtle,snitch,snite,snithe,snithy,snittle,snivel,snively,snivy,snob,snobber,snobby,snobdom,snocher,snock,snocker,snod,snodly,snoek,snog,snoga,snoke,snood,snooded,snook,snooker,snoop,snooper,snoopy,snoose,snoot,snooty,snoove,snooze,snoozer,snoozle,snoozy,snop,snore,snorer,snoring,snork,snorkel,snorker,snort,snorter,snortle,snorty,snot,snotter,snotty,snouch,snout,snouted,snouter,snouty,snow,snowcap,snowie,snowily,snowish,snowk,snowl,snowy,snozzle,snub,snubbed,snubbee,snubber,snubby,snuck,snudge,snuff,snuffer,snuffle,snuffly,snuffy,snug,snugger,snuggle,snugify,snugly,snum,snup,snupper,snur,snurl,snurly,snurp,snurt,snuzzle,sny,snying,so,soak,soakage,soaked,soaken,soaker,soaking,soakman,soaky,soally,soam,soap,soapbox,soaper,soapery,soapily,soapsud,soapy,soar,soarer,soaring,soary,sob,sobber,sobbing,sobby,sobeit,sober,soberer,soberly,sobful,soboles,soc,socage,socager,soccer,soce,socht,social,society,socii,socius,sock,socker,socket,sockeye,socky,socle,socman,soco,sod,soda,sodaic,sodded,sodden,sodding,soddite,soddy,sodic,sodio,sodium,sodless,sodoku,sodomic,sodomy,sodwork,sody,soe,soekoe,soever,sofa,sofane,sofar,soffit,soft,softa,soften,softish,softly,softner,softy,sog,soger,soget,soggily,sogging,soggy,soh,soho,soil,soilage,soiled,soiling,soilure,soily,soiree,soja,sojourn,sok,soka,soke,sokeman,soken,sol,sola,solace,solacer,solan,solanal,solanum,solar,solate,solatia,solay,sold,soldado,soldan,solder,soldi,soldier,soldo,sole,solea,soleas,soleil,solely,solemn,solen,solent,soler,soles,soleus,soleyn,soli,solicit,solid,solidi,solidly,solidum,solidus,solio,soliped,solist,sollar,solo,solod,solodi,soloist,solon,soloth,soluble,solubly,solum,solute,solvate,solve,solvend,solvent,solver,soma,somal,somata,somatic,somber,sombre,some,someday,somehow,someone,somers,someway,somewhy,somital,somite,somitic,somma,somnial,somnify,somnus,sompay,sompne,sompner,son,sonable,sonance,sonancy,sonant,sonar,sonata,sond,sondeli,soneri,song,songful,songish,songle,songlet,songman,songy,sonhood,sonic,soniou,sonk,sonless,sonlike,sonly,sonnet,sonny,sonoric,sons,sonship,sonsy,sontag,soodle,soodly,sook,sooky,sool,sooloos,soon,sooner,soonish,soonly,soorawn,soord,soorkee,soot,sooter,sooth,soothe,soother,sootily,sooty,sop,sope,soph,sophia,sophic,sophism,sophy,sopite,sopor,sopper,sopping,soppy,soprani,soprano,sora,sorage,soral,sorb,sorbate,sorbent,sorbic,sorbile,sorbin,sorbite,sorbose,sorbus,sorcer,sorcery,sorchin,sorda,sordes,sordid,sordine,sordino,sordor,sore,soredia,soree,sorehon,sorely,sorema,sorgho,sorghum,sorgo,sori,soricid,sorite,sorites,sorn,sornare,sornari,sorner,sorning,soroban,sororal,sorose,sorosis,sorra,sorrel,sorrily,sorroa,sorrow,sorrowy,sorry,sort,sortal,sorted,sorter,sortie,sortly,sorty,sorus,sorva,sory,sosh,soshed,soso,sosoish,soss,sossle,sot,sotie,sotnia,sotnik,sotol,sots,sottage,sotted,sotter,sottish,sou,souari,soubise,soucar,souchet,souchy,soud,souffle,sough,sougher,sought,soul,soulack,souled,soulful,soulish,souly,soum,sound,sounder,soundly,soup,soupcon,souper,souple,soupy,sour,source,soured,souren,sourer,souring,sourish,sourly,sourock,soursop,sourtop,soury,souse,souser,souslik,soutane,souter,south,souther,sov,soviet,sovite,sovkhoz,sovran,sow,sowable,sowan,sowans,sowar,sowarry,sowback,sowbane,sowel,sowens,sower,sowfoot,sowing,sowins,sowl,sowle,sowlike,sowlth,sown,sowse,sowt,sowte,soy,soya,soybean,sozin,sozolic,sozzle,sozzly,spa,space,spaced,spacer,spacing,spack,spacy,spad,spade,spaded,spader,spadger,spading,spadix,spadone,spae,spaedom,spaeman,spaer,spahi,spaid,spaik,spairge,spak,spald,spalder,spale,spall,spaller,spalt,span,spancel,spandle,spandy,spane,spanemy,spang,spangle,spangly,spaniel,spaning,spank,spanker,spanky,spann,spannel,spanner,spanule,spar,sparada,sparch,spare,sparely,sparer,sparge,sparger,sparid,sparing,spark,sparked,sparker,sparkle,sparkly,sparks,sparky,sparm,sparoid,sparred,sparrer,sparrow,sparry,sparse,spart,sparth,spartle,sparver,spary,spasm,spasmed,spasmic,spastic,spat,spate,spatha,spathal,spathe,spathed,spathic,spatial,spatted,spatter,spattle,spatula,spatule,spave,spaver,spavie,spavied,spaviet,spavin,spawn,spawner,spawny,spay,spayad,spayard,spaying,speak,speaker,speal,spean,spear,spearer,speary,spec,spece,special,specie,species,specify,speck,specked,speckle,speckly,specks,specky,specs,specter,spectra,spectry,specula,specus,sped,speech,speed,speeder,speedy,speel,speen,speer,speiss,spelder,spelk,spell,speller,spelt,spelter,speltz,spelunk,spence,spencer,spend,spender,spense,spent,speos,sperate,sperity,sperket,sperm,sperma,spermic,spermy,sperone,spet,spetch,spew,spewer,spewing,spewy,spex,sphacel,sphecid,spheges,sphegid,sphene,sphenic,spheral,sphere,spheric,sphery,sphinx,spica,spical,spicant,spicate,spice,spiced,spicer,spicery,spicily,spicing,spick,spicket,spickle,spicose,spicous,spicula,spicule,spicy,spider,spidery,spidger,spied,spiegel,spiel,spieler,spier,spiff,spiffed,spiffy,spig,spignet,spigot,spike,spiked,spiker,spikily,spiking,spiky,spile,spiler,spiling,spilite,spill,spiller,spillet,spilly,spiloma,spilt,spilth,spilus,spin,spina,spinach,spinae,spinage,spinal,spinate,spinder,spindle,spindly,spine,spined,spinel,spinet,spingel,spink,spinner,spinney,spinoid,spinose,spinous,spinule,spiny,spionid,spiral,spirale,spiran,spirant,spirate,spire,spirea,spired,spireme,spiring,spirit,spirity,spirket,spiro,spiroid,spirous,spirt,spiry,spise,spit,spital,spitbox,spite,spitful,spitish,spitted,spitten,spitter,spittle,spitz,spiv,spivery,splash,splashy,splat,splatch,splay,splayed,splayer,spleen,spleeny,spleet,splenic,splet,splice,splicer,spline,splint,splinty,split,splodge,splodgy,splore,splosh,splotch,splunge,splurge,splurgy,splurt,spoach,spode,spodium,spoffle,spoffy,spogel,spoil,spoiled,spoiler,spoilt,spoke,spoken,spoky,spole,spolia,spolium,spondee,spondyl,spong,sponge,sponged,sponger,spongin,spongy,sponsal,sponson,sponsor,spoof,spoofer,spook,spooky,spool,spooler,spoom,spoon,spooner,spoony,spoor,spoorer,spoot,spor,sporal,spore,spored,sporid,sporoid,sporont,sporous,sporran,sport,sporter,sportly,sports,sporty,sporule,sposh,sposhy,spot,spotted,spotter,spottle,spotty,spousal,spouse,spousy,spout,spouter,spouty,sprack,sprad,sprag,spraich,sprain,spraint,sprang,sprank,sprat,spratty,sprawl,sprawly,spray,sprayer,sprayey,spread,spready,spreath,spree,spreeuw,spreng,sprent,spret,sprew,sprewl,spried,sprier,spriest,sprig,spriggy,spring,springe,springy,sprink,sprint,sprit,sprite,spritty,sproat,sprod,sprogue,sproil,sprong,sprose,sprout,sprowsy,spruce,sprue,spruer,sprug,spruit,sprung,sprunny,sprunt,spry,spryly,spud,spudder,spuddle,spuddy,spuffle,spug,spuke,spume,spumone,spumose,spumous,spumy,spun,spung,spunk,spunkie,spunky,spunny,spur,spurge,spuriae,spurl,spurlet,spurn,spurner,spurred,spurrer,spurry,spurt,spurter,spurtle,spurway,sput,sputa,sputter,sputum,spy,spyboat,spydom,spyer,spyhole,spyism,spyship,squab,squabby,squacco,squad,squaddy,squail,squalid,squall,squally,squalm,squalor,squam,squama,squamae,squame,square,squared,squarer,squark,squary,squash,squashy,squat,squatly,squatty,squaw,squawk,squawky,squdge,squdgy,squeak,squeaky,squeal,squeald,squeam,squeamy,squeege,squeeze,squeezy,squelch,squench,squib,squid,squidge,squidgy,squiffy,squilla,squin,squinch,squinny,squinsy,squint,squinty,squire,squiret,squirk,squirm,squirmy,squirr,squirt,squirty,squish,squishy,squit,squitch,squoze,squush,squushy,sraddha,sramana,sri,sruti,ssu,st,staab,stab,stabber,stabile,stable,stabler,stably,staboy,stacher,stachys,stack,stacker,stacte,stadda,staddle,stade,stadia,stadic,stadion,stadium,staff,staffed,staffer,stag,stage,staged,stager,stagery,stagese,stagger,staggie,staggy,stagily,staging,stagnum,stagy,staia,staid,staidly,stain,stainer,staio,stair,staired,stairy,staith,staiver,stake,staker,stale,stalely,staling,stalk,stalked,stalker,stalko,stalky,stall,stallar,staller,stam,stambha,stamen,stamin,stamina,stammel,stammer,stamnos,stamp,stampee,stamper,stample,stance,stanch,stand,standee,standel,stander,stane,stang,stanine,stanjen,stank,stankie,stannel,stanner,stannic,stanno,stannum,stannyl,stanza,stanze,stap,stapes,staple,stapled,stapler,star,starch,starchy,stardom,stare,staree,starer,starets,starful,staring,stark,starken,starkly,starky,starlet,starlit,starn,starnel,starnie,starost,starred,starry,start,starter,startle,startly,startor,starty,starve,starved,starver,starvy,stary,stases,stash,stashie,stasis,statal,statant,state,stated,stately,stater,static,statics,station,statism,statist,stative,stator,statue,statued,stature,status,statute,stauk,staumer,staun,staunch,staup,stauter,stave,staver,stavers,staving,staw,stawn,staxis,stay,stayed,stayer,staynil,stays,stchi,stead,steady,steak,steal,stealed,stealer,stealth,stealy,steam,steamer,steamy,stean,stearic,stearin,stearyl,steatin,stech,steddle,steed,steek,steel,steeler,steely,steen,steenth,steep,steepen,steeper,steeple,steeply,steepy,steer,steerer,steeve,steever,steg,steid,steigh,stein,stekan,stela,stelae,stelai,stelar,stele,stell,stella,stellar,stem,stema,stemlet,stemma,stemmed,stemmer,stemmy,stemple,stemson,sten,stenar,stench,stenchy,stencil,stend,steng,stengah,stenion,steno,stenog,stent,stenter,stenton,step,steppe,stepped,stepper,stepson,stept,stepway,stere,stereo,steri,steric,sterics,steride,sterile,sterin,sterk,sterlet,stern,sterna,sternad,sternal,sterned,sternly,sternum,stero,steroid,sterol,stert,stertor,sterve,stet,stetch,stevel,steven,stevia,stew,steward,stewed,stewpan,stewpot,stewy,stey,sthenia,sthenic,stib,stibial,stibic,stibine,stibium,stich,stichic,stichid,stick,sticked,sticker,stickit,stickle,stickly,sticks,stickum,sticky,stid,stiddy,stife,stiff,stiffen,stiffly,stifle,stifler,stigma,stigmai,stigmal,stigme,stile,stilet,still,stiller,stilly,stilt,stilted,stilter,stilty,stim,stime,stimuli,stimy,stine,sting,stinge,stinger,stingo,stingy,stink,stinker,stint,stinted,stinter,stinty,stion,stionic,stipe,stiped,stipel,stipend,stipes,stippen,stipple,stipply,stipula,stipule,stir,stirk,stirp,stirps,stirra,stirrer,stirrup,stitch,stite,stith,stithy,stive,stiver,stivy,stoa,stoach,stoat,stoater,stob,stocah,stock,stocker,stocks,stocky,stod,stodge,stodger,stodgy,stoep,stof,stoff,stog,stoga,stogie,stogy,stoic,stoical,stoke,stoker,stola,stolae,stole,stoled,stolen,stolid,stolist,stollen,stolon,stoma,stomach,stomata,stomate,stomium,stomp,stomper,stond,stone,stoned,stonen,stoner,stong,stonied,stonify,stonily,stoning,stonish,stonker,stony,stood,stooded,stooden,stoof,stooge,stook,stooker,stookie,stool,stoon,stoond,stoop,stooper,stoory,stoot,stop,stopa,stope,stoper,stopgap,stoping,stopped,stopper,stoppit,stopple,storage,storax,store,storeen,storer,storge,storied,storier,storify,stork,storken,storm,stormer,stormy,story,stosh,stoss,stot,stotter,stoun,stound,stoup,stour,stoury,stoush,stout,stouten,stouth,stoutly,stouty,stove,stoven,stover,stow,stowage,stowce,stower,stowing,stra,strack,stract,strad,strade,stradl,stradld,strae,strafe,strafer,strag,straik,strain,straint,strait,strake,straked,straky,stram,stramp,strand,strang,strange,strany,strap,strass,strata,stratal,strath,strati,stratic,stratum,stratus,strave,straw,strawen,strawer,strawy,stray,strayer,stre,streak,streaky,stream,streamy,streck,stree,streek,streel,streen,streep,street,streets,streite,streke,stremma,streng,strent,strenth,strepen,strepor,stress,stret,stretch,strette,stretti,stretto,strew,strewer,strewn,strey,streyne,stria,striae,strial,striate,strich,striche,strick,strict,strid,stride,strider,stridor,strife,strig,striga,strigae,strigal,stright,strigil,strike,striker,strind,string,stringy,striola,strip,stripe,striped,striper,stript,stripy,strit,strive,strived,striven,striver,strix,stroam,strobic,strode,stroil,stroke,stroker,stroky,strold,stroll,strolld,strom,stroma,stromal,stromb,strome,strone,strong,strook,stroot,strop,strophe,stroth,stroud,stroup,strove,strow,strowd,strown,stroy,stroyer,strub,struck,strudel,strue,strum,struma,strumae,strung,strunt,strut,struth,struv,strych,stub,stubb,stubbed,stubber,stubble,stubbly,stubboy,stubby,stuber,stuboy,stucco,stuck,stud,studder,studdie,studdle,stude,student,studia,studied,studier,studio,studium,study,stue,stuff,stuffed,stuffer,stuffy,stug,stuggy,stuiver,stull,stuller,stulm,stum,stumble,stumbly,stumer,stummer,stummy,stump,stumper,stumpy,stun,stung,stunk,stunner,stunsle,stunt,stunted,stunter,stunty,stupa,stupe,stupefy,stupend,stupent,stupex,stupid,stupor,stupose,stupp,stuprum,sturdy,sturine,sturk,sturt,sturtan,sturtin,stuss,stut,stutter,sty,styan,styca,styful,stylar,stylate,style,styler,stylet,styline,styling,stylish,stylist,stylite,stylize,stylo,styloid,stylops,stylus,stymie,stypsis,styptic,styrax,styrene,styrol,styrone,styryl,stythe,styward,suable,suably,suade,suaharo,suant,suantly,suasion,suasive,suasory,suave,suavely,suavify,suavity,sub,subacid,subact,subage,subah,subaid,subanal,subarch,subarea,subatom,subaud,subband,subbank,subbase,subbass,subbeau,subbias,subbing,subcase,subcash,subcast,subcell,subcity,subclan,subcool,subdate,subdean,subdeb,subdial,subdie,subdual,subduce,subduct,subdue,subdued,subduer,subecho,subedit,suber,suberic,suberin,subface,subfeu,subfief,subfix,subform,subfusc,subfusk,subgape,subgens,subget,subgit,subgod,subgrin,subgyre,subhall,subhead,subherd,subhero,subicle,subidar,subidea,subitem,subjack,subject,subjee,subjoin,subking,sublate,sublet,sublid,sublime,sublong,sublot,submaid,submain,subman,submind,submiss,submit,subnect,subness,subnex,subnote,subnude,suboral,suborn,suboval,subpart,subpass,subpial,subpimp,subplat,subplot,subplow,subpool,subport,subrace,subrent,subroot,subrule,subsale,subsalt,subsea,subsect,subsept,subset,subside,subsidy,subsill,subsist,subsoil,subsult,subsume,subtack,subtend,subtext,subtile,subtill,subtle,subtly,subtone,subtype,subunit,suburb,subvein,subvene,subvert,subvola,subway,subwink,subzone,succade,succeed,succent,success,succi,succin,succise,succor,succory,succous,succub,succuba,succube,succula,succumb,succuss,such,suck,suckage,sucken,sucker,sucking,suckle,suckler,suclat,sucrate,sucre,sucrose,suction,sucuri,sucuriu,sud,sudamen,sudary,sudate,sudd,sudden,sudder,suddle,suddy,sudoral,sudoric,suds,sudsman,sudsy,sue,suede,suer,suet,suety,suff,suffect,suffer,suffete,suffice,suffix,sufflue,suffuse,sugamo,sugan,sugar,sugared,sugarer,sugary,sugent,suggest,sugh,sugi,suguaro,suhuaro,suicide,suid,suidian,suiform,suimate,suine,suing,suingly,suint,suist,suit,suite,suiting,suitor,suity,suji,sulcal,sulcar,sulcate,sulcus,suld,sulea,sulfa,sulfato,sulfion,sulfury,sulk,sulka,sulker,sulkily,sulky,sull,sulla,sullage,sullen,sullow,sully,sulpha,sulpho,sulphur,sultam,sultan,sultana,sultane,sultone,sultry,sulung,sum,sumac,sumatra,sumbul,sumless,summage,summand,summar,summary,summate,summed,summer,summery,summist,summit,summity,summon,summons,summula,summut,sumner,sump,sumpage,sumper,sumph,sumphy,sumpit,sumple,sumpman,sumpter,sun,sunbeam,sunbird,sunbow,sunburn,suncup,sundae,sundang,sundari,sundek,sunder,sundew,sundial,sundik,sundog,sundown,sundra,sundri,sundry,sune,sunfall,sunfast,sunfish,sung,sungha,sunglo,sunglow,sunk,sunken,sunket,sunlamp,sunland,sunless,sunlet,sunlike,sunlit,sunn,sunnily,sunnud,sunny,sunray,sunrise,sunroom,sunset,sunsmit,sunspot,sunt,sunup,sunward,sunway,sunways,sunweed,sunwise,sunyie,sup,supa,supari,supawn,supe,super,superb,supine,supper,supping,supple,supply,support,suppose,suppost,supreme,sur,sura,surah,surahi,sural,suranal,surat,surbase,surbate,surbed,surcoat,surcrue,surculi,surd,surdent,surdity,sure,surely,sures,surette,surety,surf,surface,surfacy,surfeit,surfer,surfle,surfman,surfuse,surfy,surge,surgent,surgeon,surgery,surging,surgy,suriga,surlily,surly,surma,surmark,surmise,surname,surnap,surnay,surpass,surplus,surra,surrey,surtax,surtout,survey,survive,suscept,susi,suslik,suspect,suspend,suspire,sustain,susu,susurr,suther,sutile,sutler,sutlery,sutor,sutra,suttee,sutten,suttin,suttle,sutural,suture,suum,suwarro,suwe,suz,svelte,swa,swab,swabber,swabble,swack,swacken,swad,swaddle,swaddy,swag,swage,swager,swagger,swaggie,swaggy,swagman,swain,swaird,swale,swaler,swaling,swallet,swallo,swallow,swam,swami,swamp,swamper,swampy,swan,swang,swangy,swank,swanker,swanky,swanner,swanny,swap,swape,swapper,swaraj,swarbie,sward,swardy,sware,swarf,swarfer,swarm,swarmer,swarmy,swarry,swart,swarth,swarthy,swartly,swarty,swarve,swash,swasher,swashy,swat,swatch,swath,swathe,swather,swathy,swatter,swattle,swaver,sway,swayed,swayer,swayful,swaying,sweal,swear,swearer,sweat,sweated,sweater,sweath,sweaty,swedge,sweeny,sweep,sweeper,sweepy,sweer,sweered,sweet,sweeten,sweetie,sweetly,sweety,swego,swell,swelled,sweller,swelly,swelp,swelt,swelter,swelth,sweltry,swelty,swep,swept,swerd,swerve,swerver,swick,swidge,swift,swiften,swifter,swifty,swig,swigger,swiggle,swile,swill,swiller,swim,swimmer,swimmy,swimy,swindle,swine,swinely,swinery,swiney,swing,swinge,swinger,swingle,swingy,swinish,swink,swinney,swipe,swiper,swipes,swiple,swipper,swipy,swird,swire,swirl,swirly,swish,swisher,swishy,swiss,switch,switchy,swith,swithe,swithen,swither,swivel,swivet,swiz,swizzle,swob,swollen,swom,swonken,swoon,swooned,swoony,swoop,swooper,swoosh,sword,swore,sworn,swosh,swot,swotter,swounds,swow,swum,swung,swungen,swure,syagush,sybotic,syce,sycee,sycock,sycoma,syconid,syconus,sycosis,sye,syenite,sylid,syllab,syllabe,syllabi,sylloge,sylph,sylphic,sylphid,sylphy,sylva,sylvae,sylvage,sylvan,sylvate,sylvic,sylvine,sylvite,symbion,symbiot,symbol,sympode,symptom,synacme,synacmy,synange,synapse,synapte,synaxar,synaxis,sync,syncarp,synch,synchro,syncope,syndic,syndoc,syne,synema,synergy,synesis,syngamy,synod,synodal,synoecy,synonym,synopsy,synovia,syntan,syntax,synthol,syntomy,syntone,syntony,syntype,synusia,sypher,syre,syringa,syringe,syrinx,syrma,syrphid,syrt,syrtic,syrup,syruped,syruper,syrupy,syssel,system,systole,systyle,syzygy,t,ta,taa,taar,tab,tabacin,tabacum,tabanid,tabard,tabaret,tabaxir,tabber,tabby,tabefy,tabella,taberna,tabes,tabet,tabetic,tabic,tabid,tabidly,tabific,tabinet,tabla,table,tableau,tabled,tabler,tables,tablet,tabling,tabloid,tabog,taboo,taboot,tabor,taborer,taboret,taborin,tabour,tabret,tabu,tabula,tabular,tabule,tabut,taccada,tach,tache,tachiol,tacit,tacitly,tack,tacker,tacket,tackety,tackey,tacking,tackle,tackled,tackler,tacky,tacnode,tacso,tact,tactful,tactic,tactics,tactile,taction,tactite,tactive,tactor,tactual,tactus,tad,tade,tadpole,tae,tael,taen,taenia,taenial,taenian,taenite,taennin,taffeta,taffety,taffle,taffy,tafia,taft,tafwiz,tag,tagetol,tagged,tagger,taggle,taggy,taglet,taglike,taglock,tagrag,tagsore,tagtail,tagua,taguan,tagwerk,taha,taheen,tahil,tahin,tahr,tahsil,tahua,tai,taiaha,taich,taiga,taigle,taihoa,tail,tailage,tailed,tailer,tailet,tailge,tailing,taille,taillie,tailor,tailory,tailpin,taily,tailzee,tailzie,taimen,tain,taint,taintor,taipan,taipo,tairge,tairger,tairn,taisch,taise,taissle,tait,taiver,taivers,taivert,taj,takable,takar,take,takeful,taken,taker,takin,taking,takings,takosis,takt,taky,takyr,tal,tala,talabon,talahib,talaje,talak,talao,talar,talari,talaria,talaric,talayot,talbot,talc,talcer,talcky,talcoid,talcose,talcous,talcum,tald,tale,taled,taleful,talent,taler,tales,tali,taliage,taliera,talion,talipat,taliped,talipes,talipot,talis,talisay,talite,talitol,talk,talker,talkful,talkie,talking,talky,tall,tallage,tallboy,taller,tallero,talles,tallet,talliar,tallier,tallis,tallish,tallit,tallith,talloel,tallote,tallow,tallowy,tally,tallyho,talma,talon,taloned,talonic,talonid,talose,talpid,talpify,talpine,talpoid,talthib,taluk,taluka,talus,taluto,talwar,talwood,tam,tamable,tamably,tamale,tamandu,tamanu,tamara,tamarao,tamarin,tamas,tamasha,tambac,tamber,tambo,tamboo,tambor,tambour,tame,tamein,tamely,tamer,tamis,tamise,tamlung,tammie,tammock,tammy,tamp,tampala,tampan,tampang,tamper,tampin,tamping,tampion,tampon,tampoon,tan,tana,tanach,tanager,tanaist,tanak,tanan,tanbark,tanbur,tancel,tandan,tandem,tandle,tandour,tane,tang,tanga,tanged,tangelo,tangent,tanger,tangham,tanghan,tanghin,tangi,tangie,tangka,tanglad,tangle,tangler,tangly,tango,tangram,tangs,tangue,tangum,tangun,tangy,tanh,tanha,tania,tanica,tanier,tanist,tanjib,tanjong,tank,tanka,tankage,tankah,tankard,tanked,tanker,tankert,tankful,tankle,tankman,tanling,tannage,tannaic,tannaim,tannase,tannate,tanned,tanner,tannery,tannic,tannide,tannin,tanning,tannoid,tannyl,tanoa,tanquam,tanquen,tanrec,tansy,tantara,tanti,tantivy,tantle,tantra,tantric,tantrik,tantrum,tantum,tanwood,tanyard,tanzeb,tanzib,tanzy,tao,taotai,taoyin,tap,tapa,tapalo,tapas,tapasvi,tape,tapeman,tapen,taper,tapered,taperer,taperly,tapet,tapetal,tapete,tapeti,tapetum,taphole,tapia,tapioca,tapir,tapis,tapism,tapist,taplash,taplet,tapmost,tapnet,tapoa,tapoun,tappa,tappall,tappaul,tappen,tapper,tappet,tapping,tappoon,taproom,taproot,taps,tapster,tapu,tapul,taqua,tar,tara,taraf,tarage,tarairi,tarand,taraph,tarapin,tarata,taratah,tarau,tarbet,tarboy,tarbush,tardily,tardive,tardle,tardy,tare,tarea,tarefa,tarente,tarfa,targe,targer,target,tarhood,tari,tarie,tariff,tarin,tariric,tarish,tarkhan,tarlike,tarmac,tarman,tarn,tarnal,tarnish,taro,taroc,tarocco,tarok,tarot,tarp,tarpan,tarpon,tarpot,tarpum,tarr,tarrack,tarras,tarrass,tarred,tarrer,tarri,tarrie,tarrier,tarrify,tarrily,tarrish,tarrock,tarrow,tarry,tars,tarsal,tarsale,tarse,tarsi,tarsia,tarsier,tarsome,tarsus,tart,tartago,tartan,tartana,tartane,tartar,tarten,tartish,tartle,tartlet,tartly,tartro,tartryl,tarve,tarweed,tarwood,taryard,tasajo,tascal,tasco,tash,tashie,tashlik,tashrif,task,taskage,tasker,taskit,taslet,tass,tassago,tassah,tassal,tassard,tasse,tassel,tassely,tasser,tasset,tassie,tassoo,taste,tasted,tasten,taster,tastily,tasting,tasty,tasu,tat,tataupa,tatbeb,tatchy,tate,tater,tath,tatie,tatinek,tatler,tatou,tatouay,tatsman,tatta,tatter,tattery,tatther,tattied,tatting,tattle,tattler,tattoo,tattva,tatty,tatu,tau,taught,taula,taum,taun,taunt,taunter,taupe,taupo,taupou,taur,taurean,taurian,tauric,taurine,taurite,tauryl,taut,tautaug,tauted,tauten,tautit,tautly,tautog,tav,tave,tavell,taver,tavern,tavers,tavert,tavola,taw,tawa,tawdry,tawer,tawery,tawie,tawite,tawkee,tawkin,tawn,tawney,tawnily,tawnle,tawny,tawpi,tawpie,taws,tawse,tawtie,tax,taxable,taxably,taxator,taxed,taxeme,taxemic,taxer,taxi,taxibus,taxicab,taximan,taxine,taxing,taxis,taxite,taxitic,taxless,taxman,taxon,taxor,taxpaid,taxwax,taxy,tay,tayer,tayir,tayra,taysaam,tazia,tch,tchai,tcharik,tchast,tche,tchick,tchu,tck,te,tea,teabox,teaboy,teacake,teacart,teach,teache,teacher,teachy,teacup,tead,teadish,teaer,teaey,teagle,teaish,teaism,teak,teal,tealery,tealess,team,teaman,teameo,teamer,teaming,teamman,tean,teanal,teap,teapot,teapoy,tear,tearage,tearcat,tearer,tearful,tearing,tearlet,tearoom,tearpit,teart,teary,tease,teasel,teaser,teashop,teasing,teasler,teasy,teat,teated,teathe,teather,teatime,teatman,teaty,teave,teaware,teaze,teazer,tebbet,tec,teca,tecali,tech,techily,technic,techous,techy,teck,tecomin,tecon,tectal,tectum,tecum,tecuma,ted,tedder,tedge,tedious,tedium,tee,teedle,teel,teem,teemer,teemful,teeming,teems,teen,teenage,teenet,teens,teensy,teenty,teeny,teer,teerer,teest,teet,teetan,teeter,teeth,teethe,teethy,teeting,teety,teevee,teff,teg,tegmen,tegmina,tegua,tegula,tegular,tegumen,tehseel,tehsil,teicher,teil,teind,teinder,teioid,tejon,teju,tekiah,tekke,tekken,tektite,tekya,telamon,telang,telar,telary,tele,teledu,telega,teleost,teleran,telergy,telesia,telesis,teleuto,televox,telfer,telford,teli,telial,telic,telical,telium,tell,tellach,tellee,teller,telling,tellt,telome,telomic,telpath,telpher,telson,telt,telurgy,telyn,temacha,teman,tembe,temblor,temenos,temiak,temin,temp,temper,tempera,tempery,tempest,tempi,templar,temple,templed,templet,tempo,tempora,tempre,tempt,tempter,temse,temser,ten,tenable,tenably,tenace,tenai,tenancy,tenant,tench,tend,tendant,tendent,tender,tending,tendon,tendour,tendril,tendron,tenebra,tenent,teneral,tenet,tenfold,teng,tengere,tengu,tenible,tenio,tenline,tenne,tenner,tennis,tennisy,tenon,tenoner,tenor,tenpin,tenrec,tense,tensely,tensify,tensile,tension,tensity,tensive,tenson,tensor,tent,tentage,tented,tenter,tentful,tenth,tenthly,tentigo,tention,tentlet,tenture,tenty,tenuate,tenues,tenuis,tenuity,tenuous,tenure,teopan,tepache,tepal,tepee,tepefy,tepid,tepidly,tepor,tequila,tera,terap,teras,terbia,terbic,terbium,tercel,tercer,tercet,tercia,tercine,tercio,terebic,terebra,teredo,terek,terete,tereu,terfez,tergal,tergant,tergite,tergum,term,terma,termage,termen,termer,termin,termine,termini,termino,termite,termly,termon,termor,tern,terna,ternal,ternar,ternary,ternate,terne,ternery,ternion,ternize,ternlet,terp,terpane,terpene,terpin,terpine,terrace,terrage,terrain,terral,terrane,terrar,terrene,terret,terrier,terrify,terrine,terron,terror,terry,terse,tersely,tersion,tertia,tertial,tertian,tertius,terton,tervee,terzina,terzo,tesack,teskere,tessara,tessel,tessera,test,testa,testacy,testar,testata,testate,teste,tested,testee,tester,testes,testify,testily,testing,testis,teston,testone,testoon,testor,testril,testudo,testy,tetanic,tetanus,tetany,tetard,tetch,tetchy,tete,tetel,teth,tether,tethery,tetra,tetract,tetrad,tetrane,tetrazo,tetric,tetrode,tetrole,tetrose,tetryl,tetter,tettery,tettix,teucrin,teufit,teuk,teviss,tew,tewel,tewer,tewit,tewly,tewsome,text,textile,textlet,textman,textual,texture,tez,tezkere,th,tha,thack,thacker,thakur,thalami,thaler,thalli,thallic,thallus,thameng,than,thana,thanage,thanan,thane,thank,thankee,thanker,thanks,thapes,thapsia,thar,tharf,tharm,that,thatch,thatchy,thatn,thats,thaught,thave,thaw,thawer,thawn,thawy,the,theah,theasum,theat,theater,theatry,theave,theb,theca,thecae,thecal,thecate,thecia,thecium,thecla,theclan,thecoid,thee,theek,theeker,theelin,theelol,theer,theet,theezan,theft,thegn,thegnly,theine,their,theirn,theirs,theism,theist,thelium,them,thema,themata,theme,themer,themis,themsel,then,thenal,thenar,thence,theody,theorbo,theorem,theoria,theoric,theorum,theory,theow,therapy,there,thereas,thereat,thereby,therein,thereof,thereon,theres,therese,thereto,thereup,theriac,therial,therm,thermae,thermal,thermic,thermit,thermo,thermos,theroid,these,theses,thesial,thesis,theta,thetch,thetic,thetics,thetin,thetine,theurgy,thew,thewed,thewy,they,theyll,theyre,thiamin,thiasi,thiasoi,thiasos,thiasus,thick,thicken,thicket,thickly,thief,thienyl,thieve,thiever,thig,thigger,thigh,thighed,thight,thilk,thill,thiller,thilly,thimber,thimble,thin,thine,thing,thingal,thingly,thingum,thingy,think,thinker,thinly,thinner,thio,thiol,thiolic,thionic,thionyl,thir,third,thirdly,thirl,thirst,thirsty,thirt,thirty,this,thishow,thisn,thissen,thistle,thistly,thither,thiuram,thivel,thixle,tho,thob,thocht,thof,thoft,thoke,thokish,thole,tholi,tholoi,tholos,tholus,thon,thonder,thone,thong,thonged,thongy,thoo,thooid,thoom,thoral,thorax,thore,thoria,thoric,thorina,thorite,thorium,thorn,thorned,thornen,thorny,thoro,thoron,thorp,thort,thorter,those,thou,though,thought,thouse,thow,thowel,thowt,thrack,thraep,thrail,thrain,thrall,thram,thrang,thrap,thrash,thrast,thrave,thraver,thraw,thrawn,thread,thready,threap,threat,three,threne,threnos,threose,thresh,threw,thrice,thrift,thrifty,thrill,thrilly,thrimp,thring,thrip,thripel,thrips,thrive,thriven,thriver,thro,throat,throaty,throb,throck,throddy,throe,thronal,throne,throng,throu,throuch,through,throve,throw,thrower,thrown,thrum,thrummy,thrush,thrushy,thrust,thrutch,thruv,thrymsa,thud,thug,thugdom,thuggee,thujene,thujin,thujone,thujyl,thulia,thulir,thulite,thulium,thulr,thuluth,thumb,thumbed,thumber,thumble,thumby,thump,thumper,thunder,thung,thunge,thuoc,thurify,thurl,thurm,thurmus,thurse,thurt,thus,thusly,thutter,thwack,thwaite,thwart,thwite,thy,thyine,thymate,thyme,thymele,thymene,thymic,thymine,thymol,thymoma,thymus,thymy,thymyl,thynnid,thyroid,thyrse,thyrsus,thysel,thyself,thysen,ti,tiang,tiao,tiar,tiara,tib,tibby,tibet,tibey,tibia,tibiad,tibiae,tibial,tibiale,tiburon,tic,tical,ticca,tice,ticer,tick,ticked,ticken,ticker,ticket,tickey,tickie,ticking,tickle,tickled,tickler,tickly,tickney,ticky,ticul,tid,tidal,tidally,tidbit,tiddle,tiddler,tiddley,tiddy,tide,tided,tideful,tidely,tideway,tidily,tiding,tidings,tidley,tidy,tidyism,tie,tieback,tied,tien,tiepin,tier,tierce,tierced,tiered,tierer,tietick,tiewig,tiff,tiffany,tiffie,tiffin,tiffish,tiffle,tiffy,tift,tifter,tig,tige,tigella,tigelle,tiger,tigerly,tigery,tigger,tight,tighten,tightly,tights,tiglic,tignum,tigress,tigrine,tigroid,tigtag,tikka,tikker,tiklin,tikor,tikur,til,tilaite,tilaka,tilbury,tilde,tile,tiled,tiler,tilery,tilikum,tiling,till,tillage,tiller,tilley,tillite,tillot,tilly,tilmus,tilpah,tilt,tilter,tilth,tilting,tiltup,tilty,tilyer,timable,timar,timarau,timawa,timbal,timbale,timbang,timbe,timber,timbern,timbery,timbo,timbre,timbrel,time,timed,timeful,timely,timeous,timer,times,timid,timidly,timing,timish,timist,timon,timor,timothy,timpani,timpano,tin,tinamou,tincal,tinchel,tinclad,tinct,tind,tindal,tindalo,tinder,tindery,tine,tinea,tineal,tinean,tined,tineid,tineine,tineman,tineoid,tinety,tinful,ting,tinge,tinged,tinger,tingi,tingid,tingle,tingler,tingly,tinguy,tinhorn,tinily,tining,tink,tinker,tinkle,tinkler,tinkly,tinlet,tinlike,tinman,tinned,tinner,tinnery,tinnet,tinnily,tinning,tinnock,tinny,tinosa,tinsel,tinsman,tint,tinta,tintage,tinted,tinter,tintie,tinting,tintist,tinty,tintype,tinwald,tinware,tinwork,tiny,tip,tipburn,tipcart,tipcat,tipe,tipful,tiphead,tipiti,tiple,tipless,tiplet,tipman,tipmost,tiponi,tipped,tippee,tipper,tippet,tipping,tipple,tippler,tipply,tippy,tipsify,tipsily,tipster,tipsy,tiptail,tiptilt,tiptoe,tiptop,tipulid,tipup,tirade,tiralee,tire,tired,tiredly,tiredom,tireman,tirer,tiriba,tiring,tirl,tirma,tirr,tirret,tirrlie,tirve,tirwit,tisane,tisar,tissual,tissue,tissued,tissuey,tiswin,tit,titania,titanic,titano,titanyl,titar,titbit,tite,titer,titfish,tithal,tithe,tither,tithing,titi,titian,titien,titlark,title,titled,titler,titlike,titling,titlist,titmal,titman,titoki,titrate,titre,titter,tittery,tittie,tittle,tittler,tittup,tittupy,titty,titular,titule,titulus,tiver,tivoli,tivy,tiza,tizeur,tizzy,tji,tjosite,tlaco,tmema,tmesis,to,toa,toad,toadeat,toader,toadery,toadess,toadier,toadish,toadlet,toady,toast,toastee,toaster,toasty,toat,toatoa,tobacco,tobe,tobine,tobira,toby,tobyman,toccata,tocher,tock,toco,tocome,tocsin,tocusso,tod,today,todder,toddick,toddite,toddle,toddler,toddy,tode,tody,toe,toecap,toed,toeless,toelike,toenail,toetoe,toff,toffee,toffing,toffish,toffy,toft,tofter,toftman,tofu,tog,toga,togaed,togata,togate,togated,toggel,toggery,toggle,toggler,togless,togs,togt,togue,toher,toheroa,toho,tohunga,toi,toil,toiled,toiler,toilet,toilful,toiling,toise,toit,toitish,toity,tokay,toke,token,tokened,toko,tokopat,tol,tolan,tolane,told,toldo,tole,tolite,toll,tollage,toller,tollery,tolling,tollman,tolly,tolsey,tolt,tolter,tolu,toluate,toluene,toluic,toluide,toluido,toluol,toluyl,tolyl,toman,tomato,tomb,tombac,tombal,tombe,tombic,tomblet,tombola,tombolo,tomboy,tomcat,tomcod,tome,tomeful,tomelet,toment,tomfool,tomial,tomin,tomish,tomium,tomjohn,tomkin,tommy,tomnoup,tomorn,tomosis,tompon,tomtate,tomtit,ton,tonal,tonally,tonant,tondino,tone,toned,toneme,toner,tonetic,tong,tonga,tonger,tongman,tongs,tongue,tongued,tonguer,tonguey,tonic,tonify,tonight,tonish,tonite,tonjon,tonk,tonkin,tonlet,tonnage,tonneau,tonner,tonnish,tonous,tonsil,tonsor,tonsure,tontine,tonus,tony,too,toodle,took,tooken,tool,toolbox,tooler,tooling,toolman,toom,toomly,toon,toop,toorie,toorock,tooroo,toosh,toot,tooter,tooth,toothed,toother,toothy,tootle,tootler,tootsy,toozle,toozoo,top,toparch,topass,topaz,topazy,topcap,topcast,topcoat,tope,topee,topeng,topepo,toper,topfull,toph,tophus,topi,topia,topiary,topic,topical,topknot,topless,toplike,topline,topman,topmast,topmost,topo,toponym,topped,topper,topping,topple,toppler,topply,toppy,toprail,toprope,tops,topsail,topside,topsl,topsman,topsoil,toptail,topwise,toque,tor,tora,torah,toral,toran,torc,torcel,torch,torcher,torchon,tore,tored,torero,torfel,torgoch,toric,torii,torma,tormen,torment,tormina,torn,tornade,tornado,tornal,tornese,torney,tornote,tornus,toro,toroid,torose,torous,torpedo,torpent,torpid,torpify,torpor,torque,torqued,torques,torrefy,torrent,torrid,torsade,torse,torsel,torsile,torsion,torsive,torsk,torso,tort,torta,torteau,tortile,tortive,tortula,torture,toru,torula,torulin,torulus,torus,torve,torvid,torvity,torvous,tory,tosh,tosher,toshery,toshly,toshy,tosily,toss,tosser,tossily,tossing,tosspot,tossup,tossy,tost,toston,tosy,tot,total,totally,totara,totchka,tote,totem,totemic,totemy,toter,tother,totient,toto,totora,totquot,totter,tottery,totting,tottle,totty,totuava,totum,toty,totyman,tou,toucan,touch,touched,toucher,touchy,toug,tough,toughen,toughly,tought,tould,toumnah,toup,toupee,toupeed,toupet,tour,touraco,tourer,touring,tourism,tourist,tourize,tourn,tournay,tournee,tourney,tourte,tousche,touse,touser,tousle,tously,tousy,tout,touter,tovar,tow,towable,towage,towai,towan,toward,towards,towboat,towcock,towd,towel,towelry,tower,towered,towery,towght,towhead,towhee,towing,towkay,towlike,towline,towmast,town,towned,townee,towner,townet,townful,townify,townish,townist,townlet,townly,townman,towny,towpath,towrope,towser,towy,tox,toxa,toxamin,toxcatl,toxemia,toxemic,toxic,toxical,toxicum,toxifer,toxin,toxity,toxoid,toxon,toxone,toxosis,toxotae,toy,toydom,toyer,toyful,toying,toyish,toyland,toyless,toylike,toyman,toyon,toyshop,toysome,toytown,toywort,toze,tozee,tozer,tra,trabal,trabant,trabea,trabeae,trabuch,trace,tracer,tracery,trachea,trachle,tracing,track,tracked,tracker,tract,tractor,tradal,trade,trader,trading,tradite,traduce,trady,traffic,trag,tragal,tragedy,tragi,tragic,tragus,trah,traheen,traik,trail,trailer,traily,train,trained,trainee,trainer,trainy,traipse,trait,traitor,traject,trajet,tralira,tram,trama,tramal,tramcar,trame,tramful,tramman,trammel,trammer,trammon,tramp,tramper,trample,trampot,tramway,trance,tranced,traneen,trank,tranka,tranker,trankum,tranky,transit,transom,trant,tranter,trap,trapes,trapeze,trapped,trapper,trappy,traps,trash,traship,trashy,trass,trasy,trauma,travail,travale,trave,travel,travis,travois,travoy,trawl,trawler,tray,trayful,treacle,treacly,tread,treader,treadle,treason,treat,treatee,treater,treator,treaty,treble,trebly,treddle,tree,treed,treeful,treeify,treelet,treeman,treen,treetop,treey,tref,trefle,trefoil,tregerg,tregohm,trehala,trek,trekker,trellis,tremble,trembly,tremie,tremolo,tremor,trenail,trench,trend,trendle,trental,trepan,trepang,trepid,tress,tressed,tresson,tressy,trest,trestle,tret,trevet,trews,trey,tri,triable,triace,triacid,triact,triad,triadic,triaene,triage,trial,triamid,triarch,triarii,triatic,triaxon,triazin,triazo,tribade,tribady,tribal,tribase,tribble,tribe,triblet,tribrac,tribual,tribuna,tribune,tribute,trica,tricae,tricar,trice,triceps,trichi,trichia,trichy,trick,tricker,trickle,trickly,tricksy,tricky,triclad,tricorn,tricot,trident,triduan,triduum,tried,triedly,triene,triens,trier,trifa,trifid,trifle,trifler,triflet,trifoil,trifold,trifoly,triform,trig,trigamy,trigger,triglid,triglot,trigly,trigon,trigone,trigram,trigyn,trikaya,trike,triker,triketo,trikir,trilabe,trilby,trilit,trilite,trilith,trill,trillet,trilli,trillo,trilobe,trilogy,trim,trimer,trimly,trimmer,trin,trinal,trinary,trindle,trine,trinely,tringle,trinity,trink,trinket,trinkle,trinode,trinol,trintle,trio,triobol,triode,triodia,triole,triolet,trionym,trior,triose,trip,tripal,tripara,tripart,tripe,tripel,tripery,triple,triplet,triplex,triplum,triply,tripod,tripody,tripoli,tripos,tripper,trippet,tripple,tripsis,tripy,trireme,trisalt,trisazo,trisect,triseme,trishna,trismic,trismus,trisome,trisomy,trist,trisul,trisula,tritaph,trite,tritely,tritish,tritium,tritolo,triton,tritone,tritor,trityl,triumph,triunal,triune,triurid,trivant,trivet,trivia,trivial,trivium,trivvet,trizoic,trizone,troat,troca,trocar,trochal,troche,trochee,trochi,trochid,trochus,trock,troco,trod,trodden,trode,troft,trog,trogger,troggin,trogon,trogs,trogue,troika,troke,troker,troll,troller,trolley,trollol,trollop,trolly,tromba,trombe,trommel,tromp,trompe,trompil,tromple,tron,trona,tronage,tronc,trone,troner,troolie,troop,trooper,troot,tropal,tropary,tropate,trope,tropeic,troper,trophal,trophi,trophic,trophy,tropic,tropine,tropism,tropist,tropoyl,tropyl,trot,troth,trotlet,trotol,trotter,trottie,trotty,trotyl,trouble,troubly,trough,troughy,trounce,troupe,trouper,trouse,trouser,trout,trouter,trouty,trove,trover,trow,trowel,trowing,trowman,trowth,troy,truancy,truant,trub,trubu,truce,trucial,truck,trucker,truckle,trucks,truddo,trudge,trudgen,trudger,true,truer,truff,truffle,trug,truish,truism,trull,truller,trullo,truly,trummel,trump,trumper,trumpet,trumph,trumpie,trun,truncal,trunch,trundle,trunk,trunked,trunnel,trush,trusion,truss,trussed,trusser,trust,trustee,trusten,truster,trustle,trusty,truth,truthy,truvat,try,trygon,trying,tryma,tryout,tryp,trypa,trypan,trypsin,tryptic,trysail,tryst,tryster,tryt,tsadik,tsamba,tsantsa,tsar,tsardom,tsarina,tsatlee,tsere,tsetse,tsia,tsine,tst,tsuba,tsubo,tsun,tsunami,tsungtu,tu,tua,tuan,tuarn,tuart,tuatara,tuatera,tuath,tub,tuba,tubae,tubage,tubal,tubar,tubate,tubba,tubbal,tubbeck,tubber,tubbie,tubbing,tubbish,tubboe,tubby,tube,tubeful,tubelet,tubeman,tuber,tuberin,tubfish,tubful,tubicen,tubifer,tubig,tubik,tubing,tublet,tublike,tubman,tubular,tubule,tubulet,tubuli,tubulus,tuchit,tuchun,tuck,tucker,tucket,tucking,tuckner,tucktoo,tucky,tucum,tucuma,tucuman,tudel,tue,tueiron,tufa,tufan,tuff,tuffet,tuffing,tuft,tufted,tufter,tuftily,tufting,tuftlet,tufty,tug,tugboat,tugger,tuggery,tugging,tughra,tugless,tuglike,tugman,tugrik,tugui,tui,tuik,tuille,tuilyie,tuism,tuition,tuitive,tuke,tukra,tula,tulare,tulasi,tulchan,tulchin,tule,tuliac,tulip,tulipy,tulisan,tulle,tulsi,tulwar,tum,tumasha,tumbak,tumble,tumbled,tumbler,tumbly,tumbrel,tume,tumefy,tumid,tumidly,tummals,tummel,tummer,tummock,tummy,tumor,tumored,tump,tumtum,tumular,tumuli,tumult,tumulus,tun,tuna,tunable,tunably,tunca,tund,tunder,tundish,tundra,tundun,tune,tuned,tuneful,tuner,tunful,tung,tungate,tungo,tunhoof,tunic,tunicin,tunicle,tuning,tunish,tunist,tunk,tunket,tunlike,tunmoot,tunna,tunnel,tunner,tunnery,tunnor,tunny,tuno,tunu,tuny,tup,tupara,tupek,tupelo,tupik,tupman,tupuna,tuque,tur,turacin,turb,turban,turbary,turbeh,turbid,turbine,turbit,turbith,turbo,turbot,turco,turd,turdine,turdoid,tureen,turf,turfage,turfdom,turfed,turfen,turfing,turfite,turfman,turfy,turgent,turgid,turgite,turgoid,turgor,turgy,turio,turion,turjite,turk,turken,turkey,turkis,turkle,turm,turma,turment,turmit,turmoil,turn,turncap,turndun,turned,turnel,turner,turnery,turney,turning,turnip,turnipy,turnix,turnkey,turnoff,turnout,turnpin,turnrow,turns,turnup,turp,turpeth,turpid,turps,turr,turret,turse,tursio,turtle,turtler,turtlet,turtosa,tururi,turus,turwar,tusche,tush,tushed,tusher,tushery,tusk,tuskar,tusked,tusker,tuskish,tusky,tussah,tussal,tusser,tussis,tussive,tussle,tussock,tussore,tussur,tut,tutania,tutball,tute,tutee,tutela,tutelar,tutenag,tuth,tutin,tutly,tutman,tutor,tutorer,tutorly,tutory,tutoyer,tutress,tutrice,tutrix,tuts,tutsan,tutster,tutti,tutty,tutu,tutulus,tutwork,tuwi,tux,tuxedo,tuyere,tuza,tuzzle,twa,twaddle,twaddly,twaddy,twae,twagger,twain,twaite,twal,twale,twalt,twang,twanger,twangle,twangy,twank,twanker,twankle,twanky,twant,twarly,twas,twasome,twat,twattle,tway,twazzy,tweag,tweak,tweaker,tweaky,twee,tweed,tweeded,tweedle,tweedy,tweeg,tweel,tween,tweeny,tweesh,tweesht,tweest,tweet,tweeter,tweeze,tweezer,tweil,twelfth,twelve,twenty,twere,twerp,twibil,twice,twicer,twicet,twick,twiddle,twiddly,twifoil,twifold,twig,twigful,twigged,twiggen,twigger,twiggy,twiglet,twilit,twill,twilled,twiller,twilly,twilt,twin,twindle,twine,twiner,twinge,twingle,twinism,twink,twinkle,twinkly,twinly,twinned,twinner,twinter,twiny,twire,twirk,twirl,twirler,twirly,twiscar,twisel,twist,twisted,twister,twistle,twisty,twit,twitch,twitchy,twite,twitten,twitter,twitty,twixt,twizzle,two,twofold,twoling,twoness,twosome,tychism,tychite,tycoon,tyddyn,tydie,tye,tyee,tyg,tying,tyke,tyken,tykhana,tyking,tylarus,tylion,tyloma,tylopod,tylose,tylosis,tylote,tylotic,tylotus,tylus,tymp,tympan,tympana,tympani,tympany,tynd,typal,type,typer,typeset,typhia,typhic,typhlon,typhoid,typhoon,typhose,typhous,typhus,typic,typica,typical,typicon,typicum,typify,typist,typo,typobar,typonym,typp,typy,tyranny,tyrant,tyre,tyro,tyroma,tyrone,tyronic,tyrosyl,tyste,tyt,tzolkin,tzontle,u,uang,uayeb,uberant,uberous,uberty,ubi,ubiety,ubiquit,ubussu,uckia,udal,udaler,udaller,udalman,udasi,udder,uddered,udell,udo,ug,ugh,uglify,uglily,ugly,ugsome,uhlan,uhllo,uhtsong,uily,uinal,uintjie,uitspan,uji,ukase,uke,ukiyoye,ukulele,ula,ulcer,ulcered,ulcery,ule,ulema,uletic,ulex,ulexine,ulexite,ulitis,ull,ulla,ullage,ullaged,uller,ulling,ulluco,ulmic,ulmin,ulminic,ulmo,ulmous,ulna,ulnad,ulnae,ulnar,ulnare,ulnaria,uloid,uloncus,ulster,ultima,ultimo,ultimum,ultra,ulu,ulua,uluhi,ululant,ululate,ululu,um,umbel,umbeled,umbella,umber,umbilic,umble,umbo,umbonal,umbone,umbones,umbonic,umbra,umbrae,umbrage,umbral,umbrel,umbril,umbrine,umbrose,umbrous,ume,umiak,umiri,umlaut,ump,umph,umpire,umpirer,umpteen,umpty,umu,un,unable,unably,unact,unacted,unacute,unadapt,unadd,unadded,unadopt,unadorn,unadult,unafire,unaflow,unaged,unagile,unaging,unaided,unaimed,unaired,unakin,unakite,unal,unalarm,unalert,unalike,unalist,unalive,unallow,unalone,unaloud,unamend,unamiss,unamo,unample,unamply,unangry,unannex,unapart,unapt,unaptly,unarch,unark,unarm,unarmed,unarray,unarted,unary,unasked,unau,unavian,unawake,unaware,unaway,unawed,unawful,unawned,unaxled,unbag,unbain,unbait,unbaked,unbale,unbank,unbar,unbarb,unbare,unbark,unbase,unbased,unbaste,unbated,unbay,unbe,unbear,unbeard,unbeast,unbed,unbefit,unbeget,unbegot,unbegun,unbeing,unbell,unbelt,unbench,unbend,unbent,unberth,unbeset,unbesot,unbet,unbias,unbid,unbind,unbit,unbitt,unblade,unbled,unblent,unbless,unblest,unblind,unbliss,unblock,unbloom,unblown,unblued,unblush,unboat,unbody,unbog,unboggy,unbokel,unbold,unbolt,unbone,unboned,unbonny,unboot,unbored,unborn,unborne,unbosom,unbound,unbow,unbowed,unbowel,unbox,unboxed,unboy,unbrace,unbraid,unbran,unbrand,unbrave,unbraze,unbred,unbrent,unbrick,unbrief,unbroad,unbroke,unbrown,unbrute,unbud,unbuild,unbuilt,unbulky,unbung,unburly,unburn,unburnt,unburst,unbury,unbush,unbusk,unbusy,unbuxom,unca,uncage,uncaged,uncake,uncalk,uncall,uncalm,uncaned,uncanny,uncap,uncart,uncase,uncased,uncask,uncast,uncaste,uncate,uncave,unceded,unchain,unchair,uncharm,unchary,uncheat,uncheck,unchid,unchild,unchurn,unci,uncia,uncial,uncinal,uncinch,uncinct,uncini,uncinus,uncite,uncited,uncity,uncivic,uncivil,unclad,unclamp,unclasp,unclay,uncle,unclead,unclean,unclear,uncleft,unclew,unclick,unclify,unclimb,uncling,unclip,uncloak,unclog,unclose,uncloud,unclout,unclub,unco,uncoach,uncoat,uncock,uncoded,uncoif,uncoil,uncoin,uncoked,uncolt,uncoly,uncome,uncomfy,uncomic,uncoop,uncope,uncord,uncore,uncored,uncork,uncost,uncouch,uncous,uncouth,uncover,uncowed,uncowl,uncoy,uncram,uncramp,uncream,uncrest,uncrib,uncried,uncrime,uncrisp,uncrook,uncropt,uncross,uncrown,uncrude,uncruel,unction,uncubic,uncular,uncurb,uncurd,uncured,uncurl,uncurse,uncurst,uncus,uncut,uncuth,undaily,undam,undamn,undared,undark,undate,undated,undaub,undazed,unde,undead,undeaf,undealt,undean,undear,undeck,undecyl,undeep,undeft,undeify,undelve,unden,under,underdo,underer,undergo,underly,undern,undevil,undewed,undewy,undid,undies,undig,undight,undiked,undim,undine,undined,undirk,undo,undock,undoer,undog,undoing,undomed,undon,undone,undoped,undose,undosed,undowny,undrab,undrag,undrape,undraw,undrawn,undress,undried,undrunk,undry,undub,unducal,undue,undug,unduke,undular,undull,unduly,unduped,undust,unduty,undwelt,undy,undye,undyed,undying,uneager,unearly,unearth,unease,uneasy,uneaten,uneath,unebbed,unedge,unedged,unelect,unempt,unempty,unended,unepic,unequal,unerect,unethic,uneven,unevil,unexact,uneye,uneyed,unface,unfaced,unfact,unfaded,unfain,unfaint,unfair,unfaith,unfaked,unfalse,unfamed,unfancy,unfar,unfast,unfeary,unfed,unfeed,unfele,unfelon,unfelt,unfence,unfeted,unfeued,unfew,unfiber,unfiend,unfiery,unfight,unfile,unfiled,unfill,unfilm,unfine,unfined,unfired,unfirm,unfit,unfitly,unfitty,unfix,unfixed,unflag,unflaky,unflank,unflat,unflead,unflesh,unflock,unfloor,unflown,unfluid,unflush,unfoggy,unfold,unfond,unfool,unfork,unform,unfoul,unfound,unfoxy,unfrail,unframe,unfrank,unfree,unfreed,unfret,unfried,unfrill,unfrizz,unfrock,unfrost,unfroze,unfull,unfully,unfumed,unfunny,unfur,unfurl,unfused,unfussy,ungag,ungaged,ungain,ungaite,ungaro,ungaudy,ungear,ungelt,unget,ungiant,ungiddy,ungild,ungill,ungilt,ungird,ungirt,ungirth,ungive,ungiven,ungka,unglad,unglaze,unglee,unglobe,ungloom,unglory,ungloss,unglove,unglue,unglued,ungnaw,ungnawn,ungod,ungodly,ungold,ungone,ungood,ungored,ungorge,ungot,ungouty,ungown,ungrace,ungraft,ungrain,ungrand,ungrasp,ungrave,ungreat,ungreen,ungrip,ungripe,ungross,ungrow,ungrown,ungruff,ungual,unguard,ungueal,unguent,ungues,unguis,ungula,ungulae,ungular,unguled,ungull,ungulp,ungum,unguyed,ungyve,ungyved,unhabit,unhad,unhaft,unhair,unhairy,unhand,unhandy,unhang,unhap,unhappy,unhard,unhardy,unharsh,unhasp,unhaste,unhasty,unhat,unhate,unhated,unhaunt,unhave,unhayed,unhazed,unhead,unheady,unheal,unheard,unheart,unheavy,unhedge,unheed,unheedy,unheld,unhele,unheler,unhelm,unherd,unhero,unhewed,unhewn,unhex,unhid,unhide,unhigh,unhinge,unhired,unhit,unhitch,unhive,unhoard,unhoary,unhoed,unhoist,unhold,unholy,unhome,unhoned,unhood,unhook,unhoop,unhoped,unhorny,unhorse,unhose,unhosed,unhot,unhouse,unhull,unhuman,unhumid,unhung,unhurt,unhusk,uniat,uniate,uniaxal,unible,unice,uniced,unicell,unicism,unicist,unicity,unicorn,unicum,unideal,unidle,unidly,unie,uniface,unific,unified,unifier,uniflow,uniform,unify,unilobe,unimped,uninked,uninn,unio,unioid,union,unioned,unionic,unionid,unioval,unipara,uniped,unipod,unique,unireme,unisoil,unison,unit,unitage,unital,unitary,unite,united,uniter,uniting,unition,unitism,unitive,unitize,unitude,unity,univied,unjaded,unjam,unjewel,unjoin,unjoint,unjolly,unjoyed,unjudge,unjuicy,unjust,unkamed,unked,unkempt,unken,unkept,unket,unkey,unkeyed,unkid,unkill,unkin,unkind,unking,unkink,unkirk,unkiss,unkist,unknave,unknew,unknit,unknot,unknow,unknown,unlace,unlaced,unlade,unladen,unlaid,unlame,unlamed,unland,unlap,unlarge,unlash,unlatch,unlath,unlaugh,unlaved,unlaw,unlawed,unlawly,unlay,unlead,unleaf,unleaky,unleal,unlean,unlearn,unleash,unleave,unled,unleft,unlegal,unlent,unless,unlet,unlevel,unlid,unlie,unlight,unlike,unliked,unliken,unlimb,unlime,unlimed,unlimp,unline,unlined,unlink,unlist,unlisty,unlit,unlive,unload,unloath,unlobed,unlocal,unlock,unlodge,unlofty,unlogic,unlook,unloop,unloose,unlord,unlost,unlousy,unlove,unloved,unlowly,unloyal,unlucid,unluck,unlucky,unlunar,unlured,unlust,unlusty,unlute,unluted,unlying,unmad,unmade,unmagic,unmaid,unmail,unmake,unmaker,unman,unmaned,unmanly,unmarch,unmarry,unmask,unmast,unmate,unmated,unmaze,unmeant,unmeek,unmeet,unmerge,unmerry,unmesh,unmet,unmeted,unmew,unmewed,unmind,unmined,unmired,unmiry,unmist,unmiter,unmix,unmixed,unmodel,unmoist,unmold,unmoldy,unmoor,unmoral,unmount,unmoved,unmowed,unmown,unmuddy,unmuted,unnail,unnaked,unname,unnamed,unneat,unneedy,unnegro,unnerve,unnest,unneth,unnethe,unnew,unnewly,unnice,unnigh,unnoble,unnobly,unnose,unnosed,unnoted,unnovel,unoared,unobese,unode,unoften,unogled,unoil,unoiled,unoily,unold,unoped,unopen,unorbed,unorder,unorn,unornly,unovert,unowed,unowing,unown,unowned,unpaced,unpack,unpagan,unpaged,unpaid,unpaint,unpale,unpaled,unpanel,unpapal,unpaper,unparch,unpared,unpark,unparty,unpass,unpaste,unpave,unpaved,unpawed,unpawn,unpeace,unpeel,unpeg,unpen,unpenal,unpent,unperch,unpetal,unpick,unpiece,unpiety,unpile,unpiled,unpin,unpious,unpiped,unplace,unplaid,unplain,unplait,unplan,unplank,unplant,unplat,unpleat,unplied,unplow,unplug,unplumb,unplume,unplump,unpoise,unpoled,unpope,unposed,unpot,unpower,unpray,unprim,unprime,unprint,unprop,unproud,unpure,unpurse,unput,unqueen,unquick,unquiet,unquit,unquote,unraced,unrack,unrainy,unrake,unraked,unram,unrank,unraped,unrare,unrash,unrated,unravel,unray,unrayed,unrazed,unread,unready,unreal,unreave,unrebel,unred,unreel,unreeve,unregal,unrein,unrent,unrest,unresty,unrhyme,unrich,unricht,unrid,unride,unrife,unrig,unright,unrigid,unrind,unring,unrip,unripe,unriped,unrisen,unrisky,unrived,unriven,unrivet,unroast,unrobe,unrobed,unroll,unroof,unroomy,unroost,unroot,unrope,unroped,unrosed,unroted,unrough,unround,unrove,unroved,unrow,unrowed,unroyal,unrule,unruled,unruly,unrun,unrung,unrural,unrust,unruth,unsack,unsad,unsafe,unsage,unsaid,unsaint,unsalt,unsane,unsappy,unsash,unsated,unsatin,unsaved,unsawed,unsawn,unsay,unscale,unscaly,unscarb,unscent,unscrew,unseal,unseam,unseat,unsee,unseen,unself,unsense,unsent,unset,unsew,unsewed,unsewn,unsex,unsexed,unshade,unshady,unshape,unsharp,unshawl,unsheaf,unshed,unsheet,unshell,unship,unshod,unshoe,unshoed,unshop,unshore,unshorn,unshort,unshot,unshown,unshowy,unshrew,unshut,unshy,unshyly,unsick,unsided,unsiege,unsight,unsilly,unsin,unsinew,unsing,unsized,unskin,unslack,unslain,unslate,unslave,unsleek,unslept,unsling,unslip,unslit,unslot,unslow,unslung,unsly,unsmart,unsmoky,unsmote,unsnaky,unsnap,unsnare,unsnarl,unsneck,unsnib,unsnow,unsober,unsoft,unsoggy,unsoil,unsolar,unsold,unsole,unsoled,unsolid,unsome,unson,unsonsy,unsooty,unsore,unsorry,unsort,unsoul,unsound,unsour,unsowed,unsown,unspan,unspar,unspeak,unsped,unspeed,unspell,unspelt,unspent,unspicy,unspied,unspike,unspin,unspit,unsplit,unspoil,unspot,unspun,unstack,unstagy,unstaid,unstain,unstar,unstate,unsteck,unsteel,unsteep,unstep,unstern,unstick,unstill,unsting,unstock,unstoic,unstone,unstony,unstop,unstore,unstout,unstow,unstrap,unstrip,unstuck,unstuff,unstung,unsty,unsued,unsuit,unsulky,unsun,unsung,unsunk,unsunny,unsure,unswear,unsweat,unsweet,unswell,unswept,unswing,unsworn,unswung,untack,untaint,untaken,untall,untame,untamed,untap,untaped,untar,untaste,untasty,untaut,untawed,untax,untaxed,unteach,unteam,unteem,untell,untense,untent,untenty,untewed,unthank,unthaw,unthick,unthink,unthorn,unthrid,unthrob,untidal,untidy,untie,untied,untight,until,untile,untiled,untill,untilt,untimed,untin,untinct,untine,untipt,untire,untired,unto,untold,untomb,untone,untoned,untooth,untop,untorn,untouch,untough,untown,untrace,untrain,untread,untreed,untress,untried,untrig,untrill,untrim,untripe,untrite,untrod,untruck,untrue,untruly,untruss,untrust,untruth,untuck,untumid,untune,untuned,unturf,unturn,untwine,untwirl,untwist,untying,untz,unugly,unultra,unupset,unurban,unurged,unurn,unurned,unuse,unused,unusual,unvain,unvalid,unvalue,unveil,unvenom,unvest,unvexed,unvicar,unvisor,unvital,unvivid,unvocal,unvoice,unvote,unvoted,unvowed,unwaded,unwaged,unwaked,unwall,unwan,unware,unwarm,unwarn,unwarp,unwary,unwater,unwaved,unwax,unwaxed,unwayed,unweal,unweary,unweave,unweb,unwed,unwedge,unweel,unweft,unweld,unwell,unwept,unwet,unwheel,unwhig,unwhip,unwhite,unwield,unwifed,unwig,unwild,unwill,unwily,unwind,unwindy,unwiped,unwire,unwired,unwise,unwish,unwist,unwitch,unwitty,unwive,unwived,unwoful,unwoman,unwomb,unwon,unwooed,unwoof,unwooly,unwordy,unwork,unworld,unwormy,unworn,unworth,unwound,unwoven,unwrap,unwrit,unwrite,unwrung,unyoke,unyoked,unyoung,unze,unzen,unzone,unzoned,up,upaisle,upalley,upalong,uparch,uparise,uparm,uparna,upas,upattic,upbank,upbar,upbay,upbear,upbeat,upbelch,upbelt,upbend,upbid,upbind,upblast,upblaze,upblow,upboil,upbolt,upboost,upborne,upbotch,upbound,upbrace,upbraid,upbray,upbreak,upbred,upbreed,upbrim,upbring,upbrook,upbrow,upbuild,upbuoy,upburn,upburst,upbuy,upcall,upcanal,upcarry,upcast,upcatch,upchoke,upchuck,upcity,upclimb,upclose,upcoast,upcock,upcoil,upcome,upcover,upcrane,upcrawl,upcreek,upcreep,upcrop,upcrowd,upcry,upcurl,upcurve,upcut,updart,update,updeck,updelve,updive,updo,updome,updraft,updrag,updraw,updrink,updry,upeat,upend,upeygan,upfeed,upfield,upfill,upflame,upflare,upflash,upflee,upfling,upfloat,upflood,upflow,upflung,upfly,upfold,upframe,upfurl,upgale,upgang,upgape,upgaze,upget,upgird,upgirt,upgive,upglean,upglide,upgo,upgorge,upgrade,upgrave,upgrow,upgully,upgush,uphand,uphang,uphasp,upheal,upheap,upheave,upheld,uphelm,uphelya,upher,uphill,uphoard,uphoist,uphold,uphung,uphurl,upjerk,upjet,upkeep,upknell,upknit,upla,uplaid,uplake,upland,uplane,uplay,uplead,upleap,upleg,uplick,uplift,uplight,uplimb,upline,uplock,uplong,uplook,uploom,uploop,uplying,upmast,upmix,upmost,upmount,upmove,upness,upo,upon,uppard,uppent,upper,upperch,upperer,uppers,uppile,upping,uppish,uppity,upplow,uppluck,uppoint,uppoise,uppop,uppour,uppowoc,upprick,upprop,uppuff,uppull,uppush,upraise,upreach,uprear,uprein,uprend,uprest,uprid,upridge,upright,uprip,uprisal,uprise,uprisen,upriser,uprist,uprive,upriver,uproad,uproar,uproom,uproot,uprose,uprouse,uproute,uprun,uprush,upscale,upscrew,upseal,upseek,upseize,upsend,upset,upsey,upshaft,upshear,upshoot,upshore,upshot,upshove,upshut,upside,upsides,upsilon,upsit,upslant,upslip,upslope,upsmite,upsoak,upsoar,upsolve,upspeak,upspear,upspeed,upspew,upspin,upspire,upspout,upspurt,upstaff,upstage,upstair,upstamp,upstand,upstare,upstart,upstate,upstay,upsteal,upsteam,upstem,upstep,upstick,upstir,upsuck,upsun,upsup,upsurge,upswarm,upsway,upsweep,upswell,upswing,uptable,uptake,uptaker,uptear,uptend,upthrow,uptide,uptie,uptill,uptilt,uptorn,uptoss,uptower,uptown,uptrace,uptrack,uptrail,uptrain,uptree,uptrend,uptrill,uptrunk,uptruss,uptube,uptuck,upturn,uptwist,upupoid,upvomit,upwaft,upwall,upward,upwards,upwarp,upwax,upway,upways,upwell,upwent,upwheel,upwhelm,upwhir,upwhirl,upwind,upwith,upwork,upwound,upwrap,upwring,upyard,upyoke,ur,ura,urachal,urachus,uracil,uraemic,uraeus,ural,urali,uraline,uralite,uralium,uramido,uramil,uramino,uran,uranate,uranic,uraniid,uranin,uranine,uranion,uranism,uranist,uranite,uranium,uranous,uranyl,urao,urare,urari,urase,urate,uratic,uratoma,urazine,urazole,urban,urbane,urbian,urbic,urbify,urceole,urceoli,urceus,urchin,urd,urde,urdee,ure,urea,ureal,urease,uredema,uredine,uredo,ureic,ureid,ureide,ureido,uremia,uremic,urent,uresis,uretal,ureter,urethan,urethra,uretic,urf,urge,urgence,urgency,urgent,urger,urging,urheen,urial,uric,urinal,urinant,urinary,urinate,urine,urinose,urinous,urite,urlar,urled,urling,urluch,urman,urn,urna,urnae,urnal,urnful,urning,urnism,urnlike,urocele,urocyst,urodele,urogram,urohyal,urolith,urology,uromere,uronic,uropod,urosis,urosome,urostea,urotoxy,uroxin,ursal,ursine,ursoid,ursolic,urson,ursone,ursuk,urtica,urtite,urubu,urucu,urucuri,uruisg,urunday,urus,urushi,urushic,urva,us,usable,usage,usager,usance,usar,usara,usaron,usation,use,used,usedly,usednt,usee,useful,usehold,useless,usent,user,ush,ushabti,usher,usherer,usings,usitate,usnea,usneoid,usnic,usninic,usque,usself,ussels,ust,uster,ustion,usual,usually,usuary,usucapt,usure,usurer,usuress,usurp,usurper,usurpor,usury,usward,uswards,ut,uta,utahite,utai,utas,utch,utchy,utees,utensil,uteri,uterine,uterus,utick,utile,utility,utilize,utinam,utmost,utopia,utopian,utopism,utopist,utricle,utricul,utrubi,utrum,utsuk,utter,utterer,utterly,utu,utum,uva,uval,uvalha,uvanite,uvate,uvea,uveal,uveitic,uveitis,uveous,uvic,uvid,uviol,uvitic,uvito,uvrou,uvula,uvulae,uvular,uvver,uxorial,uzan,uzara,uzarin,uzaron,v,vaagmer,vaalite,vacancy,vacant,vacate,vacatur,vaccary,vaccina,vaccine,vache,vacoa,vacona,vacoua,vacouf,vacual,vacuate,vacuefy,vacuist,vacuity,vacuole,vacuome,vacuous,vacuum,vacuuma,vade,vadium,vadose,vady,vag,vagal,vagary,vagas,vage,vagile,vagina,vaginal,vagitus,vagrant,vagrate,vagrom,vague,vaguely,vaguish,vaguity,vagus,vahine,vail,vain,vainful,vainly,vair,vairagi,vaire,vairy,vaivode,vajra,vakass,vakia,vakil,valance,vale,valence,valency,valent,valeral,valeric,valerin,valeryl,valet,valeta,valetry,valeur,valgoid,valgus,valhall,vali,valiant,valid,validly,valine,valise,vall,vallar,vallary,vallate,valley,vallis,vallum,valonia,valor,valse,valsoid,valuate,value,valued,valuer,valuta,valva,valval,valvate,valve,valved,valvula,valvule,valyl,vamfont,vamoose,vamp,vamped,vamper,vampire,van,vanadic,vanadyl,vane,vaned,vanfoss,vang,vangee,vangeli,vanglo,vanilla,vanille,vanish,vanity,vanman,vanmost,vanner,vannet,vansire,vantage,vanward,vapid,vapidly,vapor,vapored,vaporer,vapory,vara,varahan,varan,varanid,vardy,vare,varec,vareuse,vari,variant,variate,varical,varices,varied,varier,variety,variola,variole,various,varisse,varix,varlet,varment,varna,varnish,varsha,varsity,varus,varve,varved,vary,vas,vasa,vasal,vase,vaseful,vaselet,vassal,vast,vastate,vastily,vastity,vastly,vasty,vasu,vat,vatful,vatic,vatman,vatter,vau,vaudy,vault,vaulted,vaulter,vaulty,vaunt,vaunted,vaunter,vaunty,vauxite,vavasor,vaward,veal,vealer,vealy,vection,vectis,vector,vecture,vedana,vedette,vedika,vedro,veduis,vee,veen,veep,veer,veery,vegetal,vegete,vehicle,vei,veigle,veil,veiled,veiler,veiling,veily,vein,veinage,veinal,veined,veiner,veinery,veining,veinlet,veinous,veinule,veiny,vejoces,vela,velal,velamen,velar,velaric,velary,velate,velated,veldman,veldt,velic,veliger,vell,vellala,velleda,vellon,vellum,vellumy,velo,velours,velte,velum,velumen,velure,velvet,velvety,venada,venal,venally,venatic,venator,vencola,vend,vendace,vendee,vender,vending,vendor,vendue,veneer,venene,veneral,venerer,venery,venesia,venger,venial,venie,venin,venison,vennel,venner,venom,venomed,venomer,venomly,venomy,venosal,venose,venous,vent,ventage,ventail,venter,ventil,ventose,ventrad,ventral,ventric,venture,venue,venula,venular,venule,venust,vera,veranda,verb,verbal,verbate,verbena,verbene,verbid,verbify,verbile,verbose,verbous,verby,verchok,verd,verdant,verdea,verdet,verdict,verdin,verdoy,verdun,verdure,verek,verge,vergent,verger,vergery,vergi,verglas,veri,veridic,verify,verily,verine,verism,verist,verite,verity,vermeil,vermian,vermin,verminy,vermis,vermix,vernal,vernant,vernier,vernile,vernin,vernine,verre,verrel,verruca,verruga,versal,versant,versate,verse,versed,verser,verset,versify,versine,version,verso,versor,verst,versta,versual,versus,vert,vertex,vertigo,veruled,vervain,verve,vervel,vervet,very,vesania,vesanic,vesbite,vesicae,vesical,vesicle,veskit,vespal,vesper,vespers,vespery,vespid,vespine,vespoid,vessel,vest,vestal,vestee,vester,vestige,vesting,vestlet,vestral,vestry,vesture,vet,veta,vetanda,vetch,vetchy,veteran,vetiver,veto,vetoer,vetoism,vetoist,vetust,vetusty,veuve,vex,vexable,vexed,vexedly,vexer,vexful,vexil,vext,via,viable,viaduct,viagram,viajaca,vial,vialful,viand,viander,viatic,viatica,viator,vibex,vibgyor,vibix,vibrant,vibrate,vibrato,vibrion,vicar,vicarly,vice,viceroy,vicety,vicilin,vicinal,vicine,vicious,vicoite,victim,victor,victory,victrix,victual,vicuna,viddui,video,vidette,vidonia,vidry,viduage,vidual,viduate,viduine,viduity,viduous,vidya,vie,vielle,vier,viertel,view,viewer,viewly,viewy,vifda,viga,vigia,vigil,vignin,vigonia,vigor,vihara,vihuela,vijao,viking,vila,vilayet,vile,vilely,vilify,vility,vill,villa,village,villain,villar,villate,ville,villein,villoid,villose,villous,villus,vim,vimana,vimen,vimful,viminal,vina,vinage,vinal,vinasse,vinata,vincent,vindex,vine,vinea,vineal,vined,vinegar,vineity,vinelet,viner,vinery,vinic,vinny,vino,vinose,vinous,vint,vinta,vintage,vintem,vintner,vintry,viny,vinyl,vinylic,viol,viola,violal,violate,violent,violer,violet,violety,violin,violina,violine,violist,violon,violone,viper,viperan,viperid,vipery,viqueen,viragin,virago,viral,vire,virelay,viremia,viremic,virent,vireo,virga,virgal,virgate,virgin,virgula,virgule,virial,virid,virific,virify,virile,virl,virole,viroled,viron,virose,virosis,virous,virtu,virtual,virtue,virtued,viruela,virus,vis,visa,visage,visaged,visarga,viscera,viscid,viscin,viscose,viscous,viscus,vise,viseman,visible,visibly,visie,visile,vision,visit,visita,visite,visitee,visiter,visitor,visive,visne,vison,visor,vista,vistaed,vistal,visto,visual,vita,vital,vitalic,vitally,vitals,vitamer,vitamin,vitasti,vitiate,vitium,vitrage,vitrail,vitrain,vitraux,vitreal,vitrean,vitreum,vitric,vitrics,vitrify,vitrine,vitriol,vitrite,vitrous,vitta,vittate,vitular,viuva,viva,vivary,vivax,vive,vively,vivency,viver,vivers,vives,vivid,vividly,vivific,vivify,vixen,vixenly,vizard,vizier,vlei,voar,vocable,vocably,vocal,vocalic,vocally,vocate,vocular,vocule,vodka,voe,voet,voeten,vog,voglite,vogue,voguey,voguish,voice,voiced,voicer,voicing,void,voided,voidee,voider,voiding,voidly,voile,voivode,vol,volable,volage,volant,volar,volata,volatic,volcan,volcano,vole,volency,volent,volery,volet,volley,volost,volt,voltage,voltaic,voltize,voluble,volubly,volume,volumed,volupt,volupty,voluta,volute,voluted,volutin,volva,volvate,volvent,vomer,vomica,vomit,vomiter,vomito,vomitus,voodoo,vorago,vorant,vorhand,vorpal,vortex,vota,votable,votal,votally,votary,vote,voteen,voter,voting,votive,votress,vouch,vouchee,voucher,vouge,vow,vowed,vowel,vowely,vower,vowess,vowless,voyage,voyager,voyance,voyeur,vraic,vrbaite,vriddhi,vrother,vug,vuggy,vulgar,vulgare,vulgate,vulgus,vuln,vulnose,vulpic,vulpine,vulture,vulturn,vulva,vulval,vulvar,vulvate,vum,vying,vyingly,w,wa,waag,waapa,waar,wab,wabber,wabble,wabbly,wabby,wabe,wabeno,wabster,wacago,wace,wachna,wack,wacke,wacken,wacker,wacky,wad,waddent,wadder,wadding,waddler,waddly,waddy,wade,wader,wadi,wading,wadlike,wadmal,wadmeal,wadna,wadset,wae,waeg,waer,waesome,waesuck,wafer,waferer,wafery,waff,waffle,waffly,waft,waftage,wafter,wafture,wafty,wag,wagaun,wage,waged,wagedom,wager,wagerer,wages,waggel,wagger,waggery,waggie,waggish,waggle,waggly,waggy,waglike,wagling,wagon,wagoner,wagonry,wagsome,wagtail,wagwag,wagwit,wah,wahahe,wahine,wahoo,waiata,waif,waik,waikly,wail,wailer,wailful,waily,wain,wainage,wainer,wainful,wainman,waipiro,wairch,waird,wairepo,wairsh,waise,waist,waisted,waister,wait,waiter,waiting,waive,waiver,waivery,waivod,waiwode,wajang,waka,wakan,wake,wakeel,wakeful,waken,wakener,waker,wakes,wakf,wakif,wakiki,waking,wakiup,wakken,wakon,wakonda,waky,walahee,wale,waled,waler,wali,waling,walk,walker,walking,walkist,walkout,walkway,wall,wallaba,wallaby,wallah,walled,waller,wallet,walleye,wallful,walling,wallise,wallman,walloon,wallop,wallow,wally,walnut,walrus,walsh,walt,walter,walth,waltz,waltzer,wamara,wambais,wamble,wambly,wame,wamefou,wamel,wamp,wampee,wample,wampum,wampus,wamus,wan,wand,wander,wandery,wandle,wandoo,wandy,wane,waned,wang,wanga,wangala,wangan,wanghee,wangle,wangler,wanhope,wanhorn,wanigan,waning,wankle,wankly,wanle,wanly,wanner,wanness,wannish,wanny,wanrufe,want,wantage,wanter,wantful,wanting,wanton,wantwit,wanty,wany,wap,wapacut,wapatoo,wapiti,wapp,wapper,wapping,war,warabi,waratah,warble,warbled,warbler,warblet,warbly,warch,ward,wardage,warday,warded,warden,warder,warding,wardite,wardman,ware,warehou,wareman,warf,warfare,warful,warily,warish,warison,wark,warl,warless,warlike,warlock,warluck,warly,warm,warman,warmed,warmer,warmful,warming,warmish,warmly,warmth,warmus,warn,warnel,warner,warning,warnish,warnoth,warnt,warp,warpage,warped,warper,warping,warple,warran,warrand,warrant,warree,warren,warrer,warrin,warrior,warrok,warsaw,warse,warsel,warship,warsle,warsler,warst,wart,warted,wartern,warth,wartime,wartlet,warty,warve,warwolf,warworn,wary,was,wasabi,wase,wasel,wash,washday,washed,washen,washer,washery,washin,washing,washman,washoff,washout,washpot,washrag,washtub,washway,washy,wasnt,wasp,waspen,waspily,waspish,waspy,wassail,wassie,wast,wastage,waste,wasted,wastel,waster,wasting,wastrel,wasty,wat,watap,watch,watched,watcher,water,watered,waterer,waterie,watery,wath,watt,wattage,wattape,wattle,wattled,wattman,wauble,wauch,wauchle,waucht,wauf,waugh,waughy,wauken,waukit,waul,waumle,wauner,wauns,waup,waur,wauve,wavable,wavably,wave,waved,wavelet,waver,waverer,wavery,waveson,wavey,wavicle,wavily,waving,wavy,waw,wawa,wawah,wax,waxbill,waxbird,waxbush,waxen,waxer,waxily,waxing,waxlike,waxman,waxweed,waxwing,waxwork,waxy,way,wayaka,wayang,wayback,waybill,waybird,waybook,waybung,wayfare,waygang,waygate,waygone,waying,waylaid,waylay,wayless,wayman,waymark,waymate,waypost,ways,wayside,wayward,waywode,wayworn,waywort,we,weak,weaken,weakish,weakly,weaky,weal,weald,wealth,wealthy,weam,wean,weanel,weaner,weanyer,weapon,wear,wearer,wearied,wearier,wearily,wearing,wearish,weary,weasand,weasel,weaser,weason,weather,weave,weaved,weaver,weaving,weazen,weazeny,web,webbed,webber,webbing,webby,weber,webeye,webfoot,webless,weblike,webster,webwork,webworm,wecht,wed,wedana,wedbed,wedded,wedder,wedding,wede,wedge,wedged,wedger,wedging,wedgy,wedlock,wedset,wee,weeble,weed,weeda,weedage,weeded,weeder,weedery,weedful,weedish,weedow,weedy,week,weekday,weekend,weekly,weekwam,weel,weemen,ween,weeness,weening,weenong,weeny,weep,weeper,weepful,weeping,weeps,weepy,weesh,weeshy,weet,weever,weevil,weevily,weewow,weeze,weft,weftage,wefted,wefty,weigh,weighed,weigher,weighin,weight,weighty,weir,weird,weirdly,weiring,weism,wejack,weka,wekau,wekeen,weki,welcome,weld,welder,welding,weldor,welfare,welk,welkin,well,wellat,welling,wellish,wellman,welly,wels,welsh,welsher,welsium,welt,welted,welter,welting,wem,wemless,wen,wench,wencher,wend,wende,wene,wennish,wenny,went,wenzel,wept,wer,were,werefox,werent,werf,wergil,weri,wert,wervel,wese,weskit,west,weste,wester,western,westing,westy,wet,weta,wetback,wetbird,wetched,wetchet,wether,wetly,wetness,wetted,wetter,wetting,wettish,weve,wevet,wey,wha,whabby,whack,whacker,whacky,whale,whaler,whalery,whaling,whalish,whally,whalm,whalp,whaly,wham,whamble,whame,whammle,whamp,whampee,whample,whan,whand,whang,whangam,whangee,whank,whap,whappet,whapuka,whapuku,whar,whare,whareer,wharf,wharl,wharp,wharry,whart,wharve,whase,whasle,what,whata,whatkin,whatna,whatnot,whats,whatso,whatten,whau,whauk,whaup,whaur,whauve,wheal,whealy,wheam,wheat,wheaten,wheaty,whedder,whee,wheedle,wheel,wheeled,wheeler,wheely,wheem,wheen,wheenge,wheep,wheeple,wheer,wheesht,wheetle,wheeze,wheezer,wheezle,wheezy,wheft,whein,whekau,wheki,whelk,whelked,whelker,whelky,whelm,whelp,whelve,whemmel,when,whenas,whence,wheneer,whenso,where,whereas,whereat,whereby,whereer,wherein,whereof,whereon,whereso,whereto,whereup,wherret,wherrit,wherry,whet,whether,whetile,whetter,whew,whewer,whewl,whewt,whey,wheyey,wheyish,whiba,which,whick,whicken,whicker,whid,whidah,whidder,whiff,whiffer,whiffet,whiffle,whiffy,whift,whig,while,whileen,whilere,whiles,whilie,whilk,whill,whilly,whilock,whilom,whils,whilst,whilter,whim,whimble,whimmy,whimper,whimsey,whimsic,whin,whincow,whindle,whine,whiner,whing,whinge,whinger,whinnel,whinner,whinny,whiny,whip,whipcat,whipman,whippa,whipped,whipper,whippet,whippy,whipsaw,whipt,whir,whirken,whirl,whirled,whirler,whirley,whirly,whirret,whirrey,whirroo,whirry,whirtle,whish,whisk,whisker,whiskey,whisky,whisp,whisper,whissle,whist,whister,whistle,whistly,whit,white,whited,whitely,whiten,whites,whither,whiting,whitish,whitlow,whits,whittaw,whitten,whitter,whittle,whity,whiz,whizgig,whizzer,whizzle,who,whoa,whoever,whole,wholly,whom,whomble,whomso,whone,whoo,whoof,whoop,whoopee,whooper,whoops,whoosh,whop,whopper,whorage,whore,whorish,whorl,whorled,whorly,whort,whortle,whose,whosen,whud,whuff,whuffle,whulk,whulter,whummle,whun,whup,whush,whuskie,whussle,whute,whuther,whutter,whuz,why,whyever,whyfor,whyness,whyo,wi,wice,wicht,wichtje,wick,wicked,wicken,wicker,wicket,wicking,wickiup,wickup,wicky,wicopy,wid,widbin,widder,widdle,widdy,wide,widegab,widely,widen,widener,widgeon,widish,widow,widowed,widower,widowly,widowy,width,widu,wield,wielder,wieldy,wiener,wienie,wife,wifedom,wifeism,wifekin,wifelet,wifely,wifie,wifish,wifock,wig,wigan,wigdom,wigful,wigged,wiggen,wigger,wiggery,wigging,wiggish,wiggism,wiggle,wiggler,wiggly,wiggy,wight,wightly,wigless,wiglet,wiglike,wigtail,wigwag,wigwam,wiikite,wild,wildcat,wilded,wilder,wilding,wildish,wildly,wile,wileful,wilga,wilgers,wilily,wilk,wilkin,will,willawa,willed,willer,willet,willey,willful,willie,willier,willies,willing,willock,willow,willowy,willy,willyer,wilsome,wilt,wilter,wily,wim,wimble,wimbrel,wime,wimick,wimple,win,wince,wincer,wincey,winch,wincher,wincing,wind,windage,windbag,winddog,winded,winder,windigo,windily,winding,windle,windles,windlin,windock,windore,window,windowy,windrow,windup,windway,windy,wine,wined,winemay,winepot,winer,winery,winesop,winevat,winful,wing,wingcut,winged,winger,wingle,winglet,wingman,wingy,winish,wink,winkel,winker,winking,winkle,winklet,winly,winna,winnard,winnel,winner,winning,winnle,winnow,winrace,winrow,winsome,wint,winter,wintle,wintry,winy,winze,wipe,wiper,wippen,wips,wir,wirable,wirble,wird,wire,wirebar,wired,wireman,wirer,wireway,wirily,wiring,wirl,wirling,wirr,wirra,wirrah,wiry,wis,wisdom,wise,wisely,wiseman,wisen,wisent,wiser,wish,wisha,wished,wisher,wishful,wishing,wishly,wishmay,wisht,wisket,wisp,wispish,wispy,wiss,wisse,wissel,wist,wiste,wistful,wistit,wistiti,wit,witan,witch,witched,witchen,witchet,witchy,wite,witess,witful,with,withal,withe,withen,wither,withers,withery,within,without,withy,witjar,witless,witlet,witling,witloof,witness,witney,witship,wittal,witted,witter,wittily,witting,wittol,witty,witwall,wive,wiver,wivern,wiz,wizard,wizen,wizened,wizier,wizzen,wloka,wo,woad,woader,woadman,woady,woak,woald,woan,wob,wobble,wobbler,wobbly,wobster,wod,woddie,wode,wodge,wodgy,woe,woeful,woesome,woevine,woeworn,woffler,woft,wog,wogiet,woibe,wokas,woke,wokowi,wold,woldy,wolf,wolfdom,wolfen,wolfer,wolfish,wolfkin,wolfram,wollop,wolter,wolve,wolver,woman,womanly,womb,wombat,wombed,womble,womby,womera,won,wonder,wone,wonegan,wong,wonga,wongen,wongshy,wongsky,woning,wonky,wonna,wonned,wonner,wonning,wonnot,wont,wonted,wonting,woo,wooable,wood,woodbin,woodcut,wooded,wooden,woodeny,woodine,wooding,woodish,woodlet,woodly,woodman,woodrow,woodsy,woodwax,woody,wooer,woof,woofed,woofell,woofer,woofy,woohoo,wooing,wool,woold,woolder,wooled,woolen,wooler,woolert,woolly,woolman,woolsey,woom,woomer,woon,woons,woorali,woorari,woosh,wootz,woozle,woozy,wop,woppish,wops,worble,word,wordage,worded,worder,wordily,wording,wordish,wordle,wordman,wordy,wore,work,workbag,workbox,workday,worked,worker,working,workman,workout,workpan,works,worky,world,worlded,worldly,worldy,worm,wormed,wormer,wormil,worming,wormy,worn,wornil,worral,worried,worrier,worrit,worry,worse,worsen,worser,worset,worship,worst,worsted,wort,worth,worthy,wosbird,wot,wote,wots,wottest,wotteth,woubit,wouch,wouf,wough,would,wouldnt,wouldst,wound,wounded,wounder,wounds,woundy,wourali,wourari,wournil,wove,woven,wow,wowser,wowsery,wowt,woy,wrack,wracker,wraggle,wraith,wraithe,wraithy,wraitly,wramp,wran,wrang,wrangle,wranny,wrap,wrapped,wrapper,wrasse,wrastle,wrath,wrathy,wraw,wrawl,wrawler,wraxle,wreak,wreat,wreath,wreathe,wreathy,wreck,wrecker,wrecky,wren,wrench,wrenlet,wrest,wrester,wrestle,wretch,wricht,wrick,wride,wried,wrier,wriest,wrig,wriggle,wriggly,wright,wring,wringer,wrinkle,wrinkly,wrist,wristed,wrister,writ,write,writee,writer,writh,writhe,writhed,writhen,writher,writhy,writing,written,writter,wrive,wro,wrocht,wroke,wroken,wrong,wronged,wronger,wrongly,wrossle,wrote,wroth,wrothly,wrothy,wrought,wrox,wrung,wry,wrybill,wryly,wryneck,wryness,wrytail,wud,wuddie,wudge,wudu,wugg,wulk,wull,wullcat,wulliwa,wumble,wumman,wummel,wun,wungee,wunna,wunner,wunsome,wup,wur,wurley,wurmal,wurrus,wurset,wurzel,wush,wusp,wuss,wusser,wust,wut,wuther,wuzu,wuzzer,wuzzle,wuzzy,wy,wyde,wye,wyke,wyle,wymote,wyn,wynd,wyne,wynn,wype,wyson,wyss,wyve,wyver,x,xanthic,xanthin,xanthyl,xarque,xebec,xenia,xenial,xenian,xenium,xenon,xenyl,xerafin,xerarch,xerasia,xeric,xeriff,xerogel,xeroma,xeronic,xerosis,xerotes,xerotic,xi,xiphias,xiphiid,xiphoid,xoana,xoanon,xurel,xyla,xylan,xylate,xylem,xylene,xylenol,xylenyl,xyletic,xylic,xylidic,xylinid,xylite,xylitol,xylogen,xyloid,xylol,xyloma,xylon,xylonic,xylose,xyloyl,xylyl,xylylic,xyphoid,xyrid,xyst,xyster,xysti,xystos,xystum,xystus,y,ya,yaba,yabber,yabbi,yabble,yabby,yabu,yacal,yacca,yachan,yacht,yachter,yachty,yad,yade,yaff,yaffle,yagger,yagi,yagua,yaguaza,yah,yahan,yahoo,yair,yaird,yaje,yajeine,yak,yakalo,yakamik,yakin,yakka,yakman,yalb,yale,yali,yalla,yallaer,yallow,yam,yamamai,yamanai,yamen,yamilke,yammer,yamp,yampa,yamph,yamshik,yan,yander,yang,yangtao,yank,yanking,yanky,yaoort,yaourti,yap,yapa,yaply,yapness,yapok,yapp,yapped,yapper,yapping,yappish,yappy,yapster,yar,yarak,yaray,yarb,yard,yardage,yardang,yardarm,yarder,yardful,yarding,yardman,yare,yareta,yark,yarke,yarl,yarly,yarm,yarn,yarnen,yarner,yarpha,yarr,yarran,yarrow,yarth,yarthen,yarwhip,yas,yashiro,yashmak,yat,yate,yati,yatter,yaud,yauld,yaupon,yautia,yava,yaw,yawl,yawler,yawn,yawner,yawney,yawnful,yawnily,yawning,yawnups,yawny,yawp,yawper,yawroot,yaws,yawweed,yawy,yaxche,yaya,ycie,yday,ye,yea,yeah,yealing,yean,year,yeara,yeard,yearday,yearful,yearly,yearn,yearock,yearth,yeast,yeasty,yeat,yeather,yed,yede,yee,yeel,yees,yegg,yeggman,yeguita,yeld,yeldrin,yelk,yell,yeller,yelling,yelloch,yellow,yellows,yellowy,yelm,yelmer,yelp,yelper,yelt,yen,yender,yeni,yenite,yeo,yeoman,yep,yer,yerb,yerba,yercum,yerd,yere,yerga,yerk,yern,yerth,yes,yese,yeso,yesso,yest,yester,yestern,yesty,yet,yeta,yetapa,yeth,yether,yetlin,yeuk,yeuky,yeven,yew,yex,yez,yezzy,ygapo,yield,yielden,yielder,yieldy,yigh,yill,yilt,yin,yince,yinst,yip,yird,yirk,yirm,yirn,yirr,yirth,yis,yite,ym,yn,ynambu,yo,yobi,yocco,yochel,yock,yockel,yodel,yodeler,yodh,yoe,yoga,yogh,yoghurt,yogi,yogin,yogism,yogist,yogoite,yohimbe,yohimbi,yoi,yoick,yoicks,yojan,yojana,yok,yoke,yokeage,yokel,yokelry,yoker,yoking,yoky,yolden,yolk,yolked,yolky,yom,yomer,yon,yond,yonder,yonner,yonside,yont,yook,yoop,yor,yore,york,yorker,yot,yote,you,youd,youden,youdith,youff,youl,young,younger,youngly,youngun,younker,youp,your,yourn,yours,yoursel,youse,youth,youthen,youthy,youve,youward,youze,yoven,yow,yowie,yowl,yowler,yowley,yowt,yox,yoy,yperite,yr,yttria,yttric,yttrium,yuan,yuca,yucca,yuck,yuckel,yucker,yuckle,yucky,yuft,yugada,yuh,yukkel,yulan,yule,yummy,yungan,yurt,yurta,yus,yusdrum,yutu,yuzlik,yuzluk,z,za,zabeta,zabra,zabti,zabtie,zac,zacate,zacaton,zachun,zad,zadruga,zaffar,zaffer,zafree,zag,zagged,zain,zak,zakkeu,zaman,zamang,zamarra,zamarro,zambo,zamorin,zamouse,zander,zanella,zant,zante,zany,zanyish,zanyism,zanze,zapas,zaphara,zapota,zaptiah,zaptieh,zapupe,zaqqum,zar,zareba,zarf,zarnich,zarp,zat,zati,zattare,zax,zayat,zayin,zeal,zealful,zealot,zealous,zebra,zebraic,zebrass,zebrine,zebroid,zebrula,zebrule,zebu,zebub,zeburro,zechin,zed,zedoary,zee,zeed,zehner,zein,zeism,zeist,zel,zelator,zemeism,zemi,zemmi,zemni,zemstvo,zenana,zendik,zenick,zenith,zenu,zeolite,zephyr,zephyry,zequin,zer,zerda,zero,zeroize,zest,zestful,zesty,zeta,zetetic,zeugma,ziamet,ziara,ziarat,zibet,zibetum,ziega,zieger,ziffs,zig,ziganka,zigzag,zihar,zikurat,zillah,zimarra,zimb,zimbi,zimme,zimmi,zimmis,zimocca,zinc,zincate,zincic,zincide,zincify,zincing,zincite,zincize,zincke,zincky,zinco,zincous,zincum,zing,zingel,zink,zinsang,zip,ziphian,zipper,zipping,zippy,zira,zirai,zircite,zircon,zither,zizz,zloty,zo,zoa,zoacum,zoaria,zoarial,zoarium,zobo,zocco,zoccolo,zodiac,zoea,zoeal,zoeform,zoetic,zogan,zogo,zoic,zoid,zoisite,zoism,zoist,zoistic,zokor,zoll,zolle,zombi,zombie,zonal,zonally,zonar,zonary,zonate,zonated,zone,zoned,zonelet,zonic,zoning,zonite,zonitid,zonoid,zonular,zonule,zonulet,zonure,zonurid,zoo,zoocarp,zoocyst,zooecia,zoogamy,zoogene,zoogeny,zoogony,zooid,zooidal,zooks,zoolite,zoolith,zoology,zoom,zoon,zoonal,zoonic,zoonist,zoonite,zoonomy,zoons,zoonule,zoopery,zoopsia,zoosis,zootaxy,zooter,zootic,zootomy,zootype,zoozoo,zorgite,zoril,zorilla,zorillo,zorro,zoster,zounds,zowie,zudda,zuisin,zumatic,zunyite,zuza,zwitter,zyga,zygal,zygion,zygite,zygoma,zygon,zygose,zygosis,zygote,zygotic,zygous,zymase,zyme,zymic,zymin,zymite,zymogen,zymoid,zymome,zymomin,zymosis,zymotic,zymurgy,zythem,zythum" } } , , function(e, t, r) { "use strict"; (function(e) { var a = r(574) , n = r(327) , i = r(0) , o = r.n(i) , s = r(141) , l = r.n(s) , c = r(2) , u = r.n(c) , d = r(5) , p = r(330) , h = r(24) , m = r(270) , f = r(75) , g = r(37) , _ = r(152) , b = r(357) , y = r(39) , v = r(15) , w = r(4) , k = r.n(w) , x = r(31) , S = r(42) , A = r(7) , E = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , T = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , C = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function z(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function B(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function O(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var P = function(e) { var t = e.children; return o.a.createElement("div", { style: { display: "flex", justifyContent: "center" } }, o.a.createElement("div", { style: { display: "grid", gridTemplateColumns: t.map(function() { return "1fr" }).join(" ") } }, t)) } , j = function(t) { function r(e) { z(this, r); var t = B(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this, e)); return t.onPropose = function() { var e = t.state , r = e.propose , a = e.orig_account , n = (e.to_account, e.to_name, e.from_account) , i = e.from_name; r || t.setState({ orig_account: n }), r && (n = a, i = a.get("name")), r = !r, t.setState({ propose: r, propose_account: r ? n : null, from_account: r ? null : n, from_name: r ? "" : i }) } , t.state = t.getInitialState(e), t.nestedRef = null, t.onTrxIncluded = t.onTrxIncluded.bind(t), t._updateFee = Object(n.a)(t._updateFee.bind(t), 250), t._checkFeeStatus = t._checkFeeStatus.bind(t), t._checkBalance = t._checkBalance.bind(t), l.a.subscribe("transaction_confirm_actions", function(e, r) { "close" == r && (t.setState({ hidden: !1 }), t.hideModal()) }), t.showModal = t.showModal.bind(t), t.hideModal = t.hideModal.bind(t), t.onClose = t.onClose.bind(t), t } return O(r, o.a.Component), C(r, [{ key: "showModal", value: function() { this.setState({ isModalVisible: !0 }) } }, { key: "hideModal", value: function() { this.setState({ isModalVisible: !1 }) } }, { key: "getInitialState", value: function() { return { isModalVisible: !1, from_name: "", to_name: "", from_account: null, to_account: null, orig_account: null, amount: "", asset_id: null, asset: null, memo: "", error: null, knownScammer: null, propose: !1, propose_account: "", feeAsset: null, fee_asset_id: "1.3.0", feeAmount: new g.a({ amount: 0 }), feeStatus: {}, maxAmount: !1, hidden: !1 } } }, { key: "show", value: function() { var e = this; this.setState({ open: !0, hidden: !1 }, function() { e.showModal(), e._initForm() }) } }, { key: "onClose", value: function() { var e = this , t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; l.a.unsubscribe("transaction_confirm_actions"), this.setState({ open: !1, from_name: "", to_name: "", from_account: null, to_account: null, orig_account: null, amount: "", asset_id: null, asset: null, memo: "", error: null, knownScammer: null, propose: !1, propose_account: "", feeAsset: null, fee_asset_id: "1.3.0", feeAmount: new g.a({ amount: 0 }), feeStatus: {}, maxAmount: !1, hidden: !1 }, function() { t && e.hideModal() }) } }, { key: "onSubmit", value: function(t) { var r = this; t.preventDefault(), this.setState({ error: null }); var a = this.state.asset , n = this.state.amount , i = new g.a({ real: n, asset_id: a.get("id"), precision: a.get("precision") }); this.setState({ hidden: !0 }), y.a.transfer(this.state.from_account.get("id"), this.state.to_account.get("id"), i.getAmount(), a.get("id"), this.state.memo ? new e(this.state.memo,"utf-8") : this.state.memo, this.state.propose ? this.state.propose_account : null, this.state.feeAsset ? this.state.feeAsset.get("id") : "1.3.0").then(function() { r.onClose(), f.a.unlisten(r.onTrxIncluded), f.a.listen(r.onTrxIncluded) }).catch(function(e) { var t = e.message ? e.message.split("\n")[1] || e.message : null; console.log("error: ", e, t), r.setState({ error: t }) }) } }, { key: "_initForm", value: function() { this.props.to_name != this.props.from_name && this.setState({ to_name: this.props.to_name, to_account: d.ChainStore.getAccount(this.props.to_name) }), this.props.from_name && this.setState({ from_name: this.props.from_name, from_account: d.ChainStore.getAccount(this.props.from_name) }); var e = this.props.currentAccount; if (this.state.from_name || this.setState({ from_name: e }), this.props.asset_id && this.state.asset_id !== this.props.asset_id) { var t = d.ChainStore.getAsset(this.props.asset_id); t && this.setState({ asset_id: this.props.asset_id, asset: t }) } } }, { key: "shouldComponentUpdate", value: function(e, t) { var r = this._getAvailableAssets().asset_types , a = this._getAvailableAssets(t).asset_types; if (1 === a.length) { var n = d.ChainStore.getAsset(a[0]); 1 !== r.length && this.onAmountChanged({ amount: t.amount, asset: n }), a[0] !== this.state.fee_asset_id && n && this.state.fee_asset_id !== a[0] && this.setState({ feeAsset: n, fee_asset_id: a[0] }) } return t.open && !this.state.open && this._checkFeeStatus(t), !(!t.open && !this.state.open) } }, { key: "componentWillReceiveProps", value: function(e) { var t = this; e.currentAccount !== this.state.from_name && e.currentAccount !== this.props.currentAccount && this.setState({ from_name: e.from_name, from_account: d.ChainStore.getAccount(e.from_name), to_name: e.to_name ? e.to_name : "", to_account: e.to_name ? d.ChainStore.getAccount(e.to_name) : null, feeStatus: {}, fee_asset_id: "1.3.0", feeAmount: new g.a({ amount: 0 }) }, function() { t._updateFee(), t._checkFeeStatus() }) } }, { key: "_checkBalance", value: function() { var e = this.state , t = e.feeAmount , r = e.amount , a = e.from_account , n = e.asset; if (n && a) { this._updateFee(); var i = a.getIn(["balances", n.get("id")]) , o = a.getIn(["balances", t.asset_id]); if (n && a) { if (!i) return this.setState({ balanceError: !0 }); var s = d.ChainStore.getObject(i) , l = o ? d.ChainStore.getObject(o) : null; if (l && 0 !== l.get("balance") || this.setState({ fee_asset_id: "1.3.0" }, this._updateFee), s && t) { if (!r) return this.setState({ balanceError: !1 }); var c = Object(_.a)(r, n, t, s); null !== c && this.setState({ balanceError: !c }) } } } } }, { key: "_checkFeeStatus", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , r = t.from_account , a = t.open; if (r && a) { var n = Object.keys(r.get("balances").toJS()).sort(v.a.sortID) , i = {} , o = []; n.forEach(function(t) { o.push(Object(_.b)({ accountID: r.get("id"), feeID: t, options: ["price_per_kbyte"], data: { type: "memo", content: e.state.memo } })) }), Promise.all(o).then(function(t) { n.forEach(function(e, r) { i[e] = t[r] }), v.a.are_equal_shallow(e.state.feeStatus, i) || e.setState({ feeStatus: i }), e._checkBalance() }).catch(function(e) { console.error(e) }) } } }, { key: "_setTotal", value: function(e, t) { var r = this.state.feeAmount , a = d.ChainStore.getObject(t) , n = d.ChainStore.getObject(e) , i = new g.a({ amount: a.get("balance"), asset_id: n.get("id"), precision: n.get("precision") }); a && (r.asset_id === i.asset_id && i.minus(r), this.setState({ maxAmount: !0, amount: i.getAmount({ real: !0 }) }, this._checkBalance)) } }, { key: "_getAvailableAssets", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , t = this.state.feeStatus; var r = e.from_account , a = e.from_error , n = [] , i = []; if (!r || !r.get("balances") || a) return { asset_types: n, fee_asset_types: i }; var o = e.from_account.get("balances").toJS(); for (var s in n = Object.keys(o).sort(v.a.sortID), i = Object.keys(o).sort(v.a.sortID), o) { var l = d.ChainStore.getObject(o[s]); l && 0 === l.get("balance") && (n.splice(n.indexOf(s), 1), -1 !== i.indexOf(s) && i.splice(i.indexOf(s), 1)) } return { asset_types: n, fee_asset_types: i = i.filter(function(e) { return function(e) { return void 0 === t[e] || t[e] && t[e].hasPoolBalance }(e) && function(e) { return void 0 === t[e] || t[e] && t[e].hasBalance }(e) }) } } }, { key: "_updateFee", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state; if (t.open) { var r = t.fee_asset_id , a = t.from_account , n = t.asset_id , i = this._getAvailableAssets(t).fee_asset_types; if (1 === i.length && i[0] !== r && (r = i[0]), !a) return null; Object(_.b)({ accountID: a.get("id"), feeID: r, options: ["price_per_kbyte"], data: { type: "memo", content: t.memo } }).then(function(t) { var r = t.fee , i = t.hasBalance , o = t.hasPoolBalance; return Object(_.e)(a, r).then(function(t) { return t ? e.setState({ fee_asset_id: n }, e._updateFee) : e.setState({ feeAmount: r, fee_asset_id: r.asset_id, hasBalance: i, hasPoolBalance: o, error: !i || !o }) }) }) } } }, { key: "setNestedRef", value: function(e) { this.nestedRef = e } }, { key: "toChanged", value: function(e) { this.setState({ to_name: e, error: null }) } }, { key: "fromChanged", value: function(e) { this.setState({ from_name: e }) } }, { key: "onFromAccountChanged", value: function(e) { this.setState({ from_account: e }) } }, { key: "onToAccountChanged", value: function(e) { this.setState({ to_account: e, error: null }) } }, { key: "onAmountChanged", value: function(e) { var t = e.amount , r = e.asset; r && ("object" !== (void 0 === r ? "undefined" : T(r)) && (r = d.ChainStore.getAsset(r)), this.setState({ amount: t, asset: r, asset_id: r.get("id"), error: null, maxAmount: !1 }, this._checkBalance)) } }, { key: "onFeeChanged", value: function(e) { var t = e.asset; t && ("object" !== (void 0 === t ? "undefined" : T(t)) && (t = d.ChainStore.getAsset(t)), this.setState({ feeAsset: t, fee_asset_id: t.get("id"), error: null }, this._updateFee)) } }, { key: "onMemoChanged", value: function(e) { var t = this._getAvailableAssets().asset_types , r = this.state , a = r.from_account , n = r.from_error , i = r.maxAmount; if (a && a.get("balances") && !n && i) { var o = a.get("balances").toJS() , s = t[0]; this._setTotal(s, o[s]) } this.setState({ memo: e.target.value }, this._updateFee) } }, { key: "onTrxIncluded", value: function(e) { e.included && e.broadcasted_transaction ? (f.a.unlisten(this.onTrxIncluded), f.a.reset()) : e.closed && (f.a.unlisten(this.onTrxIncluded), f.a.reset()) } }, { key: "onProposeAccount", value: function(e) { this.setState({ propose_account: e }) } }, { key: "render", value: function() { var e = this.state , t = e.propose , r = e.from_account , n = e.to_account , i = e.asset , s = e.asset_id , l = e.propose_account , c = e.feeAmount , f = e.amount , g = (e.error, e.to_name) , _ = e.from_name , y = e.memo , v = e.feeAsset , w = e.fee_asset_id , x = e.balanceError , E = e.hidden , T = h.a.isMyAccount(r) || _ === this.props.passwordAccount , C = !(!r || T || t) , z = this._getAvailableAssets() , B = z.asset_types , O = z.fee_asset_types , j = null , I = null , M = this.state.feeAmount.getAmount({ real: !0 }); if (r && r.get("balances") && !C) { var N = r.get("balances").toJS() , R = this.state.balanceError ? "has-error" : ""; if (1 === B.length && (i = d.ChainStore.getAsset(B[0])), B.length > 0) { var q = i ? i.get("id") : B[0] , D = v ? v.get("id") : "1.3.0"; j = o.a.createElement("span", null, o.a.createElement(u.a, { component: "span", content: "transfer.available" }), ":", " ", o.a.createElement("span", { className: R, style: { borderBottom: "#A09F9F 1px dotted", cursor: "pointer" }, onClick: this._setTotal.bind(this, q, N[q], M, D) }, o.a.createElement(b.a, { balance: N[q] }))), D == q && this.state.balanceError && (I = o.a.createElement("span", null, o.a.createElement("span", { className: R }, o.a.createElement(u.a, { content: "transfer.errors.insufficient" })))) } else j = o.a.createElement("span", null, o.a.createElement("span", { className: R }, o.a.createElement(u.a, { content: "transfer.errors.noFunds" }))), I = o.a.createElement("span", null, o.a.createElement("span", { className: R }, o.a.createElement(u.a, { content: "transfer.errors.noFunds" }))) } var L = t && !l , F = parseFloat(String.prototype.replace.call(f, /,/g, "")) , U = F && !Object(a.a)(F) , W = !r || !n || !U || !i || C || L || x || r.get("id") == n.get("id") , H = this.props.tabIndex; return this.state.open ? o.a.createElement("div", { id: "send_modal_wrapper", className: E || !this.state.open ? "hide" : "" }, o.a.createElement(A.Modal, { visible: this.state.isModalVisible, id: this.props.id, overlay: !0, onCancel: this.hideModal, footer: [o.a.createElement(A.Button, { key: "send", disabled: W, onClick: W ? null : this.onSubmit.bind(this) }, t ? k.a.translate("propose") : k.a.translate("transfer.send")), o.a.createElement(A.Button, { key: "Cancel", tabIndex: H++, onClick: this.onClose }, o.a.createElement(u.a, { component: "span", content: "transfer.cancel" }))] }, o.a.createElement("div", { className: "grid-block vertical no-overflow" }, o.a.createElement("div", { className: "content-block" }, o.a.createElement(P, null, o.a.createElement(A.Button, { type: t ? "ghost" : "primary", onClick: this.onPropose }, o.a.createElement(u.a, { content: "transfer.send" })), o.a.createElement(A.Button, { type: t ? "primary" : "ghost", onClick: this.onPropose }, o.a.createElement(u.a, { content: "propose" })))), o.a.createElement("div", { className: "content-block", style: { textAlign: "center" } }, o.a.createElement(u.a, { content: t ? "transfer.header_subheader_propose" : "transfer.header_subheader", wallet_name: Object(S.m)() })), this.state.open ? o.a.createElement(A.Form, { className: "full-width", layout: "vertical" }, !!t && o.a.createElement(o.a.Fragment, null, o.a.createElement(m.a, { label: "transfer.by", accountName: this.props.currentAccount, account: this.props.currentAccount, size: 35, typeahead: !0, tabIndex: H++, locked: !0 }), o.a.createElement("div", { className: "modal-separator" })), o.a.createElement(m.a, { label: "transfer.from", accountName: _, account: r, onChange: this.fromChanged.bind(this), onAccountChanged: this.onFromAccountChanged.bind(this), size: 35, typeahead: !0, tabIndex: H++, locked: !t || void 0 }), o.a.createElement(m.a, { label: "transfer.to", accountName: g, account: n, onChange: this.toChanged.bind(this), onAccountChanged: this.onToAccountChanged.bind(this), size: 35, typeahead: !0, tabIndex: H++ }), o.a.createElement(p.a, { label: "transfer.amount", amount: f, onChange: this.onAmountChanged.bind(this), asset: B.length > 0 && i ? i.get("id") : s || B[0], assets: B, display_balance: j, tabIndex: H++, allowNaN: !0 }), y && y.length ? o.a.createElement("label", { className: "right-label" }, y.length) : null, o.a.createElement(A.Form.Item, { label: k.a.translate("transfer.memo"), validateStatus: y && t ? "warning" : "", help: y && t ? k.a.translate("transfer.warn_name_unable_read_memo") : "" }, o.a.createElement(A.Tooltip, { placement: "top", title: k.a.translate("tooltip.memo_tip") }, o.a.createElement(A.Input.TextArea, { style: { marginBottom: 0 }, rows: 3, value: y, tabIndex: H++, onChange: this.onMemoChanged.bind(this) }))), o.a.createElement(p.a, { label: "transfer.fee", disabled: !0, amount: M, onChange: this.onFeeChanged.bind(this), asset: O.length && c ? c.asset_id : 1 === O.length ? O[0] : w || O[0], assets: O, display_balance: I, tabIndex: H++, error: !1 === this.state.hasPoolBalance ? "transfer.errors.insufficient" : null, scroll_length: 2 })) : null))) : null } }]), r }() , I = function(e) { function t() { return z(this, t), B(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return O(t, o.a.Component), C(t, [{ key: "render", value: function() { return o.a.createElement(j, E({}, this.props, { ref: this.props.refCallback })) } }]), t }(); I = Object(x.a)(I, { listenTo: function() { return [h.a] }, getProps: function(e) { return { currentAccount: h.a.getState().currentAccount, passwordAccount: h.a.getState().passwordAccount, tabIndex: e.tabIndex || 0 } } }), t.a = I } ).call(this, r(126).Buffer) } , function(e, t, r) { "use strict"; (function(e) { var a = r(327) , n = r(1956) , i = r(0) , o = r.n(i) , s = r(45) , l = r(442) , c = r(2) , u = r.n(c) , d = r(557) , p = r(88) , h = r(192) , m = r(570) , f = r(185) , g = r(93) , _ = r(31) , b = r(26) , y = r(11) , v = r.n(y) , w = r(37) , k = r(15) , x = r(67) , S = r(761) , A = r(39) , E = r(24) , T = r(43) , C = r(33) , z = r(357) , B = r(840) , O = r(7) , P = r(4) , j = r.n(P) , I = r(183) , M = r(134) , N = r(78) , R = r(82) , q = r(330) , D = r(152) , L = r(270) , F = r(5) , U = r(345) , W = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , H = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , K = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function V(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function G(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function Y(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var J = function(t) { function r(e) { V(this, r); var t = G(this, (r.__proto__ || Object.getPrototypeOf(r)).call(this, e)); return t.state = { selectedAsset: "", selectedAssetId: "", selectedGateway: "", fee: 0, feeAmount: new w.a({ amount: 0 }), feeStatus: {}, hasBalance: null, hasPoolBalance: null, feeError: null, fee_asset_id: "1.3.0", gateFee: 0, quantity: 0, address: "", memo: "", userEstimate: null, addressError: !1, gatewayStatus: N.a, withdrawalCurrencyId: "", withdrawalCurrencyBalance: null, withdrawalCurrencyBalanceId: "", withdrawalCurrencyPrecision: "", preferredCurrencyPrecision: "", precisionDifference: "", coreAsset: "", convertedBalance: "", estimatedValue: "", options_is_valid: !1, btsAccountName: "", btsAccount: "" }, t.handleQrScanSuccess = t.handleQrScanSuccess.bind(t), t._checkFeeStatus = Object(a.a)(t._checkFeeStatus.bind(t), 250), t._updateFee = Object(a.a)(t._updateFee.bind(t), 250), t } return Y(r, o.a.Component), K(r, [{ key: "componentWillMount", value: function() { this._updateFee(this.state), this._checkFeeStatus(); var e = {} , t = I.a.call(this, "withdrawalAllowed"); e.coinToGatewayMapping = t, this.props.initialSymbol && ((e = Object(n.a)(e, this._getAssetAndGatewayFromInitialSymbol(this.props.initialSymbol))).gatewayStatus = M.d.call(this, e.selectedAsset, "withdrawalAllowed")), this.setState(e), this.setState(this._getAssetPairVariables(this.props, e)) } }, { key: "_getAssetAndGatewayFromInitialSymbol", value: function(e) { var t = Object(M.a)(e) , r = t.selectedAsset , a = t.selectedGateway , n = 0; return a && this.props.backedCoins.get(a).forEach(function(e) { e.symbol != [a, r].join(".") && e.backingCoinType != r || (n = e.gateFee) }), { selectedAsset: r, selectedGateway: a, gateFee: n } } }, { key: "componentWillReceiveProps", value: function(e) { if (this.setState(this._getAssetPairVariables(e)), e.account !== this.props.account && (this._checkFeeStatus(), this._updateFee()), "" != this.state.address && this.onAddressSelected(this.state.address), e.initialSymbol !== this.props.initialSymbol) { var t = this._getAssetAndGatewayFromInitialSymbol(e.initialSymbol); t.gatewayStatus = M.d.call(this, t.selectedAsset, "withdrawalAllowed"), t.address = "", t.quantity = 0, this.setState(t) } } }, { key: "componentWillUpdate", value: function(e, t) { var r = e.preferredCurrency , a = e.assets , n = t.selectedAsset , i = t.quantity , o = t.selectedGateway; if (r && n && i) { if (r === this.props.preferredCurrency && n === this.state.selectedAsset && i === this.state.quantity) return; var s = null , l = null , c = o + "." + n; a.forEach(function(e) { (e = e.get ? e : v.a.fromJS(e)).get("symbol") === r && (s = e), e.get("symbol") === c && (l = e) }), l && s && (s.get("precision") !== l.get("precision") && (s = s.set("precision", l.get("precision"))), g.a.getMarketStats(s, l, !0)) } } }, { key: "_getAssetPairVariables", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.state , r = e.assets , a = e.marketStats , n = e.balances , i = e.preferredCurrency , o = t.selectedAsset , s = t.quantity , l = t.selectedGateway , c = t.gateFee; isNaN(c) && (c = 0), s = Number(s), isNaN(s) && (s = 0), c = Number(c); var u = l ? l + "." + o : o; "RUDEX" === l && "PPY" === o && (u = "PPY"); var d = 0 , p = null , h = null , m = null , f = 0 , g = null , _ = null , b = 0 , y = r.find(function(e) { return e.symbol === u }) , w = void 0 , k = void 0; if (n && n.forEach(function(e) { e && e.toJS && y && e.get("asset_type") == y.id && (w = e, p = e.get("id"), d = e.get("balance")) }), d || (d = 0), i && o) { var S = null; r.forEach(function(e) { "1.3.0" == (e = e.get ? e : v.a.fromJS(e)).get("id") && (g = e), e.get("symbol") == i && (S = e, m = e.get("precision")), e.get("symbol") == l + "." + o && (k = e, h = e.get("precision")), e.get("symbol") == o && (k = e, h = e.get("precision")) }), m && h && (f = h - m), s && k && S && (b = s * x.a.getFinalPrice(g, k, S, a, !0, !0), f > 0 && (b *= Math.pow(10, f))) } if (Number.isFinite(d) && h) { for (var A = String(d), E = A.length; E < h; ) A = "0" + A, ++E; var T = A.substr(0, E - h) , C = A.substr(E - h); T || (T = "0", C = A), _ = Number(T + "." + C) } var z = I.b.call(this) , B = o && l , O = !1; g ? o == g.get("symbol") && (O = !0) : "BTS" == o && (O = !0); var P = 0 === s || Object(D.a)(s, k, this.state.feeAmount, w) , j = this._getAvailableAssets().fee_asset_types; return { withdrawalCurrency: y, withdrawalCurrencyId: y ? y.id : null, withdrawalCurrencyBalance: d, withdrawalCurrencyBalanceId: p, withdrawalCurrencyPrecision: h, preferredCurrencyPrecision: m, precisionDifference: f, coreAsset: g, convertedBalance: _, estimatedValue: b, nAvailableGateways: z, assetAndGateway: B, isBTS: O, canCoverWithdrawal: P, fee_asset_types: j } } }, { key: "_getAvailableAssets", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , t = this.props.account , r = e.feeStatus; var a = []; if (!t || !t.get("balances")) return { fee_asset_types: a }; var n = t.get("balances").toJS(); for (var i in a = Object.keys(n).sort(k.a.sortID), n) { var o = F.ChainStore.getObject(i) , s = F.ChainStore.getObject(n[i]); if (s && 0 === s.get("balance") && -1 !== a.indexOf(i) && a.splice(a.indexOf(i), 1), o) { var l = !1; try { l = new w.i({ base: new w.a(o.getIn(["options", "core_exchange_rate", "base"]).toJS()), quote: new w.a(o.getIn(["options", "core_exchange_rate", "quote"]).toJS()) }).isValid() } catch (e) { l = !1 } "1.3.0" === o.get("id") || l || a.splice(a.indexOf(i), 1) } } return { fee_asset_types: a = a.filter(function(e) { return function(e) { return void 0 === r[e] || r[e] && r[e].hasPoolBalance }(e) && function(e) { return void 0 === r[e] || r[e] && r[e].hasBalance }(e) }) } } }, { key: "_checkFeeStatus", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , r = this.props.account; if (r) { var a = this._getAvailableAssets(t).fee_asset_types , n = {} , i = [] , o = t.selectedAsset.toLowerCase() + ":" + t.address + (t.memo ? ":" + t.memo : ""); a.forEach(function(e) { i.push(Object(D.b)({ accountID: r.get("id"), feeID: e, options: ["price_per_kbyte"], data: { type: "memo", content: o } })) }), Promise.all(i).then(function(r) { a.forEach(function(e, t) { n[e] = r[t] }), k.a.are_equal_shallow(t.feeStatus, n) || e.setState({ feeStatus: n }) }).catch(function(e) { console.error(e) }) } } }, { key: "_updateFee", value: function() { var e = this , t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state , r = this.props.account , a = t.fee_asset_id , n = this._getAvailableAssets(t).fee_asset_types; if (1 === n.length && n[0] !== a && (a = n[0]), !r) return null; var i = t.selectedAsset.toLowerCase() + ":" + t.address + (t.memo ? ":" + t.memo : ""); Object(D.b)({ accountID: r.get("id"), feeID: a, options: ["price_per_kbyte"], data: { type: "memo", content: i } }).then(function(t) { var r = t.fee , a = t.hasBalance , n = t.hasPoolBalance; e.unMounted || e.setState({ feeAmount: r, hasBalance: a, hasPoolBalance: n, feeError: !a || !n }) }) } }, { key: "_getBindingHelpers", value: function() { return { onFocus: this.onFocusAmount.bind(this), onBlur: this.onBlurAmount.bind(this) } } }, { key: "onFeeChanged", value: function(e) { var t = e.asset; Object(U.isObject)(t) && (t = t.get("id")), this.setState({ fee_asset_id: t }, this._updateFee) } }, { key: "onAssetSelected", value: function(e) { var t = this , r = I.c.call(this, e.id, "withdrawalAllowed") , a = r.selectedAsset , n = r.selectedGateway , i = R.a.getLast(e.id.toLowerCase()); this.setState({ selectedAsset: a, selectedGateway: n, gateFee: e.gateFee, address: i, isBTS: !1 }, function() { t.setState(t._getAssetPairVariables(), t.updateFee) }) } }, { key: "onAssetChanged", value: function(e) { var t = {}; "BTS" == (e = e.toUpperCase()) && (t = { isBTS: !0 }), e || (t = { selectedAsset: "", selectedGateway: "", addressError: !1, fee: 0, isBTS: !1 }), t.estimatedValue = 0, t.memo = "", t.address = "", this.setState(t) } }, { key: "onGatewayChanged", value: function(e) { var t = this; this.setState({ selectedGateway: e }, function() { t.setState(t._getAssetPairVariables(), t.updateFee) }) } }, { key: "onQuantityChanged", value: function(e) { var t = null; if (parseFloat(e.target.value) == e.target.value) t = e.target.value.trim(); else { var r = e.target.value.trim().replace(/[^\d.,-]/g, "") , a = r.match(/(\,\d{1,2})$/g) , n = a ? a.length : 0; a && n && (r = r.replace(",", ".")), t = parseFloat(r.replace(",", "")) || 0 } this.setState({ quantity: t }) } }, { key: "onEstimateChanged", value: function(e) { this.setState({ userEstimate: e.target.value }) } }, { key: "onFocusAmount", value: function(e) { var t = e.target.value; "0" == String(t) && (e.target.value = "") } }, { key: "onBlurAmount", value: function(e) { "" == e.target.value && (e.target.value = 0) } }, { key: "onAddressChanged", value: function(e) { this.setState({ address: e }) } }, { key: "onAddressSelected", value: function(e) { this.validateAddress(e), this.setState({ address: e }, this._updateFee) } }, { key: "_getBackingAssetProps", value: function() { var e = this.state , t = e.selectedGateway , r = e.selectedAsset; return this.props.backedCoins.get(t.toUpperCase(), []).find(function(e) { var t = e.backingCoinType || e.backingCoin; if (-1 !== t.toUpperCase().indexOf("EOS.")) { var a = t.split(".") , n = H(a, 2); n[0]; t = n[1] } return t === r }) } }, { key: "validateAddress", value: function(e) { var t = this , r = this.state , a = r.selectedGateway , n = r.gatewayStatus , i = this._getBackingAssetProps(); Object(R.m)({ url: n[a].baseAPI.BASE, walletType: i.walletType, newAddress: e, output_coin_type: n[a].addressValidatorAsset ? this.state.selectedGateway.toLowerCase() + "." + this.state.selectedAsset.toLowerCase() : null, method: n[a].addressValidatorMethod || null }).then(function(e) { t.setState({ addressError: !e }) }) } }, { key: "onSelectedAddressChanged", value: function(e) { var t = this.state.selectedAsset.toLowerCase(); R.a.setLast({ wallet: t, address: e }), this.validateAddress(e), this.setState({ address: e }, this._updateFee) } }, { key: "onMemoChanged", value: function(e) { this.setState({ memo: e.target.value }, this._updateFee) } }, { key: "onClickAvailableBalance", value: function(e) { this.setState({ quantity: e }) } }, { key: "onDropDownList", value: function() { R.a.has(this.state.selectedAsset.toLowerCase()) && (!1 === this.state.options_is_valid && this.setState({ options_is_valid: !0 }), !0 === this.state.options_is_valid && this.setState({ options_is_valid: !1 })) } }, { key: "onSubmit", value: function() { var t = this , r = this.state , a = r.withdrawalCurrencyId , n = r.withdrawalCurrencyBalance , i = r.withdrawalCurrencyPrecision , o = r.quantity , s = r.withdrawalCurrency , l = r.selectedGateway , c = r.selectedAsset , u = r.address , d = r.isBTS , p = r.gateFee , h = r.memo , m = r.btsAccount , f = r.feeAmount , g = this.state.gatewayStatus[l] , _ = g.assetWithdrawlAlias && g.assetWithdrawlAlias[c.toLowerCase()] || c.toLowerCase() , b = Object(M.e)(s.symbol, this.props.backedCoins) , y = this.props.intermediateAccounts.find(function(e) { return e && (e.get("id") === b || e.get("name") === b) }); if (!y) throw new Error("Unable to find intermediateAccount"); if (R.a.has(_)) { var v = R.a.get(_); -1 == v.indexOf(u) && (v.push(u), R.a.set({ wallet: _, addresses: v })) } else { var k = []; k.push(u), R.a.set({ wallet: _, addresses: k }) } R.a.setLast({ wallet: _, address: u }); var x = new w.a({ asset_id: a, precision: i, real: o }) , S = new w.a({ asset_id: a, precision: i, real: 0 }); null != n && (S = x.clone(n)); var E = new w.a({ asset_id: a, precision: i, real: p }); x.plus(E), S.lt(x) && (x = S); var T = "" , C = ""; d ? (T = h ? new e(h,"utf-8") : "", C = m.get("id")) : (T = (_ = g.useFullAssetName ? l.toLowerCase() + "." + _ : _) + ":" + u + (h ? ":" + new e(h,"utf-8") : ""), C = y.get("id")); var z = [this.props.account.get("id"), C, x.getAmount(), a, T, null, f ? f.asset_id : "1.3.0"]; A.a.transfer.apply(A.a, z).then(function() { t.props.hideModal() }) } }, { key: "onBTSAccountNameChanged", value: function(e) { e || this.setState({ btsAccount: null }), this.setState({ btsAccountName: e, btsAccountError: null }) } }, { key: "onBTSAccountChanged", value: function(e) { this.setState({ btsAccount: e, btsAccountError: null }) } }, { key: "_renderStoredAddresses", value: function() { var e = this.state , t = e.selectedAsset , r = e.address , a = R.a.get(t.toLowerCase()); if (a.length > 1 && e.options_is_valid) return o.a.createElement("div", { className: a.length ? "blocktrades-options" : "blocktrades-disabled-options" }, a.filter(function(e) { return e != r }).map(function(e, t) { return o.a.createElement("a", { key: t, onClick: this.onSelectedAddressChanged.bind(this, e) }, e) }, this)) } }, { key: "handleQrScanSuccess", value: function(e) { this.state.quantity ? this.setState({ address: e.address }) : this.setState({ address: e.address, quantity: e.amount }), this.onAddressSelected(e.address) } }, { key: "render", value: function() { var e = this.state , t = this.props , r = t.preferredCurrency , a = t.assets , n = t.balances , i = this.state , s = i.selectedAsset , c = i.selectedGateway , h = i.gatewayStatus , m = i.addressError , f = (i.gateFee, i.withdrawalCurrencyBalanceId) , g = i.convertedBalance , _ = i.nAvailableGateways , b = i.assetAndGateway , y = i.isBTS , v = i.canCoverWithdrawal , x = i.fee_asset_types , S = i.quantity , A = i.address , E = i.btsAccount , T = i.coinToGatewayMapping , P = [] , M = this._getBackingAssetProps() , N = null , D = null; M && M.minAmount ? N = M.precision ? k.a.format_number(M.minAmount / k.a.get_asset_precision(M.precision), M.precision, !1) : M.minAmount : M && (N = "gateFee"in M && (2 * M.gateFee || 0 + M.transactionFee) || 0), M && M.maxAmount && (D = M.maxAmount), n.forEach(function(e) { var t = e.get("asset_type") , r = a.get(t); if (r && e.get("balance") > 0) { var n = r.symbol.split(".") , i = H(n, 2) , o = i[0] , s = i[1] , l = s || o; P.push(l) } }); var F = this._getBindingHelpers() , U = F.onFocus , W = F.onBlur , K = y ? !S || !E : !b || !S || !A || !v || m || S < N , V = R.a.get(s.toLowerCase()) , G = g && this.state.withdrawalCurrency ? new w.a({ real: g, asset_id: this.state.withdrawalCurrency.id, precision: this.state.withdrawalCurrency.precision }) : new w.a({ amount: 0, asset_id: this.state.withdrawalCurrency ? this.state.withdrawalCurrency.id : void 0 }); return this.state.feeAmount.asset_id === G.asset_id && G.minus(this.state.feeAmount), o.a.createElement(O.Modal, { title: j.a.translate("modal.withdraw.header"), visible: this.props.visible, closeable: !1, wrapClassName: this.props.modalId, onCancel: this.props.hideModal, id: this.props.modalId, footer: [o.a.createElement(O.Button, { key: "submit", onClick: this.onSubmit.bind(this), disabled: K }, j.a.translate("modal.withdraw.withdraw")), o.a.createElement(O.Button, { key: "cancel", onClick: this.props.close }, j.a.translate("modal.withdraw.cancel"))] }, o.a.createElement("div", { className: "grid-block vertical no-overflow" }, o.a.createElement("div", { className: "modal__body", style: { paddingTop: 0 } }, o.a.createElement("div", { style: { marginBottom: "1em" } }, o.a.createElement(l.a, { onSelect: this.onAssetSelected.bind(this), onChange: this.onAssetChanged.bind(this), include: P, selectOnBlur: !0, defaultValue: s, includeBTS: !1, usageContext: "withdraw" })), y || !s || c ? null : o.a.createElement(u.a, { content: "modal.withdraw.no_gateways" }), o.a.createElement("div", { style: { marginBottom: "1em" } }, c ? I.d.call(this, { selectedGateway: c, gatewayStatus: h, nAvailableGateways: _, availableGateways: T[s], error: !1, onGatewayChanged: this.onGatewayChanged.bind(this), selectedAsset: s, balances: n, assets: a }) : null), b || y ? o.a.createElement("div", { style: { marginBottom: "1em" } }, r ? o.a.createElement("div", { style: { fontSize: "0.8em", float: "right" } }, o.a.createElement(u.a, { content: "modal.withdraw.available" }), o.a.createElement("span", { style: { color: v ? null : "red", cursor: "pointer", textDecoration: "underline" }, onClick: this.onClickAvailableBalance.bind(this, G.getAmount({ real: !0 })) }, f ? o.a.createElement(z.a, { balance: f }) : o.a.createElement("span", null, "0.00", " ", o.a.createElement(C.a, { hide_amount: !0, amount: 0, asset: G.asset_id })))) : null, o.a.createElement("label", { className: "left-label" }, o.a.createElement(u.a, { content: "modal.withdraw.quantity" })), o.a.createElement(d.a, { value: S || "", onChange: this.onQuantityChanged.bind(this), onFocus: U, onBlur: W, allowNaN: !0, placeholder: j.a.translate("gateway.limit_withdraw_asset", { min: N || 0, max: D || j.a.translate("gateway.limit_withdraw_asset_none") }) }), v && N && S && S < N ? o.a.createElement(u.a, { component: "div", className: "error-msg", style: { position: "absolute", right: 0, textTransform: "uppercase", fontSize: 13 }, content: "gateway.limit_withdraw_asset_min", min: N, coin: c + "." + s }) : null, v && D && S && S > D ? o.a.createElement(u.a, { component: "div", className: "error-msg", style: { position: "absolute", right: 0, textTransform: "uppercase", fontSize: 13 }, content: "gateway.limit_withdraw_asset_max", max: D, coin: c + "." + s }) : null, !b && !y || v ? null : o.a.createElement(u.a, { content: "modal.withdraw.cannot_cover", component: "div", className: "error-msg", style: { position: "absolute", right: 0, textTransform: "uppercase", fontSize: 13 } })) : null, b && !y ? o.a.createElement("div", { style: { marginBottom: "1em" } }, o.a.createElement("label", { className: "left-label" }, o.a.createElement(u.a, { component: "span", content: "modal.withdraw.address" })), m ? o.a.createElement("div", { className: "has-error", style: { position: "absolute", right: "1em", marginTop: "-30px" } }, o.a.createElement(u.a, { content: "modal.withdraw.address_not_valid" })) : null, o.a.createElement("div", null, o.a.createElement("div", { className: "inline-label" }, o.a.createElement(O.Select, { showSearch: !0, style: { width: "100%" }, value: A, onSearch: this.onAddressChanged.bind(this), onSelect: this.onAddressSelected.bind(this) }, A && -1 == V.indexOf(A) ? o.a.createElement(O.Select.Option, { value: A }, A) : null, V.map(function(e) { return o.a.createElement(O.Select.Option, { value: e }, e) })), o.a.createElement("span", null, o.a.createElement(B.a, { label: "Scan", onSuccess: this.handleQrScanSuccess }))))) : null, y ? o.a.createElement("div", { style: { marginBottom: "1em" } }, o.a.createElement(L.a, { label: "transfer.to", accountName: e.btsAccountName, onChange: this.onBTSAccountNameChanged.bind(this), onAccountChanged: this.onBTSAccountChanged.bind(this), account: e.btsAccountName, size: 60, error: e.btsAccountError })) : null, y ? o.a.createElement("div", null, o.a.createElement("label", { className: "left-label" }, o.a.createElement(u.a, { content: "modal.withdraw.memo" })), o.a.createElement("input", { type: "text", value: e.memo, onChange: this.onMemoChanged.bind(this) })) : null, b || y ? o.a.createElement("div", { className: "grid-block no-overflow wrap shrink" }, o.a.createElement("div", { className: "small-12 medium-6", style: { paddingRight: 5 } }, o.a.createElement("label", { className: "left-label" }, o.a.createElement(u.a, { content: "transfer.fee" })), o.a.createElement(q.a, { asset: this.state.fee_asset_id, assets: x, amount: this.state.feeAmount.getAmount({ real: !0 }), onChange: this.onFeeChanged.bind(this) })), o.a.createElement("div", { className: "small-12 medium-6" }, o.a.createElement("label", { className: "left-label" }, o.a.createElement(u.a, { content: "gateway.fee" })), o.a.createElement("div", { className: "grid-block no-overflow wrap shrink" }, o.a.createElement(d.a, { placeholder: "0.0", id: "baseMarketFee", value: M && "gateFee"in M ? M.gateFee : 0, disabled: !0, addonAfter: o.a.createElement("span", null, o.a.createElement(p.a, { noTip: !0, name: M.symbol })) })))) : null))) } }]), r }() , X = Object(_.a)(J, { listenTo: function() { return [h.a, m.a, b.a, f.a] }, getProps: function() { return { backedCoins: h.a.getState().backedCoins, preferredCurrency: b.a.getSetting("unit"), marketStats: f.a.getState().allMarketStats } } }) , Z = function(e) { function t() { return V(this, t), G(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return Y(t, o.a.Component), K(t, [{ key: "render", value: function() { var e = this.props; if (!e.account) return null; var t = e.account.get("balances") , r = v.a.fromJS({}); return t.forEach(function(e, t) { try { var a = F.ChainStore.getAsset(t).toJS(); r = r.set(t, a) } catch (e) {} }), e.backedCoins.forEach(function(e) { e.forEach(function(e) { if (e.withdrawalAllowed) try { var t = F.ChainStore.getAsset(e.symbol).toJS(); r.has(t.id) || (r = r.set(t.id, t)) } catch (e) {} }) }), o.a.createElement(S.a, W({ wrap: X }, e, { balances: e.account.get("balances"), assets: r })) } }]), t }(); Z.propTypes = { account: T.a.ChainAccount.isRequired, withdrawAssets: T.a.ChainAssetsList, intermediateAccounts: T.a.ChainAccountsList }, Z.defaultProps = { account: "", withdrawAssets: v.a.List(), intermediateAccounts: v.a.List() }; var Q = Object(_.a)(Object(s.a)(Z), { listenTo: function() { return [E.a] }, getProps: function() { return { account: E.a.getState().currentAccount } } }) , $ = function(e) { function t() { return V(this, t), G(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return Y(t, o.a.Component), K(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return !(!this.props.visible && !e.visible) } }, { key: "render", value: function() { var e = this , t = v.a.List() , r = v.a.List(); return this.props.backedCoins.forEach(function(a) { a.forEach(function(a) { if (a.withdrawalAllowed) { t.push(a.symbol); var n = Object(M.e)(a.symbol, e.props.backedCoins); n && !r.includes(n) && (r = r.push(n)) } }) }), o.a.createElement(Q, W({}, this.props, { id: this.props.modalId, close: this.props.hideModal, withdrawAssets: t, intermediateAccounts: r })) } }]), t }(); t.a = $ } ).call(this, r(126).Buffer) } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(33) , o = r(2238) , s = r(3) , l = r.n(s) , c = r(2) , u = r.n(c) , d = r(4) , p = r.n(d) , h = r(15) , m = r(770) , f = r(119) , g = r(177) , _ = r(45) , b = r(43) , y = r(5) , v = r(31) , w = r(26) , k = r(1) , x = r.n(k) , S = r(7) , A = r(445) , E = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function T(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function C(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function z(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var B = y.ChainTypes.operations; r(542); var O = Object.keys(B) , P = function(e) { function t() { return T(this, t), C(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return z(t, n.a.Component), E(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.color !== this.props.color || e.type !== this.props.type } }, { key: "render", value: function() { var e = p.a.translate("transaction.trxTypes") , t = l()("label", this.props.color || "info"); return n.a.createElement("span", { className: t }, e[O[this.props.type]]) } }]), t }() , j = function(e) { function t(e) { return T(this, t), C(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)) } return z(t, n.a.Component), E(t, [{ key: "shouldComponentUpdate", value: function(e) { var t = this.props , r = t.block , a = t.dynGlobalObject.get("last_irreversible_block_num"); return e.dynGlobalObject !== this.props.dynGlobalObject || r > a || this.props.color !== e.color } }, { key: "render", value: function() { var e = this.props , t = e.block , r = e.fee , a = e.color , s = e.type , l = e.hideOpLabel , c = e.hidePending , d = this.props.dynGlobalObject.get("last_irreversible_block_num") , f = null; return !c && t > d && (f = n.a.createElement("span", null, "(", n.a.createElement(u.a, { content: "operation.pending", blocks: t - d }), ")")), r.amount = parseInt(r.amount, 10), n.a.createElement("tr", null, this.props.includeOperationId ? n.a.createElement("td", { style: { textAlign: "left" } }, this.props.operationId) : null, l ? null : n.a.createElement("td", { style: { textAlign: "left" }, className: "left-td column-hide-tiny" }, n.a.createElement(S.Tooltip, { placement: "bottom", title: p.a.translate("tooltip.show_block", { block: h.a.format_number(this.props.block, 0) }) }, n.a.createElement(o.a, { className: "inline-block", to: "/block/" + this.props.block + "/" + this.props.txIndex }, n.a.createElement(P, { color: a, type: s })))), n.a.createElement("td", { style: { padding: "8px 5px", textAlign: "left" } }, n.a.createElement("div", null, n.a.createElement("span", null, this.props.info)), n.a.createElement("div", { style: { fontSize: 14, paddingTop: 5 } }, f ? n.a.createElement("span", null, " - ", f) : null)), !this.props.hideFee && n.a.createElement("td", { style: { textAlign: "left" } }, n.a.createElement(i.a, { amount: r.amount, asset: r.asset_id })), n.a.createElement("td", null, this.props.hideDate ? null : n.a.createElement(m.a, { block_number: t, fullDate: this.props.fullDate }))) } }]), t }(); j.propTypes = { dynGlobalObject: b.a.ChainObject.isRequired }, j.defaultProps = { dynGlobalObject: "2.1.0", tempComponent: "tr" }, j = Object(_.a)(j); var I = function(e) { function t() { var e, r, a; T(this, t); for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o]; return r = a = C(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(i))), a.state = { labelColor: "info" }, a.changeColor = function(e) { a.state.labelColor !== e && a.setState({ labelColor: e }) } , C(a, r) } return z(t, n.a.Component), E(t, [{ key: "componentWillReceiveProps", value: function(e) { e.marketDirections !== this.props.marketDirections && this.forceUpdate() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !(!this.props.op || !e.op) && (!h.a.are_equal_shallow(e.op[1], this.props.op[1]) || e.marketDirections !== this.props.marketDirections || this.state.labelColor !== t.labelColor) } }, { key: "linkToAccount", value: function(e) { return e ? h.a.is_object_id(e) ? n.a.createElement(f.a, { account: e }) : n.a.createElement(o.a, { to: "/account/" + e }, e) : n.a.createElement("span", null, "-") } }, { key: "linkToAsset", value: function(e) { return e ? h.a.is_object_id(e) ? n.a.createElement(g.a, { asset: e }) : n.a.createElement(o.a, { to: "/asset/" + e }, e) : n.a.createElement("span", null, "-") } }, { key: "render", value: function() { var e, t = this.props, r = t.op, a = t.block; if (e = Object(A.a)(O[r[0]], this.props, { fromComponent: "operation", linkToAccount: this.linkToAccount, linkToAsset: this.linkToAsset, changeColor: this.changeColor }), this.props.csvExportMode) { var o = y.ChainStore.getObject("2.0.0") , s = y.ChainStore.getObject("2.1.0") , l = h.a.calc_block_time(a, o, s); return n.a.createElement("div", null, n.a.createElement("div", null, l ? l.toLocaleString() : ""), n.a.createElement("div", null, O[r[0]]), n.a.createElement("div", null, e), n.a.createElement("div", null, n.a.createElement(i.a, { amount: parseInt(r[1].fee.amount, 10), asset: r[1].fee.asset_id }))) } return (e ? n.a.createElement(j, { operationId: this.props.operationId, txIndex: this.props.txIndex, includeOperationId: this.props.includeOperationId, block: a, type: r[0], color: this.state.labelColor, fee: r[1].fee, hideOpLabel: this.props.hideOpLabel, hideDate: this.props.hideDate, info: e, hideFee: this.props.hideFee, hidePending: this.props.hidePending, fullDate: this.props.fullDate }) : null) || n.a.createElement("tr", null) } }]), t }(); I.defaultProps = { op: [], current: "", block: null, hideOpLabel: !1, csvExportMode: !1 }, I.propTypes = { op: x.a.array.isRequired, current: x.a.string, block: x.a.number, csvExportMode: x.a.bool }, I = Object(v.a)(I, { listenTo: function() { return [w.a] }, getProps: function() { return { marketDirections: w.a.getState().marketDirections } } }), t.a = I } , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(31) , o = r(4) , s = r.n(o) , l = r(24) , c = r(2238) , u = r(2) , d = r.n(u) , p = r(27) , h = r(448) , m = r(25) , f = r(44) , g = r(26) , _ = r(195) , b = r(3) , y = r.n(b) , v = r(39) , w = r(310) , k = r(444) , x = r(19) , S = r(190) , A = r(75) , E = r(40) , T = r(64) , C = r(5) , z = r(359) , B = r(53) , O = r.n(B) , P = r(15) , j = r(2259) , I = r(346) , M = r(42) , N = r(7) , R = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function q(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var D = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e._onBackupDownload = function() { e.setState({ step: 3 }) } , e.state = { validAccountName: !1, accountName: "", validPassword: !1, registrar_account: null, loading: !1, hide_refcode: !0, show_identicon: !1, step: 1 }, e.onFinishConfirm = e.onFinishConfirm.bind(e), e.accountNameInput = null, e.scrollToInput = e.scrollToInput.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), R(t, [{ key: "componentWillMount", value: function() { m.a.changeSetting({ setting: "passwordLogin", value: !1 }) } }, { key: "componentDidMount", value: function() { O.a.rebuild(), this.scrollToInput() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !P.a.are_equal_shallow(t, this.state) } }, { key: "isValid", value: function() { var e = 0 === l.a.getMyAccounts().length , t = this.state.validAccountName; return x.a.getWallet() || (t = t && this.state.validPassword), e || (t = t && this.state.registrar_account), t } }, { key: "onAccountNameChange", value: function(e) { var t = {}; void 0 !== e.valid && (t.validAccountName = e.valid), void 0 !== e.value && (t.accountName = e.value), this.state.show_identicon || (t.show_identicon = !0), this.setState(t) } }, { key: "onPasswordChange", value: function(e) { this.setState({ validPassword: e.valid }) } }, { key: "onFinishConfirm", value: function(e) { var t = this; e.included && e.broadcasted_transaction && (A.a.unlisten(this.onFinishConfirm), A.a.reset(), Object(C.FetchChain)("getAccount", this.state.accountName, void 0, q({}, this.state.accountName, !0)).then(function() { console.log("onFinishConfirm"), t.props.history.push("/wallet/backup/create?newAccount=true") })) } }, { key: "scrollToInput", value: function() { I.scroller.scrollTo("scrollToInput", { duration: 1500, delay: 100, smooth: !0, containerId: "accountForm" }) } }, { key: "createAccount", value: function(e) { var t = this , r = this.refs.refcode ? this.refs.refcode.value() : null , a = l.a.getState().referralAccount; f.a.unlock().then(function() { t.setState({ loading: !0 }), v.a.createAccount(e, t.state.registrar_account, a || t.state.registrar_account, 0, r).then(function() { t.state.registrar_account ? (Object(C.FetchChain)("getAccount", e, void 0, q({}, e, !0)).then(function() { t.setState({ step: 2, loading: !1 }) }), A.a.listen(t.onFinishConfirm)) : Object(C.FetchChain)("getAccount", e, void 0, q({}, e, !0)).then(function() { t.setState({ step: 2, loading: !1 }) }) }).catch(function(r) { console.log("ERROR AccountActions.createAccount", r); var a = r.base && r.base.length && r.base.length > 0 ? r.base[0] : "unknown error"; r.remote_ip && (a = r.remote_ip[0]), N.Notification.error({ message: s.a.translate("notifications.account_create_failure", { account_name: e, error_msg: a }) }), t.setState({ loading: !1 }) }) }).catch(function() {}) } }, { key: "createWallet", value: function(e) { return T.a.setWallet("default", e).then(function() { console.log("Congratulations, your wallet was successfully created.") }).catch(function(e) { console.log("CreateWallet failed:", e), N.Notification.error({ message: s.a.translate("notifications.account_wallet_create_failure", { error_msg: e }) }) }) } }, { key: "onSubmit", value: function(e) { var t = this; if (e.preventDefault(), this.isValid()) { var r = this.accountNameInput.getValue(); if (x.a.getWallet()) this.createAccount(r); else { var a = this.refs.password.value(); this.createWallet(a).then(function() { return t.createAccount(r) }) } } } }, { key: "onRegistrarAccountChange", value: function(e) { this.setState({ registrar_account: e }) } }, { key: "_renderAccountCreateForm", value: function() { var e = this , t = this.state.registrar_account , r = l.a.getMyAccounts() , a = 0 === r.length , i = x.a.getWallet() , o = this.isValid() , u = !1 , p = t ? C.ChainStore.getAccount(t) : null; p && p.get("lifetime_referrer") == p.get("id") && (u = !0); var h = y()("submit-button button no-margin", { disabled: !o || t && !u }); return n.a.createElement("form", { style: { maxWidth: "40rem" }, onSubmit: this.onSubmit.bind(this), noValidate: !0, className: "create-account-wrapper" }, n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, a ? n.a.createElement(d.a, { content: "wallet.create_w_a" }) : n.a.createElement(d.a, { content: "wallet.create_a" })), n.a.createElement(w.a, { ref: function(t) { t && (e.accountNameInput = t.refs.nameInput) }, cheapNameOnly: !!a, onChange: this.onAccountNameChange.bind(this), accountShouldNotExist: !0, placeholder: s.a.translate("wallet.account_public"), noLabel: !0 }), i ? null : n.a.createElement(k.a, { ref: "password", confirmation: !0, onChange: this.onPasswordChange.bind(this), noLabel: !0, checkStrength: !0 }), a ? null : n.a.createElement("div", { className: "full-width-content form-group no-overflow" }, n.a.createElement("label", null, n.a.createElement(d.a, { content: "account.pay_from" })), n.a.createElement(S.a, { account_names: r, onChange: this.onRegistrarAccountChange.bind(this) }), t && !u ? n.a.createElement("div", { style: { textAlign: "left" }, className: "facolor-error" }, n.a.createElement(d.a, { content: "wallet.must_be_ltm" })) : null), n.a.createElement("div", { className: "divider" }), this.state.loading ? n.a.createElement(E.a, { type: "three-bounce" }) : n.a.createElement("button", { style: { width: "100%" }, className: h }, n.a.createElement(d.a, { content: "account.create_account" })), n.a.createElement("div", { style: { paddingTop: 40 } }, n.a.createElement("label", null, n.a.createElement(c.a, { to: "/existing-account" }, n.a.createElement(d.a, { content: "wallet.restore" }))), n.a.createElement("label", null, n.a.createElement(c.a, { to: "/create-wallet-brainkey" }, n.a.createElement(d.a, { content: "settings.backup_brainkey" })))), !i || a ? null : n.a.createElement("div", { style: { paddingTop: 20 } }, n.a.createElement("label", null, n.a.createElement("a", { onClick: function() { e.setState({ step: 3 }) } }, n.a.createElement(d.a, { content: "wallet.go_get_started" }))))) } }, { key: "_renderAccountCreateText", value: function() { var e = x.a.getWallet() , t = 0 === l.a.getMyAccounts().length; return n.a.createElement("div", { className: "confirm-checks" }, n.a.createElement("h4", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal", paddingBottom: 15, marginTop: 0 } }, n.a.createElement(d.a, { content: "wallet.wallet_browser" })), n.a.createElement("p", null, e ? null : n.a.createElement(d.a, { content: "wallet.has_wallet", wallet_name: Object(M.m)() })), n.a.createElement(d.a, { style: { textAlign: "left" }, component: "p", content: "wallet.create_account_text" }), t ? n.a.createElement(d.a, { style: { textAlign: "left" }, component: "p", content: "wallet.first_account_paid" }) : n.a.createElement(d.a, { style: { textAlign: "left" }, component: "p", content: "wallet.not_first_account" })) } }, { key: "_renderBackup", value: function() { return n.a.createElement("div", { className: "backup-submit" }, n.a.createElement("p", null, n.a.createElement(d.a, { unsafe: !0, content: "wallet.wallet_crucial" })), n.a.createElement("div", { className: "divider" }), n.a.createElement(z.a, { noText: !0, downloadCb: this._onBackupDownload })) } }, { key: "_renderBackupText", value: function() { return n.a.createElement("div", null, n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, n.a.createElement(d.a, { content: "footer.backup" })), n.a.createElement("p", null, n.a.createElement(d.a, { content: "wallet.wallet_move", unsafe: !0 })), n.a.createElement("p", { className: "txtlabel warning" }, n.a.createElement(d.a, { unsafe: !0, content: "wallet.wallet_lose_warning" }))) } }, { key: "_renderGetStarted", value: function() { return n.a.createElement("div", null, n.a.createElement("table", { className: "table" }, n.a.createElement("tbody", null, n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_dashboard" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/" }, n.a.createElement(d.a, { content: "header.dashboard" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_account" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/account/" + this.state.accountName + "/overview" }, n.a.createElement(d.a, { content: "wallet.link_account" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_deposit" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/deposit-withdraw" }, n.a.createElement(d.a, { content: "wallet.link_deposit" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_transfer" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/transfer" }, n.a.createElement(d.a, { content: "wallet.link_transfer" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_settings" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/settings" }, n.a.createElement(d.a, { content: "header.settings" }))))))) } }, { key: "_renderGetStartedText", value: function() { return n.a.createElement("div", null, n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, n.a.createElement(d.a, { content: "wallet.congrat" })), n.a.createElement("p", null, n.a.createElement(d.a, { content: "wallet.tips_explore" })), n.a.createElement("p", null, n.a.createElement(d.a, { content: "wallet.tips_header" })), n.a.createElement("p", { className: "txtlabel warning" }, n.a.createElement(d.a, { content: "wallet.tips_login" }))) } }, { key: "render", value: function() { var e = this.state.step; return n.a.createElement("div", { className: "sub-content", id: "scrollToInput", name: "scrollToInput" }, n.a.createElement("div", { style: { maxWidth: "95vw" } }, 1 !== e ? n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, n.a.createElement(d.a, { content: "wallet.step_" + e })) : null, 1 === e ? this._renderAccountCreateForm() : 2 === e ? this._renderBackup() : this._renderGetStarted()), n.a.createElement("div", { style: { maxWidth: "95vw", paddingTop: "2rem" } }, 1 === e ? this._renderAccountCreateText() : 2 === e ? this._renderBackupText() : this._renderGetStartedText()), n.a.createElement(c.a, { to: "/" }, n.a.createElement("button", { className: "button primary hollow" }, n.a.createElement(d.a, { content: "wallet.back" })))) } }]), t }(); D = Object(j.a)(D); var L = Object(i.a)(D, { listenTo: function() { return [l.a] }, getProps: function() { return {} } }) , F = r(1) , U = r.n(F) , W = r(111) , H = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , K = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function V(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function G(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function Y(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var J = function(e) { function t() { V(this, t); var e = G(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { value: null, error: null, existing_account: !1 }, e.handleChange = e.handleChange.bind(e), e.onKeyDown = e.onKeyDown.bind(e), e } return Y(t, n.a.Component), K(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return t.value !== this.state.value || t.error !== this.state.error || t.account_name !== this.state.account_name || t.existing_account !== this.state.existing_account || e.searchAccounts !== this.props.searchAccounts } }, { key: "componentDidUpdate", value: function() { this.props.onChange && this.props.onChange({ valid: !this.getError() }) } }, { key: "getValue", value: function() { return this.state.value } }, { key: "setValue", value: function(e) { this.setState({ value: e }) } }, { key: "clear", value: function() { this.setState({ account_name: null, error: null, warning: null }) } }, { key: "focus", value: function() { this.refs.input.focus() } }, { key: "valid", value: function() { return !this.getError() } }, { key: "getError", value: function() { var e = this; if (null === this.state.value) return null; var t = null; if (this.state.error) t = this.state.error; else if (this.props.accountShouldExist || this.props.accountShouldNotExist) { var r = this.props.searchAccounts.find(function(t) { return t === e.state.value }); this.props.accountShouldNotExist && r && (t = s.a.translate("account.name_input.name_is_taken")), this.props.accountShouldExist && !r && (t = s.a.translate("account.name_input.not_found")) } return t } }, { key: "validateAccountName", value: function(e) { this.state.error = "" === e ? "Please enter valid account name" : C.ChainValidation.is_account_name_error(e), this.state.warning = null, this.props.cheapNameOnly ? this.state.error || C.ChainValidation.is_cheap_name(e) || (this.state.error = s.a.translate("account.name_input.premium_name_faucet")) : this.state.error || C.ChainValidation.is_cheap_name(e) || (this.state.warning = s.a.translate("account.name_input.premium_name_warning")), this.setState({ value: e, error: this.state.error, warning: this.state.warning }), this.props.onChange && this.props.onChange({ value: e, valid: !this.getError() }), (this.props.accountShouldExist || this.props.accountShouldNotExist) && v.a.accountSearch(e) } }, { key: "handleChange", value: function(e) { e.preventDefault(), e.stopPropagation(); var t = e.target.value.toLowerCase(); t = (t = t.match(/[a-z0-9\.-]+/)) ? t[0] : "", this.setState({ account_name: t }), this.validateAccountName(t) } }, { key: "onKeyDown", value: function(e) { this.props.onEnter && 13 === event.keyCode && this.props.onEnter(e) } }, { key: "render", value: function() { var e = this.getError() || "" , t = y()("form-group", "account-name", { "has-error": !1 }) , r = this.state.warning; return n.a.createElement("div", { className: t }, n.a.createElement("section", null, n.a.createElement("label", { className: "left-label" }, this.props.placeholder), n.a.createElement("input", { name: "username", id: "username", type: "text", ref: "input", autoComplete: "username", placeholder: null, onChange: this.handleChange, onKeyDown: this.onKeyDown, value: this.state.account_name || this.props.initial_value })), n.a.createElement("div", { style: { textAlign: "left" }, className: "facolor-error" }, e), n.a.createElement("div", { style: { textAlign: "left" }, className: "facolor-warning" }, e ? null : r)) } }]), t }(); J.propTypes = { id: U.a.string, placeholder: U.a.oneOfType([U.a.string, U.a.object]), initial_value: U.a.string, onChange: U.a.func, onEnter: U.a.func, accountShouldExist: U.a.bool, accountShouldNotExist: U.a.bool, cheapNameOnly: U.a.bool, noLabel: U.a.bool }, J.defaultProps = { noLabel: !1 }; var X = function(e) { function t() { return V(this, t), G(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return Y(t, n.a.Component), K(t, [{ key: "render", value: function() { return n.a.createElement(W.a, { stores: [l.a], inject: { searchAccounts: function() { return l.a.getState().searchAccounts } } }, n.a.createElement(J, H({ ref: "nameInput" }, this.props))) } }]), t }() , Z = r(22) , Q = r(133) , $ = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function ee(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var te = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { validAccountName: !1, accountName: "", validPassword: !1, registrar_account: null, loading: !1, hide_refcode: !0, show_identicon: !1, step: 1, showPass: !1, generatedPassword: ("P" + C.key.get_random_key().toWif()).substr(0, 45), confirm_password: "", understand_1: !1, understand_2: !1, understand_3: !1 }, e.onFinishConfirm = e.onFinishConfirm.bind(e), e.accountNameInput = null, e.scrollToInput = e.scrollToInput.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), $(t, [{ key: "componentWillMount", value: function() { x.a.getWallet() || m.a.changeSetting({ setting: "passwordLogin", value: !0 }) } }, { key: "componentDidMount", value: function() { O.a.rebuild(), this.scrollToInput() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !P.a.are_equal_shallow(t, this.state) } }, { key: "scrollToInput", value: function() { I.scroller.scrollTo("scrollToInput", { duration: 1500, delay: 100, smooth: !0, containerId: "accountForm" }) } }, { key: "isValid", value: function() { var e = 0 === l.a.getMyAccounts().length , t = this.state.validAccountName; return x.a.getWallet() || (t = t && this.state.validPassword), e || (t = t && this.state.registrar_account), t && this.state.understand_1 && this.state.understand_2 } }, { key: "onAccountNameChange", value: function(e) { var t = {}; void 0 !== e.valid && (t.validAccountName = e.valid), void 0 !== e.value && (t.accountName = e.value), this.state.show_identicon || (t.show_identicon = !0), this.setState(t) } }, { key: "onFinishConfirm", value: function(e) { var t = this; e.included && e.broadcasted_transaction && (A.a.unlisten(this.onFinishConfirm), A.a.reset(), Object(C.FetchChain)("getAccount", this.state.accountName, void 0, ee({}, this.state.accountName, !0)).then(function() { t.props.history.push("/wallet/backup/create?newAccount=true") })) } }, { key: "_unlockAccount", value: function(e, t) { m.a.changeSetting({ setting: "passwordLogin", value: !0 }), x.a.validatePassword(t, !0, e), f.a.checkLock.defer() } }, { key: "createAccount", value: function(e, t) { var r = this , a = this.refs.refcode ? this.refs.refcode.value() : null , n = l.a.getState().referralAccount; this.setState({ loading: !0 }), v.a.createAccountWithPassword(e, t, this.state.registrar_account, n || this.state.registrar_account, 0, a).then(function() { v.a.setPasswordAccount(e), r.state.registrar_account ? (Object(C.FetchChain)("getAccount", e, void 0, ee({}, e, !0)).then(function() { r.setState({ step: 2, loading: !1 }), r._unlockAccount(e, t) }), A.a.listen(r.onFinishConfirm)) : Object(C.FetchChain)("getAccount", e, void 0, ee({}, e, !0)).then(function() { r.setState({ step: 2 }), r._unlockAccount(e, t) }) }).catch(function(t) { console.log("ERROR AccountActions.createAccount", t); var a = t.base && t.base.length && t.base.length > 0 ? t.base[0] : "unknown error"; t.remote_ip && (a = t.remote_ip[0]), N.Notification.error({ message: s.a.translate("notifications.account_create_failure", { account_name: e, error_msg: a }) }), r.setState({ loading: !1 }) }) } }, { key: "onSubmit", value: function(e) { if (e.preventDefault(), this.isValid()) { var t = this.accountNameInput.getValue() , r = this.state.generatedPassword; this.createAccount(t, r) } } }, { key: "onRegistrarAccountChange", value: function(e) { this.setState({ registrar_account: e }) } }, { key: "_onInput", value: function(e, t) { var r; this.setState((ee(r = {}, e, "confirm_password" === e ? t.target.value : !this.state[e]), ee(r, "validPassword", "confirm_password" === e ? t.target.value === this.state.generatedPassword : this.state.validPassword), r)) } }, { key: "_renderAccountCreateForm", value: function() { var e = this , t = this.state.registrar_account , r = l.a.getMyAccounts() , a = 0 === r.length , i = this.isValid() , o = !1 , c = t ? C.ChainStore.getAccount(t) : null; c && c.get("lifetime_referrer") == c.get("id") && (o = !0); var u = y()("submit-button button no-margin", { disabled: !i || t && !o }); return n.a.createElement("div", { style: { textAlign: "left" } }, n.a.createElement("form", { style: { maxWidth: "60rem" }, onSubmit: this.onSubmit.bind(this), noValidate: !0 }, n.a.createElement(X, { ref: function(t) { t && (e.accountNameInput = t.refs.nameInput) }, cheapNameOnly: !!a, onChange: this.onAccountNameChange.bind(this), accountShouldNotExist: !0, placeholder: s.a.translate("wallet.account_public"), noLabel: !0 }), n.a.createElement("section", { className: "form-group" }, n.a.createElement("label", { className: "left-label" }, n.a.createElement(d.a, { content: "wallet.generated" }), "  ", n.a.createElement(N.Tooltip, { title: s.a.translate("tooltip.generate") }, n.a.createElement("span", { className: "tooltip" }, n.a.createElement(Z.a, { name: "question-circle", title: "icons.question_circle" })))), n.a.createElement("div", { style: { paddingBottom: "0.5rem" } }, n.a.createElement("span", { className: "inline-label" }, n.a.createElement("textarea", { style: { padding: "0px", marginBottom: "0px" }, rows: "3", readOnly: !0, disabled: !0 }, this.state.generatedPassword), n.a.createElement(Q.a, { text: this.state.generatedPassword, tip: "tooltip.copy_password", dataPlace: "top" })))), n.a.createElement("section", null, n.a.createElement("label", { className: "left-label" }, n.a.createElement(d.a, { content: "wallet.confirm_password" })), n.a.createElement("input", { type: "password", name: "password", id: "password", value: this.state.confirm_password, onChange: this._onInput.bind(this, "confirm_password") }), this.state.confirm_password && this.state.confirm_password !== this.state.generatedPassword ? n.a.createElement("div", { className: "has-error" }, n.a.createElement(d.a, { content: "wallet.confirm_error" })) : null), n.a.createElement("br", null), n.a.createElement("div", { className: "confirm-checks", onClick: this._onInput.bind(this, "understand_3") }, n.a.createElement("label", { htmlFor: "checkbox-1", style: { position: "relative" } }, n.a.createElement("input", { type: "checkbox", id: "checkbox-1", onChange: function() {}, checked: this.state.understand_3, style: { position: "absolute", top: "-5px", left: "0" } }), n.a.createElement("div", { style: { paddingLeft: "30px" } }, n.a.createElement(d.a, { content: "wallet.understand_3" })))), n.a.createElement("br", null), n.a.createElement("div", { className: "confirm-checks", onClick: this._onInput.bind(this, "understand_1") }, n.a.createElement("label", { htmlFor: "checkbox-2", style: { position: "relative" } }, n.a.createElement("input", { type: "checkbox", id: "checkbox-2", onChange: function() {}, checked: this.state.understand_1, style: { position: "absolute", top: "-5px", left: "0" } }), n.a.createElement("div", { style: { paddingLeft: "30px" } }, n.a.createElement(d.a, { content: "wallet.understand_1" })))), n.a.createElement("br", null), n.a.createElement("div", { className: "confirm-checks", style: { paddingBottom: "1.5rem" }, onClick: this._onInput.bind(this, "understand_2") }, n.a.createElement("label", { htmlFor: "checkbox-3", style: { position: "relative" } }, n.a.createElement("input", { type: "checkbox", id: "checkbox-3", onChange: function() {}, checked: this.state.understand_2, style: { position: "absolute", top: "-5px", left: "0" } }), n.a.createElement("div", { style: { paddingLeft: "30px" } }, n.a.createElement(d.a, { content: "wallet.understand_2" })))), a ? null : n.a.createElement("div", { className: "full-width-content form-group no-overflow", style: { paddingTop: 30 } }, n.a.createElement("label", null, n.a.createElement(d.a, { content: "account.pay_from" })), n.a.createElement(S.a, { account_names: r, onChange: this.onRegistrarAccountChange.bind(this) }), t && !o ? n.a.createElement("div", { style: { textAlign: "left" }, className: "facolor-error" }, n.a.createElement(d.a, { content: "wallet.must_be_ltm" })) : null), this.state.loading ? n.a.createElement(E.a, { type: "three-bounce" }) : n.a.createElement("button", { style: { width: "100%" }, className: u }, n.a.createElement(d.a, { content: "account.create_account" })))) } }, { key: "_renderAccountCreateText", value: function() { var e = 0 === l.a.getMyAccounts().length; return n.a.createElement("div", null, n.a.createElement("h4", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal", paddingBottom: 15 } }, n.a.createElement(d.a, { content: "wallet.wallet_password" })), n.a.createElement(d.a, { style: { textAlign: "left" }, unsafe: !0, component: "p", content: "wallet.create_account_password_text" }), n.a.createElement(d.a, { style: { textAlign: "left" }, component: "p", content: "wallet.create_account_text" }), e ? null : n.a.createElement(d.a, { style: { textAlign: "left" }, component: "p", content: "wallet.not_first_account" })) } }, { key: "_renderBackup", value: function() { var e = this; return n.a.createElement("div", { className: "backup-submit" }, n.a.createElement("p", null, n.a.createElement(d.a, { unsafe: !0, content: "wallet.password_crucial" })), n.a.createElement("div", null, this.state.showPass ? n.a.createElement("div", null, n.a.createElement("h5", null, n.a.createElement(d.a, { content: "settings.password" }), ":"), n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal", textAlign: "center" } }, this.state.generatedPassword)) : n.a.createElement("div", { onClick: function() { e.setState({ showPass: !0 }) }, className: "button" }, n.a.createElement(d.a, { content: "wallet.password_show" }))), n.a.createElement("div", { className: "divider" }), n.a.createElement("p", { className: "txtlabel warning" }, n.a.createElement(d.a, { unsafe: !0, content: "wallet.password_lose_warning" })), n.a.createElement("div", { style: { width: "100%" }, onClick: function() { e.props.history.push("/") }, className: "button" }, n.a.createElement(d.a, { content: "wallet.ok_done" }))) } }, { key: "_renderGetStarted", value: function() { return n.a.createElement("div", null, n.a.createElement("table", { className: "table" }, n.a.createElement("tbody", null, n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_dashboard" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/" }, n.a.createElement(d.a, { content: "header.dashboard" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_account" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/account/" + this.state.accountName + "/overview" }, n.a.createElement(d.a, { content: "wallet.link_account" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_deposit" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/deposit-withdraw" }, n.a.createElement(d.a, { content: "wallet.link_deposit" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_transfer" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/transfer" }, n.a.createElement(d.a, { content: "wallet.link_transfer" })))), n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(d.a, { content: "wallet.tips_settings" }), ":"), n.a.createElement("td", null, n.a.createElement(c.a, { to: "/settings" }, n.a.createElement(d.a, { content: "header.settings" }))))))) } }, { key: "_renderGetStartedText", value: function() { return n.a.createElement("div", null, n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, n.a.createElement(d.a, { content: "wallet.congrat" })), n.a.createElement("p", null, n.a.createElement(d.a, { content: "wallet.tips_explore_pass" })), n.a.createElement("p", null, n.a.createElement(d.a, { content: "wallet.tips_header" })), n.a.createElement("p", { className: "txtlabel warning" }, n.a.createElement(d.a, { content: "wallet.tips_login" }))) } }, { key: "render", value: function() { var e = this.state.step; return n.a.createElement("div", { className: "sub-content", id: "scrollToInput", name: "scrollToInput" }, n.a.createElement("div", null, 2 === e ? n.a.createElement("p", { style: { fontWeight: "normal", fontFamily: "Roboto-Medium, arial, sans-serif", fontStyle: "normal" } }, n.a.createElement(d.a, { content: "wallet.step_" + e })) : null, 3 === e ? this._renderGetStartedText() : null, 1 === e ? n.a.createElement("div", null, this._renderAccountCreateForm()) : 2 === e ? this._renderBackup() : this._renderGetStarted())) } }]), t }(); te = Object(j.a)(te); var re = Object(i.a)(te, { listenTo: function() { return [l.a] }, getProps: function() { return {} } }) , ae = r(2239) , ne = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var ie = Object(M.i)() , oe = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { step: 1, locales: g.a.getState().defaults.locale, currentLocale: g.a.getState().settings.get("locale") }, r.unmounted = !1, r.handleLanguageSelect = r.handleLanguageSelect.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ne(t, [{ key: "componentWillMount", value: function() { var e = this; Object(h.a)(function(t) { e.unmounted || e.setState({ incognito: t }) }) } }, { key: "componentWillUnmount", value: function() { this.unmounted = !0 } }, { key: "onSelect", value: function(e) { this.props.history.push("/create-account/" + e) } }, { key: "handleLanguageSelect", value: function(e) { _.a.switchLocale(e), this.setState({ currentLocale: e }) } }, { key: "languagesFilter", value: function(e, t) { return t.props.language.toLowerCase().indexOf(e.toLowerCase()) >= 0 } }, { key: "render", value: function() { var e = r(4) , t = n.a.createElement(N.Select, { showSearch: !0, filterOption: this.languagesFilter, value: this.state.currentLocale, onChange: this.handleLanguageSelect, style: { width: "123px", marginBottom: "16px" } }, this.state.locales.map(function(e) { return n.a.createElement(N.Select.Option, { key: e, language: s.a.translate("languages." + e) }, s.a.translate("languages." + e)) })); return n.a.createElement("div", { className: "grid-block align-center", id: "accountForm" }, n.a.createElement("div", { className: "grid-block shrink vertical" }, n.a.createElement("div", { className: "grid-content shrink text-center account-creation" }, n.a.createElement("div", null, n.a.createElement("img", { src: ie })), n.a.createElement("div", null, n.a.createElement(d.a, { content: "header.create_account", component: "h4" })), n.a.createElement("div", null, n.a.createElement(d.a, { content: "account.intro_text_title", component: "h4", wallet_name: Object(M.m)() }), n.a.createElement(d.a, { unsafe: !0, content: "account.intro_text_1", component: "p" }), n.a.createElement("div", { className: "shrink text-center" }, n.a.createElement("div", { className: "grp-menu-item overflow-visible account-drop-down" }, n.a.createElement("div", { className: "grp-menu-item overflow-visible login-selector--language-select", style: { margin: "0 auto" }, "data-intro": e.translate("walkthrough.language_flag") }, n.a.createElement(N.Row, { className: "login-selector--language-select--wrapper" }, n.a.createElement(N.Col, { span: 4 }, n.a.createElement(N.Icon, { type: "global", className: "login-selector--language-select--icon" })), n.a.createElement(N.Col, { span: 20 }, t)))))), n.a.createElement("div", { className: "grid-block account-login-options" }, n.a.createElement(c.a, { id: "account_login_button", to: "/create-account/password", className: "button primary", "data-intro": e.translate("walkthrough.create_cloud_wallet") }, n.a.createElement(d.a, { content: "header.create_account" })), n.a.createElement("span", { className: "button hollow primary", onClick: function() { m.a.changeSetting.defer({ setting: "passwordLogin", value: !0 }), f.a.unlock().catch(function() {}) } }, n.a.createElement(d.a, { content: "header.unlock_short" }))), n.a.createElement("div", { className: "additional-account-options" }, n.a.createElement("h5", { style: { textAlign: "center" } }, n.a.createElement(p.a, { string: "account.optional.formatter", keys: [{ type: "link", value: "/wallet/backup/restore", translation: "account.optional.restore_link", dataIntro: e.translate("walkthrough.restore_account"), arg: "restore_link" }, { type: "link", value: "/create-account/wallet", translation: "account.optional.restore_form", dataIntro: e.translate("walkthrough.create_local_wallet"), arg: "restore_form" }] }))), n.a.createElement(ae.a, { path: "/create-account/wallet", exact: !0, component: L }), n.a.createElement(ae.a, { path: "/create-account/password", exact: !0, component: re })))) } }]), t }(); t.a = Object(i.a)(oe, { listenTo: function() { return [l.a] }, getProps: function() { return { currentAccount: l.a.getState().currentAccount || l.a.getState().passwordAccount } } }) } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2) , o = r.n(i) , s = r(15) , l = r(82) , c = r(576) , u = r(133) , d = r(22) , p = r(40) , h = r(271) , m = r(442) , f = r(183) , g = r(78) , _ = r(134) , b = r(1) , y = r.n(b) , v = r(571) , w = r.n(v) , k = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var x = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.assetTemplates = { BTS: { template: "{address}", params: [] }, BTC: { template: "bitcoin:{address}", params: [{ bind: "amount" }, { bind: "message" }] }, LTC: { template: "litecoin:{address}", params: [{ bind: "amount" }, { bind: "message" }] }, ETH: { template: "ethereum:{address}", params: [{ name: "value", bind: "amount" }, { bind: "message" }] }, BCH: { template: "bitcoincash:{address}", params: [{ bind: "amount" }, { bind: "message" }] } }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), k(t, [{ key: "render", value: function() { var e = this.props , t = e.size , r = e.asset , a = this.props , i = this.assetTemplates[r] , o = !1; if (void 0 !== i) { var s = i.template.replace(/{([a-zA-Z0-9]+)}/g, function(e, t) { return t in a ? a[t] : (o = !0, !0) }); if (o) return ""; if (i.params.length > 0) { var l = []; i.params.forEach(function(e) { var t = ""; void 0 !== e.name && (t = e.name), "" == t && (t = e.bind), void 0 !== a[e.bind] && l.push(t + "=" + a[e.bind]) }), l.length > 0 && (s += "?" + l.join("&")) } return n.a.createElement("div", { className: "QR" }, n.a.createElement(w.a, { size: t, value: s })) } return "" } }]), t }(); x.assetTemplates = {}, x.propTypes = { asset: y.a.string.isRequired, address: y.a.string.isRequired, amount: y.a.number, message: y.a.string, size: y.a.number }, x.defaultProps = { size: 140 }; var S = x , A = r(4) , E = r.n(A) , T = r(7) , C = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , z = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function B(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function O(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function P(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var j = function(e) { function t() { B(this, t); var e = O(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = e._intitalState(), e.deposit_address_cache = new c.a, e.addDepositAddress = e.addDepositAddress.bind(e), e } return P(t, h["a"]), z(t, [{ key: "onClose", value: function() { this.props.hideModal() } }, { key: "componentWillMount", value: function() { var e = this.props.asset; this._setDepositAsset(e) } }, { key: "shouldComponentUpdate", value: function(e, t) { return e.asset !== this.props.asset && (this.setState(this._intitalState()), this._setDepositAsset(e.asset)), !s.a.are_equal_shallow(t, this.state) } }, { key: "onGatewayChanged", value: function(e) { this._getDepositAddress(this.state.selectedAsset, e) } }, { key: "onAssetSelected", value: function(e) { if ("" == e.gateway) return this.setState({ selectedAsset: e.id, selectedGateway: null }); var t = f.c.call(this, e.id, "depositAllowed", function(e, t) { return e && 1 == e.length ? e[0] : null }) , r = t.selectedAsset , a = t.selectedGateway; a && this._getDepositAddress(r, a) } }, { key: "_intitalState", value: function() { return { depositAddress: "", selectedAsset: "", selectedGateway: null, fetchingAddress: !1, backingAsset: null, gatewayStatus: g.a } } }, { key: "_setDepositAsset", value: function(e) { var t = f.a.call(this); if (this.setState({ coinToGatewayMapping: t }), e) { var r = e.split("."); if (!!this.state.gatewayStatus[r[0]]) { var a = r[1] , n = r[0]; this._getDepositAddress(a, n) } else this.setState({ selectedAsset: "BTS" }) } } }, { key: "_getDepositObject", value: function(e, t, r, a) { var n = this.props , i = this.state , o = n.account; return { inputCoinType: i.gatewayStatus[r].useFullAssetName ? t.toLowerCase() : e.toLowerCase(), outputCoinType: t.toLowerCase(), outputAddress: o, url: a, stateCallback: this.addDepositAddress, selectedGateway: r } } }, { key: "_getDepositAddress", value: function(e, t) { var r = this.props.account , a = this.state.gatewayStatus; this.setState({ fetchingAddress: !0, depositAddress: null, gatewayStatus: _.d.call(this, e) }); var n = this.props.backedCoins.get(t.toUpperCase(), []).find(function(t) { var r = t.backingCoinType || t.backingCoin; return -1 !== r.toUpperCase().indexOf("EOS.") && (r = r.split(".")[1]), r.toUpperCase() === e.toUpperCase() }); if (!n) return console.log(t + " does not support " + e), void this.setState({ depositAddress: null, selectedAsset: e, selectedGateway: t, fetchingAddress: !1 }); var i = void 0; if (t && e && (i = this.deposit_address_cache.getCachedInputAddress(t.toLowerCase(), r, e.toLowerCase(), t.toLowerCase() + "." + e.toLowerCase())), a[t].simpleAssetGateway) this.setState({ depositAddress: { address: n.gatewayWallet, memo: a[t].fixedMemo ? a[t].fixedMemo.prepend + r + a[t].fixedMemo.append : r }, fetchingAddress: !1 }); else if (i) this.setState({ depositAddress: i, fetchingAddress: !1 }); else { var o = n.backingCoinType || n.backingCoin , s = n.symbol; Object(l.l)(this._getDepositObject(o, s, t, a[t].baseAPI.BASE)) } this.setState({ selectedAsset: e, selectedGateway: t, backingAsset: n }) } }, { key: "addDepositAddress", value: function(e) { var t = this.state , r = t.selectedGateway , a = t.selectedAsset , n = this.props.account; this.deposit_address_cache.cacheInputAddress(r.toLowerCase(), n, a.toLowerCase(), r.toLowerCase() + "." + a.toLowerCase(), e.address, e.memo), this.setState({ depositAddress: e, fetchingAddress: !1 }) } }, { key: "render", value: function() { var e = this.state , t = e.selectedAsset , r = e.selectedGateway , a = e.depositAddress , i = e.fetchingAddress , l = e.gatewayStatus , c = e.backingAsset , h = this.props.account , g = !0; null == r && "BTS" == t && (g = !1, a = { address: h }); var _ = f.b.call(this) , b = a && "unknown" !== a && !a.error , y = 0; c && (c.minAmount && c.precision ? y = s.a.format_number(c.minAmount / s.a.get_asset_precision(c.precision), c.precision, !1) : c.gateFee && (y = 2 * c.gateFee)); var v = b ? n.a.createElement(S, { size: 140, address: g ? a.address : h, asset: t }) : n.a.createElement("div", null, n.a.createElement(d.a, { size: "5x", name: "minus-circle", title: "icons.minus_circle.wrong_address" }), n.a.createElement("p", { className: "error-msg" }, n.a.createElement(o.a, { content: "modal.deposit.address_generation_error" }))); return n.a.createElement("div", { className: "grid-block vertical no-overflow" }, n.a.createElement("div", { className: "modal__body", style: { paddingTop: "0" } }, n.a.createElement("div", { className: "container-row" }, n.a.createElement("div", { className: "no-margin no-padding" }, n.a.createElement("div", { className: "inline-label input-wrapper" }, n.a.createElement(m.a, { defaultValue: this.state.selectedAsset, onSelect: this.onAssetSelected.bind(this), selectOnBlur: !0 })))), g && t ? f.d.call(this, { selectedGateway: r, gatewayStatus: l, nAvailableGateways: _, error: a && a.error, onGatewayChanged: this.onGatewayChanged.bind(this) }) : null, i ? n.a.createElement("div", { className: "container-row", style: { textAlign: "center", paddingTop: 15 } }, n.a.createElement(p.a, { type: "three-bounce" })) : (!g || g && r && l[r].options.enabled) && b && !a.memo ? n.a.createElement("div", { className: "container-row", style: { textAlign: "center" } }, v) : null, r && l[r].options.enabled && b ? n.a.createElement("div", { className: "container-row" }, n.a.createElement(o.a, { className: "grid-block container-row maxDeposit", style: { fontSize: "1rem" }, content: "gateway.min_deposit_warning_amount", minDeposit: y || 0, coin: t }), n.a.createElement("div", { className: "grid-block container-row" }, n.a.createElement("div", { style: { paddingRight: "1rem" } }, n.a.createElement(u.a, { text: a.address, className: "copyIcon" })), n.a.createElement("div", { style: { wordBreak: "break-word" } }, n.a.createElement(o.a, { component: "div", style: { fontSize: "0.8rem", fontWeight: "bold", paddingBottom: "0.3rem" }, content: "gateway.purchase_notice", inputAsset: t, outputAsset: r + "." + t }), n.a.createElement("div", { className: "modal__highlight", style: { fontSize: "0.9rem", wordBreak: "break-all" } }, a.address))), a.memo ? n.a.createElement("div", { className: "grid-block container-row" }, n.a.createElement("div", { style: { paddingRight: "1rem" } }, n.a.createElement(u.a, { text: a.memo, className: "copyIcon" })), n.a.createElement("div", null, n.a.createElement(o.a, { component: "div", style: { fontSize: "0.8rem", fontWeight: "bold", paddingBottom: "0.3rem" }, unsafe: !0, content: "gateway.purchase_notice_memo" }), n.a.createElement("div", { className: "modal__highlight", style: { wordBreak: "break-all" } }, a.memo))) : null, n.a.createElement(o.a, { component: "span", style: { fontSize: "0.8rem" }, content: "gateway.min_deposit_warning_asset", minDeposit: y || 0, coin: t })) : null, g ? null : n.a.createElement("div", { className: "container-row deposit-directly" }, n.a.createElement("h2", { className: "modal__highlight", style: { textAlign: "center" } }, h), n.a.createElement(o.a, { component: "h6", content: "modal.deposit.bts_transfer_description" })))) } }]), t }() , I = function(e) { function t() { B(this, t); var e = O(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { open: !1 }, e } return P(t, n.a.Component), z(t, [{ key: "show", value: function() { var e = this; this.setState({ open: !0 }, function() { e.props.hideModal() }) } }, { key: "onClose", value: function() { this.props.hideModal(), this.setState({ open: !1 }) } }, { key: "render", value: function() { return n.a.createElement(T.Modal, { title: this.props.account ? E.a.translate("modal.deposit.header", { account_name: this.props.account }) : E.a.translate("modal.deposit.header_short"), id: this.props.modalId, className: this.props.modalId, onCancel: this.onClose.bind(this), overlay: !0, footer: [n.a.createElement(T.Button, { key: "cancel", onClick: this.props.hideModal }, E.a.translate("modal.close"))], visible: this.props.visible, noCloseBtn: !0 }, n.a.createElement(j, C({ hideModal: this.props.hideModal }, this.props, { open: this.props.visible }))) } }]), t }(); t.a = I } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; r.r(t); var a = r(0) , n = r.n(a) , i = r(13) , o = r.n(i) , s = r(804) , l = document.getElementById("content"); o.a.render(n.a.createElement(s.a, null), l) } , , , , , , , , , , , , , , , , , , , , , , function(e) { e.exports = { account: { accounts: "Accounts", activity: "Activity", advanced: "Advanced", as_collateral: "Collateral", asset: "Asset", asset_details: "Asset details", average_price: "Average price", bittrex_scam: "This account is not the real Bittrex account, please send to this account: bittrex-deposit.", bts_market: "Market", collaterals: "Margin Positions", confirm_asset_modal: { are_you_sure: "Are you sure you want to save all changes to these tabs?", header: "Confirm multiple changes" }, connections: { black: "Blacklisted by", known: "Known by" }, contacts: "Contacts", create_account: "Create account", create_new: "Create A New Account", deactivate_suspicious_proposals: "Hide approve for suspicious proposals", deposit: "Deposit BTS", deposit_address: "Your deposit address is your account name", deposit_withdraw: "Deposit/Withdraw", download_history: "Download History", eq_value: "Estimated", eq_value_header: "Value ({asset})", errors: { invalid: "Invalid account name", memo_missing: "You do not have control of the memo key for this account. In order to use a memo, please set the account memo key to a key you control using the Permissions page.", not_found: "The account %(name)s does not exist, are you sure you spelled it correctly?", not_yours: "Not your account", unknown: "Unknown account" }, estimate_value: "Estimated Account value", existing_accounts: "Existing Accounts", existing_user: "Existing user", export_modal: { coinbase_report: "CoinTracking.info Report", description: "Enter your desired elastic search instance and click the report type", full_report: "Full Report", title: "History Export", use_custom: "Use custom wrapper" }, filter_orders: "Filter...", follow: "Add contact", group_by_asset: "Group by asset", hidden_accounts_row: "Hidden Accounts", hide_hidden: "Active", hide_ignored: "Hide hidden accounts", history: "History", history_error: "Failed to download the account history, please try again", home: "Home", hour_24: "24hr Change", hour_24_short: "24hr", id: "Account ID", identicon: "Identicon", ignore: "Hide", in_open: "This is the amount of %(asset)s you have in open orders.", in_open_value: "This is the estimated value of the %(asset)s you have in open orders.", intro_text_1: "Your Decentralized Platform", intro_text_2: "The DEX is inherently decentralized, enabling you to trade the BitShares core token (BTS) and a range of trustless price-stable, market-pegged assets such as bitUSD, bitCNY, bitBTC, bitGold and more. These assets can all be traded with zero counter-party risk, putting you in total control of your funds.", intro_text_3: "The DEX also enables creation of user-issued assets (UIAs), which can be traded against any other UIAs or trustless assets on the platform. One well-known issuer on The DEX is OpenLedger, offering a host of assets including BTC, ETH, STEEM, DASH, LTC, DOGE, and many more", intro_text_4: "This gives cryptocurrency traders a unique blend of traditional and decentralized trading, all in a familiar exchange interface. Happy trading!", intro_text_title: "Welcome to %(wallet_name)s", login_with: "Login with", market_actions: "Market actions", market_value: "Market Value", member: { annual: "Annual subscriber", available: "Available to claim", balance_type: "Type", basic: "Basic member", cashback: "Vesting balance amount", claim: "Claim now", coindays: "coin days", earned: "Coin days earned", expires: "expires", fee_allocation: "Fee Allocation", fees_cashback: "Fee statistics", fees_paid: "Total fees paid", join: "Joined on", lifetime: "Lifetime member", lifetime_referrer: "Lifetime Referrer", membership: "Membership", membership_expiration: "Membership Expiration", network_percentage: "Network", referral_link: "Your referral link", referral_text: "Give this to link to people you want to refer to %(wallet_name)s", referrals: "Referrals", referrer: "Affiliate Referrer", registrar: "Registrar", remaining: "Days left of vesting period", required: "Coin days required", rewards: "Cashback Rewards", stats: "Membership stats", subscribe: "Buy Annual Subscription", suspected_scammer: "Suspected Scammer", unknown: "Unknown member", upgrade_lifetime: "Buy Lifetime Subscription", vested: "Vested" }, mine: "My account", more: "see more", name: "Account name", name_input: { name_is_taken: "Account name is already taken.", not_found: "Account not found.", premium_name_faucet: "This is a premium name which is not supported by this faucet. Please enter a regular name containing least one dash, a number or no vowels.", premium_name_warning: "This is a premium name which is more expensive than a name containing a dash (-) or a number." }, new_user: "New user?", no_orders: "No open orders", no_price: "--", open_orders: "Open Orders", optional: { formatter: "Optionally, {restore_link} or create an account using the {restore_form}.", restore_form: "advanced form", restore_link: "restore your account" }, options: { memo_key: "Memo Key", num_committee: "Desired Committee Members", num_witnesses: "Desired Witnesses" }, orders: "Orders", other_scam: "This account is not known to be an official account, please verify the destination before transferring", overview: "Overview", password_login: "Login with password", pay: "Send to", pay_from: "Pay with account", payees: "Payees", percent: "Percent of total supply", perm: { account_name_or_key: "Account name or key", acct_or_key: "Account / Key / Address", action: "Action", active: "Active Permissions", add: "Add Permission", add_permission_label: "Enter account name/key and weight", brain: "Brainkey position", cancel: "Cancel", confirm_add: "Add", create_paperwallet: "Create Paper Wallet", create_paperwallet_private_hint: "Unlock/Login before creating the paper wallet to include private keys", from: "Imported from account", key: "Key/Name", key_viewer: "Private key viewer", memo_key: "Memo key", memo_public_key: "Memo Public Key", memo_warning: "WARNING: If you replace the memo key you will be unable to read old memos when logging in with your password, and unless you import the new memo private key into your old wallet that wallet will be unable to decode new memos", new_active: "New active key", new_memo: "New memo key", new_owner: "New owner key", owner: "Owner Permissions", password_model: "Cloud Wallet", password_model_1: "If you want to be able to login from anywhere using only your password and account name, you can use this page to add new keys to your permissions. If you also want to remove the original keys, you can do so in the active/owner permissions tabs.", password_model_2: "Add password generated keys", private: "Private key (WIF - Wallet Import Format)", public: "Public key", publish: "Save", remove_proxy: "Remove proxy", remove_text: "Remove", reset: "Reset", save: "Save Changes", save_all: "Save All Changes", show: "Show", sign_owner: "Sign as owner", threshold: "Threshold", type: "Type", use_text: "Use", valid_pub: "Valid Public Key", warning1: "Active permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s", warning2: "Owner permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s", warning3: "Account is already in the list", warning4: "Key is already in the list", weight: "Weight" }, permissions: "Permissions", please_create_account: "Please create an account", polo_scam: "This account is not the real Poloniex account, please send to this account: poloniexwallet.", portfolio: "Portfolio", propose_from: "Propose From", qty: "Qty", quote: "Quote", recent: "Recent activity", reset_orders: "Reset", restore: "Restore", search: "Search for an account", see_open: "See open orders", select_placeholder: "Select Account...", settle: "Settle", show_hidden: "Hidden", show_ignored: "Show hidden accounts", show_visual: "Visual", signedmessages: { automaticcreation: "Signed message will be created automatically", copysuccessful: "Signed message copied to clipboard", copyunsuccessful: "Failed to copy message", entermessage: "Enter message here", errorverifying: "An error occured while verifying the message", invalidformat: "Signed message format can't be recognized", invalidkey: "Private key could not be obtained, is the public key valid?", invalidsignature: "The content of the message could not be validated against the signature", invaliduser: "Account of the message sender is invalid", keymismatch: "Given public key of the sender doesn't to the one stored in the senders account", menuitem: "Signed Messages", sign: "Sign", signing: "Signing, please wait ...", signmessage: "Sign Message", title: "Signed Messages", verify: "Verify", verifying: "Verifying, please wait ...", verifymessage: "Verify Message", verifyonchange: "Verify while typing" }, start_typing_to_search: "Start typing to search for accounts", submit_orders: "Submit", total: "Total ({asset})", total_estimate: "This is the estimated value of all your assets, including any hidden assets, open orders, debt and collateral. The estimate is done using only live blockchain data and may not be perfectly accurate.", total_value: "Total value", trade: "Trade", transactions: { fee: "Fee", id: "ID", info: "Info", time: "Time", type: "Type" }, transfer_actions: "Transfer actions", unfollow: "Remove contact", unignore: "Unhide", upgrade: "Upgrade account", user_issued_assets: { add_feed: "Add new feed producer", advanced: "Advanced features", approx_fee: "Approximate fee", backing: "Short backing asset", base: "Base asset amount", base_name: "Base asset", bitasset_opts: "SmartCoin options", cer_warning_1: "Warning", cer_warning_2: "Make sure your core exchange rate is higher than the market price, otherwise people will buy your token from the market and drain your fee pool via implicit arbitrage. The core exchange rate should be updated regularly to reflect market pricing of your asset.", charge_market_fee: "Enable market fee", committee_fed_asset: "Allow committee members to provide feeds", condition: "Condition (max 60 characters)", conflict_feed: "Cannot allow witnesses and committee members to provide feeds simultaneously", core_exchange_rate: "Core exchange rate", current_issuer: "Current owner account", decimals: "Number of decimal points", description: "Description", details: "Details", disable_confidential: "Disable confidential transactions", disable_force_settle: "Disable force settling", error_invalid: "That asset may not be used", error_precision: "That asset does not have the same precision as %(asset)s", error_too_deep: "May not create a bitasset backed by a bitasset backed by a bitasset", exists: "That asset already exists", expiry: "Market resolution date", feed_lifetime_sec: "Feed lifetime in minutes", feed_not_allowed_1: "Cannot set feed producers on a witness- or committee-fed asset", feed_not_allowed_2: "Please disable the flags called 'Allow witnesses to provide feeds' and 'Allow committee members to provide feeds' in order to allow manual definition of feed producers", feed_producers: "Feed producers", flags: "Flags", force_settlement_delay_sec: "Delay for forced settlements (minutes)", force_settlement_offset_percent: "Percent offset of forced settlements", global_settle: "Allow issuer to force a global settling", id: "ID", invalid_backing_asset_change: "You can't change the backing asset of an asset that has a non-zero current supply", invalid_market_pair: "Preferred market pairing can not be the same market", invalid_permissions_change: "You can't enable a permission for an asset that has a non-zero current supply", issued_assets: "Issued Assets", market: "Preferred market pairing", market_fee: "Market fee", max_market_fee: "Max market fee", max_positive: "Max supply should be a positive number", max_supply: "Maximum supply", maximum_force_settlement_volume: "Max force settle volume (percent of total supply per hour)", minimum_feeds: "Minimum number of feeds", mpa: "SmartCoin", name: "Asset Name", need_asset: "At least one of the two assets must be %(name)s", new_issuer: "New owner account", optional: "Optional settings", override_authority: "Issuer may transfer asset back to himself", perm_warning: "WARNING: Permissions may only be disabled, once disabled they may not be reactivated!!", pm: "Binary prediction market", precision: "Precision", precision_warning: "Warning: The number of decimals may not be changed after creation", primary: "Primary settings", quote: "Quote asset amount", quote_name: "Quote asset", reward_percent: "Reward percent", reward_percent_tooltip: "If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.", short: "Short name (max 32 characters)", symbol: "Symbol", to: "Issue to account", too_large: "That max supply is too big, please choose a smaller number", too_many_feed: "Number of feed producers exceeded the max allowed (%(max)s).", transfer_restricted: "Issuer must approve all transfers", update_owner: "Update owner", update_owner_text: "The asset owner may change the owner to another account using this form:", visible: "Hide asset from search and markets", white_list: "Require holders to be white-listed", witness_fed_asset: "Allow witnesses to provide feeds" }, vesting: { balance_number: "Balance #%(id)s", explain: "Vesting balances contain any fees earned through the referral program or from worker pay, for example. They have a certain vesting period and are continually unlocked during that vesting period until all of the balances are available", no_balances: "This account has no vesting balances", title: "Vesting balances" }, votes: { about: "About", active: "Active (%(count)s)", active_short: "Active", add_committee: "Add", add_committee_label: "Committee Member", add_witness: "Add", add_witness_label: "Witness", already: "Account is already in the list", approve_worker: "Approve", cast_votes_through_one_operation: "Cast your votes for witness, committee and workers and broadcast them together.", clear_proxy: "Remove proxy", cm_approved_by: "Committee members approved by %(account)s", cm_not_approved_by: "Committee members not approved by %(account)s", committee: "Committee member name", create_worker: "Create a new worker", creator: "Creator", daily: "daily", daily_pay: "Daily Pay", end: "End date", expired: "Expired", funding: "Funding", go_proxy: "Go to", hide_legacy_proposals: "Hide Legacy Proposals", inactive: "Backup", info: "Info", join_committee: "Join committee", join_witnesses: "Join Witnesses", line: "Line", max_pay: "Maximum total pay", missing: "Needed", name: "Name", new: "Proposed (%(count)s)", no_proxy: "No Proxy", polls: "BSIPs/Polls (%(count)s)", proxy: "Manually enter an account as your proxy", proxy_current: "Your current proxy is", proxy_known: "Or choose an account as your proxy", proxy_short: "Proxy", publish: "Save", recycled: "Recycled", reject_worker: "Reject", remove_committee: "Remove", remove_witness: "Remove", save_finish: "Click save to finish", set_proxy: "Set a proxy here", start: "Start date", status: { neutral: "Neutral", rejected: "Rejected", supported: "Supported", title: "Status" }, support: "Support", supported: "Supported", threshold: "Votes required to activate", toggle: "Toggle vote", total_budget: "Daily budget", total_votes: "Votes", unclaimed: "Unclaimed pay", unused_budget: "Unused daily worker budget", url: "Webpage", votes: "Votes", votes_against: "Votes against", w_approved_by: "Witnesses approved by %(account)s", w_not_approved_by: "Witnesses not approved by %(account)s", witness: "Witness name", worker_account: "Worker account", workers: "Budget Items", workers_short: "Workers" }, voting: "Voting", welcome: "Welcome to %(wallet_name)s", whitelist: { add: "Add to whitelist", add_black: "Add to blacklist", black: "Blacklist", black_by: "Blacklisted by", blacklist_authorities: "Blacklist authority", empty: "%(account)s has not whitelisted any accounts.", empty_black: "%(account)s has not blacklisted any accounts.", empty_black_by: "No accounts have blacklisted %(account)s.", empty_white_by: "No accounts have whitelisted %(account)s.", title: "Whitelist", white_by: "Whitelisted by", whitelist_authorities: "Whitelist authority", whitelist_market_fee_sharing: "Market fee sharing whitelist" } }, account_browsing_mode: { go_back: "Go back to my account", modal_description: "You're switching an account which you don't have active authority over. You can browse this account, but in view only mode", modal_title: "View Only Mode", never_show_again: "Never show again", view_mode: "View Mode", you_are_in_browsing_mode: "You're in view only mode of the current account. Click here to get back to your account." }, alert: { warning: "Warning" }, app_init: { browser: "Unsupported browser", browser_text: "The Browser you are using has not been fully tested to support the %(wallet_name)s Wallet. We highly recommend that you backup your local wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.", check_latency: "Running latency checks...", check_latency_feedback: "Running latency checks (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_country: "Latency check in best country (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_last: "Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_region: "Latency check in best region (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_rest: "Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_world: "Latency check in each region (%(pinged)s/%(totalToPing)s nodes)", connected: "Connected", connecting: "Connecting to API server: %(server)s", database: "Connection established, initializing local databases", not_connected: "Not connected", retry: "Retry", title: "Application initialization issues", understand: "I understand", ws_status: "Full node connection status" }, assets: { BTS: "BTS is the core token of the BitShares Blockchain" }, boolean: { false: "False", true: "True" }, borrow: { adjust: "Update position", adjust_short: "Adjust", call_limit: "Market Call Limit", close: "Close position", coll_ratio: "Ratio", coll_ratio_target: "Target Ratio", considered_on_revival: "Included", enable_target_collateral_ratio: "Use Target Collateral Ratio", errors: { below: "Your collateral ratio is below %(mr)s which is not allowed.", below_info: "Your position is below the required maintenance collateral ratio! Increasing collateral ratio is allowed, debt can only be decreased.", below_ratio_mcr_update: "Your collateral ratio is blow your original %(ocr)s. Only increased ratio is allowed on margin called orders", close: "Your collateral ratio is close to %(mr)s which means this position is in danger of being margin called if the price drops.", collateral: "Insufficient collateral balance", increased_debt_on_margin_call: "You increased your debt, which is not allowed when updating a margin called position" }, maximize_debt_set_ratio_slider: "You must set a collateral ratio before being able to maximize debt", no_valid: "No valid feeds for %(asset_symbol)s", pay_max_debt: "Pay Max Debt", target_collateral_ratio: "Target Collateral Ratio", target_collateral_ratio_explanation: "When the position is being margin called, the corresponding order will be just big enough to bring the collateral ratio of the position greater or equal to the target collateral ratio", target_collateral_ratio_short: "TCR", title: "%(asset_symbol)s Margin", update: "Update", use_max: "Use Max" }, browser_notification_messages: { money_received_body: "Sent you %(amount)s %(symbol)s", money_received_title: "Transfer from %(from)s" }, cancel: "Cancel", connection: { automatic_reconnect: " After %(reconnect_in_seconds)s seconds a reconnection attempt will be made automatically.", manual_ping: "Go to ping nodes", manual_reconnect: "Try reconnecting now", out_of_sync: "Your connection has been out of sync for %(out_of_sync_seconds)s seconds.", title_out_of_sync: "Connection out of sync", want_to_reconnect: "If the connection can be recovered this message will disappear automatically." }, counterpart: { formats: { date: { full: "%F %T %Z", market_history: "%e/%m %H:%M:%S", market_history_us: "%m/%e %H:%M:%S", short_custom: "%e %b '%y" } } }, dashboard: { featured_markets: "Featured Markets", starred_markets: "Favorites", table_empty: "No market matched", top_markets: "Top Markets" }, exchange: { add_quote: "Add", asks: "Sell orders", atr: "Average True Range", balance: "Balance", base_supply: "Base supply", bids: "Buy orders", borrow: "Borrow", borrow_short: "Borrow", buy: "Buy", buy_description: "Buy %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", buy_min: "Buy at least", buy_sell: "Order Form", buysell_formatter: "{direction} {asset}", call: "Call Price", cancel_selected_orders: "Cancel selected order(s)", change: "Change", chart_height: "Chart height (pixels)", chart_hide: "Hide Charts", chart_modal: "Chart options", chart_type: "Chart type", checking_for_worth_less_settlement: "Checking if you can get a better price by selling to market, please wait..", confirm_buy: "Your order is %(diff)s times higher than the lowest ask, are you sure?", confirm_no_orders_buy: "You are placing a buy order in a market with no open sell orders. Are you certain you wish to proceed?", confirm_no_orders_sell: "You are placing a sell order in a market with no open buy orders. Are you certain you wish to proceed?", confirm_sell: "Your order is %(diff)s times lower than the highest bid, are you sure?", core_rate: "Fee Rate", custom_quote: "Add a custom quote", deposit: "Deposit", description: "Description", ema: "Exponential Moving Average", featured: "Top Markets", feed_price: "Feed Price", filter: "Filter...", flip: "Flip", global_settle: "Global Settlement", group_order_limit: "Group", hide: "Hide", highest_bid: "Highest bid", history: "Market trades", horizontal: "Horizontal", index: "Index", invalid_amount: "Invalid amount", invalid_price: "Invalid price", invert: "Invert the price", latest: "Latest", limit: "Limit", lowest_ask: "Lowest ask", maintenance: "Maintenance Call Price", market: "Market", market_depth: "Market Depth", market_frozen: "The owner of %(asset)s has disabled trading in this market.", market_name: "My Markets", market_picker: { filter_by_issuer: "Filter by issuer", find_by_asset: "Find by asset", results: "Results (%(total_assets)s)", search: "Asset name", search_for_asset: "Search for asset", search_mode: "Mode", show_all: "Show All", sub_title: "Find an asset to replace", title: "Market Picker", use: "Use" }, more: "Find markets", move_down: "Move down", move_up: "Move up", my_asks: "My asks", my_bids: "My bids", my_history: "My trades", my_orders: "My open orders", native: "Native", new: "New", no_asks: "No asks", no_balance: "Insufficient balance", no_bids: "No bids", no_data: "No data", no_orders: "No orders", order_book: "Order Book", order_depth: "Market Depth", order_grouping: "Order Grouping %(orderlimit)s%", others: "Others", overbought: "Overbought", oversold: "Oversold", panels_mirror: "Mirror Panels", period: "Time period (days)", price: "Price", price_alert: { add_rule: "add rule", alert_when: "Alert me when", higher_than: "Higher Than", lower_than: "Lower Than", notification: { higher_than: "The price of %(pair)s rose higher than %(expectedPrice)s and now is %(actualPrice)s", lower_than: "The price of %(pair)s fell lower than %(expectedPrice)s and now is %(actualPrice)s" }, price: "Price", title: "Price Alert", use_button: 'Use "add rule" button to create price alert for ' }, price_history: "Price Chart", price_market: "Market Price", quantity: "Quantity", quick_deposit: "Deposit %(asset)s", quick_deposit_bridge: "Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s", quick_deposit_bridge_button: "Use a Bridge", quick_deposit_gateway: "Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway", quick_deposit_gateway_button: "Use a Gateway", quick_deposit_tooltip: "Deposit %(asset)s, click to open options", quote: "Quote currency:", quote_selection: "Modify quote selection", quote_supply: "Quote supply", receive: "Receive", remove: "Remove", rsi: "Relative Strength Index", scaled: "Scaled", search: "Search for more markets here", sell: "Sell", sell_description: "Sell %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", settings: { header: { chart_options: "Chart options", general: "General", order_options: "Order Options", panel_grouping: "Panel Grouping", title: "Personalize" }, options: { grouping_1: "Group 1", grouping_2: "Group 2", grouping_standalone: "Standalone", hidden_chart: "Hide chart", horizontal: "Horizontal", position_order_asset_opt1: "Orders above Asset", position_order_asset_opt2: "Asset above Order", position_order_form_opt1: "Buy - Sell", position_order_form_opt2: "Sell - Buy", position_order_orders_opt1: "Buy - Sell", position_order_orders_opt2: "Sell - Buy", vertical: "Vertical" }, title: { chart_height: "Height", chart_tools: "View Tools", chart_type: "Type", chart_zoom: "Allow Zoom", hide_function_buttons: "Hide function buttons", market_location: "Market location", market_trades: "Market Trades", my_trades: "My Trades", open_orders: "Open Orders", order_book_grouping: "Order Book Grouping", order_style: "Style", orderbook_auto_scroll: "Auto scroll", position_order_asset: "Vertical Orders / Asset", position_order_form: "Buy/Sell Asset", position_order_orders: "Buy/Sell Orders", reduce_scrollbars: "Reduce Scroll Bars", reverse_order_book: "Reverse Order Book", settlements: "Settlements", single_colum_order_form: "Single Column Order Form" }, tooltip: { chart_height: "Define the height of the charts", chart_reload: "Changing this setting will reload the chart", chart_tools: "Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.", chart_type: "Switch between market depth and price charts, or disable charts", chart_zoom: "Allow chart zooming. Zooming is always disabled in tiny screen.", decrease_chart_height: "Decrease the height of the chart", hide_function_buttons: "Hide all buttons that can be managed within the personalize form", increase_chart_height: "Increase the height of the chart", market_location: "Which side to pin the vertical order book on. This will switch place with market panel", market_trades: "", my_trades: "", open_orders: "", order_book_grouping: "Group orders which are close together by a defined percentage", order_style: "Use vertical order book to pin it to the side panel", orderbook_auto_scroll: "Auto scroll the order book to keep center as new orders come in. Disable to allow scrolling", panel_grouping: "Define panel grouping", position_order_asset: "Define the vertical order for the order form vs order book", position_order_form: "Define the horizontal order for the order form", position_order_orders: "Define the horizontal order for the order book", reduce_scrollbars: "Disable scroll bars by default", reload: "Changing this option will only affect after manually reloading", reverse_order_book: "Reverse order book to have buy orders on top", settlements: "", show_market_depth: "Show market depth", show_price_chart: "Show price chart", single_colum_order_form: "Enforce that Price, Quantity, Total, etc. are in one column (not floating)" } }, settle: "Settlement", settle_better_marketprice: "Market price is in favour", settle_better_settleprice: "Settlement price is in favour", settle_delay: "This asset will settle in %(hours)s hours", settle_delay_globally_settled: "This asset will settle instantly", settle_globally_settled: "Settle instantly", settle_globally_settled_tooltip: "This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)", settle_offset: "Settlement price offset: %(offset)s%", settle_orders: "Settle orders", settlement_hint: "You are attempting to settle {long}. Current price of {market_link}", short: "Short", show_all_orders: "Show all %(rowcount)s orders", show_all_trades: "Show all %(rowcount)s trades", show_asks: "Show all asks", show_bids: "Show all bids", show_only_liquid: "Show liquid markets only", show_only_star_formatter: "Show {star_icon} only", sma: "Simple Moving Average", spread: "Spread", squeeze: "Margin Call Price", time: "Candlesticks", to_market: "Go to market", total: "Total", trading_pair: "Trading pair", value: "Value", vertical: "Vertical", vol_short: "Vol", volume: "Volume", volume_24: "24hr Volume", worth_less_settlement_warning: "The current market price of {market_link} is higher than settle price", your_price: "Your Call Price", zoom: "Zoom", zoom_all: "All" }, explorer: { account: { title: "Account" }, accounts: { filter: "Filter accounts", filter_contacts: "Filter contacts", title: "Accounts" }, asset: { actions: "Asset actions", collateral: { bid: "Bid Collateral", bid_price: "Bid price", bid_text: "Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.", remove_bid: "A bid can be removed by placing a zero collateral bid." }, collateral_bid: { bid: "Bid Price", collateral: "Additional Collateral", debt: "Debt Covered", included: { no: "No", partial: "Partially", yes: "Yes" }, title: "Collateral Bids" }, cumulative: "Cumulative", fee_pool: { claim_balance: "Claim fee pool balance", claim_fees: "Claim fees", claim_pool_text: "The asset owner may withdraw funds from the fee pool using this form:", claim_text: "The asset issuer may claim any accumulated fees here.", core_exchange_rate: "Core exchange rate (CER)", fund: "Fund the fee pool", fund_text: "Anyone can add %(core)s to the fee pool balance using this form:", pool_balance: "Pool balance", pool_text: "The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s.

The core exchange rate is the price at which %(asset)s are converted to %(core)s.", title: "Fee Pool", unclaimed_issuer_income: "Unclaimed issuer income" }, feed_producer: "Feed producer", feed_producer_text: "Approved feed producers may publish a new feed using the form below:", info: "Asset info", invalid: "The asset name %(name)s is invalid", margin_positions: { click_to_switch_to_cumulative: "Click to switch to cumulative sum of the columns.", ratio_danger: "Position is below MCR and will be margin called", ratio_warning: "Position is near MCR and in danger of being margin called", title: "Margin positions" }, not_found: "The asset %(name)s does not exist", permissions: { accounts_in_whitelist_market_fee_sharing: "Accounts included in Market fee sharing whitelist", blacklist_authorities: "Blacklist authorities", blacklist_markets: "Blacklist markets", max_market_fee: "Max market fee", max_supply: "Max supply", title: "Permissions", whitelist_authorities: "Whitelist authorities", whitelist_markets: "Whitelist markets" }, price_feed: { external_feed_price: "Feed price (median of witness feeds)", feed_lifetime: "Feed lifetime (hours)", feed_price: "Feed price", global_settlement_price: "Global settlement happens at price", maintenance_collateral_ratio: "Maintenance collateral ratio (MCR)", maximum_short_squeeze_price: "Maximum short squeeze price (MSSP)", maximum_short_squeeze_ratio: "Maximum short squeeze ratio (MSSR)", min_feeds: "Minimum feeds", settlement_price: "Force Settlement price", title: "Price Feed" }, price_feed_data: { core_exchange_rate: "CER", feed_price: "Feed price", maintenance_collateral_ratio: "MCR", maximum_short_squeeze_ratio: "MSSR", published: "Published", publisher: "Publisher", settlement_price: "Force Settlement Price", title: "Price Feed Data" }, settlement: { current_settled: "Already settled supply", delay: "Delay", force_settlement: "Force Settlement", gs_auto_revive_price: "Auto Revive Price (without/with bids)", gs_collateral_valuation: "Collateral Valuation (with bids)", gs_description: "Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.", gs_included_on_revival: "Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.", gs_or: "or", gs_place_bid: "click here to place a bid", gs_revert: "Reviving", gs_revive: "Asset will be revived automatically if auto revive price (bids included) is greater than feed price or all debt is force settled", gs_see_actions: "see Asset actions", max_settle_volume: "Max. settlement volume each maintenance period", offset: "offset included", price: "Price", settle_remaining_volume: "Remaining settleable volume", settlement_funds: "Settlement Funds", settlement_funds_collateral_ratio: "Settlement Fund Collateral Ratio", settlement_price: "Force Settlement Price", title: "Settlement" }, summary: { asset_type: "Asset type", current_supply: "Current supply", issuer: "Issuer", market_fee: "Market fee", market_fee_referral_reward_percent: "Market fee referral reward", stealth_supply: "Stealth supply" }, title: "Asset", whitelist: { blacklist_authorities: "Blacklist authorities", blacklist_markets: "Market blacklist", enable_flag: "The whitelist flag must be enabled in order to set whitelist authorities", market_fee_enable_flag: "The market fee flag must be enabled in order to set whitelist", whitelist_authorities: "Whitelist authorities", whitelist_market_fee_sharing: "Market fee sharing whitelist", whitelist_markets: "Market whitelist" } }, assets: { backing_asset: "Backing asset", id: "ID", issuer: "Issuer", market: "SmartCoins", precision: "Precision", prediction: "Prediction market assets", symbol: "Symbol", title: "Assets", units: "Units", user: "User Issued Assets" }, block: { account_upgrade: "Account to upgrade", asset_issue: "Amount to issue", asset_update: "Asset to update", authorizing_account: "Authorizing account", call_limit: "Call limit", common_options: "Common options", count: "Transaction count", date: "Date", fee_payer: "Fee paying account", feed_price: "Feed Price", go_to: "Go to block", id: "Block ID", key: "Public key", lifetime: "Upgrade to lifetime member", listed_account: "Listed account", max_margin_period_sec: "Max margin period (s)", new_listing: "New listing", new_options: "New options", new_producers: "New feed producers", next_secret: "Next secret hash", op: "Operation", op_type: "Operation type", previous: "Previous", previous_secret: "Previous secret", settlement_price: "Force Settlement Price", short_limit: "Short limit", time: "Time", title: "Block", transactions: "Transaction count", trx: "Tx", witness: "Witness" }, blocks: { active_committee_members: "Active committee members", active_witnesses: "Active Witnesses", avg_conf_time: "Average confirmation time", block_time: "Block time", block_times: "Block times", current_block: "Current Block", globals: "Global parameters", last_block: "Last block", recent: "Recent blocks", recently_missed_blocks: "Recently missed blocks", title: "Blockchain", transactions: "# of transactions", trx: "Transaction", trx_per_block: "Trx/block", trx_per_sec: "Trx/s" }, committee_member: { title: "Committee member" }, committee_members: { active: "Total number of active committee members", title: "Committee" }, fees: { fee: "Standard Fee", feeeq: "(equivalent)", feeltm: "Lifetime Member Fee", feeltmeq: "(equivalent)", type: "Fee Type" }, proposals: { authority_depth_warning: "This proposal may not get approved because this permission exceeds the maximum authority depth.", children_authority_depth_warning: "This proposal may not get approved because a permission exceeds the maximum authority depth.", failed: "Failed", failed_execute: "Approved, failed to execute.", no_reason_available_switch_node: "Reason of failure is available with core release >=3.1.0, please switch your node.", pending: "Pending", pending_approval: "Pending approval.", pending_review: "Approved, review time.", review: "Review", title: "Proposed transactions" }, witnesses: { budget: "Remaining budget", card: "Card view", current: "Current witness", filter_by_name: "Filter...", last_confirmed: "Last confirmed", missed: "Blocks missed", next_vote: "Next vote update", participation: "Participation rate", pay: "Pay-per-block", rank: "Rank", table: "Table view", title: "Witnesses" }, workers: { create: "Create a new worker proposal", create_text_1: "In order to create your new worker, please fill in the form below. The worker will be created using your currently active account, which must already be a lifetime member.", create_text_2: "Consider carefully the parameters you choose as they can not be changed once you've published your worker.", daily_pay: "Daily pay (BTS)", date_text: "The start date should be at least a week into the future in order to allow people the time to discover, evaluate and vote for your worker.", name_text: "The name of your worker should be short and descriptive, something like this: 'Worker Purpose - Account Name'", pay_text: "The daily pay defines how much you want to be paid per day and is defined in BTS. The current best practice is to define a salary in USD/CNY, and commit to burning whatever surplus you receive as a result of the BTS price increasing. As long as your worker is active and has sufficient votes to be above the refund worker, you will receive this daily salary.", period: "Duration", title: "Worker name", url_text: "You should supply a website, github document or google doc that describes in more detail the purpose of the worker and how you intend to use the worker pay.", vesting_pay: "Salary vesting period (days)", vesting_text: "The vesting period defines the number of days that worker earnings will vest before being fully claimable.", website: "Website" } }, fees: { title: "Fee Schedule" }, footer: { advanced_settings: "Advanced settings", backup: "A Backup is Required", block: "Block", brainkey: "Backup brainkey recommended", connected: "Connected", connection: "No Blockchain connection", disconnected: "Disconnected", latency: "Latency", loading: "Loading...", nosync: "Your active node is out of sync", synced: "Synced", title: "%(wallet_name)s", unsynced: "Out of sync", update_available: "UPDATE AVAILABLE" }, gateway: { add_funds: "Quickly and easily add funds to your %(wallet_name)s account %(account)s. This service is provided by Openledger.", address: "Address", address_with_memo: '%(address)s with memo %(memo)s', agreement: { hint: "I have read and agreed to", name: "《Service Agreement》", notice: "Please check the agreement to continue", register: "Agree" }, asset: "Asset", asset_search_deposit: "Search for an asset to deposit", asset_search_withdraw: "Search for an asset to withdraw", asset_to_deposit: "Asset to deposit:", asset_to_receive: "You will receive:", asset_to_withdraw: "Asset to withdraw:", asset_unavailable: "The gateway for %(asset)s is not in service", assets: { bit: "bit%(asset)s is a derivative that tracks the real value of %(backed)s. It is 100%% decentralized, trustless and backed by collateral held by the blockchain in a smart contract.", bitcny: "bitCNY can be deposited or withdrawn 1:1 to real Yuan using a gateway service such as Magic Wallet. For more info, see https://www.magicw.net/", bridge: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by CryptoBridge.", gdex: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by GDEX.", open: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by OpenLedger.", rudex: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Rudex.", trade: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Blocktrades.", win: "", xbtsx: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by XBTS." }, balance: "Current balance", balance_asset: "Current %(asset)s balance", bitkapital_receive: "You will receive", bitkapital_text: "Choose an asset to deposit or withdraw:", bitkapital_withdraw: "You are withdrawing", bitspark: { support_block: 'For DEPOSIT AND WITHDRAWAL issues using "BitSpark TRANSFER SERVICE", please contact BitSpark at:' }, bridge: "Bridge", bridge_text: "A bridge lets you exchange an asset into another one, for example BTC to BTS.", calc: "Calculating", choose_deposit: "Please select the coin you would like to deposit", choose_withdraw: "Please select the coin you would like to withdraw", citadel: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact citadel.li at:", under_construction: "Under Construction" }, contact_TRADE: "Contact Blocktrades", convert: "Internal conversion", convert_coin: "Convert to %(coin)s (%(symbol)s)", convert_now: "Convert now", copy_address: "Copy address", copy_memo: "Copy memo", deposit: "Deposit", deposit_address: "Deposit address", deposit_from_wallet: "Deposit from wallet", deposit_history_status: { confirming: "deposit confirming", fail: "fail", success: "success", transfering: "transfering", waiting: "waiting for deposit" }, deposit_inst: "Deposit instructions", deposit_limit: "Deposit limit", deposit_notice_delay: "(new address can be generated once per 5 minutes)", deposit_summary: "Deposit summary", deposit_to: "Please send your %(asset)s to the address below", deposit_warning: "Sending any other currency to the %(asset)s address will result in the loss of your deposit", deposit_warning_memo: "Deposit %(asset)s must contains memo, otherwise it won't be credited", fee: "Gateway fee", fiat: "Fiat", fiat_text: "Note: Fiat gateways are closed till further notice. Sorry for the inconvenience! Please follow our latest news and updates here blog.openledger.info", frozen: "The user account %(account)s was frozen", gateway: "Gateway", gateway_text: "Choose whether you want to make a deposit or withdrawal here", generate: "Generate", generate_new: "Get new address", generate_new_memo: "Get new memo", iban: "IBAN", info: "Info", intermediate: "Intermediate account", inventory: "Inventory", limit: "Limit: %(amount)s %(symbol)s", limit_withdraw_asset: "Min: %(min)s, Max: %(max)s", limit_withdraw_asset_max: "Maximum withdraw: %(min)s %(coin)s", limit_withdraw_asset_min: "Minimum withdraw: %(min)s %(coin)s", limit_withdraw_asset_none: "None", memo: "Memo", meta: { open_website: "Open Website" }, min_deposit_warning_amount: "Minimum Deposit: %(minDeposit)s %(coin)s", min_deposit_warning_asset: "IMPORTANT: Send only %(coin)s to this deposit address on the blockchain native to %(coin)s. Sending less than %(minDeposit)s %(coin)s or any other currency to this address may result in the loss of your deposit.", over_limit: "Limit Reached", phase_out_warning: "We recommend using the new {deposit_modal_link} and {withdraw_modal_link} modals as this page will be phased out", please_generate_address: "Please, get new address ", purchase: "Purchase %(asset)s", purchase_1: "Quickly and easily purchase %(outputAsset)s using %(inputAsset)s from an external wallet. This service is provided by Blocktrades", purchase_notice: "%(inputAsset)s sent to this address will show up as %(outputAsset)s", purchase_notice_memo: "Memo required for proper routing to your account", receive_account: "Receiving account:", recent_deposit: "Recent deposits", recent_withdraw: "Recent withdrawals", rudex: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact RuDEX at:", under_construction: "Under Construction" }, scan_qr: "Scan QR", service: "Transfer Service", status: "Status", support_block: 'For DEPOSIT AND WITHDRAWAL issues using "OpenLedger TRANSFER SERVICE", please contact Openledger at:', support_gdex: "For support, please contact GDEX", symbol: "Symbol", time: "Time", title: "Deposit & Withdraw", transaction_history_info: " %(amount)s %(assetName)s with trancation id: %(txid)s ", unavailable: "The gateway service for this asset is currently down, please try again later", unavailable_CITADEL: "The Citadel Bridge is down or not responding", unavailable_OPEN: "The OpenLedger Gateway is down or not responding", unavailable_RUDEX: "The RuDEX Gateway is down or not responding", unavailable_TRADE: "The Blocktrades Bridge is down or not responding", unavailable_bridge: "The bridge service for this asset is currently down, please try again later", use_copy_button: "PLEASE USE COPY BUTTON TO MAKE COPY OF ADDRESS OR MEMO ON THIS PAGE", user_unavailable: "User informaction is current unavailable, please try again later", valid_address: "Please enter a valid %(coin_type)s address", website: "Visit the website", withdraw: "Withdrawal", withdraw_coin: "Withdraw %(coin)s (%(symbol)s)", withdraw_funds: "You are going to withdraw funds from your %(wallet_name)s account to your external %(asset)s account.", withdraw_history_status: { audited: "auditting completed", auditing: "withdraw auditing", confirming: "confirming", fail: "fail", refused: "auditting failed", success: "success", transfering: "transfering" }, withdraw_inst: "Withdrawal instructions", withdraw_now: "Withdraw now", withdraw_placeholder: "Please enter your %(asset)s address", withdraw_summary: "Withdrawal summary", withdraw_to: "Click the button below to open a %(asset)s withdrawal", xbtsx: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact XBTS at:", under_construction: "Under Construction" }, your_account: "Your account" }, global: { cancel: "Cancel", close: "Close", confirm: "Confirm", field_type: { account: "account" }, help: "Help", not_found: "Not found", return_to_top: "Return to top", scan_qr_code: "Scan QR code", set: "Set" }, header: { account: "Account", account_notify: "The active account is now %(account)s", account_value: "Account value", accounts_manage: "Manage Accounts", collateral_ratio: "Collateral ratio", create_account: "Create Account", create_asset: "Create Asset", current: "Current Account", dashboard: "Dashboard", "deposit-withdraw": "Deposit/Withdraw", deposit_legacy: "or Legacy Deposit", exchange: "Exchange", explorer: "Explore", help: "Help", lock: "Log out (lock the local wallet)", lock_short: "Log out", locked_tip: "
Click to login.

Closing the browser window will also log you out.", logout: "Logout", payments: "Send", payments_legacy: "or Legacy Send", settings: "Settings", showcases: "Spotlight", title: "%(wallet_name)s UI", unlock: "Local Wallet Login", unlock_password: "Cloud Wallet Login", unlock_short: "Login", unlocked_tip: "
Click to log out.

Closing the browser window will also log you out.", update_asset: "Update Asset", withdraw_legacy: "or Legacy Withdraw" }, htlc: { claim_period: "Seconds to claim", claim_period_due: "Claimable until", id: "HTLC id", preimage: "Preimage", preimage_explanation: "The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC", preimage_hash: "Preimage hash", preimage_hash_explanation: "The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: '(, ): '", redeemer: "Redeemer", seconds_to_add: "Add seconds to claim period", update_issuer: "Update issuer" }, icons: { adjust: "Adjust margin position", assets: "Assets", checkmark_circle: { approved: "Approved", operation_succeed: "Operation succeed", yes: "Yes" }, chevron_down: { gateways: "Show more gateways", other: "Show more items", transactions: "Show more transactions" }, clippy: { copy: "Copy to clipboard", withdraw_full: "Withdraw the full balance" }, clock: "Please check your computer's clock", cog: "Settings", cogs: "Settings", connect: "Connect to this API Node", connected: "API Node is connected", cross_circle: { cancel_order: "Cancel order", close_position: "Close position", hide_asset: "Hide asset", hide_market: "Hide market", operation_failed: "Operation failed", remove: "Remove" }, dashboard: "Dashboard", "debug-report": "Report your error log console, or create a screenshot", deposit: { deposit: "Deposit", deposit_withdraw: "Deposit/Withdraw" }, disconnected: "API Node is disconnected", dollar: { borrow: "Borrow", buy: "Buy" }, download: "Download new version of %(wallet_name)s UI", excel: "Download .csv file", eye: "Hide Node", "eye-striked": "Show Node", fees: "Fees", fi_star: { account: "Add/remove account from favorites", market: "Add/remove market from favorites", sort_accounts: "Sort by favorites", symbol: "Add/remove symbol from favorites" }, filter: "Filter", folder: "Accounts", hamburger: "Open menu", hamburger_x: "Close menu", hourglass: "Vesting balances", info_circle_o: "Info", key: "Key", list: "Whitelist", locked: { action: "Click to unlock your account to perform this action", common: "Click to unlock your account", enable_auto_scroll: "Enable auto scroll" }, manage_accounts: "Manage Accounts", minus_circle: { disapproved: "Disapproved", no: "No", remove_contact: "Remove contact from the list", wrong_address: "Unable to generate address" }, news: "News", order_grouping: "Order Grouping Active", plus_circle: { add_contact: "Add contact to the list", show_asset: "Show asset", show_market: "Show market" }, power: "Login", question_circle: "Help", reverse_orderbook: "Reverse orderbook", server: "Explore", settle: "Settle", share: "About", shuffle: "Switch trading pair", text: { membership_stats: "Membership stats", signed_messages: "Signed messages" }, thumb_tack: "Pin panel to the side", thumb_untack: "Unpin panel", thumbs_up: "Voting", times: "Remove API Node", trade: { exchange: "Exchange", trade: "Trade" }, transfer: "Send", unlocked: { common: "Click to lock your account", disable_auto_scroll: "Disable auto scroll" }, user: { account: "Account", create_account: "Create account", following: "You are following this user" }, warning: "Permissions", withdraw: "Withdraw", zoom: "Search" }, incognito: { mode: "Private/Incognito:", warning: "If you close your browser without backing up your wallet, you will lose this account permanently." }, languages: { de: "Deutsch", en: "English", es: "Español", fr: "Français", it: "Italiano", ja: "日本語", ko: "한국어", ru: "Русский", tr: "Türkçe", zh: "简体中文" }, login: { browseFile: "browse your files", browseFileLabel: "Browse your backup file", dropFile: "Drop your backup file in this area or ", invalidFormat: "Invalid format!", loginButton: "Login", selectDifferent: "Select different file", supportWarning: "Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup.", title: "Select Login Type", withoutBinFile: "I don't have .bin-file" }, markets: { base: "Base asset", core_rate: "Core rate", filter: "Filter", market_search: "Market Search", preferred: "My Favorite Markets", search: "Search", supply: "Supply", title: "Markets" }, migration: { announcement_1: "In an effort to provide enhanced security for the web-based wallet, we are migrating it, effective immediately to the address below. Please be sure to update any bookmarks you may have.", text_1: "Local wallet detected", text_2: "Please backup your wallet now and restore the backup file to %(wallet_url)s, which will be your new address for the web wallet. Thanks for your continued support.", text_3: "Please use %(wallet_url)s from now on, your existing credentials will let you login there as well.", title: "Notice" }, modal: { buy: { asset: "Asset", bridge: "Bridge", title: "Buy" }, cancel: "cancel", close: "close", committee: { confirm: "CONFIRM", create_committee: "Become a committee member", from: "From", text: "After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:

Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.", url: "URL", web_example: "Enter link to your committee proposal post" }, confirmation: { accept: "Yes", cancel: "No", title: "The address you entered does not appear valid, are you sure you want to make the withdrawal?" }, convert: { amount: "Amount to Convert", submit: "Ok" }, deposit: { address_generation_error: "Unable to generate address", amount: "Amount to Deposit", asset: "Asset", bts_transfer_description: "It's easy to receive BTS from anywhere. As long as BTS is sent to your account name it will show up in your wallet. This QR code also contains your account name.", cancel: "Cancel", close: "Close", header: "Deposit to %(account_name)s", header_short: "Deposit", no_assets: "No depositable assets available", submit: "Deposit" }, deposit_withdraw: { disabled: "%(gateway)s gateway service disabled", gateway: "Gateway", no_gateway_available: "No gateway available", select_gateway: "Please select a gateway operator", wallet_error: "Gateway wallet disabled" }, issue: { amount: "Amount to Issue", submit: "Issue Asset", to: "Issue To" }, ok: "OK", proposals: { actions: { approve: "Approve proposal", delete: "Permanently reject proposal", reject: "Reject proposal" }, approval_add: "Approval to add", approval_remove: "Approval to remove", key_approval_add: "Key approval to add", key_approval_remove: "Key approval to remove", pay_with: "Pay with account" }, qrcode: { input_message: "Please enter a password used to encrypt the QR code.
An empty password will show an unencrypted QR code.", label: "qrcode", title: "Private key QR code" }, report: { button: "Report", copyLog: "Copy Log", copyScreenshot: "Right click in Image Preview -> Copy", copySuccess: "Copy ended", explanatory_text_1: "This report collects the last entries in the console log and takes a screenshot of the current view before the modal is opened. Click on either entry to see the details.", explanatory_text_2: "Please report the issue you have found to GitHub:", explanatory_text_3: "You can copy and paste (CTRL+V) the screenshot as well as the log entries directly into the issue content text area, pasting the screenshot also works in telegram chat.", explanatory_text_4: "If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:", hideLog: "Hide Log", hideScreenshot: "Hide screenshot", lastLogEntries: "Last 20 log entries", screenshot: "Screenshot", showLog: "Show Log", takeScreenshot: "Show screenshot", title: "Error report" }, reserve: { amount: "Amount to burn", from: "Account to burn from", submit: "Burn", title: "Burn (reserve) asset", warning_message: "Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!" }, save: "save", send: { header: 'Send from %(fromName)s', header_propose: 'Propose Send from %(fromName)s' }, settle: { amount: "Amount to settle", delay: "Estimated delay: %(amount)s hours", max_volume: "Max. settlement volume: %(amount)s %(asset)s", remaining_volume: "Remaining settleable volume: %(amount)s %(asset)s", submit: "Settle asset", title: "Request settlement of %(asset)s" }, withdraw: { address: "Withdraw to Address", address_not_valid: "Invalid address", amount: "Amount to Withdraw", available: "Available: ", bitshares_account: "Send to %(wallet_name)s Account", cancel: "Cancel", cannot_cover: "Insufficient funds!", estimated_value: "Estimated Value", fee: "Fee", gateway_fee: "Gateway Fee", header: "Withdraw", memo: "Memo", no_assets: "No withdrawable assets available", no_estimate: "No estimate available for this object", no_gateways: "Sorry, but there are no gateways available to handle this withdrawal", quantity: "Quantity", submit: "Withdraw", withdraw: "Withdraw" }, witness: { confirm: "CONFIRM", create_witness: "Become a witness member", enter_public_signing_key: "Enter your public signing key", invalid_key: "Public Key is invalid", public_signing_key: "Public Signing Key", text: "After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.", url: "URL", web_example: "Enter link to your witness proposal post", witness_account: "Witness Account" } }, news: { author: "Author", errors: { fetch: "Ops... Something went wrong fetching the news" }, news: "News", subject: "Subject" }, notifications: { account_create_failure: "Failed to create account: %(account_name)s - %(error_msg)s", account_permissions_update_warning: "Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you're doing before modifying account authorities!", account_wallet_create_failure: "Failed to create wallet: %(error_msg)s", asset_issue_failure: "Failed to issue the asset, probably due to an invalid amount being issued", backup_file_save_unsupported: "File saving is not supported", balance_claim_error: "Error claiming balance: %(error_msg)s", exchange_enter_valid_values: "Please enter a valid amount and price", exchange_insufficient_funds_for_fees: "Insufficient funds to pay fees", exchange_insufficient_funds_to_place_order: "Insufficient funds to place order, you need at least %(amount)s $(symbol)s", exchange_unknown_error_place_order: "Unknown error. Failed to place order for %(amount)s %(symbol)s", exchange_unknown_error_place_scaled_order: "Unknown error. Failed to place Scaled Order", import_keys_already_imported: "This wallet has already been imported", import_keys_error: "Account %(account_name)s had a private key import error: %(error_msg)s", import_keys_error_unknown: "Key import error: %(error_msg)s", invalid_password: "Invalid Password", password_change_failure: "Unable to change password: %(error_msg)s", password_change_success: "Password changed", wallet_unlock_different_block_chain: "This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s", worker_create_failure: "Failed to create worker: %(error_msg)s" }, openledger: { deposit_amount: "Deposit Amount", deposit_details: "Details", deposit_none: "No deposits", header_fiat: "Fiat", header_transaction_history: "Transaction history", loading: "Loading...", refresh_transaction_history: "Refresh", retry: "Retry", show_transaction_history: "Show transaction history", status: "Status", withdraw_amount: "Withdrawal Amount", withdraw_none: "No withdrawals" }, operation: { annual_upgrade_account: "{account} was upgraded to annual member", asset_claim_pool: "{account} claimed {amount} from asset {asset}'s fee pool", asset_create: "{account} created the asset {asset}", asset_fund_fee_pool: "{account} funded {asset} fee pool with {amount}", asset_global_settle: "{account} requested global settlement of {asset} at {price}", asset_issue: "{account} issued {amount} to {to}", asset_reserve: "{account} burned (reserved) {amount}", asset_settle: "{account} requested settlement of {amount}", asset_settle_cancel: "{account} cancelled settlement of {amount}", asset_settle_instant: "{account} settled {amount} instantly at {price}.", asset_update: "{account} updated the asset {asset}", asset_update_feed_producers: "{account} updated the feed producers for the asset {asset}", asset_update_issuer: "{from_account} transferred {asset} to {to_account}", balance_claim: "{account} claimed a balance of {amount}", bid_collateral: "{bid_account} bid {collateral} for {debt}", blacklisted_by: "{lister} blacklisted the account {listee}", call_order_update: "{account} changed {debtSymbol} debt by {debt} and collateral by {collateral}", committee_member_update_global_parameters: "{account} updated the global committee parameters", fill_order_buy: "{account} bought {amount} at {price} for order #%(order)s", fill_order_sell: "{account} sold {amount} at {price} for order #%(order)s", htlc_create: "{from} locked {amount} for {to} to redeem until {lock_period}", htlc_extend: "{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}", htlc_redeem: "{redeemer} request to redeem from HTLC {htlc_id}", htlc_redeemed: "{to} redeemed {amount} from HTLC {htlc_id} of {from}", htlc_refund: "{to} got refund of HTLC {htlc_id}", lifetime_upgrade_account: "{account} was upgraded to lifetime member", limit_order_buy: "{account} placed order %(order)s to buy {amount} at {price}", limit_order_cancel: "{account} cancelled order #%(order)s", limit_order_sell: "{account} placed order %(order)s to sell {amount} at {price}", no_recent: "No recent transactions", override_transfer: "{issuer} transferred {amount} from {from} to {to}", pending: "pending %(blocks)s blocks", proposal_create: "{account} created a proposal", proposal_delete: "{account} deleted a proposal", proposal_update: "{account} updated a proposal", publish_feed: "{account} published feed price of {price}", reg_account: "{registrar} registered the account {new_account}", set_proxy: "{account} set {proxy} as their voting proxy", transfer: "{from} sent {amount} to {to}", transfer_account: "{account} ownership transferred to {to}", unlisted_by: "{lister} unlisted the account {listee}", update_account: "{account} updated their account data {change}", vesting_balance_withdraw: "{account} withdrew vesting balance of {amount}", whitelisted_by: "{lister} whitelisted the account {listee}", witness_create: "{account} was upgraded to become a witness", witness_pay: "Withdrew witness pay to account", witness_receive: "Received witness from witness", witness_update: "{account} update its witness info", worker_create: "{account} created a worker proposal with daily pay of {pay}" }, page404: { asset_not_found_subtitle: "That asset does not exist", home: "Home", market_not_found_subtitle: "That market does not exist", page_not_found_subtitle: "This page does not exist", page_not_found_title: "404 page not found" }, pagination: { newer: "Newer", older: "Older" }, proposal: { action: "Actions", add: "Add", add_vote: "Add vote for", approve: "Approve", approvers: "Approver(s)", asset_create: "Create the asset %(asset)s using the account {account}", asset_issue: "Issue {amount} to {to} using {account}", asset_reserve: "Burn (reserve) {amount} using {account}", asset_settle: "Request a settlement of {amount} for {account}", asset_update: "Update the asset {asset} using the account {account}", call_order_update: "Change {account} {debtSymbol} debt by {debt} and collateral by {collateral}", changes_to_active: "Changes to active", changes_to_memo: "Changes to memo", changes_to_owner: "Changes to owner", committee_member_update_global_parameters: "Update committee global parameters by {account}", danger_operation: "Dangerous operation", delete: "Permanently reject", expires: "Expires", feed_producer: "Update the feed producers for the asset {asset} using the account {account}", limit_order_buy: "Place an order to buy {amount} at {price} for {account}", limit_order_create: "Place an order to buy %(buy_amount)s for %(sell_amount)s for %(account)s", limit_order_sell: "Place an order to sell {amount} at {price} for {account}", override_transfer: "Transfer {amount} from {from} to {to} by authority of {issuer}", permission_changes: "Permission changes", proposals: "Proposals", reject: "Reject", remove: "Remove", remove_vote: "Remove vote for", set_threshold: "Set threshold to %(threshold)s", status: "Status", transfer: "Transfer {amount} from {from} to {to}", update: { active_approvals_to_add: "Active approvals to add", active_approvals_to_remove: "Active approvals to remove", key_approvals_to_add: "Key approvals to add", key_approvals_to_remove: "Key approvals to remove", owner_approvals_to_add: "Owner approvals to add", owner_approvals_to_remove: "Owner approvals to remove" }, update_account: "Update account data for {account} {change}", updated: { active_approvals_to_add: "Active approval(s) added", active_approvals_to_remove: "Active approval(s) removed", key_approvals_to_add: "Key approval(s) added", key_approvals_to_remove: "Key approval(s) removed", owner_approvals_to_add: "Owner approval(s) added", owner_approvals_to_remove: "Owner approval(s) removed" }, vesting_balance_withdraw: "Withdraw {amount} from vesting balance of {account}", votes: "Votes" }, proposal_create: { expiration_time: "Expiration time", fee_paying_account: "Fee paying account", id: "Proposal object id", proposed_operations: "Proposed operations", review_period: "Review period begin" }, proposal_delete: { using_owner_authority: "Using owner authority" }, propose: "Propose", qr_address_scanner: { address_found: "Address found", amount: "Amount", retry: "Retry", use_address: "Use Address" }, refcode: { claim: "Claim", claim_refcode: "Claim Referral Code", enter_refcode: "Enter referral code", refcode_optional: "Referral Code (optional)" }, registration: { accountConfirmation: "I have written down or otherwise stored my username and password.", accountDescription: "Please keep your password in a safe place. Don’t share it with any third-parties or send it online.", accountLoginByValue: "Account name + Password", accountModelTitle: 'By Account Name and Password', accountNote: "If you forget your pass phrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!", attention: "Attention", backUpRestoreKey: "Back up and restore Account", checkboxRecover: "I understand that no one can recover my password or .bin file if I forget or lose it.", checkboxRemember: "I have remembered or otherwise stored my password and I safely kept downloaded .bin file.", checkboxUploaded: "I understand that .bin file must be uploaded during the login process and without .bin file I will lose access to my funds.", continue: "Continue", copyPassword: "Copy your password to save.", createAccountTitle: "Create Account by Bin-file", createByPassword: "Create Account by Name and Password", downloadFile: "Download file", loginByKey: "Login by", passwordPlaceholder: "Minimum 7 characters", recommended: "recommended", securityAccountModel: "Medium", securityKey: "Security", securityWalletModel: "High", select: "Select", title: "Registration", walletDescription: "A bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to upload this file to login to your account in the future.", walletLoginByValue: "Bin-file + Password", walletModelTitle: "By bin-file", walletNote: "Please keep in mind, that BitShares doesn't store users passwords and couldn't recover users accounts after password loss.", whyBinFile: "Why do I need a .bin file?" }, scaled_orders: { action: { buy: "Buy", sell: "Sell", title: "Action" }, distribution: { flat: "Flat", title: "Distribution" }, fee: "Fee", market_fee: "Market Fee", order_count: "Order Count", order_s: "Order(s)", please_log_in: "You need to login before use Scaled Orders", preview_table: { price: "Price" }, price_lower: "Price Lower", price_upper: "Price Upper", quantity: "Quantity", title: "Scaled Order", total: "Total" }, settings: { access: "Nodes", access_text: "", accounts: "Accounts", accounts_text: "Your accounts list.", activate: "Activate", active_node: "Active Node", add_api: "Add Node", add_ws: "Add Node", always_confirm: "Always ask for confirmation", apiServer: "Full node API server", api_closest: "Choose closest automatically", automatic: "Automatically select node (%(totalNodes)s listed)", automatic_short: "Automatic Switching", available_nodes: "Available", backup: "Backup", backup_backup: "Restore from a backup file (.bin)", backup_backup_short: "Restore from a backup", backup_brainkey: "Restore using a local wallet brainkey", backup_favorites: "Restore favorites using a json file", backup_favorites_error: "Could not parse JSON.", backup_favorites_finish: "Import favorites", backup_favorites_success: "Successfully restored market favorites", backup_favoritesbtn: "Backup favorites", backup_favoritestext: "Back up your favorites to restore them later after updates.", backup_key: "Import a private key", backup_legacy: "Import a BTS 0.9.3c key export file (.json)", backup_text: "Create backups here.", backupcreate_backup: "Create local wallet backup", backupcreate_brainkey: "Create brainkey backup", backupcreate_favorites: "Create favorites backup", browser_notifications: "Browser Notifications", browser_notifications_additional_transfer_to_me: "Notify about transfers to my account", browser_notifications_allow: "Enable notifications", browser_notifications_disabled_by_browser_notify: "Your browser disabled notifications. Click to learn how enable browser notifications", cloud_login: "Cloud Wallet Login", confirmMarketOrder: "Ask for confirmation of market orders", confirm_no: "Never", confirm_remove: "Are you sure you want to remove %(name)s from your available nodes?", confirm_yes: "Always", connection_error: "Unable to connect to API node %(url)s, falling back to known working nodes. Error was: %(error)s", darkTheme: "Dark", delete_select: "Select local wallet to delete", disabled: "Disabled", enable_wallet: "Enable local wallet", faucet_address: "Faucet", faucet_address_text: "The faucet address is used to pay the registration fee for new users.", general: "General", general_text: "Adjust the basic settings.", global_settings: "Default Global Settings", hidden_nodes: "Hidden", hide: "Hide", high_latency: "High latency", inverseMarket: "Market orientation preference", left: "Left", lightTheme: "Light", local_wallet: "Local Wallet Login", locale: "Switch language", lookup_text: "Click the button below to check for unclaimed balances from BTS 1.0", low_latency: "Low latency", medium_latency: "Medium latency", midnightTheme: "Midnight", my_nodes: "Personal", no: "No", no_accounts: "This local wallet does not contain any accounts.", node_already_exists: "Node with such URL already exists", node_down: "Unreachable", node_up: "Available", olDarkTheme: "Openledger dark", orderbook_autoscroll: "Order Book Autoscroll", orderbook_grouping: "Order Book Grouping", orderbook_reverse: "Order Book Reversed", password: "Password", passwordLogin: "Login mode", password_text: "Change your password.", personal_active: "Your only personal node is active, to remove or modify it you must first connect to a different node", ping: "Ping Nodes", pinging: "Pinging ...", placeholder_select: "Select option", remove: "Remove", remove_api: "Remove Node", remove_ws: "Remove Node", reset: "Reset settings", reset_text: "Restore settings to their original defaults.", reset_text_description: "This will reset all your %(generalName)s, %(accessName)s and %(faucetName)s Settings", restore: "Restore/Import", restore_brainkey_text: "In order to restore from a brainkey, you will need to create a new local wallet. Please provide a password and name for your new local wallet below, then enter your brainkey.", restore_default_success: "Settings have been reset successfully", restore_key_count: "# of keys", restore_text: "Restore from a backup or import keys.", right: "Right", scrollbars_hide: "Reduce scroll bars", show: "Show", showAssetPercent: "Show asset percentages on the account page", showSettles: "Show settle orders in depth chart", skipped: "Skipped", switch: "Switch Node", testnet_nodes: "Testnet", testnet_nodes_disclaimer: "Availability of the testnet is not guaranteed. Establish a connection by connected manually to one of the nodes below:", themes: "Theme", unit: "Preferred unit of account", valid_node_url: "Node URL must begin with ws:// or wss://", viewOnlyMode: "View only mode", view_keys: "View keys", wallet: "Local Wallet", walletLockTimeout: "Wallet auto-lock time (in seconds, 0 to disable)", walletLockTimeoutTooltip: "Click to adjust the time before the wallet auto-locks", wallet_required: "Local wallet required", wallet_required_text: "In order to restore a backup you will need to switch to a local wallet first, do so by clicking the button below", wallet_text: "Control the details of your local wallet.", wallets: "Wallets", yes: "Yes" }, showcases: { barter: { account: "Account", action: "Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ", add_escrow: "Add escrow", add_escrow_tooltip: "Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1's funds.", balance_warning: "Balance Warning", balance_warning_line: "wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s", balance_warning_tooltip: "%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed", bartering_asset: "Bartering asset", description: "Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.", error_fill_in_escrow_name: "Please fill in the account name of the escrow", error_fill_in_peer_left_name: "Please fill in the account name of Peer 1", error_fill_in_peer_right_name: "Please fill in the account name of Peer 2", error_fill_in_valid_asset_amount: "Please fill in valid amounts for the bartering assets", error_same_name: "Peer 1 and Peer 2 must be different accounts", error_same_name_escrow: "The escrow can not be Peer 1 or Peer 2", escrow_account: "Escrowing account", escrow_as_custodian: "An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.", escrow_as_witness: "An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.", escrow_payment: "Payment for escrow services", escrow_payment_tooltip: "Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1's account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.", fee_due_now: "Fee due now", fee_due_now_tooltip: "The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow", fee_when_proposal_executes: "Fee when proposal executes", fee_when_proposal_executes_tooltip: "When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations", new_barter: "Propose a new barter", new_barter_tooltip: "This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow", not_complete: "Please fill out all fields to see a description of the action here", peer_left: "Peer 1", peer_right: "Peer 2", proposal_fee: "Proposal fee", proposal_fee_tooltip: "The indicated transaction fee will be paid to create the proposal to realize this barter", propose_tooltip: "This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Dashboard, approve the proposal and notify the other involved parties.", remove_escrow: "Remove escrow", send_to_escrow: "Use escrow as custodian for Peer 1's funds", send_to_escrow_tooltip: "Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2", title: "Barter", total_fees: "Total fees: %(fee)s %(asset)s", total_fees_tooltip: "The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter" }, borrow: { borrow_tooltip: "You can also find this feature in your Dashboard under the tab Margin Positions, or by clicking Borrow in the Exchange", choose: "Choose the SmartCoin you want to create a position for", description: "Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)", do_it: "Let's do it", get_started: "Get started", navigate_with_keys: "The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate", next: "Next", now_ready: "Finalize the creation of your own Collateralized Debt Position", previous: "Previous", steps_benefits: { text: "Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.", text_legend: "Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).", title: "Benefits", title_within: "What are the benefits?" }, steps_concept: { text: "A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.", text_legend: "Example bitUSD: Provide BTS as collateral to borrow bitUSD", title: "Concept", title_within: "What is a Collateralized Debt Position?" }, steps_costs: { text: "Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ", title: "Settlement", title_within: "" }, steps_introduction: { text: "Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.", title_within: "This is the place to generate SmartCoins (Market Pegged Assets, MPAs)" }, steps_risks: { text: "As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.", text_legend: "Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.", title: "Risks", title_within: "What are the risks involved in borrowing?" }, steps_setup: { text: "You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.", text_legend: "Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.", title: "Setup", title_within: "How does it work?" }, title: "Collateralized Debt Position", title_long: "Create a Collateralized Debt Position" }, direct_debit: { amount_to_withdraw: "Amount to collect", authorized_account: "Payee", authorizing_account: "Payer", claim: "Claim", claim_funds: "Claim funds", create: "Create", create_new_mandate: "Create authorization", current_period_expires: "Current period ends", delete: "Delete", description: "Setup a direct debit authorization for recurring payments. The authorization allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.", expires: "Expires", first_period_not_started: "First period has not started!", limit: "limit", limit_per_period: "Maximum amount per period", num_of_periods: "Number of periods", period: "Specify period", start_date: "First period starts on", title: "Direct debit", tooltip: { authorized_account: "The account that is eligible to collect from your account.", limit_per_period: "The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.", num_of_periods: "After the start time this amount of periods are available consecutively.", period: "One period lasts the indicated time interval, e.g. 2 weeks.", start_time: "The start time of the first period must be in the future when broadcasting." }, update: "Update", update_mandate: "Update existing authorization" }, htlc: { actions: "Actions", amount: "Amount", create_htlc: "Create HTLC", custom: "Custom", description: "A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.", enter_secret_preimage: "Enter secret preimage", expiration: "Expiration", expiration_date: "Expiration date", expiration_period: { one_day: "One day", one_week: "One week", two_days: "Two days" }, expires: "Expires", extend: "Extend", extend_htlc: "Extend HTLC", first_stage: "1st stage", from: "From", hash: "Hash", preimage: "Preimage", preimage_has_been_created: "A random preimage has been created and filled in automatically below.", recipient: "Recipient", redeem: "Redeem", redeem_htlc: "Redeem HTLC", second_stage: "2nd stage", sender: "Sender", size: "Size", title: "Hashed Time-Lock Contracts", to: "To", tooltip: { enter_preimage: "Enter the secret preimage that you have obtained from the sender", new_random: "Roll the dice and create a new random string.", preimage_button: "Please click to enter secret preimage", preimage_hash: "The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.", preimage_input: "Field requires a secret preimage", preimage_random: "The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.", preimage_size: "The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size." } }, paper_wallet: { description: "Create a PDF with your account's keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.", title: "Paper Wallet" }, timed_transfer: { description: "Initiate a transfer that will execute at a specified time.", title: "Timed transfer" }, voting: { description: "Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.", title: "Voting" } }, sync_fail: { sub_text_1: "Please verify that your computer clock is correct.", sub_text_2: "Once you've synchronized your clock, please refresh this page.

If your clock is already correct, the API server you're using could be out of sync. In that case, please try a different server from the list below.", title: "Failed to sync with the API server" }, tooltip: { add_memo_field: "Add memo text field", borrow: "Borrow %(asset)s from the network. This creates a smart contract that locks your collateral until you either modify the position or a margin call is required.", borrow_disabled: "%(asset)s is in global settlement. Margin positions can't be created until it is revived. See asset details page for more information", bridge: "Bridges allow deposit of any external assets and instant trade into the desired gateway asset", bridge_TRADE: "BlockTrades is a bridge which supports instant trade of assets. Details and terms can be found on https://blocktrades.us", buy_min: "You will receive at minimum this amount. If there are matching orders with a cheaper price than you specified, you will receive more than this amount.", call_limit: "This is the call price of the least collateralized margin position in the market.", call_price: "This is the call price of the position. If the feed price goes below the call price, the position will be margin called.", close_position: "Click here to close your position. You will need to have at least %(amount)s %(asset)s in order to do so.", coll_ratio: "The collateral ratio of the position is COLLATERAL * FEED PRICE / DEBT.", copy_password: "Click here to copy the password to your clipboard", copy_tip: "Click here to copy the text to your clipboard", cr_danger: "This position is currently being margin called. Consider adding collateral to bring the collateral ratio above %(mr)s or closing the position.", cr_warning: "This position has a low level of collateral, and will get margin called if the collateral ratio drops below %(mr)s. Consider adding collateral or closing the position.", debug_report: "Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.", deposit_tip: "To complete the deposit, go to your external %(asset)s wallet and make a transfer to the address listed on this page. You will receive the deposit as soon as it has been confirmed. If a memo is shown , it is essential that you include this memo in your transfer.", disconnected: "You are not connected to an API node, try reloading or setting a new access point in the Settings", feed_price: "This is the current external feed price (median of all feed prices given by witnesses)", filter_ops: "Use this list to filter your history by operation type.", follow_user: "You are following this user", follow_user_add: "Click to Follow this user", gateway: "Gateways provide IOUs on the BitShares Blockchain that are backed by the real asset", generate: "The generated password was created by your browser, locally.

No one but you has access to it.

Paste it below and save a copy in a safe place", global_settle: "This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).", global_settle_price: "This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly", hide_asset: "Click here to hide this asset from this list.", lack_funds: "There is not enough funds to perform the operation", latest_price: "This is the latest price seen in this market.", legacy_explanation: "Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.", login: "This %(wallet_name)s wallet does not offer a traditional login but instead simply locks or unlocks a wallet that is only stored locally in your browser.

Whenever you close the wallet it will be locked and you will effectively be logged out.", "login-tooltip": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, "login-tooltips": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, login_required: "Please login to the selected account to perform this action", margin_price: "This is the maximum price that a margin called position can be made to pay. It is also called the Squeeze Price.", market_fee: "The owner of %(asset)s charges a market fee of %(percent)s for buy orders. This fee will be subtracted from the amount you receive when your order fills, it is not paid when placing an order.", memo_tip: "You may include an optional message in the memo field. This allows you to write personal notes and is also often used by exchanges to identify deposits.", no_groups_available: "No groupings available using this API server", no_price: "There's no recent price available for this asset that can be used to estimate its value.", nodes_popup: "Click here to open the access settings popup that allows you to switch nodes if necessary", over_limit: "The bridge does not have enough of the desired asset for this buy order", own_account: "You hold keys for this account", propose_scam: "This proposal was created by a known scammer or from someone that you blacklisted! Approval not possible.", propose_tip: "Propose another user to initiate a transaction", propose_unhide: "Do not uncheck this unless you know what you are doing", propose_unknown: "This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.", proxy_remove: "You have a proxy set, to remove it clear this input field and click save or directly click remove proxy", proxy_search: "Search for an account to be used as your proxy for voting. Your account will act as if you would be voting exactly the same as your proxy.", registration: { accountModel: "The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!", accountName: "Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.", password: "Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.", walletModel: "The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", whyBinFile: ".bin file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be uploaded during the login process." }, required_input: "Field requires a valid %(type)s", scam_account: "Account is suspected scammer", self_help: "Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet", settle: "Settling will let you convert your holdings of %(asset)s to %(backingAsset)s after a delay of %(settleDelay)s hours, at a price equal to the feed price at that time.", settle_price: "This is the price at which settle orders will execute.", show_asset: "Click here to show this asset in the main list.", show_block: "Click here to show block #%(block)s where this transaction occurred.", sign_owner: "If you are the owner of this account, please check this to make sure the transaction gets signed properly. This is only necessary if you are using the owner account and that account is not included in the active permissions.", sync_no: "The current node is out of sync with the blockchain, try switching to another one", sync_yes: "The current node is in sync with the blockchain", target_collateral_ratio: "Setting a Target Collateral Ratio (TCR) will allow the blockchain to automatically sell the required amount of your collateral in order to keep your collateral ratio at or above your defined TCR when the value of your collateral decreases.

To frequently sell small amounts, set a low target (eg. < 2)

To sell larger amounts infrequently, set a high target (eg. > 3)", transfer_actions: "Click here to make a transfer, or to deposit/withdraw those assets that support it.", unlock_account_name: "Click to edit the account name, e.g. when your account is set as permission of another account.", update_position: "Click here to update your position. You may at any time change the debt and/or collateral levels of your position.", withdraw_address: "If you don't already have a %(asset)s address, please find a wallet provider and create one in order to complete the withdrawal.", withdraw_full: "Click to withdraw the full balance" }, transaction: { amount_sell: "Amount to sell", asset_claim_fees: "claimed asset fees of {balance_amount} from {asset} fee pool", asset_reserve: "burned asset amount", at: "at", balance_id: "Balance ID", balance_owner: "Balance owner key", bidder: "Bidder", blinding_factor: "Blinding factor", bond_accept_offer: "Accepted bond offer of", bond_cancel_offer: "Cancelled bond offer", bond_claim_collateral: "Claimed collateral of", bond_create_offer: "Created bond offer", bond_pay_collateral: "Paid collateral of", borrow_amount: "Debt", borrower: "Borrower", broadcast_fail: "Failed to broadcast the transaction: %(message)s", broadcast_success: "Transaction has been broadcast", broadcasting: "Broadcasting transaction..", broadcasting_short: "Broadcasting..", burn_asset: "Burnt", by: "by", claimed: "Total claimed", coll_maint: "Collateral maintenance ratio", coll_of: "with collateral of", coll_ratio: "Initial collateral ratio", collateral: "Collateral", collateral_target: "Target Collateral", committee_member_create: "Created the committee member", confirm: "Please confirm the transaction", create_key: "Created a public key", csv: "Export to .csv", csv_tip: "Download full account history as a comma separated .csv file using Cointracking.info or raw format", cumulative_borrow_amount: "Cumulative Debt", custom: "Created a custom operation", delta_collateral: "Collateral change", delta_debt: "Debt change", deposit_to: "Deposited to account", expiration: "Expiration", feeGroups: { account: "Account-Specific", asset: "Asset-Specific", business: "Business Administration", general: "General", market: "Market-Specific" }, feeTypes: { _none: "Free of Charge", basic_fee: "Basic Fee", fee: "Regular Transaction Fee", fee_per_day: "Price per day", fee_per_kb: "Price per KByte Transaction Size", long_symbol: "Longer Symbols", membership_annual_fee: "Annual Membership", membership_lifetime_fee: "Lifetime Membership", premium_fee: "Fee for Premium Names", price_per_kbyte: "Price per KByte Transaction Size", price_per_output: "Price per recipient", symbol3: "Symbols with 3 Characters", symbol4: "Symbols with 4 Characters" }, feed_price: "Feed price", feed_producer: "Became a feed producer for the asset", file_write: "Wrote a file", fill_or: "Fill or kill", for: "for", from: "from", fund_pool: "funded %(asset)s fee pool with", funding_account: "Funding account", global_parameters_update: "Updated global parameters", inputs: "Inputs", market_fee: "Market fee", max_market_fee: "Maximum market fee", min_receive: "Minimum amount to receive", new_url: "Website", obtain: "to obtain", order_id: "Order ID", outputs: "Outputs", paid: "paid", publisher: "Publisher", received: "received", seller: "Seller", sent: "sent", settlement_date: "Settlement date", to: "to", transaction_confirmed: "Transaction confirmed", trxTypes: { account_create: "Create account", account_transfer: "Transfer Account", account_update: "Update account", account_upgrade: "Upgrade Account", account_whitelist: "Account whitelist", all: "Show all", assert: "Assert operation", asset_bid_collateral: "Bid collateral", asset_claim_fee_pool: "Claim fee pool balance", asset_claim_fees: "Claim asset fees", asset_claim_pool: "Claim asset fee pool", asset_create: "Create asset", asset_fund_fee_pool: "Fund asset fee pool", asset_global_settle: "Global asset settlement", asset_issue: "Issue asset", asset_publish_feed: "Publish feed", asset_reserve: "Burn asset", asset_settle: "Asset settlement", asset_settle_cancel: "Cancel asset settlement", asset_update: "Update asset", asset_update_bitasset: "Update SmartCoin", asset_update_feed_producers: "Update asset feed producers", asset_update_issuer: "Update asset issuer", balance_claim: "Claim balance", bid_collateral: "Collateral bid", blind_transfer: "Blinded transfer", call_order_update: "Update margin", committee_member_create: "Create committee member", committee_member_update: "Update committee member", committee_member_update_global_parameters: "Global parameters update", custom: "Custom", execute_bid: "Execute bid", fba_distribute: "Fee backed asset distribution", fill_order: "Fill order", htlc_create: "HTLC create", htlc_extend: "HTLC extend", htlc_redeem: "HTLC redeem", htlc_redeemed: "HTLC redeemed", htlc_refund: "HTLC refund", limit_order_cancel: "Cancel order", limit_order_create: "Place order", override_transfer: "Override transfer", proposal_create: "Create proposal", proposal_delete: "Delete proposal", proposal_update: "Update proposal", transfer: "Transfer", transfer_from_blind: "Transfer from blinded account", transfer_to_blind: "Transfer to blinded account", vesting_balance_create: "Create vesting balance", vesting_balance_withdraw: "Withdraw vesting balance", withdraw_permission_claim: "Claim withdrawal permission", withdraw_permission_create: "Create withdrawal permission", withdraw_permission_delete: "Delete withdrawal permission", withdraw_permission_update: "Update withdrawal permission", witness_create: "Create witness", witness_update: "Update witness", witness_withdraw_pay: "Witness pay withdrawal", worker_create: "Create worker" }, vesting_balance_create: "created vesting balance of", waiting: "Waiting for confirmation..", whitelist_states: { black_listed: "Blacklisted", no_listing: "Unlisted", white_and_black_listed: "Whitelisted and blacklisted", white_listed: "Whitelisted" }, withdraw_permission_claim: "Claimed withdrawal permission for account", withdraw_permission_create: "Gave withdrawal permission for account", withdraw_permission_delete: "Deleted withdrawal permissions for account", withdraw_permission_update: "Updated withdrawal permission for account" }, transfer: { again: "MAKE ANOTHER TRANSFER", amount: "Quantity", available: "Available", back: "BACK", balances: "Balances", broadcast: "Your transfer has been broadcast to the network", broadcasting: "Broadcasting...", by: "By", cancel: "Cancel", close: "Close", confirm: "CONFIRM", copy_address: "Copy Address", copy_memo: "Copy Memo", errors: { balance: "The final balance must be larger than 0", insufficient: "Insufficient funds", memo_error: "The transfer memo parsing error, please try again later.", memo_length_error: "The transfer memo length exceed, please check", minimum_amount: "Minimum withdraw amount: %(amount)s %(symbol)s", noFeeBalance: "Your balance is insufficient to pay fees using this asset, please choose another asset to pay your fees with", noFunds: "No funds", noPoolBalance: "That asset has an insufficient fee pool balance to pay the fees with. Please inform the asset owner or select another asset for paying fees.", pos: "Amount must be positive", precision: "Minimum withdraw precision value: %(precision)s", req: "Required field", valid: "Please enter a valid, positive number" }, explict_price: "Explict price:", fee: "Fee", final: "Final balance", free: "Free", from: "From", header: "Transfer details", header_subheader: "Send funds from an account you control to another %(wallet_name)s account holder.", header_subheader_propose: "Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.", memo: "Memo / Message", memo_unlock: "Unlock your wallet/account in order to see this memo", optional: "Optional", pay_from: "Pay From", phase_out_warning: "We recommend using the new {modal_link} modal as this page will be phased out", see: "SEE MY TRANSFERS", send: "Send", to: "To", warn_name_unable_read_memo: "Proposed sender will be unable to read this memo!" }, trx_error: { expire: "Your transaction has expired without being confirmed, please try again later." }, utility: { asset_input_placeholder: "Enter asset symbol", asset_select_placeholder: "Select asset", total_x_assets: "Total of %(count)s assets", total_x_items: "Total of %(count)s items", total_x_markets: "Total of %(count)s markets", total_x_operations: "Total of %(count)s operations" }, validation: { messages: { balance: "Insufficient balance. Available only: %(balance)s %(symbol)s", email: "The field should be email", emailNamed: "%(name)s should be email", float: "The field should be float", floatNamed: "%(name)s should be float", integer: "The field should be integer", integerNamed: "%(name)s should be integer", max: "The field should be less than %(max)s", maxNamed: "%(name)s should be less than %(max)s", min: "The field should higher than %(min)s", minNamed: "%(name)s should be higher than %(min)s", number: "The field should be number", numberNamed: "%(name)s should be number", oneOf: "The field should be one of: %(list)s", oneOfNamed: "%(name)s should be one of: %(list)s", range: "The field should be in range from %(min)s to %(max)s", rangeNamed: "%(name)s should in range from %(min)s to %(max)s", required: "The field is required", requiredNamed: "%(name)s is required", test: "", types: { array: "The field should be array", arrayNamed: "%(name)s should be array", boolean: "The field should be boolean", booleanNamed: "%(name)s should be boolean", date: "The field should be date", dateNamed: "%(name)s should be date", enum: "The field should be one of %(list)s", enumNamed: "%(name)s should be one of %(list)s", hex: "The field should be hex", hexNamed: "%(name)s should be hex", method: "The field should be method", methodNamed: "%(name)s should be method", object: "The field should be object", objectNamed: "%(name)s should be object", regexp: "The field should be regexp", regexpNamed: "%(name)s should be regexp", string: "The field should be string", stringNamed: "%(name)s should be string" }, url: "The field should be url", urlNamed: "%(name)s should be url" } }, voting: { description: "The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).", title: "Voting" }, walkthrough: { buy_form: "Place buy orders using this form.", buy_orders: "View all buy orders for this market.", chart_tool_duration: "Group trade data using different intervals.", chart_tool_indicators: "Add technical indicators to the price chart to identify trading opportunities.", chart_tool_zoom: "Adjust the price chart to show more or less price history.", collapsed_items: "View one or several sections of the market by expanding the drawers", create_cloud_wallet: "Access the cloud wallet using an account name and password.", create_local_wallet: "Create a local wallet and download any private keys belonging to it.", depth_chart: "Use a market depth chart to show the supply and demand at different prices.", done_label: "Done", favourite_button: "Mark this pair as a favourite in your markets list.", find_markets_tab: "This tab allows you to search and add additional markets to the 'my markets' tab.", language_flag: "Choose from 9 different languages to use in the DEX.", my_markets: "This tab lists commonly used markets.", next_label: "Next", panel_hide: "You can hide the panel to have more room", personalize: "Change the default layout in the personalize settings", prev_label: "Back", price_alerts: "Set alerts to get notifications if the price fluctuates", price_chart: "View price action of an asset using the price chart.", restore_account: "Restore a wallet using your backup file.", sell_form: "Place sell orders using this form.", sell_orders: "View all sell orders for this market.", skip_label: "Skip", switch_button: "Switch the trading pairs using this button.", vertical_lock: "Disable auto scroll to scroll through the order book", vertical_order: "View all orders for this market, including spread and latest order price" }, wallet: { accept: "Accept", account_public: "Account Name (Public)", active_wallet: "Active Local Wallet", all_set: "You're all set!", ask_to_select_wallet: "Please select a key file", back: "Back", backup_brainkey: "Backup Brainkey", backup_explain: "Clicking on the button below will generate a backup file with a .bin extension. This file is encrypted with your wallet password, and contains all the private keys for your accounts. It can be used to restore your wallet, or move it to a different computer/browser.", backup_login: "Backup & login", backup_new_account: "Congratulations, you've just created a new account on the %(wallet_name)s exchange powered by the BitShares blockchain! It is strongly recommended that you make a backup of your wallet now. Without a backup there is no way to restore your account if something happens to your computer.", backup_types: "backup types", backup_warning: "It appears that your private key files are not backed up. For security reasons we recommend users do not log in without backing up their private keys.", balance_claim_lookup: "Lookup balances", balance_claims: "Balance Claims", brainkey: "Brainkey", brainkey_backed_up: "This brainkey was last backed up", brainkey_not_backed_up: "This brainkey has never been backed up", brainkey_not_verified: "This Brainkey is not verified", brainkey_reset_success: "Sequence reset. In order to regenerate your private keys from the wallet brain key, refresh your browser then unlock the wallet.", brainkey_seq_reset: "Reset brainkey sequence", brainkey_seq_reset_button: "Reset now", brainkey_seq_reset_text: "Use this to reset the sequence counter used to derive private keys from the wallet brainkey.
It can be used to force a regeneration of private keys from your wallet brain key.", brainkey_w1: "To complete your backup, print this out, or write it down.", brainkey_w2: "Anyone with access to your recovery key will", brainkey_w3: "have access to funds within this local wallet.", bts_09_export: "BTS 0.9.3c key export file (.json)", cancel: "Cancel", change: "Change to %(name)s", change_backup: "Now that you've changed your password, we highly recommend making a new backup.", change_password: "Change Password", change_success: "Password successfully changed!", change_wallet: "Change Local Wallet", claim_balance: "Claim Balance", claim_balances: "Claim Balances", claim_later: "Once you've imported the keys, you can claim these balances to an account of your choosing.", confirm: "Wallet password (confirm)", confirm_error: "The confirmation does not match the password", confirm_password: "Confirm Password", congrat: "Congratulations, you're ready!", console: "Local Wallet Management Console", create: "Create", create_a: "Create a new blockchain account", create_account_password_text: "The keys for this new account will be derived using your password. Nothing is stored in the browser or in a central server, so you will need to ensure you remember this password!! Store it using a password manager or by writing it down manually.", create_account_text: "The account name you choose needs to be unique, as it will be registered publicly on the blockchain and will be your identifer for any transactions you make.", create_backup: "Create Backup", create_backup_of: "Create backup now", create_importkeys_text: "In order to import keys, you first need to create a local wallet to contain the keys. Complete the dialog below to create a new local wallet.", create_password: "Create a new account using a password", create_success: "Your local wallet has been created", create_text: "The %(wallet_name)s local wallet is stored in your browser, it is not stored in the cloud. A wallet can contain multiple accounts and can be easily transferred between browsers and computers using a backup file.", create_w_a: "Create a local wallet containing an account", create_wallet: "Create new local wallet", create_wallet_backup: "Create new wallet from backup", current_pass: "Current password", custom_brainkey: "Use a custom brainkey (advanced)", delete_confirm_line1: "Are you ABSOLUTELY sure?", delete_confirm_line2: "Unexpected bad things will happen if you don’t read this!", delete_confirm_line3: "This action CANNOT be undone, and if you do not have a backup this local wallet will be gone.", delete_confirm_line4: "Yes, delete wallet %(name)s", delete_wallet: "Delete Local Wallet", delete_wallet_name: "Delete Local Wallet (%(name)s)", different_file_type: "Have a different file type?", done: "Done", dont_ask_for_backup: "Don't ask me to back up again", download: "Download", enter_password: "Password", existing_password: "Existing Password", first_account_paid: "Since this is your first account, a faucet will pay the registration fee for you.", generated: "Generated password", go_get_started: "Getting Started", has_wallet: "When you create your first %(wallet_name)s account, a %(wallet_name)s local wallet will be automatically created as well and stored in your browser. This local wallet is encrypted with your password, and will contain any private keys belonging to your accounts. It is important that you take the time to backup this wallet once created!", import_20_notice1: "Import your BTS 2.0+ BACKUP first", import_20_notice2: "(if you have one)", import_backup: "Import %(wallet_name)s 2.0 backup (.bin file)", import_backup_choose: "Please select your backup file in the dialog below. This is completely safe as the file is not uploaded anywhere and never leaves your browser.", import_balance: "Import balance(s)", import_bts: "Import a BTS 0.9.3c key export", import_bts1: "Import from BitShares 0.9.3c", import_key_success: "Successfully imported %(count)s keys.", import_keys: "Import Keys", import_keys_tool: "Key Import Tool", import_pass_match: "Password matches. Decrypting the backup now...", import_password: "Enter import file password", import_private_key: "Import a private key", invalid_format: "Invalid Format", key_file: "Key file", key_file_bin: "Key file (.bin)", last_backup: "Last backup", link_account: "Account", link_deposit: "Deposits", link_transfer: "Transfers", loading_balances: "Looking for unclaimed balances", local_switch: "Local wallet detected matching the given password, switching to local wallet mode", login_type: "Login type selection", must_be_ltm: "The fee paying account must be a lifetime member to perform that operation.", name: "Local Wallet Name", need_backup: "This local wallet needs a backup", never_backed_up: "This local wallet has never been backed up, you should create a backup now!", new_confirm: "Confirm new password", new_password: "New password", new_wallet: "New Local Wallet", new_wallet_name: "New Local Wallet Name", no_accounts: "No accounts found", no_balance: "No unclaimed balances found", no_wallet: "You do not have a local wallet yet?", noneed_backup: "No backup is needed", not_first_account: "Since you already have an account, you will need to pay for this new account yourself. In order to do so, your account needs to have lifetime membership, which can be bought in the account page.", ok_done: "OK, take me to the dashboard", pass_incorrect: "Incorrect password", pass_length: "The password must contain at least %(minLength)s characters. Ideally you should use 20 or more, and a combination of numbers, special characters and letters.", password: "Wallet password", password_crucial: "In case you haven't already done so, it is crucial that you take the time to write down your password now, whether it be on paper, a password manager, or somewhere else. If you lose or forget this password your account will be lost, we cannot help you get it back.", password_lose_warning: "IMPORTANT: If you forget your pass phrase you will be unable to access your account, we cannot reset or restore your password! Make sure you memorize or write down your password!", password_model: "Cloud Wallet", password_model_1: "The cloud wallet uses a password in combination with your account name to generate your private keys on the fly. It restricts you to only logging in with one account at a time, in return for ease of use and convenience.", password_model_2: "The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!", password_model_3: "
  • Single account
  • Easy login
  • Moderate security
  • ", password_show: "Show me my password", paste_private: "Paste private keys here (Wallet Import Format - WIF)", pwd4brainkey: "Enter your password to show your brainkey", read_more: "Read more about %(wallet)s and %(backup)s.", ready_to_restore: "Ready to Restore", reenter_brainkey: "Re-Enter Brainkey", remember_me: "Remember me", remember_me_explanation: "Turn 'Remember Me' off to disable remembering your account name and other personal settings.", reset: "Reset", restore: "Restore Local Wallet from Backup", restore_backup: "Restore Backup", restore_it_here: "Restore it here", restore_key_file: "Restore key file..", restore_success: "Successfully restored (%(name)s) wallet", restore_wallet_of: "Restore (%(name)s Wallet)", select_wallet: "Select key file", setup_wallet: "Setup your local wallet", show_brainkey: "Show Brainkey", step_1: "Create a wallet", step_2: "Create a backup", step_3: "Getting Started", submit: "Submit", switch_model_password: "Switch to cloud wallet", switch_model_wallet: "Switch to local wallet", tips_account: "See your new account", tips_dashboard: "See your dashboard", tips_deposit: "Make a deposit", tips_explore: "Now that you've successfully created an account and downloaded the backup, it's time to get started. Click on one of the links below to start exploring.", tips_explore_pass: "Now that you've successfully created an account and backed up your password, it's time to get started. Click on one of the links below to start exploring.", tips_header: "You can also find these same links in the top menu, and in the drop-down menu next to your account name.", tips_login: "IMPORTANT: There is no login/logout functionality here, you merely unlock your wallet when you wish to make a transaction.", tips_settings: "Change the settings", tips_transfer: "Make a transfer", title: "Wallet", totals: "Asset Totals", unclaimed: "Unclaimed balances belonging to these keys", unclaimed_vesting: "Unclaimed (vesting)", understand_1: "I understand that no one can recover my password if I lose or forget it", understand_2: "I have written down or otherwise stored my password", understand_3: " I understand that I will lose access to my funds if I lose my password", use_different: "Use different file", use_password: "Use a cloud wallet", use_wallet: "Use a local wallet", using: "Using:", verified: "Verified", verify: "I've written it down", verify_prior_backup: "Verify Prior Backup", wallet_browser: "Your Web Browser is your Wallet", wallet_created: "Local Wallet Created", wallet_crucial: "Your local wallet is only stored in your browser, so it is crucial that you create a backup that will enable you to recover your wallet if the data in your browser is lost! No one else can restore your account if you lose your backup.", wallet_exist: "A local wallet called that already exists, please choose a new name", wallet_exist_with_name: "A local wallet called (%(name)s) already exists, please change the name", wallet_lose_warning: "IMPORTANT: If you lose your local wallet or your pass phrase you will be unable to access any of your funds again. Make sure you store the backup somewhere safe, and memorize or write down your password!", wallet_model: "Local Wallet", wallet_model_1: "The local wallet stores the wallet in your browser. It is encrypted with a password that you choose, and can be backed up using either a brainkey or an encrypted binary file that contains all the private keys. The local wallet lets you use multiple accounts at the same time.", wallet_model_2: "The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", wallet_model_3: "
  • Multiple accounts
  • Wallet file backup required
  • High security
  • ", wallet_move: "This backup file can also be used to move your local wallet to different computers or different browsers. In order to restore your local wallet using this backup you will also need your password!", wallet_password: "Login anywhere using your password", wallet_types: "wallet types" } } } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(2) , o = r.n(i) , s = r(1) , l = r.n(s) , c = r(7) , u = r(15) , d = r(4) , p = r.n(d) , h = r(43) , m = r(45) , f = r(11) , g = r(88) , _ = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } ; var b = function(e) { var t = e.label , r = e.assets , a = e.selectStyle , i = e.formItemStyle , s = e.style , l = e.placeholder , d = e.value , h = function(e, t) { var r = {}; for (var a in e) t.indexOf(a) >= 0 || Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]); return r }(e, ["label", "assets", "selectStyle", "formItemStyle", "style", "placeholder", "value"]) , m = n.a.createElement(c.Select, _({ showSearch: !0, style: a, placeholder: n.a.createElement(o.a, { content: l || "utility.asset_select_placeholder" }), value: n.a.createElement(g.a, { noTip: !0, name: d }) }, h, { optionFilterProp: "children", filterOption: function(e, t) { return t.key.toLowerCase().indexOf(e.toLowerCase()) >= 0 }, disabled: r.filter(f.Map.isMap).length <= 1, notFoundContent: p.a.translate("global.not_found") }), r.filter(f.Map.isMap).map(function(e) { var t = u.a.replaceName(e) , r = t.name , a = t.prefix; return n.a.createElement(c.Select.Option, { key: "" + (a || "") + r, value: e.get("id") }, n.a.createElement(g.a, { noTip: !0, name: e.get("symbol") })) })); return n.a.createElement("div", { className: "asset-select", style: s }, t ? n.a.createElement(c.Form.Item, { colon: !1, label: n.a.createElement(o.a, { content: t }), style: i }, m) : m) }; b.propTypes = { assets: h.a.ChainAssetsList, placeholder: l.a.string, label: l.a.string, style: l.a.object, formItemStyle: l.a.object, selectStyle: l.a.object }, b.defaultPropTypes = { assets: [], placeholder: null, label: null, style: "", formItemStyle: "", selectStyle: "" }; var y = Object(m.a)(b); t.a = y } , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(45) , o = r(43) , s = r(11) , l = r.n(s) , c = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , u = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var d = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), u(t, [{ key: "render", value: function() { var e = this.props , t = e.wrap , r = e.orders , a = function(e, t) { var r = {}; for (var a in e) t.indexOf(a) >= 0 || Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]); return r }(e, ["wrap", "orders"]) , i = this.props.balances.filter(function(e) { return !!e && 0 !== e.get("balance") }).map(function(e) { return e.get("asset_type") }) , o = r.filter(function(e) { return !!e }).reduce(function(e, t) { var r = t.getIn(["sell_price", "base", "asset_id"]); return e[r] || (e[r] = 0), e[r] += parseInt(t.get("for_sale"), 10), e }, {}); for (var s in o) -1 === i.indexOf(s) && i.push(s); var u = t; return n.a.createElement(u, c({}, a, { orders: o, balanceAssets: l.a.List(i) })) } }]), t }(); d.propTypes = { balances: o.a.ChainObjectsList, orders: o.a.ChainObjectsList }, d.defaultProps = { balances: l.a.List(), orders: l.a.List() }, t.a = Object(i.a)(d) } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(33) , l = r(2238) , c = r(2) , u = r.n(c) , d = r(4) , p = r.n(d) , h = r(3) , m = r.n(h) , f = r(108) , g = r(202) , _ = r.n(g) , b = r(15) , y = r(119) , v = r(177) , w = r(127) , k = r(541) , x = r.n(k) , S = r(22) , A = r(103) , E = r(44) , T = r(398) , C = r(5) , z = r(53) , B = r.n(z) , O = r(29) , P = r.n(O) , j = (r(346), r(7)) , I = r(107) , M = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }() , N = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } ; function R(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function q(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function D(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var L = C.ChainTypes.operations; r(542), r(865); var F = Object.keys(L) , U = Object.keys(x.a.account_listing) , W = function(e) { var t = e.value , r = function(e, t) { var r = {}; for (var a in e) t.indexOf(a) >= 0 || Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]); return r }(e, ["value"]); return n.a.createElement(u.a, N({ content: "boolean." + (t ? "true" : "false") }, r)) } , H = function(e) { function t() { return R(this, t), q(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return D(t, n.a.Component), M(t, [{ key: "shouldComponentUpdate", value: function(e) { return e.type !== this.props.type } }, { key: "render", value: function() { var e = p.a.translate("transaction.trxTypes") , t = m()("txtlabel", this.props.color || "info"); return n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement("span", { className: t }, this.props.txIndex >= 0 ? n.a.createElement("span", null, "#", this.props.txIndex + 1, ": ") : "", e[F[this.props.type]])), n.a.createElement("td", null)) } }]), t }() , K = function(e) { function t() { return R(this, t), q(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return D(t, n.a.Component), M(t, [{ key: "render", value: function() { return n.a.createElement("span", null, this.props.children) } }]), t }() , V = function(e) { function t() { return R(this, t), q(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return D(t, n.a.Component), M(t, [{ key: "render", value: function() { var e = n.a.createElement("tr", null, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.fee" })), n.a.createElement("td", null, this.props.fee.amount > 0 ? n.a.createElement(s.a, { color: "fee", amount: this.props.fee.amount, asset: this.props.fee.asset_id }) : n.a.createElement("label", null, n.a.createElement(u.a, { content: "transfer.free" })))); return n.a.createElement("div", null, n.a.createElement("table", { style: { marginBottom: "1em" }, className: "table op-table" }, n.a.createElement("caption", null), n.a.createElement("tbody", null, n.a.createElement(H, { txIndex: this.props.txIndex, type: this.props.type, color: this.props.color }), this.props.children, e))) } }]), t }() , G = function(e) { function t() { return R(this, t), q(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return D(t, n.a.Component), M(t, [{ key: "componentDidMount", value: function() { B.a.rebuild() } }, { key: "linkToAccount", value: function(e) { if (!e) return n.a.createElement("span", null, "-"); var t = this.props.no_links ? K : l.a; return b.a.is_object_id(e) ? n.a.createElement(y.a, { account: e }) : n.a.createElement(t, { to: "/account/" + e + "/overview" }, e) } }, { key: "linkToAsset", value: function(e) { if (!e) return n.a.createElement("span", null, "-"); var t = this.props.no_links ? K : l.a; return b.a.is_object_id(e) ? n.a.createElement(v.a, { asset: e }) : n.a.createElement(t, { to: "/asset/" + e }, e) } }, { key: "_toggleLock", value: function(e) { var t = this; e.preventDefault(), E.a.unlock().then(function() { t.forceUpdate() }).catch(function() {}) } }, { key: "render", value: function() { var e = this , t = this.props.trx , r = null; r = []; var a = t.operations.length , i = null; return t.operations.forEach(function(t, o) { var l = [] , c = 0 , d = ""; switch (F[t[0]]) { case "transfer": if (d = "success", t[1].memo) { var h = A.a.decodeMemo(t[1].memo) , m = h.text , g = h.isMine; i = m ? n.a.createElement("td", { className: "memo", style: { wordBreak: "break-all" } }, m) : !m && g ? n.a.createElement("td", null, n.a.createElement(u.a, { content: "transfer.memo_unlock" }), " ", n.a.createElement("a", { onClick: e._toggleLock.bind(e) }, n.a.createElement(S.a, { name: "locked", title: "icons.locked.action" }))) : null } l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.from" })), n.a.createElement("td", null, e.linkToAccount(t[1].from)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, e.linkToAccount(t[1].to)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))), i && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { content: "transfer.memo" })), i)); break; case "limit_order_create": d = "warning", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "exchange.price" })), n.a.createElement("td", null, n.a.createElement(w.a, { base_asset: t[1].amount_to_sell.asset_id, quote_asset: t[1].min_to_receive.asset_id, base_amount: t[1].amount_to_sell.amount, quote_amount: t[1].min_to_receive.amount, noPopOver: !0 })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "exchange.sell" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount_to_sell.amount, asset: t[1].amount_to_sell.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(j.Tooltip, { placement: "left", title: p.a.translate("tooltip.buy_min") }, n.a.createElement(u.a, { component: "span", content: "exchange.buy_min" }))), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].min_to_receive.amount, asset: t[1].min_to_receive.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.seller" })), n.a.createElement("td", null, e.linkToAccount(t[1].seller)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.expiration" })), n.a.createElement("td", null, n.a.createElement(f.a, { value: P.a.utc(t[1].expiration), format: "full", timeZoneName: "short" })))); break; case "limit_order_cancel": case "short_order_cancel": d = "cancel", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.order_id" })), n.a.createElement("td", null, t[1].order))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.fee_payer" })), n.a.createElement("td", null, e.linkToAccount(t[1].fee_paying_account)))); break; case "call_order_update": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.funding_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].funding_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.delta_collateral" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].delta_collateral.amount, asset: t[1].delta_collateral.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.delta_debt" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].delta_debt.amount, asset: t[1].delta_debt.asset_id })))), t[1].extensions && t[1].extensions.target_collateral_ratio && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.collateral_target" })), n.a.createElement("td", null, t[1].extensions.target_collateral_ratio / 1e3))); break; case "key_create": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.fee_payer" })), n.a.createElement("td", null, e.linkToAccount(t[1].fee_paying_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.key" })), n.a.createElement("td", null, t[1].key_data[1]))); break; case "account_create": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.name" })), n.a.createElement("td", null, e.linkToAccount(t[1].name)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.member.registrar" })), n.a.createElement("td", null, e.linkToAccount(t[1].registrar)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.member.lifetime_referrer" })), n.a.createElement("td", null, e.linkToAccount(t[1].referrer)))); break; case "account_update": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.name" })), n.a.createElement("td", null, e.linkToAccount(t[1].account)))), t[1].new_options && (t[1].new_options.voting_account ? l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.votes.proxy" })), n.a.createElement("td", null, e.linkToAccount(t[1].new_options.voting_account)))) : (console.log("num witnesses: ", t[1].new_options.num_witness), console.log("===============> NEW: ", t[1].new_options), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.votes.proxy" })), n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.votes.no_proxy" })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.options.num_committee" })), n.a.createElement("td", null, t[1].new_options.num_committee))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.options.num_witnesses" })), n.a.createElement("td", null, t[1].new_options.num_witness))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.options.votes" })), n.a.createElement("td", null, JSON.stringify(t[1].new_options.votes))))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.options.memo_key" })), n.a.createElement("td", null, t[1].new_options.memo_key.substring(0, 10) + "...")))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.common_options" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1], search: !1 })))); break; case "account_whitelist": for (var k = void 0, E = 0; E < U.length; E++) x.a.account_listing[U[E]] === t[1].new_listing && (console.log("listings:", U[E]), k = U[E]); l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.authorizing_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].authorizing_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.listed_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].account_to_list)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.new_listing" })), n.a.createElement("td", null, n.a.createElement(u.a, { content: "transaction.whitelist_states." + k })))); break; case "account_upgrade": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.account_upgrade" })), n.a.createElement("td", null, e.linkToAccount(t[1].account_to_upgrade)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.lifetime" })), n.a.createElement("td", null, t[1].upgrade_to_lifetime_member.toString()))); break; case "account_transfer": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.from" })), n.a.createElement("td", null, e.linkToAccount(t[1].account_id)))); break; case "asset_create": d = "warning", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.assets.issuer" })), n.a.createElement("td", null, e.linkToAccount(t[1].issuer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.assets.symbol" })), n.a.createElement("td", null, e.linkToAsset(t[1].symbol)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.assets.precision" })), n.a.createElement("td", null, t[1].precision))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.user_issued_assets.max_supply" })), n.a.createElement("td", null, b.a.format_asset(t[1].common_options.max_supply, t[1])))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.user_issued_assets.description" })), n.a.createElement("td", null, t[1].common_options.description))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.market_fee" })), n.a.createElement("td", null, t[1].common_options.market_fee_percent / 100, "%"))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.max_market_fee" })), n.a.createElement("td", null, b.a.format_asset(t[1].common_options.max_market_fee, t[1])))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.common_options" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1], search: !1 })))); break; case "asset_update": case "asset_update_bitasset": console.log("op:", t), d = "warning", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.asset_update" })), n.a.createElement("td", null, e.linkToAsset(t[1].asset_to_update)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.assets.issuer" })), n.a.createElement("td", null, e.linkToAccount(t[1].issuer)))), t[1].new_issuer !== t[1].issuer && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.user_issued_assets.new_issuer" })), n.a.createElement("td", null, e.linkToAccount(t[1].new_issuer)))), t[1].new_options.core_exchange_rate && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "markets.core_rate" })), n.a.createElement("td", null, n.a.createElement(w.a, { base_asset: t[1].new_options.core_exchange_rate.base.asset_id, quote_asset: t[1].new_options.core_exchange_rate.quote.asset_id, base_amount: t[1].new_options.core_exchange_rate.base.amount, quote_amount: t[1].new_options.core_exchange_rate.quote.amount, noPopOver: !0 })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.new_options" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1].new_options, search: !1 })))); break; case "asset_update_feed_producers": d = "warning", console.log("op:", t); var C = []; t[1].new_feed_producers.forEach(function(t) { C.push(n.a.createElement("div", null, e.linkToAccount(t), n.a.createElement("br", null))) }), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.asset_update" })), n.a.createElement("td", null, e.linkToAsset(t[1].asset_to_update)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.new_producers" })), n.a.createElement("td", null, C))); break; case "asset_issue": if (d = "warning", t[1].memo) { var z = A.a.decodeMemo(t[1].memo) , B = z.text , O = z.isMine; i = B ? n.a.createElement("td", null, B) : !B && O ? n.a.createElement("td", null, n.a.createElement(u.a, { content: "transfer.memo_unlock" }), " ", n.a.createElement("a", { onClick: e._toggleLock.bind(e) }, n.a.createElement(S.a, { name: "locked", title: "icons.locked.action" }))) : null } l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.assets.issuer" })), n.a.createElement("td", null, e.linkToAccount(t[1].issuer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.asset_issue" })), n.a.createElement("td", null, n.a.createElement(s.a, { style: { fontWeight: "bold" }, amount: t[1].asset_to_issue.amount, asset: t[1].asset_to_issue.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, e.linkToAccount(t[1].issue_to_account)))), i && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { content: "transfer.memo" })), i)); break; case "asset_burn": d = "cancel", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.account.title" })), n.a.createElement("td", null, e.linkToAccount(t[1].payer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount_to_burn.amount, asset: t[1].amount_to_burn.asset_id })))); break; case "asset_fund_fee_pool": d = "warning", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.account.title" })), n.a.createElement("td", null, e.linkToAccount(t[1].from_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, e.linkToAsset(t[1].asset_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount, asset: "1.3.0" })))); break; case "asset_settle": d = "warning", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.account.title" })), n.a.createElement("td", null, e.linkToAccount(t[1].account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, e.linkToAsset(t[1].amount.asset_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))); break; case "asset_publish_feed": d = "warning"; var M = t[1].feed; l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.publisher" })), n.a.createElement("td", null, e.linkToAccount(t[1].publisher)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, e.linkToAsset(t[1].asset_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.price_feed.maximum_short_squeeze_ratio" })), n.a.createElement("td", null, (M.maximum_short_squeeze_ratio / 1e3).toFixed(2)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.price_feed.maintenance_collateral_ratio" })), n.a.createElement("td", null, (M.maintenance_collateral_ratio / 1e3).toFixed(2)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "markets.core_rate" })), n.a.createElement("td", null, n.a.createElement(w.a, { base_asset: M.core_exchange_rate.base.asset_id, quote_asset: M.core_exchange_rate.quote.asset_id, base_amount: M.core_exchange_rate.base.amount, quote_amount: M.core_exchange_rate.quote.amount, noPopOver: !0 })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.feed_price" })), n.a.createElement("td", null, n.a.createElement(w.a, { base_asset: I.a.extractRawFeedPrice(M).base.asset_id, quote_asset: I.a.extractRawFeedPrice(M).quote.asset_id, base_amount: I.a.extractRawFeedPrice(M).base.amount, quote_amount: I.a.extractRawFeedPrice(M).quote.amount, noPopOver: !0 })))); break; case "committee_member_create": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.committee_member.title" })), n.a.createElement("td", null, e.linkToAccount(t[1].committee_member_account)))); break; case "witness_create": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.witness" })), n.a.createElement("td", null, e.linkToAccount(t[1].witness_account)))); break; case "witness_update": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.witness" })), n.a.createElement("td", null, e.linkToAccount(t[1].witness_account)))), t[1].new_url && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.new_url" })), n.a.createElement("td", null, n.a.createElement("a", { href: t[1].new_url, target: "_blank", rel: "noopener noreferrer" }, t[1].new_url)))); break; case "balance_claim": d = "success"; var N = t[1].balance_to_claim.substring(5); l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.claimed" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].total_claimed.amount, asset: t[1].total_claimed.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.deposit_to" })), n.a.createElement("td", null, e.linkToAccount(t[1].deposit_to_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.balance_id" })), n.a.createElement("td", null, "#", N))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.balance_owner" })), n.a.createElement("td", { style: { fontSize: "80%" } }, t[1].balance_owner_key.substring(0, 10), "..."))); break; case "vesting_balance_withdraw": d = "success", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, e.linkToAccount(t[1].owner)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))); break; case "transfer_to_blind": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.from" })), n.a.createElement("td", null, e.linkToAccount(t[1].from)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.blinding_factor" })), n.a.createElement("td", { style: { fontSize: "80%" } }, t[1].blinding_factor))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.outputs" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1].outputs[0], search: !1 })))); break; case "transfer_from_blind": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, e.linkToAccount(t[1].to)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.blinding_factor" })), n.a.createElement("td", { style: { fontSize: "80%" } }, t[1].blinding_factor))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.inputs" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1].inputs[0], search: !1 })))); break; case "blind_transfer": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.inputs" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1].inputs[0], search: !1 })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.outputs" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t[1].outputs[0], search: !1 })))); break; case "proposal_create": var R = new Date(t[1].expiration_time + "Z") , q = void 0 !== t[1].review_period_seconds , D = q ? R.getTime() - 1e3 * t[1].review_period_seconds : null; l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.review_period" })), n.a.createElement("td", null, q ? n.a.createElement(f.a, { value: new Date(D), format: "full" }) : n.a.createElement("span", null, "—")))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.expiration_time" })), n.a.createElement("td", null, n.a.createElement(f.a, { value: R, format: "full" })))); var L = [] , H = !0 , K = !1 , G = void 0; try { for (var Y, J = t[1].proposed_ops[Symbol.iterator](); !(H = (Y = J.next()).done); H = !0) { var X = Y.value; L.push(X.op) } } catch (e) { K = !0, G = e } finally { try { !H && J.return && J.return() } finally { if (K) throw G } } var Z = t[1].proposed_ops.map(function(e, t) { return n.a.createElement(T.b, { key: t, index: t, op: e.op, inverted: !1, hideFee: !0, hideOpLabel: !0, hideDate: !0, proposal: !0, collapsed: !0 }) }); l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.proposed_operations" })), n.a.createElement("td", null, Z))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.fee_paying_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].fee_paying_account)))); break; case "proposal_update": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.fee_paying_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].fee_paying_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.id" })), n.a.createElement("td", null, t[1].proposal))), ["active_approvals_to_add", "active_approvals_to_remove", "owner_approvals_to_add", "owner_approvals_to_remove", "key_approvals_to_add", "key_approvals_to_remove"].forEach(function(r) { t[1][r].length && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { content: "proposal.update." + r })), n.a.createElement("td", null, t[1][r].map(function(t) { return n.a.createElement("div", { key: t }, e.linkToAccount(t)) })))) }); break; case "proposal_delete": d = "cancel", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.fee_paying_account" })), n.a.createElement("td", null, e.linkToAccount(t[1].fee_paying_account)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_delete.using_owner_authority" })), n.a.createElement("td", null, n.a.createElement(W, { value: t[1].using_owner_authority })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "proposal_create.id" })), n.a.createElement("td", null, t[1].proposal))); break; case "asset_claim_fees": d = "success", l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.claimed" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount_to_claim.amount, asset: t[1].amount_to_claim.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transaction.deposit_to" })), n.a.createElement("td", null, e.linkToAccount(t[1].issuer)))); break; case "asset_reserve": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "modal.reserve.from" })), n.a.createElement("td", null, e.linkToAccount(t[1].payer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, e.linkToAsset(t[1].amount_to_reserve.asset_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount_to_reserve.amount, asset: t[1].amount_to_reserve.asset_id })))); break; case "worker_create": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.workers.title" })), n.a.createElement("td", null, t[1].name))); var Q = p.a.localize(new Date(t[1].work_begin_date), { type: "date" }) , $ = p.a.localize(new Date(t[1].work_end_date), { type: "date" }); l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.workers.period" })), n.a.createElement("td", null, Q, " - ", $))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.workers.daily_pay" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].daily_pay, asset: "1.3.0" })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.workers.website" })), n.a.createElement("td", null, t[1].url))), t[1].initializer[1] && l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.workers.vesting_pay" })), n.a.createElement("td", null, t[1].initializer[1].pay_vesting_period_days))); break; case "asset_claim_pool": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "account.name" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].issuer })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, n.a.createElement(v.a, { asset: t[1].asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount_to_claim.amount, asset: t[1].amount_to_claim.asset_id })))); break; case "asset_update_issuer": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.from" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].issuer })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].new_issuer })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.title" })), n.a.createElement("td", null, n.a.createElement(v.a, { asset: t[1].asset_to_update })))); break; case "bid_collateral": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.account.title" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].bidder })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.collateral_bid.collateral" })), n.a.createElement("td", null, n.a.createElement(s.a, { asset: t[1].additional_collateral.asset_id, amount: t[1].additional_collateral.amount })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.asset.collateral_bid.debt" })), n.a.createElement("td", null, n.a.createElement(s.a, { asset: t[1].debt_covered.asset_id, amount: t[1].debt_covered.amount })))); break; case "htlc_create": var ee = e.props.block ? e.props.block.timestamp.getTime() : (new Date).getTime() , te = new Date(ee + 1e3 * t[1].claim_period_seconds); l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.from" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].from })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.to" })), n.a.createElement("td", null, n.a.createElement(y.a, { account: t[1].to })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "transfer.amount" })), n.a.createElement("td", null, n.a.createElement(s.a, { amount: t[1].amount.amount, asset: t[1].amount.asset_id })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.claim_period_due" })), n.a.createElement("td", null, n.a.createElement(f.a, { value: te, format: "full" })))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.preimage_hash" })), n.a.createElement("td", null, n.a.createElement(j.Tooltip, { placement: "bottom", title: p.a.translate("htlc.preimage_hash_explanation") }, n.a.createElement("span", null, "(" + t[1].preimage_size + ", " + t[1].preimage_hash[0] + "): " + t[1].preimage_hash[1]))))); break; case "htlc_redeem": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.id" })), n.a.createElement("td", null, n.a.createElement("span", null, t[1].htlc_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.redeemer" })), n.a.createElement("td", null, e.linkToAccount(t[1].redeemer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.preimage" })), n.a.createElement("td", null, e.linkToAccount(t[1].preimage)))); break; case "htlc_extend": l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.id" })), n.a.createElement("td", null, n.a.createElement("span", null, t[1].htlc_id)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.update_issuer" })), n.a.createElement("td", null, e.linkToAccount(t[1].update_issuer)))), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "htlc.seconds_to_add" })), n.a.createElement("td", null, n.a.createElement("span", null, t[1].seconds_to_add)))); break; default: console.log("unimplemented tx op:", t), l.push(n.a.createElement("tr", { key: c++ }, n.a.createElement("td", null, n.a.createElement(u.a, { component: "span", content: "explorer.block.op" })), n.a.createElement("td", null, n.a.createElement(_.a, { data: t, search: !1 })))) } r.push(n.a.createElement(V, { txIndex: e.props.index, key: o, opCount: a, index: o, color: d, type: t[0], fee: t[1].fee }, l)) }), n.a.createElement("div", null, r) } }]), t }(); G.defaultProps = { no_links: !1 }, G.propTypes = { trx: o.a.object.isRequired, index: o.a.number.isRequired, no_links: o.a.bool }, t.a = G } , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(572) , o = r(4) , s = r.n(o) , l = r(1) , c = r.n(l) , u = r(258) , d = r(147) , p = r(31) , h = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var m = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { time: null }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), h(t, [{ key: "componentWillMount", value: function() { this.props.blockHeader || u.a.getHeader.defer(this.props.block_number) } }, { key: "shouldComponentUpdate", value: function(e) { return e.block_number !== this.props.block_number || e.blockHeader !== this.props.blockHeader } }, { key: "render", value: function() { return n.a.createElement("span", { className: "time", key: this.props.block_number }, this.props.blockHeader ? this.props.fullDate ? s.a.localize(this.props.blockHeader.timestamp, { type: "date", format: "full" }) : n.a.createElement(i.a, { time: this.props.blockHeader.timestamp }) : null) } }]), t }(); m.propTypes = { block_number: c.a.number.isRequired }, m = Object(p.a)(m, { listenTo: function() { return [d.a] }, getProps: function(e) { return { blockHeader: d.a.getState().blockHeaders.get(e.block_number) } } }), t.a = m } , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; r.d(t, "a", function() { return u }); var a = r(845) , n = r.n(a) , i = r(846) , o = r.n(i) , s = r(19) , l = r(847) , c = r.n(l) , u = function(e) { var t = function(t) { return e.get(t).get("key_auths").map(function(e) { return e.get(0) }) }; !function(e, t, r, a) { var i = 225 / 2.8 + 50 , l = [t, e, r] , u = ["Active Key", "Owner Key", "Memo Key"] , d = s.a.isLocked() , p = new n.a({ orientation: "portrait", format: [300, 450], compressPdf: !0 }) , h = function(e, t, r) { return t >= r && (e.addPage(), i = 10), p.internal.getNumberOfPages() } , m = function(e) { var t = h(p, i, 400) , r = null; d || (r = s.a.getPrivateKey(e)) && (r = r.toWif()), f(e, 5, i + 10, t), !d && r && f(r, 245, i + 10, t), p.text("PublicKey", 57, i + 20), p.text(e, 57, i + 30), p.rect(56, i + 24, 187, 8), d || (p.text("PrivateKey", 57, i + 40), r ? p.text(r, 57, i + 50) : p.text("Not found.", 57, i + 50), p.rect(56, i + 44, 187, 8)), i += 50 } , f = function(e, t, r, a) { o.a.toDataURL(e).then(function(e) { p.setPage(a), p.addImage(e, "JPEG", t, r, 50, 50) }).catch(function(e) { console.error(e) }) } , g = new Image; g.src = c.a, p.addImage(g, "PNG", 37.5, 30, 225, 225 / 2.8, "", "MEDIUM"), p.text("Account:", 18, i - 10), p.text(a, 42, i - 10); var _ = l.map(function(e, t) { t >= 1 && (i += 25), h(p, i, 400), p.text("Public", 22, i + 7), p.text(u[t], 120, i + 7), d || p.text("Private", 260, i + 7), p.line(5, i + 1, 295, i + 1), p.line(5, i + 9, 295, i + 9), "string" == typeof e ? m(e) : e.map(function(e) { m(e) }) }); Promise.all(_).then(function() { p.save("bitshares-paper-wallet-" + (d ? "public-" : "private-") + a + ".pdf") }) }(t("owner"), t("active"), e.get("options").get("memo_key"), e.get("name")) } } , , , , , , , , , , , , , , , , , , , function(e, t, r) { "use strict"; (function(e) { var a = r(805) , n = r(0) , i = r.n(n) , o = r(851) , s = r(195) , l = r(83) , c = r(26) , u = r(553) , d = r(848) , p = r.n(d) , h = r(30) , m = r(31) , f = r(108) , g = r(101) , _ = r(7) , b = r(40) , y = r(849) , v = r(434) , w = r(4) , k = r.n(w) , x = r(323) , S = r(1957) , A = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , E = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function T(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function C(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function z(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var B = S.a , O = function(e) { function t() { return T(this, t), C(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return z(t, i.a.Component), E(t, [{ key: "componentWillMount", value: function() { s.a.switchLocale(this.props.locale) } }, { key: "render", value: function() { return i.a.createElement(f.d, { locale: this.props.locale, formats: p.a.formats, initialNow: Date.now() }, i.a.createElement(B, null, i.a.createElement(o.a, this.props))) } }]), t }() , P = function(e) { function t() { T(this, t); var e = C(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { apiConnected: !1, apiError: !1, syncError: null, status: "", extendeLogText: [] }, e.mounted = !0, e.persistentLogEnabled = !1, e } return z(t, i.a.Component), E(t, [{ key: "componentDidCatch", value: function(e) { this.saveExtendedLog("error", [e]) } }, { key: "componentDidUpdate", value: function(e, t) { x.a.setLog(t.extendeLogText) } }, { key: "saveExtendedLog", value: function(e, t) { var r = this.state.extendeLogText , a = "" , n = !0 , i = !1 , o = void 0; try { for (var s, l = t[Symbol.iterator](); !(n = (s = l.next()).done); n = !0) { a += s.value } } catch (e) { i = !0, o = e } finally { try { !n && l.return && l.return() } finally { if (i) throw o } } a = [e, ": ", a].join(""), r.length > 19 && r.splice(0, 1), a.indexOf(r[r.length - 1]) && (r.push(a), this.mounted ? this.setState({ extendeLogText: r }) : x.a.setLog(r)) } }, { key: "_enablePersistingLog", value: function() { var e = this; if (!this.persistentLogEnabled) { this.state.extendeLogText.length || x.a.getLogs().then(function(t) { t && e.setState({ extendeLogText: t }) }); var t = this , r = function(e, r) { r.length > 1 && "string" == typeof r[1] && "html2canvas:" === r[1] || (t.saveExtendedLog(e, Array.from(r)), t.mounted && console["str" + e].apply(console, r)) }; console.strlog = console.log.bind(console), console.strerror = console.error.bind(console), console.strwarn = console.warn.bind(console), console.strinfo = console.info.bind(console), console.strtimeEnd = console.timeEnd.bind(console), console.strdebug = console.debug.bind(console), console.log = function() { r("log", arguments) } , console.warn = function() { r("warn", arguments) } , console.error = function() { r("error", arguments) } , console.info = function() { r("info", arguments) } , console.timeEnd = function() { r("timeEnd", arguments) } , console.debug = function() { r("debug", arguments) } , this.persistentLogEnabled = !0 } } }, { key: "componentWillMount", value: function() { var e = this; this._enablePersistingLog(), Object(g.a)(!0, this._statusCallback.bind(this)).then(function() { e.setState({ apiConnected: !0, apiError: !1, syncError: null }) }).catch(function(t) { console.log("willTransitionTo err:", t), e.setState({ apiConnected: !1, apiError: !0, syncError: t ? -1 !== (t && t.message).indexOf("ChainStore sync error") : null }) }) } }, { key: "componentDidMount", value: function() { if (this.mounted = !0, navigator.platform.indexOf("Win") > -1) { var e = document.getElementById("content"); -1 === e.className.indexOf("windows") && (e.className = e.className + (e.className.length ? " " : "") + "windows") } } }, { key: "componentWillUnmount", value: function() { this.mounted = !1 } }, { key: "_statusCallback", value: function(e) { this.setState({ status: e }) } }, { key: "render", value: function() { var e = this.props , t = e.theme , r = e.apiServer , a = this.state , n = a.apiConnected , o = a.apiError , s = a.syncError , l = a.status; if (!n) { var c = r; return c || (c = ""), i.a.createElement("div", { style: { backgroundColor: t ? null : "#2a2a2a" }, className: t }, i.a.createElement("div", { id: "content-wrapper" }, i.a.createElement("div", { className: "grid-frame vertical" }, o ? s ? i.a.createElement(v.a, null) : i.a.createElement(_.BodyClassName, { className: t }, i.a.createElement(y.a, null)) : i.a.createElement(b.a, { loadingText: l || k.a.translate("app_init.connecting", { server: c }) })))) } return i.a.createElement(O, A({}, this.props, this.state)) } }]), t }(); P = Object(m.a)(P, { listenTo: function() { return [u.a, l.a, c.a] }, getProps: function() { return { locale: u.a.getState().currentLocale, walletMode: !c.a.getState().settings.get("passwordLogin") || !!l.a.getState().current_wallet, theme: c.a.getState().settings.get("themes"), apiServer: c.a.getState().settings.get("activeNode", "") } } }), P = Object(m.b)(h.a)(P), t.a = Object(a.hot)(e)(P) } ).call(this, r(377)(e)) } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {} , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(841) , o = r.n(i) , s = r(4) , l = r.n(s) , c = r(1) , u = r.n(c) , d = r(7) , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.modalId = "qr_scanner_modal", r.state = { visible: !1 }, r.retry = r.retry.bind(r), r.submit = r.submit.bind(r), r.handleClick = r.handleClick.bind(r), r.handleClose = r.handleClose.bind(r), r.onScanSuccess = r.onScanSuccess.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), p(t, [{ key: "handleClick", value: function() { this.setState({ visible: !0 }) } }, { key: "handleClose", value: function() { this.setState({ visible: !1 }) } }, { key: "isBitcoinAddress", value: function(e) { return /bitcoin:([a-zA-Z0-9]+)/.test(e) } }, { key: "parseBitcoinAddress", value: function(e) { var t = e.match(/bitcoin:([a-zA-Z0-9]+)/) , r = e.match(/amount=([0-9\.]+)/); return { address: t && t[1] || null, amount: r && r[1] || null } } }, { key: "onScanSuccess", value: function(e) { if (this.isBitcoinAddress(e)) { var t = this.parseBitcoinAddress(e); t && this.setState({ address: t.address, amount: t.amount }) } else this.setState({ address: e, amount: null }) } }, { key: "retry", value: function() { this.setState({ address: null, amount: null }) } }, { key: "submit", value: function() { this.handleClose(), "function" == typeof this.props.onSuccess && this.props.onSuccess({ address: this.state.address, amount: this.state.amount }) } }, { key: "render", value: function() { var e = this; return n.a.createElement("div", { className: "qr-address-scanner" }, n.a.createElement(d.Icon, { type: "camera", onClick: this.handleClick, style: { fontSize: "24px", padding: 5 } }), n.a.createElement(d.Modal, { visible: this.state.visible, className: "qr-address-scanner-modal", modalHeader: "global.scan_qr_code", id: this.modalId, overlay: !0, closable: !1, footer: this.state.address ? n.a.createElement("div", { style: { justifyContent: "center" } }, [n.a.createElement(d.Button, { onClick: this.retry }, l.a.translate("qr_address_scanner.retry")), n.a.createElement(d.Button, { type: "primary", onClick: this.submit }, l.a.translate("qr_address_scanner.use_address"))]) : n.a.createElement("div", { style: { justifyContent: "center" } }, n.a.createElement(d.Button, { onClick: this.handleClose }, "Close")), onCancel: this.handleClose }, n.a.createElement(o.a, { delay: 100, onError: function(t) { "function" == typeof e.props.onError && e.props.onError(t) }, onScan: function(t) { t && e.onScanSuccess(t) }, style: { width: "calc(100% - 48px)", margin: "0 24px" } }), this.state.address && n.a.createElement("div", null, n.a.createElement("div", { className: "qr-address-scanner-status" }, n.a.createElement("div", { className: "qr-address-scanner-status-title" }, l.a.translate("qr_address_scanner.address_found"), ":"), n.a.createElement("div", { className: "qr-address-scanner-status-address" }, this.state.address), this.state.amount && n.a.createElement("div", { className: "qr-address-scanner-status-title" }, l.a.translate("qr_address_scanner.amount")), this.state.amount && n.a.createElement("div", { className: "qr-address-scanner-status-amount" }, this.state.amount))))) } }]), t }(); h.propTypes = { onSuccess: u.a.func, onError: u.a.func, label: u.a.string }, t.a = h } , , , , , , , function(e, t) { e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABCcAAAF7CAYAAADhQeGPAAAABmJLR0QA/wD/AP+gvaeTAACO2ElEQVR42uydB3wUZfqAFxQbNuz1Tk/Rv2c5652e9U7Pcp5nO0XE3k5RVKRkdwMYmiC9Q5CazGwg9BYILQkhQCB0QgsQCCQQCE1seMj8v282KGpiZndmdmd2n+f3e394niSz37wzO98z3/e+Hg8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANSMpmm10jXtBEYCAAAAAAAAAKLC8GLtlN4rD2VnFGknMxoAAAAAAAAAEHGknHhy7p7S9/L2LetSuPsiRgQAAAAAAAAAIoqUE4/NLt9xwqhi7eWcitVdFh2sz6gAAAAAAAAAQMQ4Jic8Qk7UEvF89p6iz5Z9cxcjAwAAAAAAAAAR4Xg5cSwembl7e5vFXz7B6AAAAAAAAACA7fwkJ7Zox8c9M8rKE/P3v8oIAQAAAAAAAICt6HJilpATaUJK/CL+NLV0X2L+gZaMEgAAAAAAAADYxm/JCRn1J+/4uuWiA90YKQAAAAAAAACwhaCc2CXkxGaturh8wrbvxRaPFE3TajFiAAAAAAAAAGApRuSEjHPGbj3SbOHecckFWh1GDQAAAAAAAAAsQ5cTM4WcCAgJUUPUHb1F+yCvIntKgXYaIwcAAAAAAAAAlhCUE2VCTmzSjMTJYhXFB3l78weuPHQBowcAAAAAAAAApglVTsionbZJezm7fHWPBQevZgQBAAAAAAAAwBThyAkZtUQ8O7t8Y4dlB25nFAEAAAAAAAAgbH6UE6qQDmHEI5k7S5Ly9/2LkQQAAAAAAACAsPhJThRp4cY9GaW7RKvRVxlNAAAAAAAAAAgZK+SEjJumlOxNzN/XkhEFAAAAAAAAgJCwSk7IqD+x5OuWi/Z3Y1QBAAAAAAAAwDBBOVG6w6Ns1KyIy8cWH05ctD9F07RajC4AAAAAAAAA1IjVckLGOaM3H2m2cO+45AKtDiMMAAAAAAAAAL+JHXJCRt20Iq3xvD3ZUwq00xhlAAAAAAAAAKiWn+TEBs3qODmwUXs/tyJ/4MpDFzDSAAAAAAAAAFAlupzIFHIiVQgFG6K2kBSvZJWv6rHg4NWMNgAAAAAAAAD8CrvlhIxaIp6dvXNDh2UHbmfEAQAAAAAAAOBn/CQn1mt2x6MzSos7Ljn4GKMOAAAAAAAAAD8SSTkh456pJbta5+9/hZEHAAAAAAAAAJ0f5USKkAcRipsmbtvbKn9fC0YfAAAAAAAAAKIiJ2TUH7/ly8RFBzpxBgAAAAAAAADinKCc2CHkxDot0nH52E2HExftS9E0rRZnAgAAAAAAACBOiaackHHOqI1HmudVjE0u0OpwNgAAAAAAAADiEF1OTBdyYqSQBVGKusoGrfG83dlTCrTTOCMAAAAAAAAAcUZQTmwXcmKtFs04WXTyeH/enkUDVx66gLMCAAAAAAAAEEc4RU7IqJ2yVntpzs5VPRYcvJozAwAAAAAAABAnOElOyKgl4onM0nUdlh24nbMDAAAAAAAAEC9yIkPIiRGFmpPikRnbt3Rcsu8xzhAAAAAAAAAAciJqcc+Urbta5+9/hbMEAAAAAAAAgJyIWtw0oXhvq/x9LThTAAAAAAAAAMiJqEX9sZu+TFxQ0YmzBQAAAAAAABCzcqJkh2f4Gs3JcfnojYdbLaoYqWlaLc4aAAAAAAAAAHIiKlFPXX+keV7FmOQCrQ5nDgAAAAAAAAA5EZWom7L2aJPcPbOmFGincfYAAAAAAAAAYkpOrNbcEiePLNTen1e+aODKQxdwBgEAAAAAAABiRU4MExN/F0VtsYri5Tk7V/ZYcPBqziIAAAAAAAAAciIqUUvEEzN2rO2w7MDtnEkAAAAAAAAAV8uJbUJOrNLcGo9M37al45J9j3E2AQAAAAAAAJATUYu7J23Z1XrB/lc4owAAAAAAAABulBPThJwYKib5Lo+bxhbtbb1ob3POKgAAAAAAAIAr5cRKLRaifvqGL1stqviMMwsAAAAAAACAnIhaXJa27nDiwooRmqbV4gwDAAAAAAAAICeiEvVS1x5pnrd7THKBVoezDAAAAAAAAOB0OTFVyIkhYlIfY1F3xOqjTbJ3zZpSoJ3GmQYwjLxe6tUQZzJMAAAAAABgsZzYKuTECi0Wo86wldq7c8vyhi07dD5nG8AQvURoNcR6hgkAAAAAAJATIURtsc3j1dmlSwesOvAHzjgAcgIAHIRXrefxq0k1Rgu1PoMFAACAnHB91BLxxIxtazsWHLiVsw6AnAAAh5Co/t7jUw/UGP7UfzBYAAAA8SAnvliuxUM8MrV4S6fFex/lzAMgJwAAOQEAAADIiajFPRM372ydW/EKZx8AOQEAyAkAAABATkQtbhq7saL1gvLmZAAAcgIAkBMAAADgCDlRLOTEMi3eov6odV+2WlDxGVkAgJwAAOQEAAAAICeiFpephYcTF+weoWlaLbIBADkBAMgJAAAAiJacmCLkxGAxWY/TqDdi1ZHmueXpyQVaHTICADkBAMgJAAAAiJqcWKrFc9Qdtvxok6yyWenbtVPJCkBOICcAADkBAAAAyImoRJ0hy7T/ZpXOH7bs0PlkBiAnkBMAgJwAAAAA5ERUoraoQ/HqrB1Lv1j57ZVkByAnkBMAgJwAAACASMqJZDE5J/SoJeLfGdsKOxbsuZUMAeQEcgIAkBMAAAAQETmxWciJAo34eTw8ZcvmTov3PkqWAHICOQEAyAkAAABATkQt7hm/cUfbBfsakimAnEBOAAByAgAAAJATUYsbRq+rSMiraEK2AHICOQEAyAkAAACwU04MWqIR1Uf9wJqDiXm7O5IxgJxATgAAcgIAAACQE1GLy1JXHRaCYrimabXIHEBOAAAgJwAAAAA5EZWoN2z5kea5u0ZnZWknkj2AnAAAQE4AAACAZXJik5ATizXCWNQdUnC0SVbprPTt2qlkECAnAACQEwAAAGCFnJgs5MRAMfEmDEed5CXaf7NKc4ctO3Q+WQTICYgoSUms3ALkBAAAACAniGDUFts8Xs0sKRi47tsryCRATkDE8Ks9xITuPgYCkBMAAACAnCD0qCXi31OLCzsW7LmVbALkBERITgwXk7UKj1d9h8EA5AQAAADEmJzI14jw4+HJRZs7Ldj7KBkFyAmIkJwITti8ai+2eQByAgAAAGJDTkwScmKAmGQTpuKecRu3t12wryFZBcgJiJic0CdtynhPQvpZDAwgJwAAAAA5QehxQ6Cwwjt/9wdkFiAnIGJyIhhLPS3U+gwOICcAAADAxXKiSMiJRRphTdRXVh9MnL+rI9kFyAmIoJyQUUyhTEBOAAAAAHKC+DEuHrH8m1bz9wzSNK0WWQbICYiQnDhAoUxATgAAAIC75UR/MakmLI16Q5YeaZ6zc3RWlkaxOkBOQKTkBIUyATkBAAAAbpYTCzXC+qibvPjoRzll09K3a6eSbYCcgIjJCQplAnICAAAAkBPE8VFHtBp9Z/aO3GHLDp1PxgFyAiImJ5xRKFNuMZlVQ6RyUpETyAkAAADkBHIiAlFb1KF4ZWbJkoHrvr2CrAPkBERQTkS7UGYXA/m0hZOKnEBOAAAAICdOeWzixh2efgs0wt6oJeLfk4sKOxbsuZXMA+QERFBORLNQJnICkBMAAACAnHBi/HfW9oVkHiAnIMJy4qdCme8k10FOAHICAAAAkBNxHg2mFy8l8wA5AVGRE8F4GTkByAkAAABATiAnkBOAnIDoyYnIbu9ATgByAgAAAEKQE33zNCIy0SADOQHICUBOICcAOQEAAADICeQEAHICOYGcAOQEAAAAICeQEwDICUBOICeQE8gJAAAAqJQTG4ScmK8RkQnkBCAnADmBnADkBAAAAPxSTowXcqKPmDgTEYkGU5ETgJwAM3Ii9VYhKNYjJwA5AQAAAMgJAjkByAmIoqAIXCgmbHOQE4CcAAAAgBiSE+uFnMjViMhEg6mbkROAnADzNOlzslhBkYycAOQEAAAAICcI5AQgJyCKaLU8PuVjMXnbh5wA5AQAAAC4X070FhNnIiKBnADkBFiOL/CUmMDtQk4AcgIAAACQEwRyApATEMVJXsrtYhK3ATkByAkAAABwsZyYpxGRiQZTNyEnADkB9uBPvVjUochBTgByAgAAAJATBHICkBMQPZqn1BV1KALICUBOAAAAgLvkxDghJ3qJiTMRkUBOAHIC7EcWygx4kROAnAAAAACXyYkcjYhMICcAOQERw6e+LGI3cgKQEwAAAICcIJATgJyAKE7+lDtFHYpNyAlATgAAAABygkBOAHICokerlCuFoMhHTgByAgAAABwsJ9bt8PTM1ojIRIMpyAlATkAUSBp+tiiUOQk5AcgJAAAAQE4QyAlATkD0aNLnZFEo8/+QE4CcAAAAAOQEcgI5AcgJiBeQE4CcAAAAgFDkRJZGRCYaTClCTgByApATyAlATgAAAMDP5MRYISd6iIkzEZFATgByApATyAlATgAAAAByAjkBgJwA5AQgJwAAAAA5gZwAQE4AcgI5gZxATgAAAMCPcmKtkBNzNSIygZwA5AQgJ5ATgJwAAACAquREdzFxJiISyAlATgByAjkByAkAAABATiAnAJATgJwA5AQAAAA4T07M0YjIBHICkBOAnEBOAHICAAAAjkPTtFpt5u8adE6/+YcRB8gJAOQEICcAOQEAAABRw5tTlnx+v/n/83QTE2jC1mgwGTkByAmLOFfEDSIeE/G6iHdEfCIioTI+FvGWiOdEPCribhHncIqRE64jIf0sj2/kNR5f4C6PN/WBKiNRvU/8///nSVLORE6Aa0gafoqnhVrf40u7Vz/HvsBTHq/aSJzzNz0+5WM9/IEmHr/6mvj3z3n8aY/r+Z6g3OhpnlKXAQRLaJp+qsebdoWei371Zk+icueP91Y9N8W/a5l6rf7fyJwF65DXcasRV3laHjfmVUXrwPXie/BcBixOkCso/Nk7hp/Tb54QFLM1wr5oMHkjcgKQE6FxYqVY+EjEEBFLRHxt4Diri50iZonoLeJtEfVj7ByOEBGoIf4Zws+7QMRtYUaKgfNRauLnhxO/c+5ELf10MQF7SEzGEsWfIz1eZaGYpJUbmrz/LJQy8TCdL2Ks+Oe2YtL3vP5g905yHeQERD6v0y4JigflbZGT7UQMF+d0tvhzfei5/cu8UDeKmOHxKwPFn011gdekz8kMutFzk3SimGyfrU+69Yl3+kWelpPOiNnPK++BchIs5Zdf7SzyZrzIy9Xiz/3Gc07+t0qhiCniPt1Ll2fyZyaln0RC1SAifcrdQjS0EGM2VPzzPP27KvTrfpeIZeLvThLRSfysl3R5hDSKTUHhyykbUa8vggI5AciJqMuJCz3BlRBjRew3ISKMRrGIwZ7gKgu3r6741sDnbRbCz/swAuMfyRjooG/eWvpDlU/x6pM1n1pherJWk7TwqaPEA/U74gHx6riXE0lTTvMkptwuzsEr4nd0FKGIMcrSJ7w+detxsUHEchHZwQditbt4s/quLpLkxBt+wqvW8yQGnhBi7TPxz5PFWBXbm9PVTF68SoYu+eT5BY8+cU5M+2twFYrSX+T4TDFO68Sfe6u5V+wU/98S8c8TdMHpTX3W0yxwnus+93PpJwTvseqHQVmrltqad1JY+AJe8q4SudpEjr1XmRqeaA8pyvV7jl/9yOMfdYP+/QqxISiaZZUqZ/TJ+QGRgJwA5ESE5UQ9EW96gqsajkRx8vq9iAki/iXiBOQEcsL6iYKY0MoHWP3tW8QnbsdPQBaJicr7UZ10RFJOyImKnKD5lDbiZ2aKh9g9Fo3jCv3NvdyOIN88xxNyTH2B+/UJrC5v1H3Rzelq8jwx0NiRk2u/mmvgM5SE9bPlcnm5asqnjNZlg/mx3KdLDTn5S0j5naPzUq4Uk6sagnIxWrm3Tl+dIbeIxBNN08/Rv1d86uIoX/erdfHfUrmMR3uXk65pJyTM2THmjN5CUHQVE2rC0kBOAHLiV1wnYpDH3FYNu0JuOfhMxBXICeSEaWRNCLldo9q3lVGL3fpx+VL+EpNywp96q3hI7ScemLfYPpbBcztB/PmCvk0ntoVET/E5NzlPRvxGnstVA04SSHbICXmfkat77F0lIGNWUMg5ZDm93KIiV3j41YkOlGTTPN7A32P66TEx/VLxOXtXbrtw0tjLXBgn8uIRHvHdLiiydoyt2yvrqKfrLI2wLpATgJz4kVtEZIg46oIJ7WER/UW4YQk3csJpckJOhnzKIAdKiareNk3S9wW7XU4kJdUWP/vJyu0y0RpLsY0m8LlYrXF5THw7yOXxfqWLy4RENedFaemISbWVciK4fSEtpPoJlgg5If3kaopojae81qWU8KkFLsi/OSL+GVNbDmQRZq9YIWL/tg0rIlsvqsuWD3eSXKDVaTZn+5RTe85FKiAnADlhpZy4SsQUl05s5ZaPZIdLCuSEk+RE8KG52HUTOH2PsPJHV8oJr/K0vpTfKWOpbx8Rckruv3YbvmHn61sifOoCdwuJKmNN1N9mWyEnZJ0Pnzog4lLi1/eMtXpHlUhN/IL1JF4Tv3ulCwXZPDFWt7n+iVFfQSWuI/eN/3x9ix+4j/RC7aTmc7dPO6UHggI5AcgJ03KitifY6tOJ2zdCDVmk8xXkBHKiWuR+b586xNWTt+Ckur1eONINcsKr3FFZ98CpY7pPlxRywu90Wqp/1rtqWFaXw9HnpI2+JcCNckK+hQ8WcHWW2LR7tZDeXUQvuOr2+2sbvY2p25DXiywiHG0hZm7Fz369VpAbC73GOykrtbpNZm3NqiMLOnaZSZiMBpPWhyUnAhu+PG/shsP/l75ZO4usBBfKiZtFrIixSa6MeSKudtg5RE5EW0541T9UtgGNnTfMfuVBx8oJfa+5muCiiXSRGM8Xnfs2VOkT40KiqonijKh0XglXTsgJbXB/v1MnfluEQLjFhklxbfHz3wuzBaVTY7noonKTa54SpVwNdt+IlfEv1msEgbsQKyhOf3/m1twTERRRkxMdc8uTbhi2+PB9geW7nxy/dtNzkzYsf3nKpjnvzdyanpBdNqDjgj2tByyreAh5AQ6UE695YmO1RHWxT0Qj5ARy4sc3ztGtEG/jWyY1yfI3zGblRKsRV1Xu43bhmAaGOrJopi/wVNzJiWBs0ItJOl1O+EZeU9nm09njKa9NS6WvaH8cbIEai7kn2t8GGjr+CVG/38ouGLF4DsSqNrniEdxDspj0vpdZnHeC3J6AZIiKnPitsZcrW343cMEPD45atVNuHXl7xpYpPiEteubvayhXXZDBEAU5cZKIATZLgcUiVE+wDkRnEZ+KSKiMdiK6Vf5/Yz3BlRt2ShJZMLMOciKO5USwTeUOSx9Y9Ym3fJMd+EQ8nL+ltwb0pj4q4oFgBB7VJ5Oyar5smxb8b8fY9gApJwdWtmYzIyfkOMiJm7sfipd6EpQbHfUtoC/ZtrHNrSyo6Vdz9OKNsmCoLKboU/6j53Ni4B69sGOrUdcFl+5XhqzXIf+93KcvtzJ4lXeFMOugbz2xthDiGv33OVVOyDfsTtvGUfU5zrF4nB6x/lrXV19MC7YcFfdXmYOyY5FeWFQIoOPzT9bf0f+9KBbsU17Vc09v0WpxvQV/oJsQlic58ukweA2ut3hby7zgVje1uTgP7+grGPzKYz9+v+nnXXy/yX/vTW0h/uwh/ttR+jVvz5aSxXobWnAPQwoPnvPOjC2LaneVE+JMIowwJydCH/cL+uVof0tbUf7i5KIlH87clt5pUXmz9MKvLiKbwWY5IZfHLrBwQnlIxPRK6XCPCDPC7VIRD4lo6wluy/jOwuOUD2QXxJicuLxyvMKJdAPHskfEOxGMe20Zdb3egbLT5INRhfg5GfqDWkvlTtMPqbLfvCz4JzsT+MSydfnzrVqyLSeR0ZQTcoysbBcY7EAxW1/NIOts+AOJ4s+Pg6G20icNwYlwtvUrY0TeOK3NnU/90JLPFZz8ddYnF/Kh366ODr6R5wZFndgH71VMTqCEmImUoAhFTsh7glUTdCk4/Mp4fbLnV5vqhSVlyAmgFEZyAigLXIb/O96zZoBEcU2/0sySa112S9LbjKb+VxcNVq0Ck7niV18J1hhStllwnGMdV4ci+BnNSjFZ3yVLv5/KQppmaxm1nHSGLov8gSZ6+2brWpju0gtZg3sYtmzn+W9nbF5cW76x/zyTCDFMyQkLxvyMnnO0+wIrdr86tWiBN6d0aL/lB/4hW8eS2WChnJAV6UssmOgfEDGoUkbYWaxMPgQ8WjmRPmzBcW8TcWsMyQkzdDFwLFtcf9XIlQT6kvCwC8gt1B+Yk4afbetxypZvPvUZfWWF+bamu/VVHBGXE2KyIiegluwzFsXQ5FLqhJTfhT6Woj2s/Pw+ta+IdRYcT4WjlnUnpJ8ljqk09MmHOlcv8peo3udp0ufkqBy77OLgVR8SMTLsSa1XyYvIBNGonEhI/ZMY1+0m8qtcHw+5wsqferHxPBd1OHyB1/VJvfE31RViebx5SS/HP3gOzV5bc/VVZ5EoRCtzPjHwhPidirnWmsp0/X7tBPTvDVPdj1bqMlneM+1E5ouUvEGJXG56G6NcTQPuYXjh7otezyhaWgtB4To5cXzUEnFVct7hhpM2FDadUzK658I9jWQLWTIcOWFCTsjCl+UmJ/d5Il4WcVoUPr98eJFfSJtMfoaDlVIFORHrckK+CZZtycLtuS7f9kaj57o+6VD9Yb/pC1Y6N18kMyQ5Id+iihUMZt6cBicN/7R06bRepC9wlxiPLqYmkMHJ33uOyW2v8pmxpdniLbu+7Fq0tHQacnm+TxkR3hJwRbX92jQmJ8r1Iqrh5dU6vRWsXEVlFrnVJijjdtWQE+kWiYnJ5t7Sy2tdXJfRQkqg4CqU8rC/H6w4b6aQMlhuEwxzy5q8L0SjE44cN7/yvrltKELKgbtIXfv1xW9mFC2s9fkMMdEljIY5OZFp67Fd0j/3h+cmrN/88eytEz5bUPFUkqbVJtOREyHICdkzer+JCX2uJ7gVwAnIL9PXTEqKr0T8DTkR43IirLf4+l7n9/Q3vNFGf0Me8Ia+XFxsfbCCUOSEXlMj7LfGvfQuKhEZT7GNRm59CVdQOGVJcauUK39jhc0qfbm9lfVHbBUt+paPojBWULzrADkRTmzVj92ObTRyVUSwU0g1q1JE7QZTsk8s9/cpU0xIyPSIFzatWQT3DbNGQqZtW6EMfb8pb4e1CkxvzxvF4z7+5UGirE8ToqTwKqlMB1xKv2X7f//y5A0rERSxISeOj6uS5x9+Y9qmgrbzy7tQUBM5YUBOyDZYB8OcxK90kJSoSlK86Ql/Ncg3Ih5GTsSonJB1F0JfNj5bFM683HGfRU6q/XptgL3GHpgtehtmVE7I/dzhPNzL/dtykh35h+KzxQN6zzC3FZTre6kdId/E6oGfrTxRArookqtF3IacVMs6C6HuPw9n209U5YQoMGj3FjFJC7V+UAT87HdvMzUp1cWEqFMS9vY4UcvAsd8XYquTT1kRxmcbEpXVdVLwhFrHQW6HcpIYOl5SBCX8LkMrPuja4W76FBy4quHE9as9ncWklqgxTMkJuR0jwsd7qugC8s/01dtbzCkZ33/x3r+S8ciJKuSELDAZTo0JOYlO9Dijw0VNnCtiRJiCQhbcjOS1g5yIFMGOAyE8uIllyk5/6JGFPfUHzGonPjssXYFgXE6E8ebYASsQgq1ll4V1/HJsoi4nxLJ4vbClWJ7uRKkW8iRF70TSL8RzkeIKOSHlkdzCEVHksn/RveLYdia/0t/cudELG4b+ub3qp1GrcRIKcruKTx0Qxvn1R/67IMR6H15lql6k0snoXVjEcf7m1r8obgUC6xi47tsrGk0pWoV8iD05cXxcNSjv6zenbc7pkV/xQVaWdiKZj5wQyC+i5WFM2GUnj2tcOD7/CFPElIm4OELHiJyIyIOb7IIR4oObE5a5GkE+5PvVdlW+9Zd7iK3EHjkxI6Sif7ZPiPW6JP3C2nPuhAmXE2tJmJ1QB/Pb+LmQb70dLSfEVjFZBDRaSHGld8JIC78bkt6eM4xii1IAuu77Q/0gpKLEwe1ej0bs+OSqmFBWfclz75bvN7nqS45/lbVAxNZBiB265u264ZkJa9d6Ok/XiOqjwaR1JuTEDEd8hov7Zn/38tSN8zot3PMWdSniWk7IZYaTwpioDxRxkovHSFYhz/GEV+gzEp8bOREJQtsTvcyVEzy5beVn7QSVQdb/DqvlRGCwM9+g6m+Yw6iZobTla8m28zEohPMwz8Fyolz8nL85YkzD3X7gVZ8L43NP01vIupVgHZTyEATARk+zQGS2WQcLnxo9rnx9W6D7vsP/+PMuJKJDihPqQMU76rqvb+swf1cDq35ez8X7b35ybOEGJERsy4ljcV6vuf9rNHnjwrZ5O9/TtCjsh4Noy4lmIU7OvxbRMEbGSX6BdRZxNMQxSInAsSEn7EbWMAhlz7oT9+AanzTU0+s2yAdQs33pbZcTSqeo7M0O6fPK4mwh1c7YxzJjm5AdW0Kpb+BNfcCBcmKf3rrSzfgDN4Vc20AW5Hwn2f3d5YKCYrejCjUG634YPB9yy9fIa9x7D5Cr2kQuSfFjRftbMM+wZfvvbzhp/Z62ubssu7F1y6u4419j1mz0dBITWOJX0WCCCTkht1c48DOd1yv7h1emblzUNq/sWa6quJETNxqcBEe7c4XdNPWEvoLiPzYfE3LCbmSnDePLcX3un8SJveB21RuwTE64aIWBL/W/Ie6pz3FlAUo3ILuN+NRSg+diguPkhN3dRCIzOVwa4vXQLqZy0J/2eGhbPCzeWver41EeC+FYmsbEOfCmXcHN0EFy4vcD5mn3KgUlbReUPWLVz+0uCic+NmrVJk+nDI34eZiTE9Md/dn+MHDet+9O3zSrkxBUXF0xLSe2ilgToph4IIbH7CNPaCsodnmCBTaRE+6VE0bfthY7vkBYtLFETohija7LIdFuNLTP+SbJYtv1/KHh85Cg3OgcOSG2MLl+Uig6BIUmIT+OyRz0qu+EIAQ22fq9IouaGjuWDXqBTwA75IScWN6nLittk136D6t+dt8l5Xc/OnrFeoRE/MiJY3HbiPxDH2RuHdtz+f6zucpiUk6EElJM3B8H49YkREGhIidcKifkUmKjy3C9amtuKbbLiWmWtTWNKLLmgTospP3mdmyrgWABWK+yPioiLHw5scb14tOr3hbiioHOMZ2HfjU5BEljX+FGn7rc4DanFtw8wFY5IeNBdfm2pLwyyyoSd82v+PtDacuLkBLxJSdknNQlU3ty7JptLbO2JXClxa2cOCLikTgau3YeZ2zvQE7YiV5Ey/Cbzf/jlmKrnNjg8Q0737WfXcoGv7okhCX8b5Awdk0MlfcNSyIri+aFLyf+6erxlvU+vMrCkNowu1JChjImelefRQbHpFTU6rjQ8mOQwstITRz53zih1THEqpzIEZPJaT/GI6NXFH2Wu+svVv2Ojgt3P3a/WlBy/O+I5whfTuwUciLDdZ/34j5z/9dkZvGcvisPXMkVF3dyIt7eGssH1ukhjM8OEXWRE66TE/8x+PC4jtuJ3XIi9d+u//y+lL8YbtknJ7Jg08RQOVNc29uNtRVN+2tU5YRfGe/+vA9hK41PXeXqrhyh4E27RXzeCoOrJ3pafz9Oud3gOVnKTQPskxP9hZz4bNrP4uG05cUdcsotu/l2FPUsHgosK/nl74nHMCUn5KoEl37uu0YWlLXK2dEtXdNo0xMfcmJonI6fXGa7OoRxSkJOuE5OGK0VMIrbiZ1yQomd8fWrPQx/bisnxvDLCXNvY3Ig0C2KcmKfxz/qBneLoPTTxefYbPDzVnhaqn+OqzyURZSNjc1uMZYXWfu7U583KEqHc8OAiMoJGU+OWbOux+Kd11v1uzqITg53jVxShpyITzkh48Lec458JFZRDFxQcSlXX0zLCTnZPD2Ox/BWEf8zOFYHRFjdtxw5Ya+caG/w7WYHbic2yQm/usfTMvXamBkD2cLO6Ft7vzKQpLEJb+DvBsVYYfTkRGBMHE2+5XaO+NsaHKxrZLSDSUdrr4HUtwz+Xj83DLBZTkytMp4as6ao+5L9t1j1+zrm7Xz8npQl26v7ffEQDSasNSEnprn+89cS8dioFcXt5pd+wBUYk3JC1pm4i2HUV0QYHbO+yAk3TWDUXhQLi7KckG+4Yw1Z4M7oXnMKY9p01xY1DWQnBENdO1J+FxU54U19wNVjnJB+lsj1bQYl0Dx9oh6Xoiz1WYM5UWJpYVTZGtSYJH2fGwZERU7IeH782tVW1gtol1v+ym3DFpUjJ+JTThyL65LnH/LNLRmRXKDV4UqMKTnRnyHUOVlEocEx+07EFcgJt0wi1SHGlt8HGnMZ2CAnZHX/WOxJnzT8bF08GJqgBhqSODZhtGOCVecgNDmxTO/y4moJJ964G5v87o+77Rw/Q+/mM8dgXnxo4flpZXAFz+vcLMA+OdFPyImOU38znhtfWNgvf881Vv3eDvN3Nbh9WP7Omn5vLIYpOSG3R8TQWJzaZYbWePqmJf1WWJdbEFU5IQs8ns4Q/sjdIYxdD+SEWyYvYlm9sYfrZlwCNsgJnxKI3Ymx0iVuCiI6V068ZjAX+1r0+3JD2OLg7iLTshuFX9liUEImx30uelMfNZgby62TE4ZXcL3HzQKiKidqiWg0cf2qHiusqxXw+YLdb970xYKdyIn4lRMyaovP9Oy4whJf1o7/cEW6Xk7Q5u7XjDM4dl+KOBM54QJ8ate4mEg4VU741dhtTyzraBitucHWDpuub9H+19g5yI+CnLjN5ZNto1sVdlm2bcbVMiepthiLAmP5aFGRVK/6gcFz1JybBdgoJ7LFJHFKjSFrBbw6ef2SYct2WtZTPCm37MM/Js/fZ+T3x0o0mFBoQk5MjdlxuWtEfkVSdmlLrkrXyom1nmArTfg5sqjwEYNjaFUdFuSErZMXpW3U2rwhJ7bG/B50nzLf4LaCv5M8diCX0ytlhrpIyBoVkZMTJfpk1dVyQplqUMJ0Jg9/HLM3IirD5XYNQ79P+YyTA1GXE7qgENFo0vqlvVaXX2jVMbTJKfvvDcnzK5AT8S0nZFzaZ853vrnblKws7USuTtfJiecZumpJNTiGG0VY8fCJnLD1YVEUujT2sDiZ1LdYTvjVL2J+POR2IGPtLBNJHrvOgUFhYMXbfaO/y69OdLd0M7gixafs8PhGnksSViK3whgrILrSknokXvU5WmVD9OVEXyEnOkwxHCeIpfhvTyvKS96snWWZoMje4as/YN7BUI7DrdFgvAk5IbdCxPj41Os280iH3J0pXJ2ukhObLJpUxypyueVRg2P5AHLC8ROXFww+vK0j9a2WE4GXYn485NJ9Y5O46SSPbdf4cGPnIO3eiMkJr/qpu+WEwRbMPqUTCfirsesTsa0dLZU7Dd6Pl3JiwEY5kSUmhZNDitriLfdb0zbmDyk8eI5Vx9Iqq6TZNQNzDoR6LG4L83Iidsemlog3p25YMWTt/t9zdbpKTrD3sGZmGhxLK4qAISfsnbjcHMIe8T+Q+hbKiVYpV8b8eMitAvrb4xoncdtIHruucbEqxdj13ShyckJp4O4JtrrKUIcOb+rVJOAvxy5wl8F8NL81VG/1avB+nJR2CScHHCMnZMiJ8rsZm+ZPWq9Z1l+31bzSFlf3zz6InIg/OSHFxBtTNqwYvnz/FVyZrpITciLMEsyaecLgeJZ7zNfuQE7YOnlMP11/iKbdWqTlRFH8TEaUKQYnI/VIIBuQbUKNveU3XyfLqJyQb7TdK3tuMniNTyD5qkJs1/Aqaw2M3ziLRFKRwa1GL3BuwFFyQsaJogbCexmbctMLNcvaB4otHu2u7pf1FXIivuREo4nrVg1YdYC3jO6TE6kMmSHktpfNBsf0fuSE4yePK1h6H2E5IYvpxQv+QDdDY5KYcjsJZIecUO4wOJnuHjE54ea31FLiGJNtz5F81eZJDwNjWGpJwWBZ38RY/o/jxIA9cqLPXM3TflLYcaLY4tE4Y3Pm8GLtFKuOq9Xckna/6z33KzPH5dQwJSdkXYYYHJNGE9au7lNw4CquSFfKiccZMsO0MzimvZATMTJ5lNE6cD2pb4GckPuu4wWf+iGTuSgiRYCx69t8fSzDcmL4Ke7NZ2WeofahzVPqknzV3hP+aUxYpv3Vgu+3Jgbzf5+n1Qie3cF5ckLGyWIFxceZWzIzirSTLftuyCnrdnnvOV8jJ2JbTjScsG51/6UH2WPoTjnxjYhTGTLD3GJwXM3uJUdO2I1Xfch4+0tlEqlvgZzwq03jaEyeNJZbqf8lgeyQE7JDgqGcnBEhObHPkk4M0cCferHBbXB0f/hNOSE6mBgZRyvuk7Luh/HvtwAnBxwpJ44Jig9mbJqaXKBZ1oP805zSvpf1nv0dciI25USjCYWF/ZdWXMeV6Fo5QavE0DG6tcNM4T/kRGQmL6UhPMD9i9Q3KSd8yqvxMxEJ3G9scqw0i5nPLAuBJg0/Oxhi5YI37YofQ05w9X+fflLkzoFSFpGOBcbkRKlrz6s39VmDouc1boY15uQiAx2Nhlrzu0RuGy/8/BAnBxwpJ2Sc2nma1nTm1qlZWdqJlj23ZJX2vajnzO+QE7ElJ8RWjsJBy/b+kavQ1XKCt3ah093g2JopNIWciAR+tV0IcmKHp4Van/Q3JSf+Ezdj0lL9s8FJQWvXfCbZBcCfequ+FcUX8IrjHyD+HCPqO+SJf95gvMhsZacSv7pJn6zJWiR+9QvxczuLn/eJ+Dkviv/9iN5WsWl6+Cv7fMpqA8dSHCE5UeLiCXUnY5142B5Qc64Y2k642CI58abx61Hd6klI+R0nCCyUE3M0T7uJlkXdTlOPtpi9dXy6pp1g1XG2mrtjwIXdMg9beZzRigbjV4cvJ9pP1mJhDJ4Zu3ptr0XlN3EFul5O8DAROg8ZHNseyAmHE9yXvjuECdUisaf6Ai6BMOWEN/Bo/ExCxMTa2Nvmzs68NsQqCK96mycx0FjkvarLB+MTHWtDdjmQAsOn9hbj9ZG+iqnVqOtqXIXhV3MM/PwK5ESNk9xMA+doPTdCAxhZheJX95qScseQP8No147g99s88XfO4SSBI+WEjDM+nyYFRXqSptW24jg1TauVOLdk2DldZ/wPOeHuz/90+qp13fPL/8TV53o5sZuhCgvZevmIgfFdiJxww8Oi2iukiZJfzfe0SrmSyyAMOeFP/UfcjIkv8H8R6xZhmZBQztRXRXiVVINbIqIbfnWP+HOB+DNZL0DqV//2M3noV8Yb+jlmJ4KxLCekpPIpOw1tW/Gp2USNsdhgbt9szX1I+ThEEZgnWt5expcaOFJOyDirS8YR7+xtihQLlgmKrJIR9bpM/x9ywp3xpBATPRfvv5krLybkBC0Sw2eVgfH9TkS4BYaRE5GTE/VCfivsV7aIh7inuQyQE66XE8+lnxDsIqCMFn+WO15IGIsNlWJipbG8DFyInKiGBOXGGMkJd4VffcGS8ydXF0mBF9rvL9LvCQDm5MRsMXGcYEuc123G9wlztg6w6njlVpGEOSXjTu889ahdx2x3mJMTkzS3fu5/pi3b1CN/972WCXmxKqf7ovLBKZsOsUw6OnKiI0MVNkMNjnG4NVmQE5FE7m8P6yFSyRKS4g7kBHLCdXIiKOVku9NVcT8RlJ0NkBPVfbYXkAXRkBMWFsqVW8yCq4xC3U6Vof9dgLDkRG8hJ9pOsC3OFSsd/LO3J1spKLxiy8gZnab+YOdx2xUNxpmQE+0maW78zE+PXrmhV8HBv1iZA5/m7BhXT6zO+WjG5hwrW9iCYTnBm9/wecfgGIf79gE5EfGHcKV/mA+SFfrWkJap1yInkBOOlxMtJ50hJipJBpfqx8lE0OQELJblhFdNIEeiEtbeF3xKSxNbp7pS7BQcJydknNd1xvfNZxb3tnJymjB769jTRfFN5ISz46lRKzb2WXrwTqvOvVwxIeqPBM7+fNoR+fPrfjblaJt5O9K5miMuJ+i0Ej73Ghzj95ETLkG2FjU2yajuTdd+fSm5XIUhl8ojJ5ATjpITYnuufAsui0sy8fvFG+K0W5AT1U5q+5Ej0QhllLXfb0m1RZ6mmzimffrf9ysP6j8LwJicGG97XN5z1jf+OSUdrDp2+bb8k5lbMk/uMCkix29VmJMTE131Wf+hFBR3ySt72NJ75LztX1zUbfrh43+PyOGv2+eWJnBFR1ROnM5Qhc3vDI5xF+SEi/CmXWFRV4IifTWFfJB7J7kOcgI5EVU5kZh+qZjsTGLCV03Itq/Iieo+20RyJCpyYp4NAv5sveOU+XoY6/X7ljf1Ab1gKkA05YSMS3vO/MY3Z3snq44/vVA7qfnsrVNP7TgZOeGweCRQsKnz/LJ7rMzXNlnbh5zXdfr3Vf2+e4Yt3NltUfk/uKojIicqGCZTyDfj3xsY53BXBCEnovYwLltAKtssfNDcKn7eCBGvxmwfeeSEc+WEP+1x8Ts2M9n7rQjchZyoLo/VAvIjSkVd7UBvn62strA2xhZRUHaoiJd0CQrwo5zoJeRE0viIxe97zv4mMctaQdFsZnHGKR0mR/RzhBsNxpqQE20nuuIzPpy6ZHOX+WX3WnpPzNk+5KJumd//1u99Y/K61ePXfXkuV7btcmIZw2SaYgPjvAg54ULkm1T50GXPQ+dSsaqic/Ctk6ikjpxATtiC2MbhU/36diP73/JuExP0JSJmiH9WK2Vc1SHfxB8Ln/zv5eRX2RHViWCieh9yolo5sQtREJUot+2cyvoRRjvZhB6yVWpH/ZqKh1WD8FtyYpaY2I2LaFzTd87BVnNLmlooKE5vMmPTvDqyM0SEP0uo0WDsKhNywvmf74ER+SWdc3c9YWWetptX2lXk6Vc1/e6T20/U/HO3TeTKtl1OTGGYTDPPwDgXIidcilzlYMUS2N+OXfokLVF519W95ZETzpITcqm1fJtpbWvDPSJyxDXR05MYaKzXVmmh1rdMsMmaL/IaSEy5XYi7R4XAa6TLFSk0vEqerW1OvYG/IyeqOSdIguiFHH/7zu3Z4rqaGrHvN1ZVICciFX/oNftLf9Y2y+oETCnQTmsyfVNWnfYTkRNRioeVJVu6Ldpr6QNkm6wd3S7tnvmt0WO4rEfm4fY5O5pxddsqJwIMk2mmGRjnrcgJFxNstzgkQg+j+0TMFhOzFmJieZP+5hs5gZwIFfm20quOtCgf5wS7NaT8xdaJkhFkkdlWKVeKCdXD4vpoIqRFH3F8syzpOoKcqH4Ca2zlzHS9xg5hbSRNOc1++aR0qrzWbe6Io+4Vf2aK++IntCdFTtge1/abu79VdmkTqz5Pykqt7gcZRTlOXkERq3LiH8riks4Ldz9mZX62zS3tfIWBFRO/jEfVpcXJqw/Qusg+OTGEYTLNGAPjvAc5EQME9+2viWwHAUUWHest4p9RnxgiJ1wiJ/SOHMkmt2iI1UKp//X4hp3vinGW0kKOtVdpoC8nD74NLkFOWHHfS73Y2HUdSORxwMUkKndGYJXgL+8zhfoqLLlKyunfbxCmnOgp5MSn46IWfxqQs987Z+tbVn2mQMGX5707deOC2rJQYhQ/V3URtpzIqZQTDvxMohjltm7zy56xMjdF8ctP/69f1qFwjqeWqD/x4fRNszTNRW8P3SUn+jBMphlpYJy/Rk7ECMG3TB9bXCzT6INcmfgzRUwWnvckKWciJ5ATVU8mlQ4m8mycyLO7Y2PwxXODXGXhU1shJ0wQrE1gYPzUT3kccDm65BNFm4NSPNJbWErFNTRc/PmM2CZGF7nYkRMzxYRubFTj9sG5u9pmlza06nN9sbr8wrcmryuoJd+kR/mz/TLMyYnxjvs8fx26oLTjvNIXrMxL8fNa3NA/a5+Z47qgy7TDHbJ3fMJVbouc6MwwmWaggXE+KiIcwYaccKykEHJALk2V7UKjsxd5t3iQGysmBM855o0TciL6ckLmQ3j5NFvUkLgnNs+BWHWEnDDxuWTnIuREXBGsM/KmjQUzay4E6lNHCUnytKdJn5M5IcgJ03HzoJzyttk7Xrbusx06v3HGpsW1245DTtgU9w9buL3rgvKnrczJz3LKvNeJ7T5WHN9jypLNQ5bt/z1XuuVyoh3DZJreBsZZRjh9wJET7niIe0ZMTNIr99NG4UFOruIIfO5JTLscORHHcsKbenXl6prQitX51PdE8czasXsOkBPmrmtRnNRYPYEkHgdiDLmSQq/voq9oiFbHlmJxDJ/p7U8BOWEm7vgid3fbnLJGVn0+uYLijclrlzppBUWsyIn7hJjoklf+rJX52CGvtOX1JldMHB/yvH+SuXkCV7rlcqILw2SaZAPj/F2YPxs54Saapp8jJjgNxYNUahiTRGs6KfjUAVHr+IGciJ6ckHIh2JIztHZ/UmjE/DlATpgiQbnR4MoJVmLGMnKrRaL6ZGU9m+KorBaU9ZeS0i/iZLhJTvTI1Dxtxjgm7h2aV9JxXtkjlgmK/ANXvjR29SqnfD5TckJKFgd8hj8Pnr+rw/ydr1qZi53m7Xrrz4Nzy60+1qt6zTzUZeHuBlztlsqJfgyTaVINjPNe5ES8PciJFRXyjZNc0eBXl0R4JcVOvdtHpLd7ICeiJyd86sshFlrNc02xS+REdNFX5BjKq97c+OPl+020Kfal3Su+a9qKmCfq3OyPcG2KjyxrXwzxJSdk3PVF3o4OuaVPWPU55dL+NyetW1nrU+SE2bhn6IKdHSysD6KLifll7946MGe3Xcf86oTCgowijf1n1smJYQyTacYZGOdwH0iRE7GCXM0gJ5B6e8dIFdMUldcj2a4NOREdOdE0/VTx99eFkBvZenvcuDkHyAlzE1GxnN5QXgUGc6OPU6To1OvdKIMiV4dJma/fXwE5EU7cP3zh1o7zdjxo1WeVKygajVu9GjlhYsVE8ryd7bKsLX7Zaf6Od+/8Yv5uO4+7bseJRxOztnfiirdMToximEwz3cA4r0NOwE8P++KtU2LaX/UCcvoDls2FxbzqO8iJGJYTXuXdEPJhpad5ygXxNXFCTphCiixjq3FSubmDvsXMm3aL+G5rKfJils21mHaJn/8ag+5oOTFDTODSHRmPKkuKPp+3889Wfd7uueV/enrU8vXR/EwNxq4MU06UCjkxNmrHfcug7D3t5pW9a+msRdSseGDYgu2ROP4n1IItA1fuuoCr3hI5MZ1hMs0CA+NcgJyA6ic1qReLB6xXKmtV7LCnHoVoL+mxuSUzciLyckJv/We0or5eODX+3jQiJ0xONvWiv0ZymLpg8Gv0WkxyVYVYWeNTN9skKbrq0h8cKCe6CznROt2x8bjouNAut+w2qz7zwAX7b3k6sGxVtD5Pg3QTckIWeozCMd8yMLus87yyt63MvfY5Zc/8bfiiskh9hhPF2LWYtUXhqrdETqxhmEyz3cA4ZyAnwNhEQOyj9QXu12WCT11q8QPcAFsFBXIi8nJCr2titM6EmCDEI8gJk4h7RrAYYc3byAB+i2D3jzs8/kCiXqvC2m0eo6lDgZwIKx5JXbyxU3bFHVZ97u75+//0ZGDZOuREzfHn5Nxdn+XsetPKvOuUW/b030Ys3BHpz3LP0Lzyfov3Xs+Vb1pOHGKYTFFHxA8GxrkvcgLCnvAnimX7/pA7MdjXshI54Rw54VcGGlxyn2H7yhmn4k97HDlhWvAsN1SIFyAUZD2TY99v1hTVTGMFBXIirHhq1LKi7gt232LZDGzxwTueSlu2ATlRfdw+KKdCrHD4r5U5133Bnn89OHLR1mjkUC2xvaNZ5iaWEJqXEzLOYajC5kqDY/wJcgLMT7ICN+mTWFmt3FzL0deQEzEgJ+Tebr+6ydiYR7AwqtPQl5QjJ0yO4WRjeTzyXG7UEBatRlwVrMNkcuuHX23HYDpOTox2RYiJ/eq+Kw9cadXn/3zBrgf/MXJRcYQ/gwk5MSZix3l9v9n72uXu+MTKfOuRX3bvvwNLN0Uzh+5Izqnom7/ndq5+03LiZoYqbO43OMZPIyfAMpKUMyuLIBaEufy1TBQsuwI54XI54U+91eD5ju/aQl7lDeSE2TwWW8KMTQx5ngCT32+ixolfeVHvKhRefaX9cfUd4wo50Wq0a+K50SsK++XvucaqMeg8v+yeh0fkb47U8ZuSE7L7RASO8ab+c/ckZZVYWvyyz+I99z+uFmxyQg59NH3jeK5+03KiAUMVNu/YLICQE/AbD3GyKrraSEy+1of8AOdVplq+zB85EVk54VObG5x0N4zr68SnfoicMIlf8Rkbw9RnuTGDhXn3mLiuloQhKYririsRcsJCQZG+Ynlywb7fWTUOXXPLH3p45KItyInR2o395lS0z93+kaWz3cVl9z2hLi1ySv7cOTh3z+DF+zH15uREV4YqbAYbGN+jIs5EToB9kkK+aVKTQm7Z5g08ipxwsZzwqxMN/NwKT0L6WXE+wfEhJ0wLnpdZUg/R+X6TrbflSkGx4i80QTGEwXOEnJguJmyjXBW1Wo/SXh63akX/xXsvt2osOs7f+dhDIxaW2H3sDdJXmJAT6bYe2419Z+/tMH/Hx1bmWI8FFX9+dtSyTU7Ln5aztozmDmBKTuQwVGGzwsD4rjPx85ETYBwpG0JrRToNOeFWOSE7KMjWoDVOFmdyXaidkROmx/A24yuyAGwgMeV2cY2tD2l7R0vlTgYOORFW1G4zWntz0tpFau6BepYJinmlL9w1eF5ZPMqJ+r0yD7adW9Layvzqv7TiupfHryp0Yv6IWiPb05Z9fQl3gbDlhOzYcQLDFTKnivifgfEdhpyAiKEXzTQwaT0W8oEPOeE+OSGLxxl7QPfF/TXhU1TkhEn0FsdquYH6Jtv17WYAdtBSuUzk2ZoQBHwmgxZtOdFNyInEUa6MWq10QbEkuaDsPMuepPPKnr1ncO4Ou47ZlJyQXSdsOKbr+8w+kDR3e0src2vQsv1/enHMynVOzZ0TxVi2mlMygLtA2HJCBm1ZQ+evBsfWTJcc5ASEIQnE2yK/usfYw1tgMHLChXLCp/zHoJx4EDmhLEJOWDKOWQbrTlzNTRhsIyhmtxpfQSGEPURTTmSIyVqaa6O2WKL/9oTCxUMWHLSstWGHnJIGfx6UvdOO4zUnJ0ZbfjzX9M480CZ7ewsr82royi+vbTRm1Sqn585zo5avHV6sncKdIGw50ZLhCv32YnBsb0ROQMTxK+8bfHirELLgYuSE2+REwGvo5zZNj+9W0XK/uk/djZyw5J7SxdhqLOVdD4CtuZj2eAjdqfoxYMgJU1FHbPF4f+r6rCkF2mlWjU27rB3v3tR3dkUsy4kru0//KilnRwcrc0pZufeydyatXV5Lbp9weN7U6zDhh465ZR9xJwhbTsxluEKmwMC4fukxt2UGOQHh8Vz6CWL/90KDb5aaICfcJicMtHb0Kmvj/jowmpPICSOf7wWDRTEncgMG+++tymiDcmK7LikBOWEmTvo0XXtv8vpcK9+Ed8gtbXxj31m7Y1FOXNFt+oH283ZYWiG5z6K9l709ae0auZrFLXnz5sS1WdwJwpYTsnZCPYbMMJd5gl04ahrXsSZ/D3ICTEwmRBs2YxOzCcgJl8kJWXiwZjmRwTUgtrUgJ6yhVcqVBseyXLRxrMsNGGyWE3/Ui14aK9R6BwMWLTnRdZom3oDERJwo3tY3nrIu00pBIVYWvHNTn9l7rDrGBqPDlBNZQk7I1QgWHEP9ntMPts8p/dTKXJIrJv4rV0zISb+LcubmvnMODlyw/xbuBmHJCRnPM2SGedPgmL6CnIDoITs6qEsNPLztEsv/T0VOuEhO+NV8A28MBzGBCXyCnLAQo6uxEgNPcP8F+69vIdaN1UFpwWAhJyyJk8Xqgo8zNmZmFGknWzVOHXK3f3hD75l7Y0FOXC22crTJ2mrpVo6hy/ZcIqTQstqt0lyXL7USA1rzzC30NQ5fTsxmyAyzwMB4HhZxFnICovvwprQ0uPT1buSEi+SEoYr1SnvyXx2FnLA0n70GxzONmy/Yjj/1eYP5OIrBQk5YFqe1HXO0WeamCemaZlmrQ9lm8+ruGV+aOa4z2o7VPsrYuDKc3/9Zdsm9YsvExGfSlq67psf0w+GIgMs+n/Ltp1klPa3MoQnL95/98fSNC060aFVHNEIUxlyTlaWxtyw8OWG2eGO8cIvBsZxhwe9CToDZh7dbDT68vYmccJWc2GygE4s3rnO/SZ+TQ2qri5yomQTlRoN1J/aK7baXcwMGe++vI881uLVjAYOFnLA0TheCokXm5vQkTbOsd3LS3JJ2V3bL+CqU47iqe8Z3L41dteKT6UXpXRaUN5+w7tsrzByDFC5Dlu+7u9XcbYNeHbdq6bW9Mr+Rb/9rOo5LO0/5ts3c7X2szB+lSDuz2YxNuXVkLQwX58oln08+0n3Bzue4I4QtJ/owbDXS1+BYvoecgKjzTnIdMUEri8hbduREJOVEsQE58Ulc577cWmC4oj9ywnjuKSsMtrH1cQMG+/NRXWwgF3k2iZqc6DJVEychJuPMtmN+EIJC1TSxh9Yi2szZ3vl3n0/9+rd+72miOOc/U/I3fzB1Q1qv/PJHrPz9xyN/7sClFX9PyNw85u9D5pfWlpKiiuO5+LNJ37WZW2JpW5z0Qu30Fpmbsk+SxS9jIFeaZmxiOWH4cuKgiDMZumo5XcQBA+P4jYhzkRPgCPxqjgE5EUBOuEhOyE4cNf/MVnE+aUlDTtgiJ9ob3CpWSJcEsB2vOtJgW+VTGSzkhOVxdvtxRxJmbRlpqaCYu7XHZWIlwi9/1xltx2jPBArW+GZvbmtlzQsjpKw8cGXCzOLh9w2et62W/zgx0WnSd63nlAy08nfJlq1CiMyR9T1iJU+eDhSsF8LlJO4KYckJGZ0YumpJMjiGyRb9PuQEWPDwpqQaeHibhZxwkZwwVBBT7Ru3Od9q1HXi8+9DTthxP0m7wvjYBl7nBgyOkGXNUy5gsJATtsQ57cf/zztz6xdWjp3cIiFXJMifX0fUf3gydcmmVnO3to72BHfE6u+u+jijaMKVXaceuvCzCYdbz92WbOXPl51QfLOKM09tkx5TOXJR50lHeizY8yJ3hbDlhJwQs1f018gvtkMGxk+2GL0eOQGOwa90icieXOREBOWEMp5Wor81gTb4NhU5EWZeq+MM1p5YzxtrsJXEQGNj1/jIcxmsqMiJKWJypsR8nNdh3PdiUj3AyvGTdR/+Pmz+voSZW8aMzP/SUQncJae0QdusHd2s/JlyNUjinK0ZpyWNPhqLOSLqgijcFcKWEzLoevJrehgcuxwLfydyAiyQE2qSgSXYK5ATLpITPqWPgXO6XSyrrx13+e5Lu9dgkTzkRNhjrPwrhLH9kJsw2HiPfd3Y9a3WY7CiISc+F3LCq8RFXNRxwmHvzOJeVo6hsupwXHQqSC4QC0TmbJ1yuhQTMZofDUctX2lXfZA4kRP/E3ETd9YfudITrCNhZOxeQE6AwyYSRtr/bUBOuEhOGH1bKLsrxBPNU+qKfF8dsphAToSGLLQrV0UYWz2xyZM0/GxuxGALfvUFY/fC9LMYLOSE7XFe+3HfN8/c1Juzbxx9xcSs4umntYldMSHj2h4Z3w1Yuvte5ETYckKGbJVL7Q6PR0qubINjtkyElW8qkRNgwcNbINHAw9s65ISL5IQ39QH2/Fc53p+HJSaQE+GM9SfGx1cZxI0YbMGrNjKUg7K1MERLTqTGVVzeedI3vplbOpIBNSNbl7aZvXXs2W3Tj8R6XtT2K1rirK194/yUm5UTMtpw5XgahzBej1v8u5ETEKEJm7IIOeEiOdEscJ6hrQt+NTmOxvqpsMUEciJ0koafoktNw2Oc+m9uxmD9da++ZyD/djFQyImIxqWdJn3jn13cmSyonqws7cSkrJLxZyal/xAvefHG+DWzkROm5YScHP8xjsfwMo+x1qEyFtrw+5ETYMXD2zADk9iZyAkXyYngZNhIx46tnqT02F8B1zL1Wr3GBnIisiQq7xofX2U92zvA+nus0sbA99tGBiqaciIhNS7j959P/kZsV6AFYhXIFRNJWdvGniVXTMRRTvxz5MKtKSu1usgJ01HsCXaqiDdk7iwPYZzuQU7oueJ8/MqDYiLyaBw9vC0ysPx/DHLCdXKih7HxVh6L6TH2By4Un3OVKTGBnAgPWXtCFtM1vr1jkue59BN4Mrfzehh1gxjnV+PnHquOMiAnlpAYyImoxJWfTz6UOHOLn2z4iSRNq/3p3G2jz20/9ki85cNFHSb80C+/4mnkhCUxS8SJcTZ+qSGMzxibjsFJcqKtgWPZ5/iz2jpwfeUb1goRL8d8FrecdIZ4MNtroJK5+dWHyInIygnjHRMmxHR++5Qs02ICOWFmcvhyaGMtCvTGO4npl9rS2tKferFYobK2Ukr6Yn8gReF7Q4VZlVHMCKMmJyaLSVlKXMd1PTL2t8kqeZ+MqJxNzN02+OKOE76L13xIyNw8II5Pv5VyQkb/OBq7hBDGZbfHvpUlTpITXgPHctTREisp/SLxkFJ43BtluWe/eUxnsj/1eYNv119ETrhMTgT3/JcaOLf7xeqC2Ou+JKvv+9RZlogJ5ISJ+6poV+tTpocw1vvEWD0St09mXvW2ygn1DEuLNAY71cz7hXTuFdMrVVqqfzb4/ebzAHIimnFt92n7W83Z1iTec+LTOdu+OL/92O/jORdeG79qOnLiN2OriDUhTMQ/j4Nx+7hykm10TJ638VicJCfeNjgeFzryrFb14PazVQMx2npYbteIVMtJ5ERk5URwQjzc8HL6mBpX8dbZqhUTyAkLJtypV+tFB42Pt5Bqyt1xKCae+9k4+dUvLPnukQLCp4yuZqxTYrZThU/tavD+9y9MQbTkRGchJ1qmECKu656xr/Xsksbxmg8dcrYnX9Jh/LfxngdPK0vWy5obyIlqY72I60R8HcJkXFZ/rxWjY9bZE9pqEtXm43GSnHjY4Jg47yHgtx/cjtVcGKzvn44lWip3GpwobLXksyMnoiAnRP0UoxPCxMATMTLB+4P4PMssFRPICfOEUhwzGOUxXw/lGLIorVzFUHU9hCTTP98f6FbDtr3J4hhOj6kxTUj5nZ5DRlbqtBh+EaYganJikpiQjSQq48Ze0/f552x5K95yoWN2yYBLO0oxQQ5c3yPja2XV4Rvj9LZgVE5IPghxUt5TRO0YGispWzqGOAbbRJwfR3LiGoPj0t1xZ9fo2xX5ANc8JTaKv+qF6tRsg5MEa7a/ISciLyfkW1dDBU/1KPL4hp3v7vEUb9t96mbLxQRywiIJrM4Jcdx3iRoJD8f0PaBp+jkiNyb+9rYr9YXw805532C3lDx9hUvM3FsV1eDnzsASICccFfcOytrZf3H5X+MlD7rkln1Uv+uULzn3wTjFr2qdckoTkBM1ygk5OZ8U4uRc3vDrxcA4nRnGZ/9KxM0RODYnyQkpo4y0VV3tsMnhJyE+LG+Oicmz3Kpi9DPLt+/ICZfKCf0h/VXj51pN12sEuA15zN7UFoaKu1bVRhA5ERmCb7M3h3h+xDlVPo7JrXVyZYhPXWdoFUliWuhzFa/SoLJ2knEZ5Fdfc/24hrZK500sAXLCUdEgbemKKQXaafGSB/2W7f/9P4bOL+Hc/xTNZhQNQ07UKCckZ3hCa50po0jEDS4eo/8TsS7EzyzrUTwToeNzkpyQzDQ4Rg864uy2GnFVmJMZ+bDcUkyI3NmhRhbBNPrAKguzWbWdBTkRHTkhl4yHss3Br7Zz1RjK69irTA1zRcRSMZG5EzkRyZxP+Yv4nLvDuO+m60VOY4GWymX65wmti4noIqX80fh1r5yp51N410V3saLjVHfml756qtywjImV1ZCulROdJmqeFiOIyri0w/jvOueWxl3njtazi3uf0SpADlTGm/FbFDNUOSG5VERJiJN1Wa9CdnJw0359eawJntBqbRyL1hE8TqfJiaYGx2iOjccQ2ltfX+p/Q3yz9PNlsL7AXe4SE6IKfkgTAzE+VoGciI6cCOb5v0PM7w8dP3ayiJ9cLRFaocXjY6XesrFVypXIiQiTGGgcvkxKc+9q56AofE+v4xPed87U0HIu7fGwRFBQhqx2XaFIv3qzOOZtIXzGThgC5ISjovHEwpwkTasdb7kgV4o0HLW0kBwIxvNpBSuQE4blhES2nDsYxqRdLue/xwXjck/lsYbTTrWvJ7LFQJ0mJ/4QwljZsbpErmQYL+KhkP6WV3kjrBUUP7YbVQaJgmMXOj6z5UNxSJ9TtFW1soo7ciJ6ciJ4/qeFmN9+Zy6ll3U0Ak/pciHsGhIit2U+SpATUZpIKgPDPH/79DpBbirgKLcdBds2rzKRsyt+zNmQvt8Cj5oQeHLFylh9dZLT8SpPizHaGcJ4lrFqAjnhqLj8swnfdc8rfyle80G0Ee1UN1ElF0T8bXD2LnXVgXpxmAbhygmJfHOxP4zJu9zyMFbErQ4cDyldxnlCaxN6fHTzRL5LidPkhCTL4Hgd8gSLaFqFFM2Byp9dKuKc0CZu4g2RmQc4+aDjVT4TD8zOq/qdlHaJ4ZahPy8A+pylx4GciK6c8KZdEWzRGFJeBzxJw892zAQvUX0yhEKu1b19Xqgvqz8GciI6yAKZ/sBQU4LJqzbSf45TkVvivKnPimOdb64gq/j7Zr5b5FYav7LFhKDYI/5+f0cWzJRbfcIRXXLVFThBTkwQk7HhhIi3xq3Ki+d8kKsn/qMuXk8uDNeu7Dzxh+SC3ffEYRqYkRMSWfCxPMyJvBQA0zzOWElxc6UwCVdKyOgYpWN3opx4MYRxW+KxpmiqfDjt+4ufHXotmWBrzWKTVf3FXlelp97OMOqTueGniONpHvqEVI8hlh8PciK6ciI4QX4ljFxYFdVzkph2eeX2DfPtQWVXBLkX/3iQE9EVTuGvoPhp+4Es4ugkSeFPvVhvAap3wDHbKUa0sZb3crO0UOubW7nx46qVYZ4E5UYH5M6JlaseN4XxOTJdWzMq5uTEZ0JONB8e93FO0qijn+WUNI/3nPh0dnHyibIoZJznw+liBUnnvNImyImQ5YTkWk/oNSh+GWtEfCIiksvr5BJ8Uf3bs9Tksf/gCdbTiBZOlBMnidgYwhiuEmFmtYFsfTi7mp8d+n7ZlqnXBvfamp0E6XUsZogHy9cj/uZZPhjLJflGuxBU9bBvR+E55ET05UTwdw4Oc8VBasSWd8sl+37lxcpCl/usaQeq9KuyuCtyIvqTTL863ILzu0isxGgStS12XrVesDuG/CyhbC/4zc/U3tLuOS2GXyR+5jyL2uvO1eXAL2VfJMZZnme5zSW84y4Ja3sMICfsjKdT8zdmFGknx3tOpBYevPqu/nMqyInhWuLMLb2RE2HJCcklIhaYnOTL+F7EFBEfeYKrGaysByMfSOVWFJ8n2FHifxYcr9zW8niUz6ET5YTkqRDHcruIpz2hbYuRbz3e9gS3cFT3c8tEnBv65G3kueIBZpRFD3CVqynUNL24pJyM2rGPX67U8ClvV9YVMDGZE8XEWo26zpasQE44Q07IOiK6OAv7zekoMQH7m6VvHqU00LtmKF4x4ckIv4hflVGqt1OtDuRE9JGrHuS2OGvOd0Vljr6ir7qxC9nNQhbn9KsfVUq0CgtzVrT0DLxk23H7lD6WHqv+fSmuMbtqOEjhLrfw+JTRJu8N4u8G7scKICccF02nbkwjIyqfB8avnktODNeaTFmnICfClhMS+bZ8gAUT/uNjnwhZmVrWcnjXEyxyeIUnuA2gOnEh/7/LKv/bD0T0FzFXxFcWH5t82++EvZdOlROSiWGMqyxOK1eiXF/Nz5TLdv8ipxMe46szwrzfC4Hg1Xull1v4EHcsisSD1kgRCXoRL7lE1uiyXTmxbB24XvyMZ8SbZZ/+c8wv1f3pIdPOSvjICWfIiZ8E3GKTb3W36aspfOqbet7It7JGkKty9D3wYim+V+0sfs4kvWaL9deZjNk1brFCTjgHv/qCudo/VUaBXkBT5qlXfUjf3mC00K9ctSBrPSSm3C46jDwhBNq7+rUYXH1QYU/OKllBiW37veep0DpbGJaXi8V5TA52JUm7V6/vYnT1h+xmIr8n5HeAT/lY/zl+Nd+6Y1P+w8zPcXJivJiIDYvruLT9mO97LSp/lowI0jarpMMpvtS4z4s3xq2aGoen30o5cYzXPOG13wwnvqsUGDK+idDvlDFcRF2HnEMnywn5BmWXiXGWHWG2iCiolBbbTeRW+IUdpTgwPYkz/FC3VUz21lburc/Ww6/mVC5fXVfZfs6uB+IdpidfyAn3yAlJs8B5+tJsa3OptDJfF/8qh/3qehsmQ9UXqPUr7xta3YGccBZe9TZxH1xva34Et90du98u/TFXdelw3P1WFoKMSL5WFp2UwjqStRDkyhJZf8H+z1deKRmy9VUmsvbL8eFTZ1We8332jW2gIbM+J8qJjkJONBsW1/HkyEXrsrI0iqBUMmHdt1f8pc+svfGeFy+NXpqLnLBETkjkXr7ZEZQFkQo5Fk4rnOpkOSG52+Ax2h17PME6I+GhF5YUy82tf6PnjJCTRn/gJvsfhJETjpITkuYpdcXPnhBjOT3Kk5DyO8NjgJxw4HUx7Hy9KG8s3m+rWy0RiXtwld9vQoYEtwQWx+jY2i/eATlhJt4eH5dvyH+TRqOWFsR7XjwfKFiBnLBMTkhqV06KI7WKws6QXTzk9pAzHHgOnS4nJHLVwpEon8PRIk615C1TcBtFLD24TdJbjUbkLR1ywnFyQkdsYQouod7rcsk2UX/rHirICSdfH3dZuKzfiTmbIzrRPOCIsW6afo44nh6uvw/8fHxzI7JFBszKiaFxG7VbDNPazCnuQTb8nA+nrEuL57yQ8WTKwi2aZkORuviVE8e4VMQXHmsKUEYjMj3BGgdOxQ1yQvKyJ9jZJBpiqa0ntEKbRibZ9wWXqrv6wW1X5bL32hHLAuSEQ+VEJV7lYfF7NrswlzPF9fhI2J8bOeFsZAFHv9outlauyfanohuNk9qfHkPfyijrwLhaSuzVc0bWsADnkrLywJUJM4qGNsvYkByv0WJ60Rd98sv/RDb8nI7Z2x+L57yQ0Xbu1sHphVq83cQiISeOIav/p0dpghpOyG0pd7vgHLpFTkgaeCK7kqbCY3c3Fb27gKVdPSIRFeKhrbNeEDHSICecLSckstq+Tx1g295vS2u0BMaISZT5+zRywh3IwpR6AVVXS4oZYqXEs66YNOuFl5VBrlpJodcSUUZErOUxAAC4Vk4cQ3a4kF09IlnAMpQCm6NE3Ouic+gmOSGRLWKLInAux4i4KGKfSi7LDbbwdPpDW8CTkBo9QY+ccL6c+DGnxfYInzrHgblcJCZLSR5v2hWWfVbkhLvwBy4U49TRxg4v1hdn9aq9PP5RN7hyvL1pt+jfHc4XltNoEwoAgJwIF/nWVrYHzfZEfzXFShEfVh6T23CbnJDIlpltPfYUylwj4uHoPcSlXq0XzvSrSxz0YLxTf/vVatR1UT/zyAn3yImfJtR/E797XGV3g2iJtS3iz776sdjRyQA54U6S0k8Xk/5GYjtSRlTzs7ptcz5FFcfWwJOknBkbUij1YjHeH1R2NnHK9o09+ji3FKsYAQAAOWERsi5FYxGTRByKgIyQk2K5bSPBE3yT72bcKCeOP+/9POZX0ci6ErNE/NsTLMTqkAc59Wbx0NRexPzIv3GSbRTVsXrrNPkA7xSQE+6TEz9O4IXc8itd9L3y9ufw7sqVSM31FRx278tHTrgfuZLGF/BWtsatiNJkeYOIYeI4nvIkTTktpse7hVq/crxnRbTd6rH7gxRSXvWdqGxPBAAA27hWxEM1xF8jfExyH+b9lRPqESKWeoLbLcKduErZsdwTXObfUYQsmhZLDw1ulhPHkF1QXhUxzhNs+WnkvP5QmRudRNR3/FmSb85ksUGv2lpM7qZb3LKtXPzsPPGAOFys3GihV7d36n5m5IR75cTPjln5ozjuTyqL5m2wppWtMl4vYCcLW8r2ppEkIf0svVtJTSHzFznhfIIrKh7S77d+UePBp2yzQQBvE/fdqcFCnan/Fm/uL4vb8ZYFS31p94rxTqhsS1xkcY2kJWKsU8V2nkRdEMrfBwAAEGUuECF7gMsCh2+IeKdy0p1QGR+LeMsTbFv5qIh7RFwcB+OiihhbQzzhos8ju2r8QcQDIl4R8f5x51ie82dE3C7ibNefOa9aT38r7FWf0x/q5J5kX2CwvrdXtkQMLp09PqZVvpX7XJ8Y+tMe14t+2bHM3bZJ7bDz9WJlNYWsFh83EynRxtXImPjVVxydy7I4rF99TURTvSaElCl+Nbny2L8QE4tuQTmnfij+3atCpD2qSw4pBuIFfSJb03lWBvJ1b8e9R7xhb6n+WZyDF0QO+oP3W3WIiDTxz5N/fq9VpgTb0ooJsX5ORO76A010CSFr9iQNP5sBrYGWk87Qx0quItG/r0SLUrm9UJcM+vfb3F98v80IjrfaVfx3LfW/J1dr0W0DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgChq1/tjzYptenoZtBos/0z0vtp7mefHTrk493M+zS7o/OWz+1niO5lPXb0nfrJ1F8v5E+7lbe8R7XrSevbl4eLF2CtkAAAAAAADu48U2uSK0X8Rypx5ux+xtvjrNvtA8Hw2K27iglXK0Z175yyTvT7wzdkVmPOeEjGdG5K0jEwAAAAAAwJ00bD2pCjmxzamH22v+rgbnJaZq8T4RTcjYOIzkDZJRpJ381Ii8TfGeEy8oi/LJBgAAAAAAcCcvthlWhZw45NTDVdZ8fccfOqT/EO8T0dfTl84jeYMMWlbx4FUdxhyO95x4JW3JbLIBAAAAAADcScM23aqQE5rnsSYnO/Fw0zd8c+lfemXs83woJmRxHHf2mr5v+PKD9Ulgj6dFxoaRtT6K73yQ8c7YlePIBgAAAAAAcKucSKxSTrzkv9iJh5ukabWfGJq72fPhQC2e44SPkjVf5qbe8Z6+WVnaiQ1SFq2J93yQ8cmUdYO5oQEAAAAAgDtp1PrdKuVEw9bXO/WQG6QuWsJkdKD26qilC+M9fXvOL3vm8qTA9/GeC3LlSNLcrR25oQEAAAAAgDtp2Pr5quVE0t+desivpy/LQE4M1C5vO+q7znO3PR/P6dt4wipyQcR5/hSt18LdDbihAQAAAACAO2mUdGfVcqLN60495A8nFaZ6mgzQiAFa4/Erp8dr6vZfvPvmO7pP3UseDNBu6Dz+m/TCw3/khgYAAAAAAO5E1paoSk682CbJqYecNHtLl1ryjTGTUu1PXSZ+2T2n9K/xmLrNp65Lr/UhOSDjX0NytqQXaidxQwMAAAAAALdSS4iIb6tYOTHCqQfcZ2H5Mxe1SmVSWhlNJxfG3eqJAbl7brurV8Yuzn8wGqn5C7mVAQAAAACAu3mxzcYqCmJmOfVwx639+uK/9s6o8DTprxH9tcs/DXzbKWvrW/GSrpqm1fp4cuEczv1P8d74FbQRBQAAAAAAt8uJ1rOq2NaxxcmH/OyIvHWeD8TEjNDj1bTFSzKKtJPjIV275pa+fnnrwDec95/CP31Df25kAAAAAADgcjnRZkgVcuKwJymptlMP+Y30pTOYlAbj7JbDjvgyNoyQKwriQk5kldzw5NAc5FRlXOAbqfXI2/UCNzIAAAAAAHC7nGhdZVHMBq2ucuohe6dvTPZ80E+L9zijxRc/NJ+6NjVexMQxus/d8acnhmavIwf6aff3nb47vfDgOdzIAAAAAADA3TRs82zV7USTnnLqIfdYuPPVc73D43pSenqzL44mTF+fnq5pJ8Rj2nbJ23Hz44OzN8S7nGiYuqiAmxgAAAAAALifl1pdW0070dZOPWRZFPPuXqIo5vtighaHccrHybJLx7R4bx/Zce62B//Wb+bWeM0DGY3HrRrPTQwAAAAALOQKEVo18bGDfibEHM89d4IQEd9UISdGOdqpqPlL4nEyevJHg7RmU9ZOiZcCmDXRM7f0oQf6ztgUj7lQ58OBWttZWzuQBQAAAACAnIDY4MU2y6qQE2ucfMgfTipUPO/31eIpTvl4kNZ8ytq4XzHxSzrOKn7kwf4zS+ItH276fPyXwwu+upEMAAAAAADkBMQGjT5NrUJOfO95Lsmxk+DOOds+OqP54LiZiJ700UCt8fgVmayYqEZQzNn62D29pseVoGiQMn9lvBVDBQAAAADkBMS0nGjjq7LuRKPWjn0rO2n915fc1WNqhaexmKjFeJwgWka+N3b5/EnrtTNI1uppO7O44R3dJu+Kh5yQ0Xj8yjGcdQAAAABATriKy0QkVRM3k36Nkv5VTVHMN5182C+pi+Z7GvfRYjlO0IsersxO36ydRaLWTKec7Y1u/XxiWaznxalii89nWVubc8YBAAAAADnhKu78jbF4jfRrmHSeEBFHf91O9NOhTj5sb8b6gbE8Aa39QV/t3THL8kbmf3muVWOWXnjwHKedR7k1wcrj6jSn5LU/fT5+Zyznxn29p+1ML/zqIm5eAAAAAICcQE7EFi+2Kfr1to42a518yH0WlT18RRv1cCxOPmuJmgJvjF5SMHDlrgusGq82mZs6PDMsd3PrzE1dhxdrpzjhHA5YtOe2xmOXZ76etnhN/6Vl11n2WWdvef/6jmP3xqqceCWwOJubFgAAAAAgJ5ATsSgnUqrY1nFUFMU8x6mHnK5pJzw7Inet573eWixFrca9tdcDi5cNnb/nEqvG6tOZRW2v+lQ9JH/+qR8NPNoodeHirrmlrydpWu1onLvA6q8u9GVsGHxHt0llxz73i8qiNf3y91xjnYwpanpd+/T9sZcffTT/jKJ+3LQAAAAAADmBnIg9GrZuXGXdiYZJjzr5sJtOWpMWa2LiVTW/QFm59zKrxkhIgI5XJQW++eXvOr/l0B+eT8lb1TJjbYIUPZE4X+3ziq56b9zy9Pv7ZOw6QXad+MUxvZiSt77X/NJrrfp9HbKKP762XVpFLOXIjZ+NOThkxf5buGkBAAAAAHICORF7vND6lmqKYiY5+bB7zN/5/CW+kUdiZeLZMHXB6i/yD1xp1fi0nbMl8Zp2gS9/63ee3Wzw0aeG5BQ2nVw4rP/iijusPkfp27VTO8zZ8sHraUv+v70zAY+iSP9/hRsBBcX1QlBRvHBdV5RF8aer6C7uekUjzAwBBAly36Ak02mOcCVAIFyBcN8BAyEhkHAk4QqQcJOQkEA4wy233PS/ambwz+J0z9Uz6er5fp7nfdyFnjreri76/XbVWykNo5LOsC//SuJMy7mbd0/IvvCCWvWbU/eH3Vs1ogdrNXdrFiYsAAAAAAAAcQLihD4JCSlPhYirfxYnzKu03Oz0dKlc0PT1uXoIOr+fsSE3Olu9VQMDVhf+8vLABRdcWbVRPyL+Sqt5W7f0WrZvelRmiWnWLqmKO3XP3Hmpnri6eECHRTsSv47LKKrRe8pd11aPbN41ZctJ1UQaM93WQvOTXOF9jLDVJmGpRWMxYQEAAAAAAIgTECf0i8GcbmflxDUS1KOylpvde1nebPJTtMSzfTtt/T66CuR1tXwiphX1fXXQwvOetKlmnzipV2Jugat1D8842ufvwxIuV+g8zu26AzpES63nb9k5bntJHdUEitTCoc+Gzvqd53HSIHLp+em7L72CyQoAAAAAAECcgDihX0zCL3a3dpiEplpu9riNJf/32qCFV3gNOGlyytzYnLOqBZzmVUVhdc1zLqnRtsBp6/a7Wn/EmsNiWbZ1w8O6mUDRcl7Wnkk7Lr6kmm9WFgyoEzab27HSbkF2OiYqAAAAAAAAcQLihL5pLjaQyTsxSutNbz2f7sPnMNj8akrGvlGZR99Qyw8D0orMLw9YcEmt9pWmOHFPoGg1b8ueuG0XX1TLR+KqgyOeDZ15lbex8nCPSVJEZnE/TFQAAAAAAADiBMQJfSOKZagQcdqOOLFX801POzCsctfxNIgbzY19OWVt/sj1p95UL+guCnuFJb9UsY2B0zLdECeKqTgxRrU2BHQYLQXPyVJ1i0d4WlFMrf4zrvM0Xr6YnH4wPleqiokKAMA5T1FrImOPKPyuru0FdiG1PdTOULtB7Tq109S2UIuj1oxaNR/36UlqgdTCqM2hlk3tILWz1G7a7CK1YmobbO3sSO1l+NtjAqg1sLV1nq1dJdQuU7tN7Xdqp2z3hP19F2qverE97PSzSjIWoPA7di+CqE2gxlZJHqF2gdotapeosfexJEwfukHLc4YexQmtzRMQJ5zGKCywu3qieeizWm52/NYrT342LvUEaU8DOQ7ss/Eri4dnHPqnWv0fuKqo8xsRi86q3c7AqW6KEyyBo4rtKENXULRbmJMzPff0k2r5LDQlf2rN3pNv8TJmeibmJmCCAgDogNYKL2WN7VzfxBasSS4YC+ZY8uC/eKkPFal9RW0StXwX2/agsd/3pPYw/O1ycBdB7bCbfmeCS4jtXpamv1m+sRk24cdRm29z+LzvkOlLpoflvuTAVwc8LP9hmzBkr+whOp8z9CROaGGeqOrh/XbGDun3lcEktJPJO9FK603vvSx3acBPPAgTqQeGpR9orFa/B68t7vvawAXnvdFWrYgTzNi9bTV3y47YnJLaavkubOX+CU/0mXpD62PmzSGLL43fdOo9xDQAAD8SJ6oT6xdFT17Y2JfHH1Rs+/u2QPKCF14u2WqEH+Fvp170I4l1BYcafmdfq/9TCv6uQG2oQgBsz+5y+LxHyfSFiTEPeVDuT0746zkPyv9CodxPdD5n6EGc0NI8AXHCM3FCrCWTd2KZ1ps+ZkNJ4zeHLLpM2o+StGpUmDgYmX64iVp9FtL2d3tt0PzfvNXewKkZbooT0V5pDxMoQuJzts3cefYZNfwnSVJA/+UF0x/tFXtLy+Pmp8XbMgkAAPiPOMFWa+5V8cVtCrEut/eUpT54yWSr5CrD33ZpRKzbHbzh9zHUyvnI30wIWutmO3mjqUJf/uVBuYuc8FVbD8qPlinzGrFu0dHznMG7OKG1eQLihMcYhVw74sTvJEjU/H739vE0iNNogNkkZsWRiDWHVDv5REzd3/X1QQvOebPNWhMn/hAoFuZsm7r9zNNqCRShKwpm1Og5SZMCxdP9pt0elnm4PeIZAICfiBOPUivwwssby51QhgNxgtk6FwMgvfr7wX7c9LLf2f2t4GV/s/ua5UEbeaOKwn2LdLNMlj/grBO+mudBu/fIlLnGD+YMnsUJLc4TECdUECfC7a6eMAgGrTc9YvXBTk/0jbtNQmhgpyFrFJlYMnh1cTPV+rnqUJu3hyWc8na73RYn2AkTXmwXK7/jr9uz4jZdfFQNf6anS+X6Lc9fUrXr+LtaGzstZm/azdqHeAYA4AfixAfUViv8Pds3HE+sS8UHEevXzWRqvzn5Ajfay+IEW3ZfSC3Ddu0MarG2QD2N2nEXXjbnwd9/EGLzrTN1nrD1Kd7me+bHVcS6BN6Z3y/wsjgx14k2sK/z7MsvS9j34LL0AA6f+fUy/dzuZnlvOXkvT7pZ/hMKZfb3gzmDV3FCq/MExAmPMZhfl9nasVjrTRclqUyruZuzSchISSvWeOSyYyPWHf1WrT4OWXOgw1tDFp32RdvdFydGe71tZX4aJbVbkL114q6TqiTgipeksv2S9y2q1nX8Ha2MnRo9Jt6lopaAWAYA4CfixDyZP/+V2rsKZbItBF9Sy3HiJe4bFcWJO7bAq5ct0Hfm1Aq26o9l3d/tRFub+7m/GZ/b/OzoxbwHsSZJlIMF9e9Qm0wc53no6yV/j1QIollC0c/In5McMl+/RqwJENk7WRkOn3lRITB/zI3yersQtNV3JxJSKK+hH8wZPIoTWp4nWJm1HjClnCY97FzvyJ4kusck5NkRJ66S4N5VtN50unqi1+O9J2siwHx3eMKJwauLVFsxYREmInwjTGhdnLhfoJiXc6mmegJF3q9Vu467q4XxY5ixITelUKpIAADAP8QJewkWv3ahbBa4hRLlr2fsSMwaHooT7EtnZxVeCNsQ5UR5x4jnp0nw7O/atjbJlc2O/+tAXM9vwY5j3KVQ7nWbIKC2vx8MnlhSyKHE+aNYy3D6zH+g4JPv3ChvhQtjupsb5cfJlHXBjbHG45zBmzjB4zyBo0RdxhgeYX9rh/i11psemyOVbzE7a2dpB5ZvDok/MTT9qGpZdMWVRS0bjlh6xpd90Lo4waw8zW/RcfH2bHrfH1HDz9OLpUp9k/KWV+w0tlTHT+XOMdKAtAPDMBkBAPxUnGDHU77jZh0/EsdJzdxhILF+mVQzSKxHrF/O5dra3o/9nUqUs+e/7oFfmCCwSqH85V7291ViPbbVHyhP7YqMHyapVNZ+Yv/LeZIb7S2WaWuin8wZvIkTPM4TECdcxiD+VSbvRAIPzRfTDgg1uk+8S9rRQK8UrP7ABecGri7qqlZ/IlYd/P69yMTjvu5HYJyb4gQ7AtOH7SxPc1B0Tdi1LjFfqqaGv5NypId6JOxZW4EdiVpKY+jbqZkFavUHAAA4FCc83Q4wiih/8dLSMti/Efkkblv91N9Ky57ZvvCXVPA7OzXjgEI9Dbzk79vUPvKz515utUOhi+XIrcIYbntW7IluruTtekHhvnX1kzmDJ3GC13kC4oRbGIVCOwLFDSpc1NR609ny/FazN2WTdlGSr+2NQfPPiquLQtTqy8A1xa3/MWLJqdLoi/vixCift7UcXa1BBYqsubsv1FBlDB2VKvdO2pteqeMYn/elerfxdyLWHjRjEgIA+Kk4ocbx5Wwb6jGFOgZpzC9Kwf1zfujvHQplqbnioKFCPXFe8nekHz73SnkiartQTrhMGSxfx1CZv2vkQvntiLr5K3icM3gSJ3idJyBOuCdOmMPsrp4wCb14aP6w9OL2T/WJu+HLoLL+gAXnBq85oNpZvcMzj5oaRS4pKQ1hgjdx4p5A0Sl++4Y5hdLDavifraDovnR3Ots64st+0BM6trHtSZiEAAB+KE6wr4EvqVSXiSgnR9PSyQdPEfncDW39zN/vK5TjjRW8KUQ+B0d5lf3NBJzKfvjc/13BJz+4UM46Yn9lTmVbMGqv/DAXyl9A1D35g8c5gxdxgud5AuKEe//EiLWoGHHbjkCxl4fms5M72i3YutFXAWXdsFmXxdRCUTVxZW3xVx+OTjpaWsIEj+IEs4p0K0aPJbvXMGFBjfuwZMf56p1/3bHJV32q2XPirSFrD/XEBAQA8FNxYomKdbEEaCeIepn3vY3c6RexfubvqQplvOkFv/9bob6PVPb3ID997lnOhXMyPpnrZBlViP2tDOm2v69M/nz06v1/7wgmnskdJTlPo371xpzBizjB8zwBccJtjEKa3dUTzc0NeWh+1Loj/6o/YN4F8mOk5E2rJ8y6OHBVUZha7R66ptjwPssx4eV2O7LAuHTXxYlVVJxgSR1Lsd3lqJDQOWGnajko4g9Ij/RYuntjeSZQeLntP8VnZ0qSFIDJBwDgp+LE9yrXF61QV3+N+SZWpp2b/Mjf7N+/UzK/z/OS39nHjBsydYaq6G/2lfsFP372F8v45YSHweH992gtkV9Z4Yi/Kty7thr1qTfmDB7ECd7nCYgTbmMyG2W2dkzipQu9lu1eUiYkymvB5IthM6+ErypSTQkftPZQ4HuRS4+VtjDBszjBrALd4tEzcU9GfK5UVY37Mnf9hRod4rdllW3nvb69FRF/btSGkg8w8QAA/FScuEbUX/L+nkJ9KzTmm8Ey7SzxI3+/rfD7CC/6fpNMnYtV9Hehnz/7HRR848yJCpEyv/3HfdeEylzzqRPl9yDey+HA05zBgzjB+zwBccJtgntXoWLERTsCxQUSJFbloQuxOb/V/jQm5Yg3gsk6v0y/IqYVDdejMMG7OHFPoOi1dE+6WgLFtO2XH+9Mjy31hkDByuy9bO9iTDoAAD8WJ7K9UF8lYj0dwV59x73cV/ZvzzPE+rX8ZWqvOLARRP50hzJ+4m+lALaZF+9VvEydO1T09wI/f/brKfimmxO/307s7/cve981cokLnXlXT5b57QEf+kgLcwYP4gTv8wTECY9gqyTsrp4wd+elC/2X7xtVrctYGgSOUM2e6jP5evjK/RPVamNk+uEmn41NKVazjZ6ae+LEASpORGmmD5U7RUt9luWuSCmUKqoldrWZs3lnQDt12/mvmJWHY3NKamPCAQD4sTgR56U68xTqrK5C+Wz1AVtyPpBaErV8Yl2VIKloD/uJv2MVfvuGF8dljEydZ1T0d188/uQoce/EmMeI/eSPiQ9cx4SKC3auy3FQPjtu9JJM2yZ7wQ9anjN4ECd4nycgTngEyy9hT5wwCgVEFMvw0IX0dKlcm3lZm0lbGgiqYLX6xl0XVx0Yr5owkXH4i4+jkw6r1T61LHCym+IES+6ooX5UbD9a6r5kdxo7HlSN+zV1w5mn287dsj2ArXpQoX1P9Jp0S0zbj5cWAIC/ixM9vFRnPPFsObkcHxLr1/CrKgcV9uwvfuLvVT7wpSt2U0V/t8LjT2YQ+RMPyir87juZ33W1c22inevuUFM6al5pO5KaX+J5mDN4ECd4nycgTniMUVhvV6BoIX7JSxdGrDv+foMhi856Gkg+2Sv2eviKQvWEibXH/vPJ6ORDWhMm9CROWAQKusWDJrVMnV4sVVLjvsVtP1/nx/lbdgX86HnbaBLMdCTBBABAnCAtvVTnRIU6P3GjPBZgp/v45fcZP/F3nsaCDslB0OyKv7/G40+CFfzzDzfGlD2xq6vMtYEK5ZuJfBLTx1XoN09zBg/iBO/zBMQJjzGJ39lfPWFew1M3+iTuncm+orsbRNboOv522PKCeeyYUjXaMyrjyAefT0gt0qIwoTdxglmVjmPu9kvKXRabI5VX4/5NzD5Zv/m0dXmetOm9EUtORq0//DYmGQAAxAmvBW/DFer8ysWy2hH7xxV622r5ib9PajDoqKSSv/+Jx588reAfpVPvCojzSR9flylf6cNihsxvdqnQZ97mDB7ECd7nCYgTHhMUVJaKEQftr54wv8lLN1jegeBZG7NJ2+GSq/Zot3G3wlL2zVTrC/fwdYc/+Tg6udidtvjK3BcnIjXbp8odR0t9kvasUisHxfiss68Gz9qQ605banYff0tMLRQxwQAAIE5Y7GMv1RlK1Fmy3bcUX3xr+Ym/L+pYnGiMx9/CPhn/pMtcX0vm+jkKdZywc32+zLVKR0SO9rCvPM4ZPIgTvM8TECdUwWD+2a44YQifylM3RmQc/KBBRPxJ0oYGiE5aja7jaBC5f75aKyYiNx76uEl00kFX2lAa5rY4wXIxaLhfD3WIvvvz8rwUtQSKyVvPvR4Ul7HXlTYEUHGiU3xOGrZzAAAgTnAhTnzh5AsqC4DYe1EXav+h9pYtSGCJICsQ5aW/vSFO+GQvPsSJ0mW8jH/Y6gJ7ucFayVz/g0Idc4nzWx0+U7hn//Wgn7zOGTyIE7zPExAn1HmdEKtTMeKyHYHiNmkm1uOpK6Er8sdU6TD6rjNBZBUayNLTPlTbCjBq3Yl3v5q0ukDrwoSexQlm1TqNudM/KXdxvCSVVeO+jtlQ0viLiXSLjpP1fzw6uXhC9pmXMbEAACBOaH5bBzveT2kZMUuGFk2sRyV6Ql+CbR3nZH533uaD0jC1/A1xwkqggo8+tXP9LJlrn1Woow1xPimp3Hi9Ra2am33kec7gQZzgfZ6AOKEaRmGC/dUTwmSeusFO7+iyePvqgLbDaKAob9U6RasawI7aUPLBf8enFirVqSULnLzGTXFiBBf9YwJVn2V7l6olPI3LOtnwm1gmPCnX+8IvUy8MWX2oLSYUAADECS4SYvZT+D1bPv6+Su0c6mNxQov+PqLw26qcj2+IE1bYqRl3ZHw03M71x+1c5+j9tI5M+bPsXJsjc+0mD/rI85zBgzjB+zwBcUI1TGItKkZctyNQ3CRG8QWeujJ1+5mnPx+/co9cAFm14+i75hX56q2YYMLEBH6ECX8QJ+4JFH2X7VnCBCs17nNU+uHGX0xIOyhXX+UOlnE1BZMJAADiBDdHie6X+e0dFYMMxiQfixNa9PcWhd/WhzihG+QEgZwHrntF5rqJTtRRaOd3x10QSgZ50D+e5wwexAne5wmIE+oKFMIk+yd3hHMXcEVmHv7+pdAZZ8gPNHC8zyqGjJR+Ts5dEX9UqqxGPUMzD70VGLvmwIP1aN1om90TJ9hJFBz1s3rnsXf7JO5JUCunSEzWiaZNopOL7NXVdu7mTLXGFQAA6EyciPNSnUrHzlV38NuXFH47U+V2LvGxOKFFfysJG99CnNANwxWC9xr3XdfJg7EgF7i/ct81SltMPnKzb7zPGTyIE7zPExAnVKWlWJuKETfsrp4IDnuet+70X54X/UjnMbfID0MlZhVCIqXeibszZu2SqqgSqG46+sb3cel598rnyQJjV7spTgznrq81uoy9FbZ831y1BIqozKOBH0YtOXp/HZ+OTipk4wGTCAAA4oRdy/ZCfSxJ2W2Z+kqc+H0Lhfb+S+W2HvOxOKFFfwsK7Z0EcUI3KCWhDLzvugQZAeNRJ+oIkim/033XyCXn/J2au0nTeZ8zeBAneJ8nIE6ojkGYoZfVE+y0hD6JuxMrtouiKyaipD6JuRlJOdJDapQ9Kr2kwbeT1xbyKEz4mzjBjIpUt80p+1TLMRKZceibf45KPMzKfnvQgjPDMw8FYvIAAECckH0pu0Zcy3juDI0U6lvpxO9Fhd8/pmI76xDfHyWqRX//S+H3hyFO6Aal4zsn2K5hH4t+I463fshRk9pdO79PuO+afJk2pHnQN97nDB7ECd7niYYQJ9SG5ZcwCrfsCBR3iNH8Nm/dWbLjfPWfFmZv7bl0Vyb732qUGbXu8GvNpmbk8ypM+KM4weyxrjG3f07Om6fWEZ+jMkuMX05MOzx4dVEEJg4AAFAM3ph9p3J9oxXq6u/E78cS+Wz7ah4F3aEUxAkt+ruqTTSRK6MRxAndkCHjpwLb379NnE+aKccOO7//zSZ8PKNwr/p50C/e5wwexAne54kGCm0PwdTgtkAhzLG/ekJI4bE7k7eee33mlkuqKJrjtpypZ5q+bi9pPUTi2dwWJ1jyR477XbNrzC0hJX+aWgLF1JzTjdUqCwAAdC5OJKhYFwtAShTqauhEGRMVAg01ySslcUJr/mYsUygjhePxDXHifzE7GO9yx2R+5kIdUTJlvEOsp9XI1d/Ag37xPmfwIE7wPk/UV2h7N0wN7tIy9BkqRFy1K1CYhKb+6paxW4692Xxqxj7ehQl/FieYVe805vYvy3NVy0EBAADAqWCZLfWuq1JdBoV6DhHnvmJGKJTxuErt/NyBT7wpTmjN34yvHbT5HxAndMF7RHlpe6qdP79OzZWk4k1lyv+ZWJNT2vu78zahzV14nzN4ESd4nieUVu1gpbVHGMMjZMSJPPKRWM7f3DF28+HXgiavzdWDMOHv4gQztsUjLDlvPlY9AACAz8QJZktVqIftaT+iUIezxwR2VyijmQrtfJhY90iXljihNX8zWN6ngwplHSDOJUSEOKFtWJxwWcZX7DSGq3b+PN3FOlhy+5t2yllF5JNJLvGwX7zPGbyIEzzPE+WJfOLghZgaPJqCxepUjDhrf3uHubU/uSImp+SV7+MydCNMQJywbfGgp3iIKwtmQaAAAACfiRPMvvSwnkiivFrgSSfL+bdCOWs9bCP7d2Wuk/6o5Sf+vofBQXtZwsIKXhyn7KSGFyFOeJ3lMr6SC9zC3KhjvQvlM+vsYZ94nzN4ESd4nicYhUT+VCPEHB5hMHeUyT1xlhjEmv7ggujs4y8Hz8jcF9A6QiKt9GNuixMsuaSO/FCzS8zN0OX5UyBQAACAz8SJi9T+7qU6xrpQFltCrpR4rZWbbWRf/aY56QtfiBNa8ff9ZDgodyO1p1QenyzRXi9bgCBCnPA6PV14Btxdqh/uYh2vetgn3ucMnsQJXucJxnzi3HG6wGWCgspSIWKvzNGisXrvfty2iy+2mrVht96ECYgTfxYowlIKJuOBBwAAn4gTzC5Q+68LZTMBme0lv6NQ5lni+lLfZIXy2JJxo4vlsSMAU1wMmGr5kb/v8Syxf5Tkg18ZWbDnyVZi1g+W3T+a2rn7yoY44X3edGF8XrQF6K7S2IU6SlTqF89zBm/iBI/zBKONQntZfwwettfPMYhfy6yeuE2aiw302u0ZORfqtp69UZfCBMSJP9vjXekKipSCWDzwAADgFXFC7kvSIqKcPb+MLaje6sQLuztfpBo5Ua6jNjJYhvahxP5X1d+J8lfRWn7k7/tpQqzbQhzVU0ytD7W3iONkhizIYEux2f5/dvSp3P59iBPeh92LM04G28vcrIPt77/iZB2zVeoXz3MGb+IEj/MEsYm2Vx20lz0bK6iNs40DUca6Yyqxh1FYKiNQ7NZjcsxxG0vqBM9cvzOg9WAauOrTAmNXuSlODNGtT57qPu6GeUX+FDzwAACgerD8AbU1Dl4sF1AbQW2g7YWRBSznnAw8RnvQ7iVO1sFeYFlCM/Z1bTCxHivIjus84OB3Haj19rE4oWV/38+3TgYe95+2sNHW1unU2KpHlmCR7T/PJtYVIs6UA3HCNyx08n509aAOZ1cdtFaxX7zOGTyKE7zNE/cYSVxbDaN0GhL4E81Dn6VCxGUZgUJXZ7bGbiip3WrG+h0BLGBtqV8LnOSGOJFKxQmWTFLHfnm6x4RrA1bun4CHHgAAVA/e2Nek/Sq9sD2Y/d+T4wFZuwq80C7JFvyTUhAntOzvB/nEFkxIPjSIE74hxMn78boHdfRyso5nVewXr3MGr+IET/PEPapR2wdxwpsYhFAZceI83d7xtB66GJ978dGOC7Zml2FbOVpCnPBHcYJZnd6Tr4iphUPx0AMAgOrBGwsQclV8eZxK3Nur/iBsie8RFdt194EX29IQJ7Ts7wepTS3Th0GHGeKET6jrxL044WEdf3Oijv1e6BuPcwbP4gQv88T9sPl3B8QJb8G2bxiEnTJHi7Klg9yfdsBObOi3bO/oF/pOvkJaDpL0bO6LExG69ktAK4tvCoavO/AJHnoAAPBK8Fad2jwPX9guUWurcvsfI9Y9wJ6+0LKA5YsHyi4tcULL/n4Q9h5pItYtJ94INK4T66qP/xD3ktFBnHCPQw7uyxwVxo2j3BYTvdQ33uYM3sUJHuaJBylv88EhAnHCCxjExlSMuGtXoDAJnfTSzQEr9vd5d/CC0xAn/EucqNhmmNRuTta20VknnsPDDgAAXg/eWKKzDBdf1C5Ti6H2hBcD5O+IdV+yOy+RLCFbFTvldre99NqzZ/zY3/ZgKzNYss3lNv94EmgcpTbDFsxU9/H4BlamOrhHP6hQR7yDOoK8LKrxMmcwatqeCXv2mYbK5HWeUBonDYn1FCSWh2QbtePEmjjzDsQJTzCGT5fZ3nGJBIc9r5duDkzb37ppzPIjECf8Q5yo3mHU3Z4JOzLjNl18FA85AAD4NHh7iVoPW4DBtiCwpIzsSD6WAO2M7aWfBTjs+LWHfdift22BQxK1PGqnbO1iL8LsGM29xJrczmx76SwDf6sO27fNvmAOINYkhNtt9+GK7YX+d9v/L7K1myX5DCfWLPwv45EEPkbrc4ZewTzh1wT3rkKFiEIZgWITCQoqq5eujtp0+sXOC3Oyqvw4XCLBA3VlgRPT3BMnWKJQnfniLXH22bCkvBFsWw8ecAAA8HmwDOBvAAAAwE2MYhPZ7R1GoYeeuhqfK1Xtn7z316e6xlyDOKE/ceLzscuLhq490AYPNQAAIFiGvwEAAAAuBQphlIw4ccuSm0JnjFx/pOcnUUsKIE7oQ5yoFhJ5s2fCztRZ2y6/iocZAAAQLMPfAAAAAK807VKRnt6xR0agOEqCfnlcb12O23bxxS4Ls1dVDRlxB+IEv9Zg4NwScWX+4HhJKosHGQAAECzD3wAAAADvGMyNqBBxW+Z4UZYMRnd7+KcXS5XMKfti/ybMOk1aDJB4NbfFCZZAktM+V2w9RAqevi5nZOaRL/HwAgAAgmX4GwAAANATRqGfzOoJiYoXgl67PS7rZMPOC7MzqrUbfgfihPbtrfBZp0KTc2Pij0qV8dACAACCZfgbAAAA0BuiWIYKEWny+SfMH+q16yzQFVYUjG0UseA4xAltWpW2w+62nrFuS2TG4S/wsAIAAIJl+BsAAADQM8afa1AholhGoDhHWogv6rn7M3deqtdr8fZltXtMuEz7KvFggRNT3RQnBnLRvzItB0j/HZtcODB1f1h6ulQODykAACBYhr8BAAAAvxAoxHepEHHDrkBhEvJIUL9H9Nx9SZIChq4p/qnZlDXbK/0whPZZ1LS5LU6wpJIa71u9fpPP9/h1W8KMnAt18WACAACCZfgbAAAA8DdMQi/Z/BNGYallC4jOic2Ryocm7e375bjl+8qzky0gTvjM6tCVKz0TdqSO31yClzIAAECwDH8DAAAAfos1/8QyBYHC7C+umLfn1BN9l+yK+3B4/JEywTT/gSlcU+aeOFFoEye01ZfHOkbdahGXkTU0/eCPbAULHkQAAECwDH8DAAAA/k6bvtWIQdgjI07cIQbxa39yR3zh5cfDkveN/WLs8kMVWg+GOKGiPds95nqH+Vkbh6QWtYIoAQAACJbhb/gbAAAA+F+ai09TgeKYjEBxjean+D9/c8nc7efrhCXnzv56/IriyiwnhTG8VC1wgpviRIuBpd72ur0mXuswf3PWsNUHusVLUlk8cAAAgGAZ/oa/AQAAADmBogEVIn6XESgukubmt/zRLfG5Fx8dkFowKjgufW/NDiPvQJxwzgJoTol3xDnnu8dvWxW9/lgQVkoAAACCZfgb/gYAAACcwygEK+SfKCHBYc/7q2tSCqWK0euOtuu4YOuydwfMORXAtirI+0p1C5yw0k1xYoBP2/lIu+G3gyam5YSvyB8/Z/eVN/BQAQAAAAAAAABwQ6AIH6kQfOaSlr885u8uitlU8krX+OzYb8av3FOr29jb/i5OlG85UGo0aN65FnHpacLyvG5MyMGDBAAAAAAAAADAfdgJHiZhnkIwmkWCe1eBo6irJKlM5Nrir7ot2h7/7fiVhU93HnOb5u6QvGFuixOmAV5pT3maaLNB+KyLP0zPzOqftCdqzq5ztTAiAAAAAAAAAACoR1BQWWI0/6ogUGwiJvFhOOr/M71YqjRq3ZHmvRJ2zDNOWbP7lX6Tr5VhWz8MZlXMfXFCVK0N1doOkT4etuhkuzkb14orC0ZO237uNdx5AAAAAAAAAABeFCh6VKZfyNdBoHAdlvxxbu7FdyNWHxjWaf7mxK9iUnKf6RJ9kzdxoiLdrvGWecaZ1tMyN/ZbuntazIZjPyUUXf4L7jAAAAAAAAAAAB8KFP0eoQLFTggUnpGUIz00bn3JN6HJe8e3m70xOWhS2t4G4qyLj7YfoRlxolwLUXqux7g7n0UlHDPFpW/qtmjb/Ii0/ebpOb8hqSUAAAAAAAAAgFKmufgcFSGOKggUGchB4Trx+deej8w48kNocm5M+zmbEkxxazZ/PS6lqNHAuedqdx0rVaKrFkjzsD/MbXGCHe1pKyOAihCPthsmvdo39sZnkQnHv5uQurfVtIy13RZlzx64In/QlC0nP07Ml6rh7gAAAAAAAAAA0B4txBcdCBSZllUWwCPYdpDE/KtPT805888hq/f3FZL3RXVdmDOl3ewNC83Jecmulhe59pDxhxmZyzrMyZrdJ2HnuAEp+cOi0g+3Ssi7UX/WLgmCkhq06VuNGMUXYDAYDAaDwWAwGEzTFiRW1Y9AYRCOyQoUbPtHi/5PIVoFfoVBmOGLo2RhMBgMBoPBYDAYzCMzmY36CcSMYS8pChRGoZg0E+shYgV+gUnohUkOBoPBYDAYDAaDQZwoLYHCKBxX6PRpumTkXUSuQLeIYhk6zkdhgoPBYDAYDAaDwWAQJ0oTtjrCKBxS6PgV+lW5KaJYoDvYEbtGYTEmNxgMBoPBYDAYDAZxQgu0DH2GbvHYo9D5W8Ro7oxoFugnv4RY03J8LiY2GAwGg8FgMBgMBnFCS1s8fq5BO7lB2QHh48lHYjlEtoBrWoS9TMdzocJYv23b6tEPBoPBYDAYDAaDwTRnJvE1nS9zFyvQji5woNJsIMHiXxDhAj5FOHNrOoavKYzvi3QV0adwFAAAAAAAAACUJmxlhFGYpryCQsgjzcLqwlmAG4KCylLRYQgdv3cVxvYZYjA3grMAAAAAAAAAQCsYzSHWXBOygdxlaiY4CmieIPFJKkyscyi4NRefg7MAAAAAAAAAQGuYhG8sp3UobvMIjyFNu1SEs4AmYUfhGoViB8LEZmxVAgAAAAAAAAAtYz1qNN9BHop9NFvoG3AW0AxsG4dREG3JLZXG7jAkeQUAAAAAAAAALgI9uizeKGQ5CPJYIkEDnAVKHbYKwmRe4WC83sTxuAAAAAAAAADAG63FSlR8mOzEmatz6LXV4TBQKpiET+gYLHGwjeMEaWH+AM4CAAAAAAAAAF5hSTCtyTCVBIojxCB+DGcBnxEiPkTzn4ykY++Ow/wSLUOfgcMAAAAAAAAAgHeMoXUsQZ7jVRSz6JaQqnAY8CoG4VM61g453sYh9LPkogAAAAAAAAAAoBMsX6qFaU4IFHtJc3NDOAyoTnDvKlQkG+twtYRROG7Z7gEAAAAAAAAAQKcYhWBqFxwEh3docDiJGH+uAYcBdcad2ISOqwNOiGNL6RajmnAYAAAAAAAAAOidlmJtGgSudSJQPEVPSGhJfxEApwG3YFuKjMJiJ8baVXpix09wGAAAAAAAAAD4E6JYhgaEPahdcyJwzCAm8TU4DThNUI/KxGAWLKKD4/G1nrQQX4TTAAAAAAAAAMBfYaKDUdjmRAB5i9o4EvTL43AaUB5Twjd0rBx0Ykz9bhHImFAGAAAAAAAAAMDPCQkpT7dv9HfyK/cFuvy+L2ktVoLjwP/QXHzPsgrC8Rhitok0E+vBaQAAAAAAAAAAHgwun6MiRZKTwWUxvbY5QT4K0CzsVToWljg5bi5aVkvgiFAAAAAAAAAAAIoYxK9pAHnYyWBzm+V6iBT+h0msRYzhU2xbfhyNk7vEIMwgQeKTcBwAAAAAAAAAAOcI7l2FBpTDqF13UqTYTXMNNEP+AD/AegLHBBfGBhWwzI3gOAAAAAAAAAAA7hEc9jwVHeZZvnw7F4juoxZMPhLLwXk6o1lYXXpv46jdcHIsnKarJdpDsAIAAAAAAAAAoA4m8zv063e6k0Eps0NU1OhFgvo9Audxf+/foNs3Zjq5fYPZFWoDSZu+1eA8AAAAAAAAAADqYxC+oIFnrgsixSVq0cQovgDncQRb+WISv6P3LsOFe33Tst0DeSUAAAAAAAAAAHgddtKCwdyCBqIFLgSud6iwkUCTZ36MZf4axtD/CXryRhi9V8dcuLc02aV5EY4GBQAAAAAAAADge5hIwfJLuCZS2I4hFURLPguggfsoVqD34ysqSvzqQj4JZrct+UiCxfpwIgAAAAAAAACAUg5u/xAp9rsoUrAkm2tpUNzScjoI8C3NzQ1pLokYeg/OunjfbhJD+FRiDHsJTgQAAAAAAAAAoC0s2z2Eb2nwmulisHsviWK85TjSILEqnOklWHJLU/gA6ut89+4RFTNairXhSAAAAAAAAAAA2od9VTeGj7GJDq4GwbepbaDWDckVPYQltjSKTWz34ogb94LZbsvqltZiJTgUAAAAAAAAAAB/WBIs0vwSRqHEzcD4huXECIMQSoPsdy2rM4AyJvFh0kL8kq5CGUt9d9BNv9MtN+ZUWtZ/kcAUAAAAAAAAAIA+YF/wLceQmpfYjpyU3LTfqC2mZbUnLcJepiUH+L1vQ0LKkxbmDyzbNUzCRuqfWx749yjNJzGcnqryCgYtAAAAAAAAAAD9EtTvESpShNi2bkge2hVrOZZtC0Ek6JfHde69AHps5+uWbRbG8Fja51wPxQhmp63+M7+NwQkAAAAAAAAAwP+wnhgR6cH2gz/nqzAIO2mZM2nyx750K8jnpLn4HJe+YatN2OoQlmSUbWsxhS+k/Tuskp+uUzEiifrISELEhzAQAQAAAAAAAAAARgvx71RUiHDzJAlHdoluedhM/zuNmtly9KlBbExahj5DSnNrCEsy2UysR8WHT+mKiB9p/wfZRIjdtnwbavrgqm1LjMGSlwIAAAAAAAAAAAAKBIv1qZjwC/26v8b6lV91seKBVQRCAbW1luDdGD6F1j2CigU/W3JbGMzfW8QDduqFwdzIsv3BIP6V/v8X/sdamN+0/V1jy7UmoallZYLR3Jn+TqBlR1ObRf88mf43y4Mkoa7YSSp2zLasvsAKCQAAAAAAAAAAwE0sx2HSoN8o9KP/XeVhQk292zlq8dacHlQwAQAAAAAAAAAAgBewHE8qBtLVAFG20ymu+60YYRJO0FUZiVSMCKP//ZAEiRUwQAAAAAAAAAAAAF/TtEtF63YLoYd11YCw35IYU39iBDtGNcOSQNQkfkdairVx8wEAAAAAAAAAAK0S1KOyNcEmPXKT5Y8wmVfYTrq4w4EIcZOuCtlD2z3PkvfCcuJI6LO4qQAAAAAAAAAAgC5EC7rtoVlYXZq08mMqWLShySIHWI4dtaxIEPZatkl4L6fFXVtOiCJq2dSW0bpjLEeeWk7QML9vOT0kKKgsbhQAAAAAAAAAAODvsKM2g8Oep4LBO1TI+DcVEoL+MJPQyppw8kETTLZrvrKc1mExlsiTJqZsLVaHUwEAAAAAAAAAAAAAAAAAAAAAAGiC/wdd6kanf3jvqwAAAABJRU5ErkJggg==" } , function(e, t) { e.exports = { formats: { date: { full: { second: "numeric", minute: "numeric", hour: "numeric", day: "numeric", month: "long", year: "numeric" }, short: { second: "numeric", minute: "numeric", hour: "numeric", day: "numeric", month: "numeric", year: "numeric" }, time: { second: "numeric", minute: "numeric", hour: "numeric" } } } } } , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(31) , o = r(147) , s = r(26) , l = r(2) , c = r.n(l) , u = r(408) , d = r(25) , p = r(14) , h = r(7) , m = r(4) , f = r.n(m) , g = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } , _ = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var b = { enableCrypto: !0, enableOrders: !0 } , y = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isModalVisible: !1 }, r.handleModalClose = r.handleModalClose.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), _(t, [{ key: "componentWillReceiveProps", value: function(e) { "open" === e.rpc_connection_status && e.apiServer !== this.props.apiServer && d.a.showWS(e.apiServer) } }, { key: "handleModalClose", value: function() { this.setState({ isModalVisible: !1 }) } }, { key: "triggerModal", value: function(e) { this.setState({ isModalVisible: !0 }) } }, { key: "onChangeWS", value: function(e) { d.a.changeSetting({ setting: "apiServer", value: e }), p.Apis.reset(e, !0, 4e3, b) } }, { key: "onReloadClick", value: function(e) { e && e.preventDefault(), window.electron ? (window.location.hash = "", window.remote.getCurrentWindow().reload()) : window.location.href = "./" } }, { key: "onReset", value: function() { d.a.changeSetting({ setting: "apiServer", value: this.props.defaultConnection }), d.a.clearSettings() } }, { key: "render", value: function() { var e = this.props.apis.reduce(function(e, t) { t && t.url && (-1 !== e.findIndex(function(e) { return e.url === t.url }) || e.push(t)); return e }, []).map(function(e) { var t = -1 !== e.url.indexOf("fake.automatic-selection") , r = e.location; return r && "object" === (void 0 === r ? "undefined" : g(r)) && "translate"in r && (r = f.a.translate(r.translate)), n.a.createElement(h.Select.Option, { key: e.url, value: e.url }, r || e.url, " ", !t && r ? "(" + e.url + ")" : null) }); return n.a.createElement("div", { className: "grid-block" }, n.a.createElement("div", { className: "grid-container" }, n.a.createElement("div", { className: "grid-content no-overflow" }, n.a.createElement("br", null), n.a.createElement(c.a, { component: "h3", content: "app_init.title" }), n.a.createElement(h.Form, { layout: "vertical" }, n.a.createElement(h.Form.Item, { label: f.a.translate("settings.apiServer") }, n.a.createElement(h.Input.Group, { compact: !0 }, n.a.createElement(h.Select, { style: { width: "calc(100% - 175px)" }, onChange: this.onChangeWS.bind(this), value: this.props.apiServer }, e), n.a.createElement(h.Button, { id: "add", style: { width: "175px" }, onClick: this.triggerModal.bind(this), icon: "plus" }, f.a.translate("settings.add_api")))), n.a.createElement(h.Form.Item, { label: f.a.translate("app_init.ws_status") }, "open" === this.props.rpc_connection_status ? n.a.createElement("span", { className: "txtlabel success" }, n.a.createElement(c.a, { content: "app_init.connected" })) : n.a.createElement("span", { className: "txtlabel warning" }, n.a.createElement(c.a, { content: "app_init.not_connected" }))), n.a.createElement(h.Button, { type: "primary", onClick: this.onReloadClick }, f.a.translate("app_init.retry")), n.a.createElement(h.Button, { style: { marginLeft: "16px" }, onClick: this.onReset.bind(this) }, f.a.translate("settings.reset"))), n.a.createElement(u.a, { ref: "ws_modal", isAddNodeModalVisible: this.state.isModalVisible, onAddNodeClose: this.handleModalClose, apis: this.props.apis })))) } }]), t }(); t.a = Object(i.a)(y, { listenTo: function() { return [o.a, s.a] }, getProps: function() { return { rpc_connection_status: o.a.getState().rpc_connection_status, apis: s.a.getState().defaults.apiServer, apiServer: s.a.getState().settings.get("apiServer"), defaultConnection: s.a.getState().defaultSettings.get("apiServer") } } }) } , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(5) , o = r(24) , s = r(30) , l = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var c = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return l(e, [{ key: "addNotification", value: function(e) { return e = d(e) } }, { key: "success", value: function(e) { return e = d(e, "success") } }, { key: "error", value: function(e) { return e = d(e, "error") } }, { key: "warning", value: function(e) { return e = d(e, "warning") } }, { key: "info", value: function(e) { return e = d(e, "info") } }]), e }() , u = s.a.createActions(c) , d = function(e, t) { return "string" == typeof e && (e = { message: e }), t && (e.level = t), e } , p = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var h = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.bindListeners({ addNotification: [u.addNotification, u.success, u.warning, u.error, u.info] }), this.state = { notification: null } } return p(e, [{ key: "addNotification", value: function(e) { this.setState({ notification: e }) } }]), e }() , m = s.a.createStore(h, "NotificationStore") , f = r(2259) , g = r(434) , _ = r(40) , b = r(26) , y = r(111) , v = r(43) , w = r(45) , k = r(4) , x = r.n(k) , S = r(15) , A = r(353) , E = r.n(A) , T = r(1) , C = r.n(T) , z = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var B = i.ChainTypes.operations , O = Object.keys(B) , P = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), z(t, [{ key: "componentWillMount", value: function() { E.a.needsPermission && E.a.requestPermission() } }, { key: "componentWillReceiveProps", value: function(e) { if (!e.settings.get("browser_notifications").allow) return console.log("browser notifications disabled by settings"), !1; if (E.a.needsPermission) return console.log("browser notifications disabled by Browser Permissions"), !1; if (e.account && this.props.account && e.account.size && this.props.account.get("history") && e.account.get("history")) { var t = this.props.account.get("history").first() , r = e.account.get("history").first(); if (!r || !t) return !1; if (r.get("id") === t.get("id")) return !1; this._isOperationTransfer(r) && this._isTransferToMyAccount(r) && e.settings.get("browser_notifications").additional.transferToMe && this._notifyUserAboutTransferToHisAccount(r) } } }, { key: "_getOperationName", value: function(e) { return void 0 !== e.getIn(["op", 0]) ? O[e.getIn(["op", 0])] : null } }, { key: "_isOperationTransfer", value: function(e) { return "transfer" === this._getOperationName(e) } }, { key: "_isTransferToMyAccount", value: function(e) { if (!this._isOperationTransfer(e)) throw Error("Operation is not transfer"); return e.getIn(["op", 1, "to"]) === this.props.account.get("id") } }, { key: "_notifyUserAboutTransferToHisAccount", value: function(e) { var t = e.getIn(["op", 1, "amount", "asset_id"]) , r = e.getIn(["op", 1, "from"]) , a = e.getIn(["op", 1, "amount", "amount"]); if (!t || !r || !a) throw Error("Operation has wrong format"); var n = x.a.translate("browser_notification_messages.money_received_title", { from: this._getAccountNameById(r) }) , i = this._getRealAmountByAssetId(a, t) , o = this._getAssetSymbolByAssetId(t); if (null !== i && null !== o) { var s = x.a.translate("browser_notification_messages.money_received_body", { amount: i, symbol: o }); this.notifyUsingBrowserNotification({ title: n, body: s, closeOnClick: !0 }) } } }, { key: "notifyUsingBrowserNotification", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (!e.title && !e.body) return null; var t = { body: e.body }; "function" == typeof e.onNotifyShow && (t.notifyShow = e.onNotifyShow), "function" == typeof e.onNotifyClose && (t.notifyClose = e.onNotifyShow), "function" == typeof e.onNotifyClick && (t.notifyClick = e.onNotifyShow), "function" == typeof e.onNotifyError && (t.notifyError = e.onNotifyShow), new E.a(e.title,t).show() } }, { key: "_getRealAmountByAssetId", value: function(e, t) { var r = i.ChainStore.getAsset(t); return r ? S.a.get_asset_amount(e, r) : null } }, { key: "_getAssetSymbolByAssetId", value: function(e) { var t = i.ChainStore.getAsset(e); return t ? t.get("symbol") : null } }, { key: "_getAccountNameById", value: function(e) { var t = i.ChainStore.getAccount(e); return t ? t.get("name") : "" } }, { key: "render", value: function() { return null } }]), t }(); P.propTypes = { account: v.a.ChainAccount.isRequired, settings: C.a.object }; var j = P = Object(w.a)(P) , I = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var M = function(e) { return e.account ? n.a.createElement(j, e) : null } , N = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), I(t, [{ key: "render", value: function() { return n.a.createElement(y.a, { stores: [o.a], inject: { account: function() { return o.a.getState().currentAccount }, settings: function() { return b.a.getState().settings } } }, n.a.createElement(M, null)) } }]), t }() , R = r(2238) , q = r(31) , D = r(39) , L = r(25) , F = r(141) , U = r.n(F) , W = r(588) , H = r(594) , K = r(192) , V = r(22) , G = r(2) , Y = r.n(G) , J = r(19) , X = r(109) , Z = r(44) , Q = r(83) , $ = r(3) , ee = r.n($) , te = r(577) , re = r(53) , ae = r.n(re) , ne = r(14) , ie = r(361) , oe = r(589) , se = r(11) , le = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , ce = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var ue = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ce(t, [{ key: "shouldComponentUpdate", value: function(e) { var t = !1; for (var r in e) "function" != typeof e[r] && (t = t || e[r] !== this.props[r]); return t } }, { key: "_onAddContact", value: function() { D.a.addAccountContact(this.props.currentAccount) } }, { key: "_onRemoveContact", value: function() { D.a.removeAccountContact(this.props.currentAccount) } }, { key: "render", value: function() { var e = this , t = this.props , r = t.dropdownActive , a = t.toggleLock , i = t.maxHeight , o = t.locked , s = t.active , l = t.passwordLogin , c = t.isMyAccount , u = t.showAccountLinks , d = t.tradeUrl , p = t.enableDepositWithdraw , h = t.currentAccount , m = t.contacts.has(h); return n.a.createElement("ul", { className: "dropdown header-menu", style: { left: -200, top: 64, maxHeight: r ? i : 0, overflowY: "auto" } }, n.a.createElement("li", { className: "divider", onClick: a }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "power", title: "icons.power" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header." + (this.props.locked ? "unlock_short" : "lock_short") }))), o ? n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/create-account/" + (l ? "password" : "wallet")) }), onClick: this.props.onNavigate.bind(this, "/create-account/" + (l ? "password" : "wallet")) }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "user", title: "icons.user.create_account" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.create_account" }))) : null, this.props.locked ? null : n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/account") }), onClick: this.props.onNavigate.bind(this, "/account/" + h) }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "dashboard", title: "icons.dasboard" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.dashboard" }))), !c && u ? n.a.createElement("li", { className: "divider", onClick: this[m ? "_onRemoveContact" : "_onAddContact"].bind(this) }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: (m ? "minus" : "plus") + "-circle", title: m ? "icons.minus_circle.remove_contact" : "icons.plus_circle.add_contact" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account." + (m ? "unfollow" : "follow") }))) : null, n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/market/") }, "column-show-small"), onClick: this.props.onNavigate.bind(this, d) }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "trade", title: "icons.trade.exchange" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.exchange" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/explorer") }, "column-show-small"), onClick: this.props.onNavigate.bind(this, "/explorer/blocks") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "server", title: "icons.server" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.explorer" }))), [{ icon: { name: "transfer", title: "icons.transfer" }, disabled: !u, mainText: "header.payments", mainCallback: this.props.showSend, subText: "header.payments_legacy", subURL: "/transfer" }, { icon: { name: "deposit", title: "icons.deposit.deposit" }, disabled: !p, mainText: "modal.deposit.submit", mainCallback: this.props.showDeposit, subText: "header.deposit_legacy", subURL: "/deposit-withdraw" }, { icon: { name: "withdraw", title: "icons.withdraw" }, disabled: !p, mainText: "modal.withdraw.submit", mainCallback: this.props.showWithdraw, subText: "header.withdraw_legacy", subURL: "/deposit-withdraw" }].map(function(t, r) { var a = t.icon , i = t.subURL , o = t.disabled , l = t.mainText , c = t.subText , u = t.mainCallback; return n.a.createElement("li", { key: r, className: ee()({ active: -1 !== s.indexOf(i), disabled: o }), onClick: o ? function(e) { e.stopPropagation() } : u }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, le({ size: "2x" }, a))), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: l }), " ", n.a.createElement("span", { onClick: o ? function() {} : function(t) { t.stopPropagation(), e.props.onNavigate.bind(e, i)(t) } , className: ee()("header-dropdown-sub-link", { enabled: !o }) }, n.a.createElement(Y.a, { content: c })))) }), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/settings") }, "divider", "desktop-only"), onClick: this.props.onNavigate.bind(this, "/settings") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "cogs", title: "icons.cogs" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.settings" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/spotlight") }, "divider"), onClick: this.props.onNavigate.bind(this, "/spotlight") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "showcases", title: "icons.showcases" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.showcases" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/settings") }, "divider", "mobile-only", "has-submenu"), onClick: this.props.toggleDropdownSubmenu }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "cogs", title: "icons.cogs" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.settings" }), " ")), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/news") }), onClick: this.props.onNavigate.bind(this, "/news") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "news", title: "icons.news" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "news.news" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/voting"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/voting") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "thumbs-up", title: "icons.thumbs_up" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.voting" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/assets") && -1 !== s.indexOf("/account/"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/assets") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "assets", title: "icons.assets" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "explorer.assets.title" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/signedmessages"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/signedmessages") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "text", title: "icons.text.signed_messages" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.signedmessages.menuitem" }))), n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/member-stats"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/member-stats") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "text", title: "icons.text.membership_stats" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.member.stats" }))), c ? n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/vesting") }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/vesting") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "hourglass", title: "icons.hourglass" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.vesting.title" }))) : null, n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/whitelist"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/whitelist") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "list", title: "icons.list" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.whitelist.title" }))), n.a.createElement("li", { className: ee()("divider", { active: -1 !== s.indexOf("/permissions"), disabled: !u }), onClick: this.props.onNavigate.bind(this, "/account/" + h + "/permissions") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "warning", title: "icons.warning" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "account.permissions" }))), u ? n.a.createElement("li", { className: ee()({ active: -1 !== s.indexOf("/accounts") }, "divider"), onClick: this.props.onNavigate.bind(this, "/accounts") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "folder", title: "icons.folder" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "explorer.accounts.title" }))) : null) } }]), t }() , de = r(7) , pe = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var he = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { previousAccountName: null, isModalVisible: !1 }, r.handleClose = r.handleClose.bind(r), r.handleSwitchBack = r.handleSwitchBack.bind(r), r.handleNeverShowAgain = r.handleNeverShowAgain.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), pe(t, [{ key: "componentDidUpdate", value: function(e) { e.currentAccount && this.props.currentAccount && this.props.currentAccount !== e.currentAccount && !this.isMyAccount() && this.isMyAccount(e.currentAccount) && this.setState({ isModalVisible: !1 !== this.props.viewOnlyMode, previousAccountName: e.currentAccount }) } }, { key: "handleSwitchBack", value: function() { var e = o.a.getMyAccounts() , t = this.state.previousAccountName , r = null; if (this.isMyAccount(t) ? r = t : Array.isArray(e) && e.length && (r = e[0]), -1 !== this.props.location.pathname.indexOf("/account/")) { var a = this.props.location.pathname.split("/"); a[2] = r, this.props.history.push(a.join("/")) } D.a.setCurrentAccount.defer(r) } }, { key: "isMyAccount", value: function(e) { var t = e || this.props.currentAccount , r = o.a.getMyAccounts() , a = !0; return Array.isArray(r) && r.length && t && (a = r.indexOf(t) >= 0), a } }, { key: "handleClose", value: function() { this.setState({ isModalVisible: !1 }) } }, { key: "handleNeverShowAgain", value: function() { this.handleClose(), L.a.changeSetting({ setting: "viewOnlyMode", value: !1 }) } }, { key: "render", value: function() { var e = [n.a.createElement(de.Button, { key: "ok", type: "primary", onClick: this.handleClose }, x.a.translate("modal.ok")), n.a.createElement(de.Button, { key: "cancel", onClick: this.handleNeverShowAgain }, x.a.translate("account_browsing_mode.never_show_again"))]; return this.props.usernameViewIcon ? window.innerWidth < 640 && !this.isMyAccount() ? n.a.createElement(de.Popover, { content: n.a.createElement(Y.a, { content: "account_browsing_mode.you_are_in_browsing_mode" }), placement: "bottom" }, n.a.createElement(de.Icon, { style: { marginLeft: 10 }, className: "blue", type: "eye", onClick: this.handleSwitchBack })) : null : n.a.createElement("div", { className: "account-browsing-mode" }, n.a.createElement(de.Modal, { title: x.a.translate("account_browsing_mode.modal_title"), closable: !1, visible: this.state.isModalVisible, footer: e }, x.a.translate("account_browsing_mode.modal_description")), this.isMyAccount() ? null : n.a.createElement(de.Tooltip, { placement: "bottom", title: x.a.translate("account_browsing_mode.you_are_in_browsing_mode") }, n.a.createElement(de.Button, { onClick: this.handleSwitchBack, className: "hide-for-small-only account-browsing-mode--button" }, x.a.translate("account_browsing_mode.view_mode")))) } }]), t }() , me = Object(q.a)(he, { listenTo: function() { return [o.a, b.a] }, getProps: function() { return { viewOnlyMode: b.a.getState().settings.get("viewOnlyMode"), currentAccount: o.a.getState().currentAccount } } }) , fe = r(55) , ge = r(42) , _e = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var be = Object(ge.i)() , ye = "SETTINGS" , ve = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return r.state = { active: e.location.pathname, accountsListDropdownActive: !1, dropdownActive: !1, dropdownSubmenuActive: !1, isDepositModalVisible: !1, hasDepositModalBeenShown: !1, isWithdrawModalVisible: !1, hasWithdrawalModalBeenShown: !1 }, r.unlisten = null, r._toggleAccountDropdownMenu = r._toggleAccountDropdownMenu.bind(r), r._toggleDropdownMenu = r._toggleDropdownMenu.bind(r), r._closeDropdown = r._closeDropdown.bind(r), r._closeDropdownSubmenu = r._closeDropdownSubmenu.bind(r), r._toggleDropdownSubmenu = r._toggleDropdownSubmenu.bind(r), r._closeMenuDropdown = r._closeMenuDropdown.bind(r), r._closeAccountsListDropdown = r._closeAccountsListDropdown.bind(r), r.showDepositModal = r.showDepositModal.bind(r), r.hideDepositModal = r.hideDepositModal.bind(r), r.showWithdrawModal = r.showWithdrawModal.bind(r), r.hideWithdrawModal = r.hideWithdrawModal.bind(r), r.onBodyClick = r.onBodyClick.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), _e(t, [{ key: "showDepositModal", value: function() { this.setState({ isDepositModalVisible: !0, hasDepositModalBeenShown: !0 }) } }, { key: "hideDepositModal", value: function() { this.setState({ isDepositModalVisible: !1 }) } }, { key: "showWithdrawModal", value: function() { this.setState({ isWithdrawModalVisible: !0, hasWithdrawalModalBeenShown: !0 }) } }, { key: "hideWithdrawModal", value: function() { this.setState({ isWithdrawModalVisible: !1 }) } }, { key: "componentWillMount", value: function() { var e = this; this.unlisten = this.props.history.listen(function(t) { e.unlisten && e.state.active !== t.pathname && e.setState({ active: t.pathname }) }) } }, { key: "componentDidMount", value: function() { setTimeout(function() { ae.a.rebuild() }, 1250), document.body.addEventListener("click", this.onBodyClick, { capture: !1, passive: !0 }) } }, { key: "componentWillUnmount", value: function() { this.unlisten && (this.unlisten(), this.unlisten = null), document.body.removeEventListener("click", this.onBodyClick) } }, { key: "shouldComponentUpdate", value: function(e, t) { return e.myActiveAccounts !== this.props.myActiveAccounts || e.currentAccount !== this.props.currentAccount || e.passwordLogin !== this.props.passwordLogin || e.locked !== this.props.locked || e.current_wallet !== this.props.current_wallet || e.lastMarket !== this.props.lastMarket || e.starredAccounts !== this.props.starredAccounts || e.currentLocale !== this.props.currentLocale || t.active !== this.state.active || t.hiddenAssets !== this.props.hiddenAssets || t.dropdownActive !== this.state.dropdownActive || t.dropdownSubmenuActive !== this.state.dropdownSubmenuActive || t.accountsListDropdownActive !== this.state.accountsListDropdownActive || e.height !== this.props.height || e.location.pathname !== this.props.location.pathname } }, { key: "_showSend", value: function(e) { e.preventDefault(), this.send_modal && this.send_modal.show(), this._closeDropdown() } }, { key: "_showDeposit", value: function(e) { e.preventDefault(), this.showDepositModal(), this._closeDropdown() } }, { key: "_showWithdraw", value: function(e) { e.preventDefault(), this._closeDropdown(), this.showWithdrawModal() } }, { key: "_triggerMenu", value: function(e) { e.preventDefault(), U.a.publish("mobile-menu", "toggle") } }, { key: "_toggleLock", value: function(e) { e.preventDefault(), J.a.isLocked() ? Z.a.unlock().then(function() { D.a.tryToSetCurrentAccount() }).catch(function() {}) : (Z.a.lock(), X.a.getState().rememberMe || (Object(fe.b)() || Object(fe.c)("persistant"), D.a.setPasswordAccount(null), o.a.tryToSetCurrentAccount())), this._closeDropdown() } }, { key: "_onNavigate", value: function(e, t) { t.preventDefault(), "/accounts" == e && L.a.changeViewSetting({ dashboardEntry: "accounts" }), this.props.history.push(e), this._closeDropdown() } }, { key: "_closeAccountsListDropdown", value: function() { this.state.accountsListDropdownActive && this.setState({ accountsListDropdownActive: !1 }) } }, { key: "_closeMenuDropdown", value: function() { this.state.dropdownActive && this.setState({ dropdownActive: !1 }) } }, { key: "_closeDropdownSubmenu", value: function() { this.state.dropdownSubmenuActive && this.setState({ dropdownSubmenuActive: !1 }) } }, { key: "_closeDropdown", value: function() { this._closeMenuDropdown(), this._closeAccountsListDropdown(), this._closeDropdownSubmenu() } }, { key: "_onGoBack", value: function(e) { e.preventDefault(), window.history.back() } }, { key: "_onGoForward", value: function(e) { e.preventDefault(), window.history.forward() } }, { key: "_accountClickHandler", value: function(e, t) { if (t.preventDefault(), U.a.publish("account_drop_down", "close"), -1 !== this.props.location.pathname.indexOf("/account/")) { var r = this.props.location.pathname.split("/"); r[2] = e, this.props.history.push(r.join("/")) } e !== this.props.currentAccount && (D.a.setCurrentAccount.defer(e), de.Notification.success({ message: x.a.translate("header.account_notify", { account: e }) }), this._closeDropdown()) } }, { key: "_toggleAccountDropdownMenu", value: function() { if (!!!J.a.getWallet()) return !1; this.setState({ accountsListDropdownActive: !this.state.accountsListDropdownActive }) } }, { key: "_toggleDropdownSubmenu", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.state.dropdownSubmenuActiveItem , t = arguments[1]; t && t.stopPropagation(), this.setState({ dropdownSubmenuActive: !this.state.dropdownSubmenuActive, dropdownSubmenuActiveItem: e }) } }, { key: "_toggleDropdownMenu", value: function() { this.setState({ dropdownActive: !this.state.dropdownActive }) } }, { key: "onBodyClick", value: function(e) { var t = e.target , r = !1 , a = !1; do { if (t.classList && t.classList.contains("account-dropdown-wrapper")) { a = !0; break } if (t.classList && t.classList.contains("menu-dropdown-wrapper")) { r = !0; break } } while (t = t.parentNode);a || this._closeAccountsListDropdown(), r || (this._closeMenuDropdown(), this._closeDropdownSubmenu()) } }, { key: "render", value: function() { var e = this , t = this.state.active , r = this.props , a = r.currentAccount , s = r.starredAccounts , l = r.passwordLogin , c = r.passwordAccount , u = r.height , d = o.a.getMyAccounts() , p = Math.max(40, u - 67 - 36) + "px" , h = i.ChainStore.getAccount(a) , m = !!h , f = !!h && (o.a.isMyAccount(h) || l && a === c) , g = !!h && ne.Apis.instance() && ne.Apis.instance().chain_id && "4018d784" === ne.Apis.instance().chain_id.substr(0, 8); if (s.size) { for (var _ = d.length - 1; _ >= 0; _--) s.has(d[_]) || d.splice(_, 1); s.forEach(function(e) { -1 === d.indexOf(e.name) && d.push(e.name) }) } var b = o.a.getMyAccounts() , y = b.length , v = b.length && this.props.currentAccount ? n.a.createElement("div", { className: "total-value", onClick: this._toggleAccountDropdownMenu }, n.a.createElement(te.a.AccountWrapper, { hiddenAssets: this.props.hiddenAssets, accounts: Object(se.List)([this.props.currentAccount]), noTip: !0, style: { minHeight: 15 } })) : null , w = n.a.createElement("a", { className: ee()("logo", { active: "/" === t || -1 !== t.indexOf("dashboard") && -1 === t.indexOf("account") }), onClick: this._onNavigate.bind(this, "/") }, n.a.createElement("img", { style: { margin: 0, height: 40 }, src: be })) , k = 0 === y || null , x = this.props.lastMarket ? "/market/" + this.props.lastMarket : "/market/USD_BTS" , S = void 0 , A = void 0; a && (S = a.length > 20 ? a.slice(0, 20) + ".." : a, d.indexOf(a) < 0 && f && d.push(a), d.length >= 1 && (A = d.sort().filter(function(e) { return e !== a }).map(function(r) { return n.a.createElement("li", { key: r, className: ee()({ active: 0 === t.replace("/account/", "").indexOf(r) }), onClick: e._accountClickHandler.bind(e, r) }, n.a.createElement("div", { style: { paddingTop: 0 }, className: "table-cell" }, n.a.createElement(ie.a, { style: { position: "relative", top: 4 }, size: { height: 20, width: 20 }, account: r })), n.a.createElement("div", { className: "table-cell", style: { paddingLeft: 10 } }, n.a.createElement("a", { className: "text lower-case" + (r === S ? " current-account" : "") }, r))) }))); var E = this.state.dropdownActive ? n.a.createElement(V.a, { className: "icon-14px", name: "hamburger-x", title: "icons.hamburger_x" }) : n.a.createElement(V.a, { className: "icon-14px", name: "hamburger", title: "icons.hamburger" }) , T = !!J.a.getWallet() , C = void 0; -1 !== t.indexOf("transfer") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: !0 }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "transfer", title: "icons.transfer" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.payments" }))), -1 !== t.indexOf("spotlight") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: !0 }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "showcases", title: "icons.showcases" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.showcases" }))), -1 !== t.indexOf("settings") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("settings") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "cogs", title: "icons.cogs" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.settings" }))), -1 !== t.indexOf("deposit-withdraw") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("deposit-withdraw") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "deposit", title: "icons.deposit.deposit_withdraw" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.deposit-withdraw" }))), -1 !== t.indexOf("news") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("news") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "news", title: "icons.news" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "news.news" }))), -1 !== t.indexOf("help") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("help") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "question-circle", title: "icons.question_circle" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.help" }))), -1 !== t.indexOf("/voting") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/voting") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "thumbs-up", title: "icons.thumbs_up" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.voting" }))), -1 !== t.indexOf("/assets") && -1 === t.indexOf("explorer") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/assets") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "assets", title: "icons.assets" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "explorer.assets.title" }))), -1 !== t.indexOf("/signedmessages") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/signedmessages") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "text", title: "icons.text.signed_messages" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.signedmessages.menuitem" }))), -1 !== t.indexOf("/member-stats") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/member-stats") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "text", title: "icons.text.membership_stats" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.member.stats" }))), -1 !== t.indexOf("/vesting") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/vesting") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "hourglass", title: "icons.hourglass" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.vesting.title" }))), -1 !== t.indexOf("/whitelist") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/whitelist") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "list", title: "icons.list" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.whitelist.title" }))), -1 !== t.indexOf("/permissions") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/permissions") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "warning", title: "icons.warning" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "account.permissions" }))), -1 !== t.indexOf("/borrow") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/borrow") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "borrow", title: "icons.borrow" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "showcases.borrow.title" }))), -1 !== t.indexOf("/barter") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/barter") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "barter", title: "icons.barter" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "showcases.barter.title" }))), -1 !== t.indexOf("/direct-debit") && (C = n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()({ active: -1 !== t.indexOf("/direct-debit") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: 0, left: -8 }, name: "direct_debit", title: "icons.direct_debit" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "showcases.direct_debit.title" }))); var z = function(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e }({}, ye, n.a.createElement("ul", { className: "dropdown header-menu header-submenu", style: { left: -200, top: 64, maxHeight: this.state.dropdownActive ? p : 0, overflowY: "auto" } }, n.a.createElement("li", { className: "divider parent-item", onClick: this._toggleDropdownSubmenu.bind(this, void 0) }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement("span", { className: "parent-item-icon" }, "<"), n.a.createElement(Y.a, { content: "header.settings", component: "span", className: "parent-item-name" }))), n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/general") }, n.a.createElement(Y.a, { content: "settings.general", component: "div", className: "table-cell" })), !this.props.settings.get("passwordLogin") && n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/wallet") }, n.a.createElement(Y.a, { content: "settings.wallet", component: "div", className: "table-cell" })), n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/accounts") }, n.a.createElement(Y.a, { content: "settings.accounts", component: "div", className: "table-cell" })), !this.props.settings.get("passwordLogin") && [n.a.createElement("li", { key: "settings.password", onClick: this._onNavigate.bind(this, "/settings/password") }, n.a.createElement(Y.a, { content: "settings.password", component: "div", className: "table-cell" })), n.a.createElement("li", { key: "settings.backup", onClick: this._onNavigate.bind(this, "/settings/backup") }, n.a.createElement(Y.a, { content: "settings.backup", component: "div", className: "table-cell" }))], n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/restore") }, n.a.createElement(Y.a, { content: "settings.restore", component: "div", className: "table-cell" })), n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/access") }, n.a.createElement(Y.a, { content: "settings.access", component: "div", className: "table-cell" })), n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/faucet_address") }, n.a.createElement(Y.a, { content: "settings.faucet_address", component: "div", className: "table-cell" })), n.a.createElement("li", { onClick: this._onNavigate.bind(this, "/settings/reset") }, n.a.createElement(Y.a, { content: "settings.reset", component: "div", className: "table-cell" })))); return n.a.createElement("div", { className: "header-container", style: { minHeight: "64px" } }, n.a.createElement("div", null, n.a.createElement("div", { className: "header menu-group primary", style: { flexWrap: "nowrap", justifyContent: "none" } }, n.a.createElement("div", { className: "grid-block show-for-medium shrink electron-navigation" }, n.a.createElement("ul", { className: "menu-bar" }, n.a.createElement("li", null, n.a.createElement("div", { style: { marginLeft: "1rem", height: "3rem" } }, n.a.createElement("div", { style: { marginTop: "0.5rem" }, onClick: this._onGoBack.bind(this), className: "button outline small" }, "<"))), n.a.createElement("li", null, n.a.createElement("div", { style: { height: "3rem", marginLeft: "0.5rem", marginRight: "0.75rem" } }, n.a.createElement("div", { style: { marginTop: "0.5rem" }, onClick: this._onGoForward.bind(this), className: "button outline small" }, ">"))))), n.a.createElement("ul", { className: "menu-bar" }, n.a.createElement("li", null, w), !a || k ? null : n.a.createElement("li", null, n.a.createElement(R.a, { style: { flexFlow: "row" }, to: "/account/" + a, className: ee()({ active: -1 !== t.indexOf("account/") && -1 !== t.indexOf("/account/") && -1 === t.indexOf("/assets") && -1 === t.indexOf("/voting") && -1 === t.indexOf("/signedmessages") && -1 === t.indexOf("/member-stats") && -1 === t.indexOf("/vesting") && -1 === t.indexOf("/whitelist") && -1 === t.indexOf("/permissions") }) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: -2, left: -8 }, name: "dashboard", title: "icons.dashboard" }), n.a.createElement(Y.a, { className: "column-hide-small", content: "header.dashboard" }))), n.a.createElement("li", null, n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()(-1 !== t.indexOf("market/") ? null : "column-hide-xxs", { active: -1 !== t.indexOf("market/") }), onClick: this._onNavigate.bind(this, x) }, n.a.createElement(V.a, { size: "1_5x", style: { position: "relative", top: -2, left: -8 }, name: "trade", title: "icons.trade.exchange" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.exchange" }))), n.a.createElement("li", null, n.a.createElement("a", { style: { flexFlow: "row" }, className: ee()(-1 !== t.indexOf("explorer") ? null : "column-hide-xs", { active: -1 !== t.indexOf("explorer") }), onClick: this._onNavigate.bind(this, "/explorer/blocks") }, n.a.createElement(V.a, { size: "2x", style: { position: "relative", top: 0, left: -8 }, name: "server", title: "icons.server" }), n.a.createElement(Y.a, { className: "column-hide-small", component: "span", content: "header.explorer" }))), n.a.createElement("li", null, C)))), n.a.createElement("div", { className: "truncated active-account", style: { cursor: "pointer" } }, n.a.createElement(me, { history: this.props.history, location: this.props.location }), n.a.createElement("div", null, n.a.createElement("div", { className: "text account-name" }, n.a.createElement("span", { onClick: this._toggleAccountDropdownMenu }, a), n.a.createElement(me, { history: this.props.history, location: this.props.location, usernameViewIcon: !0 })), v), T && n.a.createElement("ul", { className: "dropdown header-menu local-wallet-menu", style: { right: 0, maxHeight: this.state.accountsListDropdownActive ? p : 0, overflowY: "auto", position: "absolute", width: "20em" } }, n.a.createElement("li", { className: ee()({ active: -1 !== t.indexOf("/accounts") }, "divider"), onClick: this._onNavigate.bind(this, "/accounts") }, n.a.createElement("div", { className: "table-cell" }, n.a.createElement(V.a, { size: "2x", name: "people", title: "icons.manage_accounts" })), n.a.createElement("div", { className: "table-cell" }, n.a.createElement(Y.a, { content: "header.accounts_manage" }))), A)), n.a.createElement("div", null, null == this.props.currentAccount ? null : n.a.createElement("span", { onClick: this._toggleLock.bind(this), style: { cursor: "pointer" } }, n.a.createElement(V.a, { className: "lock-unlock", size: "2x", name: this.props.locked ? "locked" : "unlocked", title: this.props.locked ? "icons.locked.common" : "icons.unlocked.common" }))), n.a.createElement("div", { className: "app-menu" }, n.a.createElement("div", { onClick: this._toggleDropdownMenu, className: ee()("menu-dropdown-wrapper dropdown-wrapper", { active: this.state.dropdownActive }) }, n.a.createElement("div", { className: "hamburger" }, E), this.state.dropdownSubmenuActive && z[this.state.dropdownSubmenuActiveItem] && z[this.state.dropdownSubmenuActiveItem] || n.a.createElement(ue, { dropdownActive: this.state.dropdownActive, toggleLock: this._toggleLock.bind(this), maxHeight: p, locked: this.props.locked, active: t, passwordLogin: l, onNavigate: this._onNavigate.bind(this), isMyAccount: f, contacts: this.props.contacts, showAccountLinks: m, tradeUrl: x, currentAccount: a, enableDepositWithdraw: g, showDeposit: this._showDeposit.bind(this), showWithdraw: this._showWithdraw.bind(this), showSend: this._showSend.bind(this), toggleDropdownSubmenu: this._toggleDropdownSubmenu.bind(this, ye) }))), n.a.createElement(W.a, { id: "send_modal_header", refCallback: function(t) { t && (e.send_modal = t) }, from_name: a }), this.state.hasDepositModalBeenShown && n.a.createElement(H.a, { visible: this.state.isDepositModalVisible, hideModal: this.hideDepositModal, showModal: this.showDepositModal, ref: "deposit_modal_new", modalId: "deposit_modal_new", account: a, backedCoins: this.props.backedCoins }), this.state.hasWithdrawalModalBeenShown && n.a.createElement(oe.a, { visible: this.state.isWithdrawModalVisible, hideModal: this.hideWithdrawModal, showModal: this.showWithdrawModal, ref: "withdraw_modal_new", modalId: "withdraw_modal_new", backedCoins: this.props.backedCoins })) } }]), t }(); ve = Object(q.a)(ve, { listenTo: function() { return [o.a, X.a, Q.a, b.a, K.a] }, getProps: function() { var e = ne.Apis.instance().chain_id; return { backedCoins: K.a.getState().backedCoins, myActiveAccounts: o.a.getState().myActiveAccounts, currentAccount: o.a.getState().currentAccount || o.a.getState().passwordAccount, passwordAccount: o.a.getState().passwordAccount, locked: X.a.getState().locked, current_wallet: Q.a.getState().current_wallet, lastMarket: b.a.getState().viewSettings.get("lastMarket" + (e ? "_" + e.substr(0, 8) : "")), starredAccounts: o.a.getState().starredAccounts, passwordLogin: b.a.getState().settings.get("passwordLogin"), currentLocale: b.a.getState().settings.get("locale"), hiddenAssets: b.a.getState().hiddenAssets, settings: b.a.getState().settings, locales: b.a.getState().defaults.locale, contacts: o.a.getState().accountContacts } } }); var we = Object(f.a)(ve) , ke = r(842) , xe = r.n(ke) , Se = r(763) , Ae = r(164) , Ee = r(75) , Te = r(190) , Ce = r(590) , ze = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Be = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isModalVisible: !1 }, r.onCloseClick = r.onCloseClick.bind(r), r.onConfirmClick = r.onConfirmClick.bind(r), r.onKeyUp = r.onKeyUp.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ze(t, [{ key: "shouldComponentUpdate", value: function(e) { return !!e.transaction && !S.a.are_equal_shallow(e, this.props) } }, { key: "componentDidUpdate", value: function() { this.props.closed ? this.hideModal() : this.showModal() } }, { key: "showModal", value: function() { this.setState({ isModalVisible: !0 }) } }, { key: "hideModal", value: function() { this.setState({ isModalVisible: !1 }) } }, { key: "onKeyUp", value: function(e) { 13 === e.keyCode ? this.onConfirmClick(e) : e.preventDefault() } }, { key: "onConfirmClick", value: function(e) { var t = this; if (e.preventDefault(), this.props.propose) { var r = { fee_paying_account: i.ChainStore.getAccount(this.props.fee_paying_account).get("id") }; this.props.transaction.update_head_block().then(function() { J.a.process_transaction(t.props.transaction.propose(r), null, !0) }) } else Ae.a.broadcast(this.props.transaction, this.props.resolve, this.props.reject) } }, { key: "onCloseClick", value: function(e) { e.preventDefault(), Ae.a.close() } }, { key: "onProposeClick", value: function() { Ae.a.togglePropose() } }, { key: "onProposeAccount", value: function(e) { i.ChainStore.getAccount(e), Ae.a.proposeFeePayingAccount(e) } }, { key: "componentWillReceiveProps", value: function(e) { e.broadcast && e.included && !this.props.included && !e.error && u.addNotification.defer({ children: n.a.createElement("div", null, n.a.createElement("p", null, n.a.createElement(Y.a, { content: "transaction.transaction_confirmed" }), "  ", n.a.createElement("span", null, n.a.createElement(V.a, { name: "checkmark-circle", title: "icons.checkmark_circle.operation_succeed", size: "1x", className: "success" }))), n.a.createElement("table", null, n.a.createElement(Ce.a, { op: this.props.transaction.serialize().operations[0], block: 1, current: "1.2.0", hideFee: !0, inverted: !1, hideOpLabel: !0, hideDate: !0 }))), level: "success", autoDismiss: 3 }) } }, { key: "render", value: function() { var e = this.props , t = e.broadcast , r = e.broadcasting; if (!this.props.transaction || this.props.closed) return null; var a = void 0 , i = void 0; return this.props.propose && !this.props.fee_paying_account && " disabled", this.props.error || this.props.included ? (i = this.props.error ? x.a.translate("transaction.broadcast_fail", { message: "" }) : x.a.translate("transaction.transaction_confirmed"), a = [n.a.createElement(de.Button, { key: "cancel", onClick: this.onCloseClick }, x.a.translate("transfer.close"))]) : t ? (i = x.a.translate("transaction.broadcast_success") + ". " + x.a.translate("transaction.waiting"), a = [n.a.createElement(de.Button, { key: "cancel", onClick: this.onCloseClick }, x.a.translate("transfer.close"))]) : r ? (i = n.a.createElement("div", null, x.a.translate("transaction.broadcasting"), n.a.createElement(de.Icon, { type: "loading" })), a = []) : (i = x.a.translate("transaction.confirm"), a = [n.a.createElement(de.Button, { key: "confirm", type: "primary", onClick: this.onConfirmClick }, this.props.propose ? x.a.translate("propose") : x.a.translate("transfer.confirm")), n.a.createElement(de.Button, { key: "cancel", onClick: this.onCloseClick }, x.a.translate("account.perm.cancel"))]), n.a.createElement("div", { ref: "transactionConfirm", onKeyUp: this.onKeyUp }, n.a.createElement(de.Modal, { wrapClassName: "modal--transaction-confirm", title: i, visible: !this.props.closed, id: "transaction_confirm_modal", ref: "modal", footer: a, overlay: !0, onCancel: this.onCloseClick, overlayClose: !r, noCloseBtn: !0 }, n.a.createElement("div", { className: "grid-block vertical no-padding no-margin" }, this.props.error ? n.a.createElement(de.Alert, { type: "error", message: this.props.error }) : null, this.props.included ? n.a.createElement(de.Alert, { type: "success", message: x.a.translate("transaction.transaction_confirmed"), description: "#" + this.props.trx_id + "@" + this.props.trx_block_num }) : null, n.a.createElement("div", { className: "shrink", style: { maxHeight: "60vh", overflowY: "auto", overflowX: "hidden" } }, n.a.createElement(Se.a, { key: Date.now(), trx: this.props.transaction.serialize(), index: 0, no_links: !0 })), this.props.propose ? n.a.createElement("div", { className: "full-width-content form-group" }, n.a.createElement("label", null, n.a.createElement(Y.a, { content: "account.propose_from" })), n.a.createElement(Te.a, { className: "full-width", account_names: o.a.getMyAccounts(), onChange: this.onProposeAccount.bind(this) })) : null, n.a.createElement("div", { className: "grid-block shrink", style: { paddingTop: "1rem" } }, this.props.transaction.has_proposed_operation() || t || r || this.props.error ? null : n.a.createElement("div", { className: "align-right grid-block" }, n.a.createElement("label", { style: { paddingRight: "0.5rem" } }, n.a.createElement(Y.a, { content: "propose" }), ":"), n.a.createElement(de.Switch, { checked: this.props.propose, onChange: this.onProposeClick.bind(this) })))))) } }]), t }() , Oe = Be = Object(q.a)(Be, { listenTo: function() { return [Ee.a] }, getProps: function() { return Ee.a.getState() } }) , Pe = (r(859), r(866), r(138)) , je = r(64) , Ie = r(69) , Me = r(80) , Ne = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Re = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { inputChanged: !1 }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Ne(t, [{ key: "componentDidMount", value: function() { var e = this.props , t = e.account , r = e.accountName; void 0 === t && (t = i.ChainStore.getAccount(r)), this.props.onAccountChanged && t && this.props.onAccountChanged(t), !this.props.typeahead && r && this.onInputChanged(r) } }, { key: "componentWillReceiveProps", value: function(e) { e.account && e.account !== this.props.account && this.props.onAccountChanged && this.props.onAccountChanged(e.account) } }, { key: "getAccount", value: function() { return this.props.account } }, { key: "getError", value: function() { var e = this.props , t = e.account , r = e.error; return r || !t || this.getInputType(t.get("name")) || (r = x.a.translate("account.errors.invalid")), r } }, { key: "getInputType", value: function(e) { return e ? "#" === e[0] && S.a.is_object_id("1.2." + e.substring(1)) ? "id" : i.ChainValidation.is_account_name(e, !0) ? "name" : this.props.allowPubKey && i.PublicKey.fromPublicKeyString(e) ? "pubkey" : null : null } }, { key: "onSelected", value: function(e) { this.setState({ inputChanged: !1 }), this._notifyOnChange(e) } }, { key: "_notifyOnChange", value: function(e) { var t = this.props , r = t.onChange , a = t.onAccountChanged , n = t.accountName , o = this.getVerifiedAccountName(e); o !== n && (r && (o || "" === o) && r(o), a && Object(i.FetchChain)("getAccount", o, void 0, function(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e }({}, o, !1)).then(function(e) { e && a(e) }).catch(function(e) { console.log(e) })) } }, { key: "onInputChanged", value: function(e) { this.setState({ inputChanged: !0 }), this._notifyOnChange(e) } }, { key: "getVerifiedAccountName", value: function(e) { var t = this.props.allowUppercase , r = null; r = "string" == typeof e ? e : e && e.target ? e.target.value.trim() : "", t || (r = r.toLowerCase()); var a = r.replace("#", "").match(/(?:\/account\/)(.*)/); return a && (r = a[1]), r } }, { key: "onKeyDown", value: function(e) { 13 === e.keyCode && this.onAction(e) } }, { key: "_onAddContact", value: function() { D.a.addAccountContact(this.props.accountName) } }, { key: "_onRemoveContact", value: function() { D.a.removeAccountContact(this.props.accountName) } }, { key: "onAction", value: function(e) { var t = this.props , r = t.onAction , a = t.disableActionButton , n = t.account , i = t.accountName; e.preventDefault(), this.getError() || !r || a || (n ? r(n) : "pubkey" === this.getInputType(i) && r(i)) } }, { key: "render", value: function() { var e = this , t = this.props , r = t.accountName , a = t.account , o = t.allowPubKey , s = t.typeahead , l = t.disableActionButton , c = t.contacts , u = t.myActiveAccounts , d = (t.noPlaceHolder, t.useHR, t.labelClass, t.reserveErrorSpace, this.getInputType(r)) , p = [] , h = this.getError() , m = u; m = m.concat(c); var f = void 0; a && (a.isKnownScammer = Me.a.isKnownScammer(a.get("name")), a.accountType = this.getInputType(a.get("name")), a.accountStatus = i.ChainStore.getAccountMemberStatus(a), a.statusText = a.isKnownScammer ? x.a.translate("account.member.suspected_scammer") : x.a.translate("account.member." + a.accountStatus), f = "name" === a.accountType ? "#" + a.get("id").substring(4) : "id" === a.accountType ? a.get("name") : null), s ? o && "pubkey" === d || h || !r || a || (h = x.a.translate("account.errors.unknown")) : !a && r && "pubkey" !== d && (h = x.a.translate("account.errors.unknown")), o && "pubkey" === d && (f = "Public Key"), a && m && (a.isFavorite = u.has(a.get("name")) || c.has(a.get("name"))), s && m && m.map(function(t) { if (-1 !== e.props.excludeAccounts.indexOf(t)) return null; var r = i.ChainStore.getAccount(t) , a = i.ChainStore.getAccountMemberStatus(r) , n = Me.a.isKnownScammer(t) ? "account.member.suspected_scammer" : "account.member." + a; p.push({ id: t, label: t, status: x.a.translate(n), className: Me.a.isKnownScammer(t) ? "negative" : "positive" }) }).filter(function(e) { return !!e }); var g = !!r && p.reduce(function(e, t) { return e || t.label === r }, !1); if (r && !g && this.state.inputChanged) { var _ = i.ChainStore.getAccount(r) , b = _ ? i.ChainStore.getAccountMemberStatus(_) : null , y = _ ? Me.a.isKnownScammer(_.get("name")) ? x.a.translate("account.member.suspected_scammer") : x.a.translate("account.member." + b) : x.a.translate("account.errors.unknown"); p.push({ id: this.props.accountName, label: this.props.accountName, status: y, className: Me.a.isKnownScammer(r) || !_ ? "negative" : null, disabled: !_ }) } p.sort(function(e, t) { return e.label > t.label ? 1 : -1 }); this.props.account && (u.has(a.get("name")) || c.has(a.get("name")) ? n.a.createElement(de.Tooltip, { placement: "top", title: x.a.translate("tooltip.follow_user"), onClick: this._onRemoveContact.bind(this) }, n.a.createElement("span", { className: "tooltip green" }, n.a.createElement(V.a, { style: { position: "absolute", top: "-0.15em", right: ".2em" }, name: "user", title: "icons.user.following" }))) : n.a.createElement(de.Tooltip, { placement: "top", title: x.a.translate("tooltip.follow_user_add"), onClick: this._onAddContact.bind(this) }, n.a.createElement("span", { className: "tooltip" }, n.a.createElement(V.a, { style: { position: "absolute", top: "-0.05em", right: ".2em" }, name: "plus-circle", title: "icons.plus_circle.add_contact" })))), ee()("button", { disabled: !(a || "pubkey" === d) || h || l }); return n.a.createElement("div", { className: "account-selector", style: this.props.style }, n.a.createElement("div", { className: "content-area" }, function(t) { return e.props.label ? n.a.createElement("div", null, n.a.createElement(de.Form.Item, { label: x.a.translate(e.props.label), hasFeedback: !0, validateStatus: h ? "error" : a ? "success" : "", help: h || !!a && n.a.createElement("span", { className: "positive" }, a && a.statusText, " ", !!f && f) }, t)) : t }(n.a.createElement(de.Input, { style: { textTransform: "pubkey" === this.getInputType(r) ? null : "lowercase", fontVariant: "initial" }, name: "username", id: "username", autoComplete: "username", type: "text", value: this.props.accountName || "", placeholder: this.props.placeholder || x.a.translate("account.name"), ref: this.props.inputRef || "user_input", onChange: this.onInputChanged.bind(this), onKeyDown: this.onKeyDown.bind(this), tabIndex: this.props.tabIndex })))) } }]), t }(); Re.propTypes = { label: C.a.string, error: C.a.element, placeholder: C.a.string, onChange: C.a.func, onAccountChanged: C.a.func, onAction: C.a.func, accountName: C.a.string, account: v.a.ChainAccount, tabIndex: C.a.number, disableActionButton: C.a.bool, allowUppercase: C.a.bool, typeahead: C.a.bool, excludeAccounts: C.a.array }, Re.defaultProps = { autosubscribe: !1, excludeAccounts: [] }, Re = Object(w.a)(Re); var qe = Re = Object(q.a)(Re, { listenTo: function() { return [o.a] }, getProps: function() { return { myActiveAccounts: o.a.getState().myActiveAccounts, contacts: o.a.getState().accountContacts } } }) , De = r(360) , Le = function(e) { var t = e.value , r = e.onChange; return n.a.createElement(de.Form.Item, { label: x.a.translate("account.login_with") }, n.a.createElement(de.Select, { onChange: r, value: t }, n.a.createElement(de.Select.Option, { value: "cloud" }, x.a.translate("account.name"), "(", x.a.translate("wallet.password_model").toLowerCase(), ")"), n.a.createElement(de.Select.Option, { value: "local" }, x.a.translate("wallet.key_file"), " (", x.a.translate("wallet.wallet_model").toLowerCase(), ")"))) } , Fe = function(e) { return n.a.createElement(y.a, { stores: [X.a], inject: { value: function() { return X.a.getState().passwordLogin ? "cloud" : "local" } }, actions: function() { return { onChange: function(e) { var t = e; if (!t in ["cloud", "local"]) throw new Error("Invalid login type value"); return L.a.changeSetting({ setting: "passwordLogin", value: "cloud" === t }) } } } }, n.a.createElement(Le, e)) } , Ue = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function We(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function He(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function Ke(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var Ve = function() { return n.a.createElement("input", { type: "text", className: "no-padding no-margin", style: { visibility: "hidden", height: 0 } }) } , Ge = function(e) { return e.stopPropagation() } , Ye = function(e) { var t = e.showUseOtherWalletLink , r = e.onUseOtherWallet; return n.a.createElement("div", { className: "label-container" }, n.a.createElement("label", { className: "left-label login-label" }, n.a.createElement(Y.a, { content: "wallet.key_file_bin" }), " "), " ", t && n.a.createElement("a", { onClick: r }, "(", n.a.createElement(Y.a, { content: "wallet.use_different" }), ")")) } , Je = function(e) { function t() { return We(this, t), He(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return Ke(t, n.a.Component), Ue(t, [{ key: "render", value: function() { return n.a.createElement("label", { className: "upload-button themed-input" }, n.a.createElement(Y.a, { content: "wallet.restore_key_file" }), n.a.createElement(Qe, null), n.a.createElement("input", { type: "file", onClick: Ge, onChange: this.props.onFileChosen, accept: ".bin" })) } }]), t }() , Xe = function(e) { var t = e.onFileChosen , r = e.onRestoreOther; return n.a.createElement("div", null, n.a.createElement(Je, { onFileChosen: t }), n.a.createElement("div", { className: "login-hint" }, n.a.createElement(Y.a, { content: "wallet.different_file_type" }), " ", n.a.createElement("a", { onClick: r }, n.a.createElement(Y.a, { content: "wallet.restore_it_here" })))) } , Ze = function(e) { var t = e.onChange , r = e.checked; return n.a.createElement("div", { className: "backup-warning" }, n.a.createElement(de.Alert, { type: "warning", message: x.a.translate("alert.warning"), description: x.a.translate("wallet.backup_warning") }), n.a.createElement("div", { className: "checkbox" }, n.a.createElement(de.Checkbox, { key: "checkbox_" + r, onChange: t, checked: r }, n.a.createElement(Y.a, { content: "wallet.dont_ask_for_backup" })))) } , Qe = (function(e) { function t() { var e, r, a; We(this, t); for (var i = arguments.length, o = Array(i), s = 0; s < i; s++) o[s] = arguments[s]; return r = a = He(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(o))), a.render = function() { return n.a.createElement("div", { className: "content-block account-selector input-area" }, n.a.createElement("label", { className: "left-label login-label" }, n.a.createElement(Y.a, { content: "settings.password" })), n.a.createElement("input", { ref: "password_input", name: "password", id: "password", type: "password", autoComplete: "current-password" })) } , He(a, r) } Ke(t, n.a.Component) }(), function() { return n.a.createElement("svg", { viewBox: "0 0 6.349999 7.5313201", version: "1.1", className: "upload-button-logo" }, n.a.createElement("g", { transform: "translate(-86.783338,-137.44666)" }, n.a.createElement("path", { d: "m 89.958337,144.97798 h -3.174999 v -1.18208 -1.18208 l 0.387288,-1.11098 0.387288,-1.11097 h 0.847434 0.847434 v 0.31163 0.31163 l -0.65212,0.17054 -0.652119,0.17053 -0.196798,0.75256 -0.196798,0.75255 h 2.40339 2.403391 l -0.196798,-0.75255 -0.196798,-0.75256 -0.652119,-0.17053 -0.65212,-0.17054 v -0.31163 -0.31163 h 0.847434 0.847434 l 0.387288,1.11097 0.387288,1.11098 v 1.18208 1.18208 z m 0,-3.175 H 89.60556 v -1.2017 -1.20169 l -0.705556,0.1845 -0.705555,0.18451 v -0.33243 -0.33243 l 0.881944,-0.82854 0.881944,-0.82854 0.881945,0.82854 0.881944,0.82854 v 0.33243 0.33243 l -0.705555,-0.18451 -0.705556,-0.1845 v 1.20169 1.2017 z" }))) } ) , $e = function(e) { var t = e.name , r = e.onUseOtherWallet; return n.a.createElement("div", { className: "content-box" }, n.a.createElement("b", null, n.a.createElement(Y.a, { content: "wallet.using" })), " ", t, " ", n.a.createElement("a", { onClick: r }, "(", n.a.createElement(Y.a, { content: "wallet.use_different" }), ")")) } , et = function(e) { var t = e.onCreate; return n.a.createElement("div", { className: "login-hint" }, n.a.createElement(Y.a, { content: "wallet.no_wallet", component: "span" }), " ", n.a.createElement("span", { className: "button", onClick: t }, n.a.createElement(Y.a, { content: "wallet.create_wallet" }))) } , tt = function(e) { var t = e.restoringBackup , r = e.walletNames , a = e.onWalletChange; return n.a.createElement("select", { value: t ? "upload." : "", onChange: a, className: "login-select" }, n.a.createElement("option", { value: "", hidden: !0 }, n.a.createElement(Y.a, { content: "wallet.select_wallet" })), r.map(function(e) { return n.a.createElement("option", { className: "login-option", key: e, value: "wallet." + e }, e) }), n.a.createElement("option", { value: "upload." }, n.a.createElement(Y.a, { content: "settings.backup_backup_short" }))) } , rt = r(354) , at = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function nt(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function it(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function ot(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var st = function(e) { function t(e) { nt(this, t); var r = it(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return lt.call(r), r.state = r.initialState(e), r.account_input = n.a.createRef(), r.handlePasswordChange = r.handlePasswordChange.bind(r), r } return ot(t, n.a.Component), at(t, [{ key: "componentWillReceiveProps", value: function(e) { var t = this.state , r = t.walletSelected , a = t.restoringBackup , n = (t.accountName, e.currentWallet) , i = (e.passwordAccount, {}); !r || a || n || (i.walletSelected = !1), this.props.passwordLogin != e.passwordLogin && (i.passwordError = !1, i.customError = null), this.setState(i) } }, { key: "shouldComponentUpdate", value: function(e, t) { return !(this.state.isOpen && !t.isOpen) && (!S.a.are_equal_shallow(e, this.props) || !S.a.are_equal_shallow(t, this.state)) } }, { key: "handlePasswordChange", value: function(e) { this.setState({ password: e.target.value }) } }, { key: "componentDidMount", value: function() { var e = this , t = this.props.modalId; U.a.subscribe(t, function(r, a) { var n = e.state.isOpen; r === t && ("close" === a && n ? e.handleModalClose() : "open" !== a || n || e.handleModalOpen()) }) } }, { key: "componentDidUpdate", value: function() { var e = this.props , t = e.resolve , r = e.isLocked , a = e.passwordLogin , n = this.state , i = n.isModalVisible , o = n.accountName , s = n.focusedOnce; if (!s && i && a) { var l = this.account_input && this.account_input.current , c = this.password_input; l && c || this.forceUpdate(), o && c ? (c.input.focus(), this.setState({ focusedOnce: !0 })) : l && l.input && "function" == typeof l.focus && (l.focus(), this.setState({ focusedOnce: !0 })) } else if (!s && i && !a) { var u = this.password_input2; u || this.forceUpdate(), u && (u.input.focus(), this.setState({ focusedOnce: !0 })) } t ? r ? this.setState({ isModalVisible: !0 }) : t() : this.setState({ isModalVisible: !1, password: "" }) } }, { key: "render", value: function() { var e = this , t = this.props , r = t.backup , a = t.passwordLogin , i = t.modalId , o = t.currentWallet , s = t.walletNames , l = t.walletLockTimeout , c = this.state , u = c.walletSelected , d = c.restoringBackup , p = c.passwordError , h = c.customError , m = c.accountName , f = c.stopAskingForBackup , g = (c.isOpen, !(s.size > 0)) , _ = g && !u , b = r.name || o , y = p ? x.a.translate("wallet.pass_incorrect") : h , v = []; return a && (v.push(n.a.createElement(de.Tooltip, { key: "wallet.remember_me_explanation", title: x.a.translate("wallet.remember_me_explanation") }, n.a.createElement("div", { style: { float: "left", cursor: "pointer", marginTop: "6px" }, onClick: this.handleRememberMe.bind(this) }, n.a.createElement(Y.a, { content: "wallet.remember_me" }), n.a.createElement(de.Switch, { checked: this.state.rememberMe, onChange: this.handleRememberMe.bind(this) })))), v.push(n.a.createElement("div", { style: { float: "left" }, key: "settings.walletLockTimeoutTooltip" }, n.a.createElement("span", null, n.a.createElement(de.Tooltip, { title: x.a.translate("settings.walletLockTimeoutTooltip") }, n.a.createElement("span", null, n.a.createElement(V.a, { onClick: function() { e.setState({ isAutoLockVisible: !e.state.isAutoLockVisible }) }, name: "autolock", size: "1_5x", style: { cursor: "pointer", top: "5px", position: "relative", marginLeft: "12px" } }))), this.state.isAutoLockVisible && n.a.createElement(de.Tooltip, { title: x.a.translate("settings.walletLockTimeout") }, n.a.createElement(de.InputNumber, { value: l, onChange: this.handleWalletAutoLock, placeholder: "Auto-lock after...", style: { marginLeft: "7px", width: "65px" } })))))), v.push(n.a.createElement("span", { className: "auto-lock-wrapper", key: "wallet.backup_login" }, n.a.createElement(de.Button, { onClick: this.handleLogin, key: "login-btn" }, x.a.translate(this.shouldUseBackupLogin() ? "wallet.backup_login" : "header.unlock_short")))), n.a.createElement(de.Modal, { title: "Login", visible: this.state.isModalVisible, wrapClassName: "unlock_wallet_modal2", id: i, closeable: !1, ref: "modal", overlay: !0, overlayClose: !1, modalHeader: "header.unlock_short", onCancel: this.handleModalClose, leftHeader: !0, footer: v, zIndex: 1001 }, n.a.createElement(de.Form, { className: "full-width", layout: "vertical" }, n.a.createElement(Fe, null), a ? n.a.createElement("div", null, n.a.createElement(Ve, null), n.a.createElement(qe, { label: "account.name", inputRef: this.account_input, accountName: m, account: m, onChange: this.handleAccountNameChange, onAccountChanged: function() {}, size: 60, hideImage: !0, placeholder: " ", useHR: !0, labelClass: "login-label", reserveErrorSpace: !0 }), n.a.createElement(de.Form.Item, { label: x.a.translate("settings.password"), validateStatus: p ? "error" : "", help: p || "" }, n.a.createElement(de.Input, { type: "password", value: this.state.password, onChange: this.handlePasswordChange, onPressEnter: this.handleLogin, ref: function(t) { e.password_input = t } }))) : n.a.createElement("div", null, n.a.createElement("div", { className: "key-file-selector " + (d && !u ? "restoring" : "") }, n.a.createElement(Ye, { showUseOtherWalletLink: d && !r.name, onUseOtherWallet: this.handleUseOtherWallet }), n.a.createElement("hr", null), u ? n.a.createElement($e, { name: b, onUseOtherWallet: this.handleUseOtherWallet }) : n.a.createElement("div", null, d || g ? n.a.createElement(Xe, { onFileChosen: this.loadBackup, onRestoreOther: this.handleRestoreOther }) : n.a.createElement(tt, { onFileChosen: this.loadBackup, restoringBackup: d, walletNames: s, onWalletChange: this.handleSelectedWalletChange }), _ && n.a.createElement(et, { onCreate: this.handleCreateWallet }))), n.a.createElement(de.Form.Item, { label: x.a.translate("wallet.enter_password"), validateStatus: y ? "error" : "success", help: y }, n.a.createElement(de.Input, { type: "password", value: this.state.password, placeholder: x.a.translate("wallet.enter_password"), onChange: this.handlePasswordChange, onPressEnter: this.handleLogin, ref: function(t) { e.password_input2 = t } }))), this.shouldShowBackupWarning() && n.a.createElement(Ze, { onChange: this.handleAskForBackupChange, checked: f }))) } }]), t }() , lt = function() { var e = this; this.initialState = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : e.props; return { isModalVisible: !1, passwordError: null, accountName: t.passwordAccount, walletSelected: !!t.currentWallet, customError: null, isOpen: !1, restoringBackup: !1, stopAskingForBackup: !1, rememberMe: X.a.getState().rememberMe, focusedOnce: !1, isAutoLockVisible: !1 } } , this.handleModalClose = function() { Z.a.cancel(), Ie.c.reset(), e.setState(e.initialState()) } , this.handleModalOpen = function() { Ie.c.reset(), e.setState({ isOpen: !0 }, function() { if (!e.props.passwordLogin) { var t = e.refs.password_input; t && (t.clear(), t.focus()); var r = e.props.dbWallet; r && ne.Apis.instance().chain_id !== r.chain_id && (de.Notification.error({ message: x.a.translate("notifications.wallet_unlock_different_block_chain", { expectedWalletId: r.chain_id.substring(0, 4).toUpperCase(), actualWalletId: ne.Apis.instance().chain_id.substring(0, 4).toUpperCase() }) }), Z.a.cancel()) } }) } , this.validate = function(t, r) { var a = e.props , n = a.passwordLogin , i = a.resolve , o = e.state.stopAskingForBackup , s = J.a.validatePassword(t || "", !0, r).cloudMode; J.a.isLocked() ? e.setState({ passwordError: !0 }) : (n ? (e.setState({ password: "" }), s && D.a.setPasswordAccount(r)) : e.setState({ password: "" }), Z.a.change(), o ? je.a.setBackupDate() : e.shouldUseBackupLogin() && e.backup(), i(), Z.a.cancel()) } , this.passwordInput = function() { return e.refs.password_input || e.refs.custom_password_input.refs.password_input } , this.restoreBackup = function(t, r) { var a = e.props.backup , n = i.PrivateKey.fromSeed(t || "") , o = a.name.split(".")[0]; Object(Ie.d)(n.toWif(), a.contents, o).then(function() { return je.a.setWallet(o).then(function() { Ie.c.reset(), r() }).catch(function(t) { return e.setState({ customError: t.message }) }) }).catch(function(t) { var r = "string" == typeof t ? t : t.message , a = "invalid_decryption_key" === r; e.setState({ customError: a ? null : r, passwordError: a }) }) } , this.handleLogin = function(t) { t && t.preventDefault(); var r = e.props , a = r.passwordLogin , n = r.backup , i = e.state , o = i.walletSelected , s = i.accountName; a || o ? e.setState({ passwordError: null }, function() { var t = e.state.password; if (!a && n.name) e.restoreBackup(t, function() { return e.validate(t) }); else { e.state.rememberMe ? Object(fe.b)() || Object(fe.c)("persistant") : Object(fe.b)() && Object(fe.c)("inram"); var r = a ? s : null; e.validate(t, r) } }) : e.setState({ customError: x.a.translate("wallet.ask_to_select_wallet") }) } , this.closeRedirect = function(t) { Z.a.cancel(), e.props.history.push(t) } , this.handleCreateWallet = function() { return e.closeRedirect("/create-account/wallet") } , this.handleRestoreOther = function() { return e.closeRedirect("/settings/restore") } , this.loadBackup = function(t) { var r = t.target.value , a = t.target.files[0]; e.setState({ restoringBackup: !0 }, function() { var t = r.indexOf("\\") >= 0 ? r.lastIndexOf("\\") : r.lastIndexOf("/") , n = r.substring(t); 0 !== n.indexOf("\\") && 0 !== n.indexOf("/") || (n = n.substring(1)), Ie.c.incommingWebFile(a), e.setState({ walletSelected: !0 }) }) } , this.handleSelectedWalletChange = function(t) { var r = t.target.value , a = r.split(".")[0] , n = r.substring(r.indexOf(".") + 1); Ie.c.reset(), "upload" === a ? e.setState({ restoringBackup: !0, customError: null }) : je.a.setWallet(n).then(function() { return e.setState({ walletSelected: !0, customError: null, restoringBackup: !1 }) }) } , this.backup = function() { return Object(Ie.a)(e.props.dbWallet.password_pubkey).then(function(t) { var r = e.props.currentWallet , a = Object(rt.a)(r); Ie.c.incommingBuffer({ name: a, contents: t }); var n = e.props.backup , i = new Blob([n.contents],{ type: "application/octet-stream; charset=us-ascii" }); if (i.size !== n.size) throw new Error("Invalid backup to download conversion"); Object(De.saveAs)(i, a), je.a.setBackupDate(), Ie.c.reset() }) } , this.handleAskForBackupChange = function(t) { return e.setState({ stopAskingForBackup: t.target.checked }) } , this.handleUseOtherWallet = function() { e.setState({ walletSelected: !1, restoringBackup: !1, passwordError: null, customError: null }) } , this.handleAccountNameChange = function(t) { return e.setState({ accountName: t, error: null }) } , this.shouldShowBackupWarning = function() { return !e.props.passwordLogin && e.state.walletSelected && !e.state.restoringBackup && !(e.props.dbWallet && e.props.dbWallet.backup_date) } , this.shouldUseBackupLogin = function() { return e.shouldShowBackupWarning() && !e.state.stopAskingForBackup } , this.handleRememberMe = function() { var t = !e.state.rememberMe; e.setState({ rememberMe: t }), L.a.changeSetting({ setting: "rememberMe", value: t }) } , this.handleWalletAutoLock = function(e) { var t = parseInt(e, 10); isNaN(t) && (t = 0), isNaN(t) || "number" != typeof t || L.a.changeSetting({ setting: "walletLockTimeout", value: t }) } }; st.defaultProps = { modalId: "unlock_wallet_modal2" }, st = Object(f.a)(st); var ct = function(e) { function t() { return nt(this, t), it(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return ot(t, n.a.Component), at(t, [{ key: "render", value: function() { return n.a.createElement(y.a, { stores: [X.a, o.a, Q.a, J.a, Pe.a, b.a], inject: { currentWallet: function() { return Q.a.getState().current_wallet }, walletNames: function() { return Q.a.getState().wallet_names }, dbWallet: function() { return J.a.getWallet() }, isLocked: function() { return J.a.isLocked() }, backup: function() { return Pe.a.getState() }, resolve: function() { return X.a.getState().resolve }, reject: function() { return X.a.getState().reject }, locked: function() { return X.a.getState().locked }, passwordLogin: function() { return X.a.getState().passwordLogin }, passwordAccount: function() { return o.a.getState().passwordAccount || "" }, walletLockTimeout: function() { return b.a.getState().settings.get("walletLockTimeout") } } }, n.a.createElement(st, this.props)) } }]), t }() , ut = (r(860), function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }()); var dt = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ut(t, [{ key: "_openLink", value: function() { window.open("https://www.google.com/chrome/browser/desktop/", "_blank").opener = null } }, { key: "render", value: function() { return n.a.createElement(de.Modal, { visible: this.props.visible, onCancel: this.props.hideModal, title: x.a.translate("app_init.browser"), footer: [n.a.createElement(de.Button, { key: "submit", type: "primary", onClick: this.props.hideModal }, x.a.translate("app_init.understand"))] }, n.a.createElement("div", { className: "grid-block vertical no-overflow" }, n.a.createElement(Y.a, { component: "p", content: "app_init.browser_text", wallet_name: Object(ge.m)() }), n.a.createElement("br", null), n.a.createElement("p", null, n.a.createElement("a", { className: "external-link", onClick: this._openLink }, "Google Chrome")))) } }]), t }() , pt = r(350) , ht = r(147) , mt = r(412) , ft = (r(1899), r(772)) , gt = r.n(ft) , _t = r(323) , bt = r(133) , yt = r(844) , vt = r.n(yt) , wt = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var kt = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.showScreenshot = function() { r.setState({ showScreen: !r.state.showScreen }) } , r.getLogs = function() { _t.a.getLogs().then(function(e) { r.setState({ logEntries: e.join("\n") }) }) } , r.state = r.getInitialState(e), r.showLog = r.showLog.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), wt(t, [{ key: "getInitialState", value: function() { return { loadingImage: !1, logEntries: [], logsCopySuccess: !1, showLog: !1, imageURI: null, showScreen: !1 } } }, { key: "shouldComponentUpdate", value: function(e, t) { var r = this , a = this.props.visible !== e.visible || this.state.imageURI !== t.imageURI || this.state.showLog !== t.showLog || this.state.showScreen !== t.showScreen; return e.visible && this.props.visible !== e.visible && (this.getLogs(), vt()(document.getElementById("content")).then(function(e) { return e.toDataURL("image/png") }).then(function(e) { return r.setState({ imageURI: e }) }, function(e) { console.error("Screenshot could not be captured", e), r.setState({ imageURI: "Screenshot could not be captured" }) })), a } }, { key: "onLogEntryChanged", value: function(e) { this.setState({ logEntries: [e.target.value] }) } }, { key: "showLog", value: function() { this.setState({ showLog: !this.state.showLog }) } }, { key: "render", value: function() { var e = this , t = this.state , r = t.logEntries , a = t.loadingImage , i = t.logsCopySuccess , o = t.showLog , s = t.showScreen; return n.a.createElement(de.Modal, { title: x.a.translate("modal.report.title"), visible: this.props.visible, onCancel: this.props.hideModal, footer: [n.a.createElement(de.Button, { key: "submit", onClick: this.props.hideModal }, x.a.translate("modal.ok"))] }, n.a.createElement("div", { className: "grid-block vertical no-overflow" }, n.a.createElement("p", null, n.a.createElement(Y.a, { content: "modal.report.explanatory_text_1" })), n.a.createElement("span", { className: "raw", style: { border: "1px solid darkgray", marginBottom: "1em" } }, n.a.createElement("div", { className: "right-label", style: { paddingBottom: "0em" } }, n.a.createElement(bt.a, { text: this.state.logEntries })), n.a.createElement(de.Tooltip, { title: this.state.showLog ? x.a.translate("modal.report.hideLog") : x.a.translate("modal.report.showLog") }, n.a.createElement("div", { onClick: this.showLog, style: { cursor: "pointer" } }, n.a.createElement("label", { className: "left-label", style: { paddingTop: "1em", paddingLeft: "0.5em", cursor: "pointer" } }, this.state.showLog ? "-" : "+", " ", n.a.createElement(Y.a, { content: "modal.report.lastLogEntries" })))), function() { if (o) return n.a.createElement("textarea", { id: "logsText", style: {}, rows: "20", value: r, onChange: e.onLogEntryChanged.bind(e) }) }()), n.a.createElement("span", { className: "raw", style: { border: "1px solid darkgray", marginBottom: "1em" } }, n.a.createElement("div", { className: "right-label", style: { paddingBottom: "0em" } }, null != this.state.imageURI ? n.a.createElement("img", { style: { height: "2.8em", marginTop: "0em", marginRight: "0em" }, src: this.state.imageURI }) : "Failed"), n.a.createElement("div", { className: "right-label", style: { paddingBottom: "0em", paddingTop: "1em", paddingRight: "0.5em" } }, n.a.createElement(Y.a, { content: "modal.report.copyScreenshot" })), n.a.createElement(de.Tooltip, { title: this.state.showScreen ? x.a.translate("modal.report.hideScreenshot") : x.a.translate("modal.report.takeScreenshot") }, n.a.createElement("div", { onClick: this.showScreenshot, style: { cursor: "pointer" } }, n.a.createElement("label", { className: "left-label", style: { paddingTop: "1em", paddingLeft: "0.5em", cursor: "pointer" } }, this.state.showScreen ? "-" : "+", " ", n.a.createElement(Y.a, { content: "modal.report.screenshot" })))), function() { if (null != e.state.imageURI && s) return e.state.imageURI.length > 100 ? n.a.createElement("img", { src: e.state.imageURI }) : n.a.createElement("text", null, "this.state.imageURI") }()), n.a.createElement("br", null), n.a.createElement("p", null, n.a.createElement(Y.a, { content: "modal.report.explanatory_text_2" }), n.a.createElement("br", null), "  ", n.a.createElement("a", { href: "https://github.com/bitshares/bitshares-ui/issues", target: "_blank", style: { textAlign: "center", width: "100%" }, className: "external-link" }, "https://github.com/bitshares/bitshares-ui/issues"), n.a.createElement("br", null), n.a.createElement(Y.a, { content: "modal.report.explanatory_text_3" }), n.a.createElement("br", null), n.a.createElement("br", null), n.a.createElement(Y.a, { content: "modal.report.explanatory_text_4" }), n.a.createElement("br", null), "  ", n.a.createElement("a", { href: "https://hackthedex.io", target: "_blank", style: { textAlign: "center", width: "100%" }, className: "external-link" }, "https://hackthedex.io")), a && n.a.createElement("div", { style: { textAlign: "center" } }, n.a.createElement(_.a, { type: "three-bounce" })), i && n.a.createElement("p", null, n.a.createElement(Y.a, { content: "modal.report.copySuccess" })))) } }]), t }() , xt = r(101) , St = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var At = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), St(t, [{ key: "confirmClicked", value: function(e, t) { var r = this; t.preventDefault(), setTimeout(function() { r.props.hideModal() }, 500), e() } }, { key: "render", value: function() { var e = this , t = []; return this.props.choices.map(function(r, a) { t.push(n.a.createElement(de.Button, { type: "primary", key: a, onClick: e.confirmClicked.bind(e, r.callback) }, x.a.translate(r.translationKey))) }), t.push(n.a.createElement(de.Button, { key: "cancel", onClick: this.props.hideModal }, x.a.translate("modal.cancel"))), n.a.createElement(de.Modal, { width: 600, title: x.a.translate("connection.title_out_of_sync"), visible: this.props.visible, onCancel: this.props.hideModal, footer: t, id: this.props.modalId, overlay: !0 }, n.a.createElement("div", { className: "grid-block vertical" }, this.props.content, n.a.Children.map(this.props.children, function(e, t) { var r = {}; return r.key = t + "", n.a.cloneElement(e, r) }))) } }]), t }(); At.propTypes = { choices: C.a.array.isRequired, content: C.a.object }, At.defaultProps = { content: null }; var Et = At , Tt = r(566) , Ct = r.n(Tt) , zt = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , Bt = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function Ot(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } function Pt(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function jt(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } var It = function(e) { function t(e) { Ot(this, t); var r = Pt(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { hasOutOfSyncModalBeenShownOnce: !1, isOutOfSyncModalVisible: !1, isReportModalVisible: !1, isAccessSettingsPopoverVisible: !1, showConnectingPopup: !1, showAccessSettingsTooltip: !1 }, r.getNode = r.getNode.bind(r), r._showOutOfSyncModal = r._showOutOfSyncModal.bind(r), r._hideOutOfSyncModal = r._hideOutOfSyncModal.bind(r), r._showReportModal = r._showReportModal.bind(r), r._hideReportModal = r._hideReportModal.bind(r), r._showAccessSettingsTooltip = r._showAccessSettingsTooltip.bind(r), r } return jt(t, n.a.Component), Bt(t, [{ key: "_showOutOfSyncModal", value: function() { this.setState({ isOutOfSyncModalVisible: !0 }) } }, { key: "_hideOutOfSyncModal", value: function() { this.setState({ isOutOfSyncModalVisible: !1 }) } }, { key: "_showReportModal", value: function() { this.setState({ isReportModalVisible: !0 }) } }, { key: "_hideReportModal", value: function() { this.setState({ isReportModalVisible: !1 }) } }, { key: "componentDidMount", value: function() { this.checkNewVersionAvailable.call(this), this.downloadLink = "https://bitshares.org/download"; var e = this._ensureConnectivity.bind(this); Ct.a.on("wakeup", function() { e() }) } }, { key: "shouldComponentUpdate", value: function(e, t) { return t.isOutOfSyncModalVisible !== this.state.isOutOfSyncModalVisible || t.isReportModalVisible !== this.state.isReportModalVisible || e.dynGlobalObject !== this.props.dynGlobalObject || e.backup_recommended !== this.props.backup_recommended || e.rpc_connection_status !== this.props.rpc_connection_status || e.synced !== this.props.synced || t.isAccessSettingsPopoverVisible !== this.state.isAccessSettingsPopoverVisible || t.showAccessSettingsTooltip !== this.state.showAccessSettingsTooltip } }, { key: "checkNewVersionAvailable", value: function() { fetch("https://api.github.com/repos/bitshares/bitshares-ui/releases/latest").then(function(e) { return e.json() }).then(function(e) { var t = String(e.tag_name) , r = String("3.1.190618-rc1"); -1 !== "3.1.190618-rc1".indexOf("rc") || t === r || this.setState({ newVersion: r }) } .bind(this)) } }, { key: "downloadVersion", value: function() { var e = document.createElement("a"); e.href = this.downloadLink, e.target = "_blank", e.rel = "noopener noreferrer", e.style = "display: none;", document.body.appendChild(e), e.click(), document.body.removeChild(e) } }, { key: "launchIntroJS", value: function() { var e = r(4) , t = document.querySelectorAll("[data-intro]") , a = b.a.getState().settings.get("themes"); 0 == t.length ? this.props.history.push("/help") : gt.a.introJs().setOptions({ tooltipClass: a, highlightClass: a, showBullets: !1, hideNext: !0, hidePrev: !0, nextLabel: e.translate("walkthrough.next_label"), prevLabel: e.translate("walkthrough.prev_label"), skipLabel: e.translate("walkthrough.skip_label"), doneLabel: e.translate("walkthrough.done_label") }).start() } }, { key: "getNodeIndexByURL", value: function(e) { var t = this.props.defaults.apiServer.findIndex(function(t) { return !!t && !!t.url && t.url === e }); return -1 === t ? null : t } }, { key: "getCurrentNodeIndex", value: function() { var e = this.props; return this.getNodeIndexByURL.call(this, e.currentNode) } }, { key: "getNode", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { url: "", operator: "" }; if (!e || !e.url) throw "Node is undefined of has no url"; var t = this.props , r = -1 !== e.url.indexOf("testnet") , a = e.operator + " " + !!e.location ? e.location : ""; return "country"in e && (a = e.country + (a ? " - " + a : "")), { name: a, url: e.url, ping: e.url in t.apiLatencies ? t.apiLatencies[e.url] : -1, testNet: r } } }, { key: "getBlockTime", value: function() { var e = i.ChainStore.getObject("2.1.0"); if (e) { var t = e.get("time"); return /Z$/.test(t) || (t += "Z"), new Date(t) } throw new Error("Blocktime not available right now") } }, { key: "getBlockTimeDelta", value: function() { try { var e = (this.getBlockTime().getTime() + i.ChainStore.getEstimatedChainTimeOffset()) / 1e3 , t = (new Date).getTime() / 1e3; return Math.abs(t - e) } catch (e) { return console.log(e), -1 } } }, { key: "_closeOutOfSyncModal", value: function() { this._hideOutOfSyncModal() } }, { key: "_ensureConnectivity", value: function() { var e = this; if (Ct.a.now("active")) if (!("closed" === this.props.rpc_connection_status)) if (this.props.synced) setTimeout(function() { e._closeOutOfSyncModal(), e.setState({ hasOutOfSyncModalBeenShownOnce: !1 }) }, 50); else { var t = this._getForceReconnectAfterSeconds(); setTimeout(function() { e.props.synced || e._triggerReconnect() }, 1e3 * t), this.getBlockTimeDelta() > 3 && (console.log("Your node is out of sync since " + this.getBlockTimeDelta() + " seconds, waiting 10 seconds, then we notify you"), setTimeout(function() { e.getBlockTimeDelta() > 3 && !1 === e.state.hasOutOfSyncModalBeenShownOnce && (e.setState({ hasOutOfSyncModalBeenShownOnce: !0 }), e._showOutOfSyncModal()) }, 1e4)) } else console.log("Your connection was lost"), setTimeout(function() { e._triggerReconnect() }, 50) } }, { key: "_getForceReconnectAfterSeconds", value: function() { return 60 } }, { key: "_triggerReconnect", value: function() { var e = this; if ((!(!(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]) || xt.b.isAutoSelection()) && !xt.b.isTransitionInProgress()) { this._closeOutOfSyncModal(), console.log("Trying to reconnect ..."); var t = xt.b.willTransitionTo(!1); t && setTimeout(function() { e.forceUpdate() }, 10), t.then(function() { console.log("... done trying to reconnect") }) } } }, { key: "_showAccessSettingsTooltip", value: function(e) { this.state.isAccessSettingsPopoverVisible ? this.setState({ showAccessSettingsTooltip: !1 }) : this.setState({ showAccessSettingsTooltip: e }) } }, { key: "render", value: function() { var e = this , t = this.state , r = this.props , a = r.synced , i = !("closed" === this.props.rpc_connection_status) , o = this.props.defaults.apiServer , s = this.getCurrentNodeIndex.call(this) , l = this.getNode(o[s] || o[0]); if ("wss://fake.automatic-selection.com" == l.url) { var c = r.activeNode; l = (s = this.getNodeIndexByURL.call(this, c)) ? this.getNode(o[s]) : this.getNode(o[0]) } var u = this.props.dynGlobalObject.get("head_block_number") , d = "3.1.190618-rc1".match(/2\.0\.(\d\w+)/) , p = d ? "." + d[1] : " 3.1.190618-rc1" , h = "3.1.190618-rc1".match(/-rc[0-9]$/); h && (p += h[0]); return this._ensureConnectivity(), n.a.createElement("div", null, !!xt.b && xt.b.isTransitionInProgress() && n.a.createElement(_.a, { loadingText: xt.b.getTransitionTarget() }), n.a.createElement(Et, { showModal: this._showOutOfSyncModal, hideModal: this._hideOutOfSyncModal, visible: this.state.isOutOfSyncModalVisible, choices: [{ translationKey: "connection.manual_reconnect", callback: function() { e.props.synced || e._triggerReconnect(!1) } }, { translationKey: "connection.manual_ping", callback: function() { e.props.synced || e.onAccess() } }] }, n.a.createElement("div", null, n.a.createElement(Y.a, { content: "connection.out_of_sync", out_of_sync_seconds: parseInt(this.getBlockTimeDelta()) }), n.a.createElement("br", null), n.a.createElement("br", null), n.a.createElement(Y.a, { content: "connection.want_to_reconnect" }), xt.b.isAutoSelection() && n.a.createElement(Y.a, { content: "connection.automatic_reconnect", reconnect_in_seconds: parseInt(this._getForceReconnectAfterSeconds()) }))), n.a.createElement("div", { className: "show-for-medium grid-block shrink footer" }, n.a.createElement("div", { className: "align-justify grid-block" }, n.a.createElement("div", { className: "grid-block" }, n.a.createElement("div", zt({ className: "logo", style: { fontSize: t.newVersion ? "0.9em" : "1em", cursor: t.newVersion ? "pointer" : "normal", marginTop: t.newVersion ? "-5px" : "0px", overflow: "hidden" }, onClick: t.newVersion ? this.downloadVersion.bind(this) : null }, {}), t.newVersion && n.a.createElement(V.a, { name: "download", title: x.a.translate("icons.download", { wallet_name: Object(ge.m)() }), style: { marginRight: "20px", marginTop: "10px", fontSize: "1.35em", display: "inline-block" } }), n.a.createElement("span", { style: { display: "inline-block", verticalAlign: "top" } }, n.a.createElement(Y.a, { content: "footer.title", wallet_name: Object(ge.m)() }), n.a.createElement("span", { className: "version" }, p)), t.newVersion && n.a.createElement(Y.a, { content: "footer.update_available", style: { color: "#FCAB53", position: "absolute", top: "8px", left: "36px" } }))), !!xt.b && xt.b.isBackgroundPingingInProgress() && n.a.createElement("div", { onClick: function() { e._showNodesPopover() }, style: { cursor: "pointer" }, className: "grid-block shrink txtlabel" }, xt.b.getBackgroundPingingTarget(), n.a.createElement("div", { style: { marginTop: "0.4rem", marginLeft: "0.5rem" } }, n.a.createElement(_.a, { type: "circle" })), "   "), a ? null : n.a.createElement("div", { className: "grid-block shrink txtlabel cancel" }, n.a.createElement(Y.a, { content: "footer.nosync" }), "   "), i ? null : n.a.createElement("div", { className: "grid-block shrink txtlabel error" }, n.a.createElement(Y.a, { content: "footer.connection" }), "   "), this.props.backup_recommended ? n.a.createElement("span", null, n.a.createElement("div", { className: "grid-block" }, n.a.createElement(de.Tooltip, { overlay: n.a.createElement("div", null, "Please understand that you are responsible for making your own backup…") }, n.a.createElement("a", { className: "shrink txtlabel facolor-alert", onClick: this.onBackup.bind(this) }, n.a.createElement(Y.a, { content: "footer.backup" }))), "  ")) : null, this.props.backup_brainkey_recommended ? n.a.createElement("span", null, n.a.createElement("div", { className: "grid-block" }, n.a.createElement("a", { className: "grid-block shrink txtlabel facolor-alert", onClick: this.onBackupBrainkey.bind(this) }, n.a.createElement(Y.a, { content: "footer.brainkey" })), "  ")) : null, u ? n.a.createElement("div", { className: "grid-block shrink" }, n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.nodes_popup"), mouseEnterDelay: .5, onVisibleChange: this._showAccessSettingsTooltip, visible: this.state.showAccessSettingsTooltip }, n.a.createElement("div", { onClick: function() { e._showNodesPopover() }, style: { position: "relative", cursor: "pointer" } }, n.a.createElement("div", { className: "footer-status" }, i && l.testNet && n.a.createElement("span", { className: "testnet" }, n.a.createElement(Y.a, { content: "settings.testnet_nodes" }), " "), i ? n.a.createElement("span", { className: "success" }, l.name) : n.a.createElement("span", { className: "warning" }, n.a.createElement(Y.a, { content: "footer.disconnected" }))), n.a.createElement("div", { className: "footer-block" }, n.a.createElement("span", null, n.a.createElement("span", { className: "footer-block-title" }, n.a.createElement(Y.a, { content: "footer.latency" })), " ", i && l.ping ? parseInt(l.ping) + "ms" : "-", " / ", n.a.createElement("span", { className: "footer-block-title" }, n.a.createElement(Y.a, { content: "footer.block" })), " #", u)))), n.a.createElement("div", { className: "grid-block" }, n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.debug_report"), placement: "topRight", mouseEnterDelay: .5 }, n.a.createElement("div", { className: "introjs-launcher", onClick: function(t) { e._showReportModal(t) } }, n.a.createElement(Y.a, { content: "modal.report.button" }))), n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.self_help"), placement: "topRight", mouseEnterDelay: .5 }, n.a.createElement("div", { className: "introjs-launcher", onClick: function() { e.launchIntroJS() } }, n.a.createElement(Y.a, { content: "global.help" }))))) : n.a.createElement("div", { className: "grid-block shrink" }, n.a.createElement(Y.a, { content: "footer.loading" })))), n.a.createElement("div", { onMouseLeave: function() { e.setState({ isAccessSettingsPopoverVisible: !1 }) }, className: "node-access-popup", style: { display: this.state.isAccessSettingsPopoverVisible ? "" : "none" } }, n.a.createElement(mt.a, { nodes: this.props.defaults.apiServer, popup: !0 }), n.a.createElement("div", { style: { paddingTop: 15 } }, n.a.createElement("a", { onClick: this.onAccess.bind(this) }, n.a.createElement(Y.a, { content: "footer.advanced_settings" })))), n.a.createElement("div", { className: "introjs-launcher show-for-small-only", onClick: function() { e.launchIntroJS() } }, n.a.createElement(Y.a, { content: "global.help" })), n.a.createElement(kt, { showModal: this._showReportModal, hideModal: this._hideReportModal, visible: this.state.isReportModalVisible, refCallback: function(t) { t && (e.reportModal = t) } })) } }, { key: "_showNodesPopover", value: function() { this.state.showAccessSettingsTooltip && this.state.isAccessSettingsPopoverVisible, this.setState({ isAccessSettingsPopoverVisible: !this.state.isAccessSettingsPopoverVisible, showAccessSettingsTooltip: !1 }) } }, { key: "onBackup", value: function() { this.props.history.push("/wallet/backup/create") } }, { key: "onBackupBrainkey", value: function() { this.props.history.push("/wallet/backup/brainkey") } }, { key: "onPopup", value: function() { this.setState({ isAccessSettingsPopoverVisible: !this.state.isAccessSettingsPopoverVisible }) } }, { key: "onAccess", value: function() { L.a.changeViewSetting({ activeSetting: 6 }), this.props.history.push("/settings/access") } }]), t }(); It.propTypes = { dynGlobalObject: v.a.ChainObject.isRequired, synced: C.a.bool.isRequired }, It.defaultProps = { dynGlobalObject: "2.1.0" }, It = Object(w.a)(It); var Mt = function(e) { function t() { return Ot(this, t), Pt(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return jt(t, a["Component"]), Bt(t, [{ key: "render", value: function() { var e = J.a.getWallet(); return n.a.createElement(y.a, { stores: [pt.a, ht.a, J.a, b.a], inject: { defaults: function() { return b.a.getState().defaults }, apiLatencies: function() { return b.a.getState().apiLatencies }, currentNode: function() { return b.a.getState().settings.get("apiServer") }, activeNode: function() { return b.a.getState().settings.get("activeNode") }, backup_recommended: function() { return e && (!e.backup_date || pt.a.get("backup_recommended")) }, rpc_connection_status: function() { return ht.a.getState().rpc_connection_status } } }, n.a.createElement(It, this.props)) } }]), t }() , Nt = r(87) , Rt = r.n(Nt) , qt = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , Dt = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Lt = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2250)) }, loading: _.a }) , Ft = (function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } (function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } )(t, n.a.Component), Dt(t, [{ key: "hasWallet", value: function() { return !!J.a.getWallet() } }, { key: "renderForWallet", value: function() { return n.a.createElement("div", null, n.a.createElement(Y.a, { content: "migration.text_1", component: "h4" }), n.a.createElement(Y.a, { content: "migration.text_2", component: "p", unsafe: !0, wallet_url: Object(ge.n)() })) } }, { key: "renderForCloud", value: function() { return n.a.createElement("div", null, n.a.createElement(Y.a, { content: "migration.text_3", unsafe: !0, component: "p", wallet_url: Object(ge.n)() })) } }, { key: "render", value: function() { return n.a.createElement("div", { className: "grid-frame" }, n.a.createElement("div", { className: "grid-block vertical", style: { paddingBottom: "3rem" } }, n.a.createElement("div", { className: "grid-content large-offset-2 large-8 shrink" }, n.a.createElement(Y.a, { content: "migration.title", component: "h2" }), n.a.createElement(Y.a, { content: "migration.announcement_1", unsafe: !0, component: "p" }), n.a.createElement("p", null, n.a.createElement("a", { href: Object(ge.n)(), target: "blank", rel: "noopener noreferrer" }, Object(ge.n)())), this.hasWallet() ? this.renderForWallet() : this.renderForCloud()), this.hasWallet() ? n.a.createElement(Lt, qt({}, this.props, { deprecated: !0 })) : null)) } }]) }(), function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }()); var Ut = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Ft(t, [{ key: "render", value: function() { var e = this.props; return n.a.createElement("div", { id: "incognito" }, n.a.createElement("div", { className: "dismiss", onClick: e.onClickIgnore }, "×"), n.a.createElement("strong", null, n.a.createElement(Y.a, { content: "incognito.mode" }), " "), n.a.createElement(Y.a, { content: "incognito.warning" })) } }]), t }() , Wt = r(448) , Ht = r(134) , Kt = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Vt = function() { function e() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e) } return Kt(e, null, [{ key: "GetTitleByPath", value: function(e) { var t = this , r = "BitShares" , a = null; return e.split("/").forEach(function(e) { "" != e && (r += " - ", "account" === a ? r += e : "market" === a && e.match(/_/) ? r += e.replace("_", " / ") : null != t.GetLocaleKey(e) ? r += x.a.translate(t.GetLocaleKey(e)) : -1 !== e.match(/-|_/) ? e.split(/-|_/).forEach(function(e) { r += e.charAt(0).toUpperCase() + e.substring(1) + " " }) : r += e.charAt(0).toUpperCase() + e.substring(1), a = e) }), r } }, { key: "GetLocaleKey", value: function(e) { switch (e) { case "access": return "settings.access"; case "account": return "header.account"; case "accounts": return "explorer.accounts.title"; case "asset": return "explorer.asset.title"; case "assets": return "explorer.assets.title"; case "backup": return "settings.backup"; case "block": return "explorer.block.title"; case "blocks": return "explorer.blocks.title"; case "committee-members": return "explorer.committee_members.title"; case "dashboard": return "header.dashboard"; case "faucet_address": return "settings.faucet_address"; case "market": return "exchange.market"; case "markets": return "markets.title"; case "password": return "settings.password"; case "settings": return "header.settings"; case "reset": return "settings.reset"; case "restore": return "settings.restore"; case "signedmessages": return "account.signedmessages.title"; case "voting": return "account.voting"; case "wallet": return "wallet.title"; case "witnesses": return "explorer.witnesses.title"; default: return null } } }]), e }() , Gt = 4.5 , Yt = r(107) , Jt = r(688) , Xt = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }() , Zt = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } ; var Qt = function(e, t) { return Zt({}, Object.values(e).filter(function(e) { return t.indexOf(e.content) })) } , $t = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { news: {}, hiddenNewsHeadlineSize: 0 }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Xt(t, [{ key: "componentDidMount", value: function() { this.getNewsThroughAsset(Object(ge.h)()) } }, { key: "shouldComponentUpdate", value: function(e, t) { return Object.keys(this.state.news).length !== Object.keys(t.news).length || e.hiddenNewsHeadline.size !== this.props.hiddenNewsHeadline.size } }, { key: "getNewsFromGitHub", value: function() { var e = this; fetch("https://api.github.com/repos/blockchainprojects/bitshares-ui/contents/news.json?ref=news_feed_on_the_very_top").then(function(e) { return e.json() }).then(function(t) { var r = Qt(JSON.parse(atob(t.content)), e.props.hiddenNewsHeadline); e.setState({ news: r }) } .bind(this)) } }, { key: "getNewsThroughAsset", value: function(e) { var t = this; Object(i.FetchChainObjects)(i.ChainStore.getAsset, e).then(function(e) { var r = []; e.forEach(function(e) { if (e) try { e = e.toJS(); var t = Yt.a.parseDescription(e.options.description); t.main && (t = t.main.split("This asset is used to display notifications for the BitShares UI")).length > 1 && t[1] && r.push(JSON.parse(t[1])) } catch (t) { console.error("Head feed could not be parsed from asset", e) } }); var a = Qt(r, t.props.hiddenNewsHeadline); t.setState({ news: a }) }) } }, { key: "onClose", value: function(e) { L.a.hideNewsHeadline(e) } }, { key: "render", value: function() { var e = this , t = this.state.news; if (!Object.keys(t).length) return null; var r = Object.values(t).reduce(function(t, r, a) { var i = new Date , o = "critical" === r.type ? "error" : r.type , s = new Date(r.begin_date.split(".").reverse()) , l = new Date(r.end_date.split(".").reverse()); return i >= s && i <= l && (t = [].concat(function(e) { if (Array.isArray(e)) { for (var t = 0, r = Array(e.length); t < e.length; t++) r[t] = e[t]; return r } return Array.from(e) }(t), [n.a.createElement("div", { className: "git-info", key: "git-alert" + a }, n.a.createElement(de.Alert, { type: o, message: r.content, banner: !0 }), "info" === o || "warning" === o ? n.a.createElement(de.Icon, { type: "close", className: "close-icon", onClick: e.onClose.bind(e, r.content) }) : null)])), t }, []); return n.a.createElement(Jt.a, { autoplaySpeed: 15e3, autoplay: !0, dots: !1 }, r) } }], [{ key: "getDerivedStateFromProps", value: function(e, t) { return e.hiddenNewsHeadline.size !== t.hiddenNewsHeadlineSize ? { news: Qt(t.news, e.hiddenNewsHeadline), hiddenNewsHeadlineSize: e.hiddenNewsHeadline.size } : null } }]), t }() , er = $t = Object(q.a)($t, { listenTo: function() { return [b.a] }, getProps: function() { return { hiddenNewsHeadline: b.a.getState().hiddenNewsHeadline } } }) , tr = r(2258) , rr = r(2239) , ar = r(2254) , nr = r(579) , ir = r(593) , or = r(160) , sr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var lr = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isInputActive: !1 }, r.handleBlur = r.handleBlur.bind(r), r.handleFocus = r.handleFocus.bind(r), r.handleInputChange = r.handleInputChange.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), sr(t, [{ key: "componentDidUpdate", value: function() { this.props.focus && this.refs.input.focus() } }, { key: "handleBlur", value: function() { this.setState({ isInputActive: !1 }) } }, { key: "handleFocus", value: function() { this.setState({ isInputActive: !0 }) } }, { key: "handleInputChange", value: function(e) { this.props.onChange(e.target.value) } }, { key: "isAccountScammer", value: function() { var e = or.a.getAccount(this.props.value); return !(!e || !e.get) && Me.a.isKnownScammer(e.get("name")) } }, { key: "getAccountStatus", value: function() { var e = or.a.getAccount(this.props.value); if (e && e.get) { if (this.isAccountScammer()) return x.a.translate("account.member.suspected_scammer"); var t = or.a.getAccountMemberStatus(e); return x.a.translate("account.member." + t) + " #" + e.get("id").substring(4) } return null } }, { key: "isAccountFound", value: function() { return !!or.a.getAccount(this.props.value) } }, { key: "getValidateStatus", value: function() { return this.state.isInputActive || !this.props.value ? "" : this.isAccountFound() ? "success" : "error" } }, { key: "getHelp", value: function() { return this.state.isInputActive || !this.props.value ? "" : this.isAccountFound() ? "" : x.a.translate("account.errors.unknown") } }, { key: "getPlaceholder", value: function() { return this.props.placeholder ? x.a.translate(this.props.placeholder) : "" } }, { key: "input", value: function() { var e = this.props.value , t = this.handleInputChange; return n.a.createElement(de.Input, { ref: "input", placeholder: this.getPlaceholder(), value: e, onChange: t, onBlur: this.handleBlur, onFocus: this.handleFocus }) } }, { key: "labelComponent", value: function() { var e = this , t = this.getAccountStatus(); return n.a.createElement(de.Form.Item, { style: { textAlign: "left" }, label: n.a.createElement("span", { className: "account-input-style-guide--label" }, x.a.translate(e.props.label), n.a.createElement("span", { className: "account-input-style-guide--account-status " + function() { if (e.isAccountScammer()) return "account-input-style-guide--account-status--scammer" }() }, t)), help: this.getHelp(), validateStatus: this.getValidateStatus() }, this.input()) } }, { key: "simpleComponent", value: function() { this.input() } }, { key: "render", value: function() { return n.a.createElement("div", { className: "account-input-style-guide" }, this.props.label ? this.labelComponent() : this.simpleComponent()) } }]), t }() , cr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var ur = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return r.state = r.getInitialState(e), r.handlePasswordChange = r.handlePasswordChange.bind(r), r.onPasswordEnter = r.onPasswordEnter.bind(r), r.accountChanged = r.accountChanged.bind(r), r.onAccountChanged = r.onAccountChanged.bind(r), r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), cr(t, [{ key: "getInitialState", value: function() { return { password: "", passwordError: null, accountName: (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props).passwordAccount, account: null, passwordVisible: !1 } } }, { key: "componentDidUpdate", value: function(e) { ae.a.rebuild(), !e.active && this.props.active && this.state.accountName && this.refs.password.focus() } }, { key: "componentWillReceiveProps", value: function(e) { e.passwordAccount && !this.state.accountName && this.setState({ accountName: e.passwordAccount }) } }, { key: "shouldComponentUpdate", value: function(e, t) { return !S.a.are_equal_shallow(e, this.props) || !S.a.are_equal_shallow(t, this.state) } }, { key: "handlePasswordChange", value: function(e) { this.setState({ password: e.target.value }) } }, { key: "onPasswordEnter", value: function(e) { var t = this; e && e.preventDefault(); var r = this.state.password , a = this.state.accountName; return this.setState({ passwordError: null }), J.a.validatePassword(r, !0, a), setTimeout(function() { if (J.a.validatePassword(r, !0, a), J.a.isLocked()) return t.setState({ passwordError: !0 }), !1; t.setState({ password: "" }), D.a.setPasswordAccount(a), L.a.changeSetting({ setting: "passwordLogin", value: !0 }), t.props.history.push("/"), Z.a.change() }, 550), !1 } }, { key: "onAccountChanged", value: function(e) { this.setState({ account: e, error: null }) } }, { key: "accountChanged", value: function(e) { if (e) { var t = or.a.getAccount(e); this.setState({ accountName: e, error: null, account: t }) } else this.setState({ account: null, accountName: null }) } }, { key: "reset", value: function() { this.setState(this.getInitialState()) } }, { key: "hideTooltip", value: function() { document.getElementById("password-error").classList.remove("custom-tooltip"), ae.a.hide() } }, { key: "renderButtons", value: function() { return n.a.createElement(de.Form.Item, { style: { textAlign: "center" } }, this.props.active ? n.a.createElement(de.Button, { onClick: this.onPasswordEnter, type: "primary" }, x.a.translate("login.loginButton")) : n.a.createElement(de.Button, null, x.a.translate("registration.select"))) } }, { key: "renderTooltip", value: function() { var e = this; return n.a.createElement(ae.a, { id: "password-error", className: "custom-tooltip text-left" }, n.a.createElement("div", { className: "tooltip-text" }, n.a.createElement(Y.a, { content: "tooltip.login-tooltip.incorrectPassword.begin" }), n.a.createElement(Y.a, { onClick: this.props.goToWalletModel, className: "active-upload-text without-bin cursor-pointer", content: "tooltip.login-tooltip.incorrectPassword.model" }), n.a.createElement(Y.a, { content: "tooltip.login-tooltip.incorrectPassword.end" }), n.a.createElement("span", { onClick: function() { return e.hideTooltip() }, className: "close-button" }, "×"))) } }, { key: "renderNameInput", value: function() { var e = this.state.accountName , t = this.props.active; return n.a.createElement(lr, { label: "account.name", value: e, onChange: this.accountChanged, placeholder: "account.name", size: 60, hideImage: !0, focus: t && !this.state.accountName }) } }, { key: "renderPasswordInput", value: function() { var e = this.state , t = e.passwordError , r = e.passwordVisible; return n.a.createElement(de.Form.Item, { label: "Password", help: null !== t ? n.a.createElement(Y.a, { "data-for": "password-error", "data-tip": !0, "data-place": "bottom", "data-effect": "solid", "data-delay-hide": 500, content: "wallet.pass_incorrect" }) : null, validateStatus: null !== t ? "error" : "" }, n.a.createElement(de.Input, { ref: "password", placeholder: x.a.translate("wallet.enter_password"), style: { width: "100%" }, value: this.state.password, onChange: this.handlePasswordChange, type: r ? "text" : "password", className: (t ? "input-warning" : "") + " input create-account-input" })) } }, { key: "render", value: function() { return n.a.createElement("div", { onClick: this.props.onChangeActive, className: "account-block" }, n.a.createElement("div", { className: "overflow-bg-block show-for-small-only" }, n.a.createElement("span", { className: "content" })), n.a.createElement(de.Form, { layout: "vertical", className: this.props.active ? "" : "display-none", style: { textAlign: "left" } }, this.renderNameInput(), this.renderPasswordInput(), this.renderButtons()), this.renderTooltip()) } }]), t }(); ur.propTypes = { active: C.a.bool.isRequired, onChangeActive: C.a.func.isRequired, goToWalletModel: C.a.func.isRequired }; var dr = function(e) { return n.a.createElement(y.a, { stores: [o.a], inject: { passwordAccount: function() { return o.a.getState().passwordAccount || "" } } }, n.a.createElement(ur, e)) } , pr = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , hr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var mr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { backupPassword: "", formError: "" }, e.onPassword = e.onPassword.bind(e), e.formChange = e.formChange.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), hr(t, [{ key: "componentDidUpdate", value: function(e) { this.props.active && this.refs.passwordInput && this.refs.passwordInput.focus && this.refs.passwordInput.focus(), !e.currentAccount && this.props.currentAccount && this.props.history.push("/") } }, { key: "onRestore", value: function() { var e = this.state.backupPassword; J.a.validatePassword(e || "", !0), Z.a.change(), L.a.changeSetting({ setting: "passwordLogin", value: !1 }), Ie.c.reset() } }, { key: "onPassword", value: function(e) { var t = this; e && e.preventDefault(); var r = i.PrivateKey.fromSeed(this.state.backupPassword || "") , a = this.props.backup , n = a.contents , o = a.name.split(".")[0]; Object(Ie.d)(r.toWif(), n, o).then(function() { return je.a.setWallet(o).then(function() { t.onRestore(o) }) }).catch(function(e) { console.error("Error verifying wallet " + t.props.backup.name, e, e.stack), "invalid_decryption_key" === e ? t.setState({ formError: x.a.translate("notifications.invalid_password") }) : t.setState({ formError: e }), t.setState({ passwordError: !0 }) }) } }, { key: "formChange", value: function(e) { var t = {}; t[e.target.id] = e.target.value, this.setState(pr({}, t, { formError: "" })) } }, { key: "renderButtons", value: function() { return n.a.createElement("div", { className: "button-group" }, this.props.active ? n.a.createElement(de.Button, { onClick: this.onPassword, type: "primary" }, x.a.translate("login.loginButton")) : n.a.createElement(de.Button, null, x.a.translate("registration.select"))) } }, { key: "render", value: function() { var e = this; return n.a.createElement("div", null, n.a.createElement("div", { className: (this.props.active ? "" : "display-none") + " password-block" }, n.a.createElement(de.Form, { layout: "vertical", style: { textAlign: "left" }, onSubmit: this.onPassword }, n.a.createElement(de.Form.Item, { label: x.a.translate("settings.password"), validateStatus: e.state.formError ? "error" : "", help: e.state.formError ? e.state.formError : "" }, n.a.createElement(de.Input, { className: (this.state.passwordError ? "input-warning" : this.state.backupPassword ? "input-success" : "") + " input create-account-input", type: this.state.passwordVisible ? "text" : "password", placeholder: x.a.translate("wallet.enter_password"), id: "backupPassword", onChange: this.formChange, value: this.state.backupPassword, ref: "passwordInput", autoFocus: !0 }))), this.state.passwordVisible ? n.a.createElement("span", { className: "no-width eye-block", onClick: function() { return e.setState({ passwordVisible: !1 }) } }, n.a.createElement(V.a, { name: "eye-invisible", className: "eye-icon icon-opacity" })) : n.a.createElement("span", { className: "no-width eye-block", onClick: function() { return e.setState({ passwordVisible: !0 }) } }, n.a.createElement(V.a, { name: "eye-visible", className: "eye-icon icon-opacity" }))), this.renderButtons()) } }]), t }(); mr.propTypes = { active: C.a.bool, currentAccount: C.a.string, backup: C.a.object, wallet: C.a.object, history: C.a.object.isRequired }, mr.defaultProps = { active: !1, currentAccount: "", backup: {}, wallet: {} }; var fr = { listenTo: function() { return [Q.a, Pe.a, o.a] }, getProps: function() { return { wallet: Q.a.getState(), backup: Pe.a.getState(), currentAccount: o.a.getState().currentAccount || o.a.getState().passwordAccount } } } , gr = Object(q.a)(mr, fr) , _r = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var br = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e)); return r.state = { isDrop: !1 }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), _r(t, [{ key: "componentDidMount", value: function() { Ie.c.reset() } }, { key: "onFileUpload", value: function(e, t) { var r = t || e.target.files[0]; Ie.c.incommingWebFile(r), this.forceUpdate() } }, { key: "onDropBinFile", value: function(e) { e.preventDefault(), this.onFileUpload(e, e.dataTransfer.files[0]) } }, { key: "onPlaceFile", value: function(e) { this.setState({ isDrop: e }) } }, { key: "renderTooltip", value: function() { return n.a.createElement(ae.a, { id: "without-bin", className: "custom-tooltip text-left", globalEventOff: "click" }, n.a.createElement("div", { className: "tooltip-text", onClick: function(e) { return e.stopPropagation() } }, n.a.createElement(Y.a, { content: "tooltip.login-tooltip.withoutBinFileBlock.begin" }), n.a.createElement(R.a, { to: "/create-wallet-brainkey" }, n.a.createElement(Y.a, { component: "u", className: "active-upload-text cursor-pointer", content: "tooltip.login-tooltip.withoutBinFileBlock.brainkey" })), n.a.createElement(Y.a, { content: "tooltip.login-tooltip.withoutBinFileBlock.middle" }), n.a.createElement(Y.a, { onClick: this.props.goToAccountModel, className: "without-bin cursor-pointer", content: "tooltip.login-tooltip.withoutBinFileBlock.model" }), n.a.createElement(Y.a, { content: "tooltip.login-tooltip.withoutBinFileBlock.end" }), n.a.createElement("span", { onClick: function() { return ae.a.hide() }, className: "close-button" }, "×"))) } }, { key: "renderUploadInputForSmall", value: function() { var e = this , t = this.props.backup.contents && this.props.backup.public_key; return n.a.createElement("div", null, n.a.createElement("span", { className: "text-left left-label show-for-small-only" }, n.a.createElement(Y.a, { content: this.props.backup.contents ? "login.selectDifferent" : "login.browseFileLabel" })), n.a.createElement("div", { onDragOver: function(e) { return e.preventDefault() }, onDragEnter: function(e) { return e.preventDefault() }, onDrop: function(t) { return e.onDropBinFile(t) }, className: "small-container" }, t ? n.a.createElement("span", { className: "bin-name" }, this.props.backup.name) : n.a.createElement("span", null, " "), n.a.createElement("span", { className: "upload-text" }, n.a.createElement("u", { className: "active-upload-text" }, n.a.createElement("input", { ref: "file_input", accept: ".bin", type: "file", id: "backupFile", className: "upload-bin-input", onChange: function(t) { return e.onFileUpload(t) } }), n.a.createElement(V.a, { name: "paperclip", className: "attach-bin" }))))) } }, { key: "renderUploadInput", value: function() { var e = this , t = this.state.isDrop , r = this.props.backup , a = r.contents && !r.public_key , i = r.contents && r.public_key; return n.a.createElement("label", { onDragOver: function() { e.onPlaceFile(!0) }, onDragLeave: function() { e.onPlaceFile(!1) }, className: "cursor-pointer", htmlFor: "backupFile" }, n.a.createElement("div", { onDragOver: function(e) { return e.preventDefault() }, onDrop: function(t) { return e.onDropBinFile(t) }, className: "file-input-container " + (a ? "invalid" : "") + " " + (t ? "dropHover" : "") + " " + (i ? "downloaded" : "") }, n.a.createElement("img", { className: "rounded-arrow", src: "bin-file/rounded-arrow.svg", alt: "arrow" }), i ? n.a.createElement("img", { className: "bin-file", src: "bin-file/downloaded.svg", alt: "bin-file" }) : a ? n.a.createElement("img", { className: "bin-file", src: "bin-file/error.svg", alt: "bin-file" }) : n.a.createElement("span", null, n.a.createElement("img", { className: "bin-file initial-bin", src: "bin-file/hover.svg", alt: "bin-file" })), n.a.createElement("span", { className: "upload-text text-left no-overflow" }, i ? n.a.createElement("p", { className: "bin-name" }, this.props.backup.name, " (", this.props.backup.size, " bytes)") : a ? n.a.createElement(Y.a, { className: "facolor-error", content: "login.invalidFormat" }) : n.a.createElement(Y.a, { content: "login.dropFile" }), n.a.createElement("u", { className: "active-upload-text" }, n.a.createElement("input", { ref: "file_input", accept: ".bin", type: "file", id: "backupFile", className: "upload-bin-input", onChange: function(t) { return e.onFileUpload(t) } }), n.a.createElement(Y.a, { content: this.props.backup.contents ? "login.selectDifferent" : "login.browseFile" }))))) } }, { key: "render", value: function() { return n.a.createElement("div", { onClick: this.props.onChangeActive, className: "wallet-block" }, n.a.createElement("div", { className: "overflow-bg-block show-for-small-only" }, n.a.createElement("span", { className: "content" })), (new FileReader).readAsBinaryString || !this.props.active ? null : n.a.createElement(Y.a, { component: "p", className: "error", content: "login.supportWarning" }), n.a.createElement("div", { className: this.props.active ? "" : "display-none" }, this.renderUploadInput(), this.renderUploadInputForSmall(), n.a.createElement(Y.a, { component: "p", className: "text-left without-bin cursor-pointer hide-for-small-only", content: "login.withoutBinFile", "data-for": "without-bin", "data-tip": !0, "data-event": "click", "data-place": "right", "data-effect": "solid" }), n.a.createElement(Y.a, { component: "p", className: "text-left without-bin cursor-pointer show-for-small-only", content: "login.withoutBinFile", "data-for": "without-bin", "data-tip": !0, "data-event": "click", "data-place": "bottom", "data-effect": "solid" }), this.renderTooltip()), n.a.createElement(gr, { active: this.props.active, history: this.props.history })) } }]), t }(); br.propTypes = { active: C.a.bool, backup: C.a.object, onChangeActive: C.a.func.isRequired, goToAccountModel: C.a.func.isRequired }, br.defaultProps = { active: !1, backup: {} }; var yr = { listenTo: function() { return [Pe.a] }, getProps: function() { return { backup: Pe.a.getState() } } } , vr = Object(q.a)(br, yr); function wr(e) { return n.a.createElement("div", { onClick: e.onChangeActive, className: (e.forSmall ? "hide-block-for-medium inactive-left-block" : "") + " small-horizontal small-only-block header-block" }, e.forSmall ? null : n.a.createElement("div", null, e.active ? n.a.createElement("img", { className: "model-img", src: "model-type-images/flesh-active.svg", alt: "wallet" }) : n.a.createElement("img", { className: "model-img inactive-img", src: "model-type-images/flesh-inactive.svg", alt: "wallet" })), n.a.createElement("div", { className: "small-only-text-left" }, n.a.createElement(Y.a, { content: "registration.walletModelTitle", component: "p", className: "selection-title " + (e.active ? "" : "inactive-title inactive-text") }), n.a.createElement(Y.a, { content: "wallet.wallet_model", className: "choice-model " + (e.active ? "" : "inactive-text") }), e.forSmall ? null : n.a.createElement(de.Tooltip, { title: e.active ? x.a.translate("tooltip.registration.walletModel") : "" }, n.a.createElement("span", null, n.a.createElement(V.a, { name: "question-in-circle", className: "icon-14px question-icon" }))), n.a.createElement(Y.a, { content: "registration.recommended", component: "p", className: "recommended " + (e.active || e.forSmall ? "" : "inactive-text") }))) } function kr(e) { return n.a.createElement("div", { onClick: e.onChangeActive, className: (e.forSmall ? "hide-block-for-medium inactive-right-block" : "") + " small-horizontal small-only-block header-block" }, e.forSmall ? null : n.a.createElement("div", null, e.active ? n.a.createElement("img", { className: "model-img", src: "model-type-images/account-active.svg", alt: "wallet" }) : n.a.createElement("img", { className: "model-img inactive-img", src: "model-type-images/account-inactive.svg", alt: "wallet" })), n.a.createElement("div", { className: "small-only-text-left" }, n.a.createElement(Y.a, { unsafe: !0, content: "registration.accountModelTitle", component: "p", className: "selection-title " + (e.active ? "" : "inactive-title inactive-text") }), n.a.createElement(Y.a, { content: "wallet.password_model", component: "p", className: "choice-model choice-account " + (e.active ? "" : "inactive-text") }), e.forSmall ? null : n.a.createElement(de.Tooltip, { title: e.active ? x.a.translate("tooltip.registration.accountModel") : "" }, n.a.createElement("span", null, n.a.createElement(V.a, { name: "question-in-circle", className: "icon-14px question-icon" }))))) } wr.propTypes = { active: C.a.bool.isRequired, forSmall: C.a.bool, onChangeActive: C.a.func }, wr.defaultProps = { forSmall: !1, onChangeActive: null }, kr.propTypes = { active: C.a.bool.isRequired, forSmall: C.a.bool, onChangeActive: C.a.func }, kr.defaultProps = { forSmall: !1, onChangeActive: null }; var xr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Sr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { activeWalletModel: !0 }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), xr(t, [{ key: "changeActiveModel", value: function(e) { this.setState({ activeWalletModel: e }) } }, { key: "render", value: function() { var e = this , t = this.state.activeWalletModel; return n.a.createElement("div", { className: "grid-block align-center registration-layout" }, n.a.createElement("div", { className: "grid-block shrink vertical text-center registration-selector" }, n.a.createElement(Y.a, { content: "login.title", component: "p", className: "registration-title" }), n.a.createElement("div", null, n.a.createElement("div", { className: "v-align login-page-selector" }, n.a.createElement("div", { className: (t ? "" : "inactive-model-block") + " selection-block align-center plate" }, n.a.createElement("div", { className: "small-horizontal small-only-block" }, n.a.createElement(wr, { active: t, onChangeActive: function() { return e.changeActiveModel(!0) }, loginPage: !0 }), n.a.createElement(kr, { active: !t, onChangeActive: function() { return e.changeActiveModel(!1) }, forSmall: !0, loginPage: !0 })), n.a.createElement(vr, { active: t, onChangeActive: function() { return t ? null : e.changeActiveModel(!0) }, goToAccountModel: function() { return e.changeActiveModel(!1) }, history: this.props.history })), n.a.createElement("div", { className: (t ? "inactive-model-block" : "") + " selection-block align-center plate" }, n.a.createElement("div", { className: "small-horizontal small-only-block" }, n.a.createElement(wr, { active: t, onChangeActive: function() { return e.changeActiveModel(!0) }, forSmall: !0, loginPage: !0 }), n.a.createElement(kr, { active: !t, onChangeActive: function() { return e.changeActiveModel(!1) }, loginPage: !0 })), n.a.createElement(dr, { active: !t, history: this.props.history, onChangeActive: function() { return t ? e.changeActiveModel(!1) : null }, goToWalletModel: function() { return e.changeActiveModel(!0) } })))))) } }]), t }(); function Ar(e) { return n.a.createElement("div", { className: "wallet-block-registration", onClick: e.onChangeActive }, n.a.createElement("div", { className: "overflow-bg-block show-for-small-only" }, n.a.createElement("span", { className: "content" })), n.a.createElement(Y.a, { content: "registration.securityKey", component: "p", className: "model-option security-key " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.securityWalletModel", component: "p", className: "model-option-value option-border " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.loginByKey", component: "p", className: "model-option " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.walletLoginByValue", component: "p", className: "model-option-value option-border " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.backUpRestoreKey", component: "p", className: "model-option " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "settings.yes", component: "p", className: "model-option-value " + (e.active ? "" : "inactive-text") }), e.active ? n.a.createElement(de.Button, { onClick: e.onSelect, type: "primary" }, x.a.translate("registration.continue")) : n.a.createElement(de.Button, null, x.a.translate("registration.select"))) } function Er(e) { return n.a.createElement("div", { className: "account-block-registration", onClick: e.onChangeActive }, n.a.createElement("div", { className: "overflow-bg-block show-for-small-only" }, n.a.createElement("span", { className: "content" })), n.a.createElement(Y.a, { content: "registration.securityKey", component: "p", className: "model-option security-key " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.securityAccountModel", component: "p", className: "model-option-value account-security option-border " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.loginByKey", component: "p", className: "model-option " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.accountLoginByValue", component: "p", className: "model-option-value account-option-value option-border " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "registration.backUpRestoreKey", component: "p", className: "model-option " + (e.active ? "" : "inactive-text") }), n.a.createElement(Y.a, { content: "settings.no", component: "p", className: "model-option-value account-option-value " + (e.active ? "" : "inactive-text") }), e.active ? n.a.createElement(de.Button, { onClick: e.onSelect, type: "primary" }, x.a.translate("registration.continue")) : n.a.createElement(de.Button, null, x.a.translate("registration.select"))) } Ar.propTypes = { active: C.a.bool.isRequired, onSelect: C.a.func.isRequired, onChangeActive: C.a.func.isRequired }, Er.propTypes = { active: C.a.bool.isRequired, onSelect: C.a.func.isRequired, onChangeActive: C.a.func.isRequired }; var Tr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Cr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { activeWalletModel: !0 }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Tr(t, [{ key: "onSelect", value: function(e) { this.props.history.push("/registration/" + e) } }, { key: "changeActiveModel", value: function(e) { this.setState({ activeWalletModel: e }) } }, { key: "renderHeader", value: function(e) { var t = this , r = this.state.activeWalletModel; return n.a.createElement("div", { className: "small-horizontal small-only-block" }, n.a.createElement(wr, { active: r, onChangeActive: function() { return t.changeActiveModel(!0) }, forSmall: !e }), n.a.createElement(kr, { active: !r, onChangeActive: function() { return t.changeActiveModel(!1) }, forSmall: e })) } }, { key: "render", value: function() { var e = this; if (this.props.children) return this.props.children; var t = this.state.activeWalletModel; return n.a.createElement("div", { className: "grid-block align-center registration-layout" }, n.a.createElement("div", { className: "grid-block shrink vertical text-center registration-selector" }, n.a.createElement(Y.a, { content: "registration.title", component: "p", className: "registration-title" }), n.a.createElement("div", { className: "registration-container" }, n.a.createElement("div", { className: "v-align" }, n.a.createElement("div", { className: (t ? "" : "inactive-model-block") + " selection-block align-center plate" }, this.renderHeader(!0), n.a.createElement(Ar, { onSelect: function() { return e.onSelect("local") }, active: t, onChangeActive: function() { return e.changeActiveModel(!0) } })), n.a.createElement("div", { className: (t ? "inactive-model-block" : "") + " selection-block align-center plate" }, this.renderHeader(!1), n.a.createElement(Er, { onSelect: function() { return e.onSelect("cloud") }, active: !t, onChangeActive: function() { return e.changeActiveModel(!1) } })))))) } }]), t }(); Cr.propTypes = { children: C.a.element }, Cr.contextTypes = { router: C.a.object.isRequired }, Cr.defaultProps = { children: null }; var zr = Cr , Br = r(359) , Or = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function Pr(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } var jr = function(e) { function t() { var e, r, a; !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); for (var n = arguments.length, i = Array(n), o = 0; o < n; o++) i[o] = arguments[o]; return r = a = Pr(this, (e = t.__proto__ || Object.getPrototypeOf(t)).call.apply(e, [this].concat(i))), a.onBackupDownload = function() { a.props.history.push("/") } , Pr(a, r) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Or(t, [{ key: "renderTooltip", value: function() { return n.a.createElement(ae.a, { id: "wallet-confirm", className: "custom-tooltip text-left", globalEventOff: "click" }, n.a.createElement("div", { className: "tooltip-text", onClick: function(e) { return e.stopPropagation() } }, n.a.createElement(Y.a, { content: "tooltip.registration.whyBinFile" }), n.a.createElement("span", { onClick: function() { return ae.a.hide() }, className: "close-button cursor-pointer" }, "×"))) } }, { key: "render", value: function() { var e = this; return n.a.createElement("div", { className: "text-left" }, n.a.createElement("div", { className: "confirm-checks" }, n.a.createElement(Y.a, { component: "h3", content: "registration.createAccountTitle" }), t.renderWarning()), n.a.createElement("div", { className: "checkbox-block", onClick: function() { return e.props.toggleConfirmed("checkboxRemember") } }, n.a.createElement("span", null, n.a.createElement(V.a, { className: (this.props.checkboxRemember ? "checkbox-active" : "") + " checkbox", name: "checkmark" })), n.a.createElement(Y.a, { className: "checkbox-text", content: "registration.checkboxRemember" })), n.a.createElement("div", { className: "checkbox-block", onClick: function() { return e.props.toggleConfirmed("checkboxUploaded") } }, n.a.createElement("span", null, n.a.createElement(V.a, { className: (this.props.checkboxUploaded ? "checkbox-active" : "") + " checkbox", name: "checkmark" })), n.a.createElement(Y.a, { className: "checkbox-text", content: "registration.checkboxUploaded" })), n.a.createElement("div", { className: "checkbox-block", onClick: function() { return e.props.toggleConfirmed("checkboxRecover") } }, n.a.createElement("span", null, n.a.createElement(V.a, { className: (this.props.checkboxRecover ? "checkbox-active" : "") + " checkbox", name: "checkmark" })), n.a.createElement(Y.a, { className: "checkbox-text", content: "registration.checkboxRecover" })), n.a.createElement(Br.c, { confirmation: !0, checkboxActive: this.props.checkboxUploaded && this.props.checkboxRemember && this.props.checkboxRecover, downloadCb: this.onBackupDownload }), n.a.createElement(Y.a, { component: "p", className: "cursor-pointer why-bin-file checkbox-text", content: "registration.whyBinFile", "data-for": "wallet-confirm", "data-tip": !0, "data-event": "click", "data-place": "bottom", "data-effect": "solid" }), this.renderTooltip()) } }], [{ key: "renderWarning", value: function() { return n.a.createElement("div", { className: "attention-note" }, n.a.createElement(V.a, { name: "attention", size: "1x" }), n.a.createElement(Y.a, { content: "registration.attention", className: "attention-text" }), n.a.createElement(Y.a, { component: "p", content: "registration.walletNote" })) } }]), t }(); jr.propTypes = { toggleConfirmed: C.a.func.isRequired, checkboxUploaded: C.a.bool.isRequired, checkboxRecover: C.a.bool.isRequired, checkboxRemember: C.a.bool.isRequired, history: C.a.object.isRequired }; var Ir = jr , Mr = r(310) , Nr = r(444) , Rr = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , qr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); function Dr(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var Lr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { validAccountName: !1, accountName: "", validPassword: !1, registrarAccount: void 0, loading: !1, showIdenticon: !1, password: "" }, e.onFinishConfirm = e.onFinishConfirm.bind(e), e.onRegistrarAccountChange = e.onRegistrarAccountChange.bind(e), e.unmounted = !1, e.onSubmit = e.onSubmit.bind(e), e.onPasswordChange = e.onPasswordChange.bind(e), e.onPasswordValidationChange = e.onPasswordValidationChange.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), qr(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return !S.a.are_equal_shallow(t, this.state) } }, { key: "componentWillUnmount", value: function() { this.unmounted = !0 } }, { key: "onAccountNameChange", value: function(e) { var t = {}; void 0 !== e.valid && (t.validAccountName = e.valid), void 0 !== e.value && (t.accountName = e.value), this.state.showIdenticon || (t.showIdenticon = !0), this.setState(t) } }, { key: "onPasswordChange", value: function(e) { this.setState({ password: e }) } }, { key: "onPasswordValidationChange", value: function(e) { this.setState({ validPassword: e.valid }) } }, { key: "onFinishConfirm", value: function(e) { var t = this; e.included && e.broadcasted_transaction && (Ee.a.unlisten(this.onFinishConfirm), Ee.a.reset(), Object(i.FetchChain)("getAccount", this.state.accountName, void 0, Dr({}, this.state.accountName, !0)).then(function() { console.log("onFinishConfirm"), t.props.history.push("/wallet/backup/create?newAccount=true") })) } }, { key: "onRegistrarAccountChange", value: function(e) { this.setState({ registrarAccount: e }) } }, { key: "onSubmit", value: function(e) { var t = this; if (e.preventDefault(), this.isValid()) { var r = this.state.accountName; if (J.a.getWallet()) this.createAccount(r); else { var a = this.state.password; this.createWallet(a).then(function() { return t.createAccount(r) }) } } } }, { key: "createAccount", value: function(e) { var t = this , r = o.a.getState().referralAccount; Z.a.unlock().then(function() { t.setState({ loading: !0 }), D.a.createAccount(e, t.state.registrarAccount, r || t.state.registrarAccount, 0).then(function() { Object(i.FetchChain)("getAccount", e, void 0, Dr({}, e, !0)).then(function() { t.props.continue(), t.unmounted || t.setState({ loading: !1 }) }), t.state.registrarAccount && Ee.a.listen(t.onFinishConfirm) }).catch(function(r) { t.setState({ loading: !1 }), console.log("ERROR AccountActions.createAccount", r); var a = r.base && r.base.length && r.base.length > 0 ? r.base[0] : "unknown error"; r.remote_ip && (a = Rr(r.remote_ip, 1)[0]); de.Notification.error({ message: x.a.translate("notifications.account_create_failure", { account_name: e, error_msg: a }) }) }) }) } }, { key: "createWallet", value: function(e) { var t = this; return this.setState({ loading: !0 }), je.a.setWallet("default", e).then(function() { console.log("Congratulations, your wallet was successfully created.") }).catch(function(e) { t.setState({ loading: !1 }), console.log("CreateWallet failed:", e), de.Notification.error({ message: x.a.translate("notifications.account_wallet_create_failure", { error_msg: e }) }) }) } }, { key: "isValid", value: function() { var e = 0 === o.a.getMyAccounts().length , t = this.state.validAccountName; return J.a.getWallet() || (t = t && this.state.validPassword), e || (t = t && this.state.registrarAccount), t } }, { key: "renderDropdown", value: function(e, t) { this.state.registrarAccount; return n.a.createElement(de.Form.Item, { label: x.a.translate("account.pay_from") }, n.a.createElement(de.Select, { placeholder: x.a.translate("account.select_placeholder"), style: { width: "100%" }, value: this.state.registrarAccount, onChange: this.onRegistrarAccountChange }, e.map(function(e) { return n.a.createElement(de.Select.Option, { key: e, value: e }, e) }))) } }, { key: "renderPasswordInput", value: function() { return n.a.createElement(Nr.a, { ref: "password", onChange: this.onPasswordChange, onValidationChange: this.onPasswordValidationChange, label: n.a.createElement("span", null, n.a.createElement("span", { className: "vertical-middle" }, x.a.translate("settings.password")), " ", n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.registration.password") }, n.a.createElement("span", null, n.a.createElement(V.a, { name: "question-in-circle", className: "icon-14px question-icon vertical-middle" })))) }) } }, { key: "renderAccountCreateForm", value: function() { var e = this , t = this.state.registrarAccount , r = o.a.getMyAccounts() , a = 0 === r.length , s = J.a.getWallet() , l = this.isValid() , c = !1 , u = t ? i.ChainStore.getAccount(t) : null; u && u.get("lifetime_referrer") === u.get("id") && (c = !0); return n.a.createElement(de.Form, { layout: "vertical", onSubmit: this.onSubmit }, n.a.createElement(Mr.a, { cheapNameOnly: !!a, onChange: function(t) { return e.onAccountNameChange(t) }, accountShouldNotExist: !0, placeholder: x.a.translate("account.name"), label: n.a.createElement("span", null, n.a.createElement("span", { className: "vertical-middle" }, x.a.translate("account.name")), " ", n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.registration.accountName") }, n.a.createElement("span", null, n.a.createElement(V.a, { name: "question-in-circle", className: "icon-14px question-icon vertical-middle" })))), noLabel: !0 }), s ? null : this.renderPasswordInput(), a ? null : this.renderDropdown(r, c), u && !c ? n.a.createElement(de.Form.Item, null, n.a.createElement(de.Alert, { type: "error", description: n.a.createElement(Y.a, { content: "wallet.must_be_ltm" }) })) : null, n.a.createElement(de.Form.Item, null, n.a.createElement(de.Button, { type: "primary", disabled: this.state.loading || !l || t && !c, htmlType: "submit", loading: this.state.loading }, x.a.translate("registration.continue")))) } }, { key: "render", value: function() { var e = J.a.getWallet() , t = 0 === o.a.getMyAccounts().length; return n.a.createElement("div", null, n.a.createElement("div", { className: "text-left" }, t ? n.a.createElement(Y.a, { component: "h3", content: "registration.createAccountTitle" }) : n.a.createElement(Y.a, { component: "h3", content: "wallet.create_a" }), e ? null : n.a.createElement(Y.a, { component: "p", content: "registration.walletDescription", className: "model-description" })), this.renderAccountCreateForm()) } }]), t }(); Lr.propTypes = { continue: C.a.func.isRequired, history: C.a.object.isRequired }; var Fr = Lr , Ur = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Wr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { confirmationStep: !1, checkboxRemember: !1, checkboxUploaded: !1, checkboxRecover: !1 }, e.toggleConfirmed = e.toggleConfirmed.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Ur(t, [{ key: "componentWillMount", value: function() { L.a.changeSetting({ setting: "passwordLogin", value: !1 }) } }, { key: "componentDidMount", value: function() { ae.a.rebuild() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !S.a.are_equal_shallow(t, this.state) } }, { key: "continue", value: function() { this.setState({ confirmationStep: !0 }) } }, { key: "toggleConfirmed", value: function(e) { this.setState(function(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e }({}, e, !this.state[e])) } }, { key: "render", value: function() { var e = this , t = this.state , r = t.confirmationStep , a = t.checkboxRemember , i = t.checkboxUploaded , o = t.checkboxRecover; return n.a.createElement("div", { className: "no-margin grid-block registration-layout registration" }, n.a.createElement("div", { className: "grid-block horizontal align-center text-center" }, n.a.createElement("div", null, n.a.createElement("img", { className: (a && i && o ? "confirmed" : "") + " model-img", src: "/model-type-images/flesh-drive.svg", alt: "wallet" })), n.a.createElement("div", { className: "create-account-block" }, r ? n.a.createElement(Ir, { history: this.props.history, toggleConfirmed: this.toggleConfirmed, checkboxRemember: a, checkboxUploaded: i, checkboxRecover: o }) : n.a.createElement(Fr, { history: this.props.history, continue: function() { return e.continue() } })))) } }]), t }() , Hr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Kr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { validAccountName: !1, accountName: "", registrarAccount: null, loading: !1, generatedPassword: "P" + i.key.get_random_key().toWif(), confirmPassword: "" }, e.onSubmit = e.onSubmit.bind(e), e.onRegistrarAccountChange = e.onRegistrarAccountChange.bind(e), e.onAccountNameChange = e.onAccountNameChange.bind(e), e.onConfirmation = e.onConfirmation.bind(e), e.accountNameInput = null, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Hr(t, [{ key: "componentWillMount", value: function() { L.a.changeSetting({ setting: "passwordLogin", value: !0 }) } }, { key: "componentDidMount", value: function() { ae.a.rebuild() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !S.a.are_equal_shallow(t, this.state) } }, { key: "onAccountNameChange", value: function(e) { var t = {}; void 0 !== e.valid && (t.validAccountName = e.valid), void 0 !== e.value && (t.accountName = e.value), this.setState(t) } }, { key: "onRegistrarAccountChange", value: function(e) { this.setState({ registrarAccount: e }) } }, { key: "onSubmit", value: function(e) { e.preventDefault(), this.isValid() && this.props.continue({ accountName: this.state.accountName, password: this.state.generatedPassword }) } }, { key: "onConfirmation", value: function(e) { var t = e.currentTarget.value; this.setState({ confirmPassword: t, passwordConfirmed: t === this.state.generatedPassword }) } }, { key: "isValid", value: function() { var e = 0 === o.a.getMyAccounts().length , t = this.state.validAccountName; return J.a.getWallet() || (t = t), e || (t = t && this.state.registrarAccount), t } }, { key: "renderAccountCreateForm", value: function() { var e = this , t = this.state.registrarAccount , r = o.a.getMyAccounts() , a = 0 === r.length , s = this.isValid() , l = !1 , c = t ? i.ChainStore.getAccount(t) : null; c && c.get("lifetime_referrer") === c.get("id") && (l = !0); return n.a.createElement("div", null, n.a.createElement(de.Form, { onSubmit: this.onSubmit, layout: "vertical" }, n.a.createElement(Mr.a, { cheapNameOnly: a, onChange: this.onAccountNameChange, accountShouldNotExist: !0, placeholder: x.a.translate("account.name"), label: n.a.createElement("span", null, n.a.createElement("span", { className: "vertical-middle" }, x.a.translate("account.name")), " ", n.a.createElement(de.Tooltip, { title: x.a.translate("tooltip.registration.accountName") }, n.a.createElement("span", null, n.a.createElement(V.a, { name: "question-in-circle", className: "icon-14px question-icon vertical-middle" })))), noLabel: !0 }), n.a.createElement(de.Form.Item, { label: x.a.translate("wallet.generated") }, n.a.createElement(de.Input.TextArea, { disabled: !0, style: { paddingRight: "50px" }, rows: 2, id: "password", value: this.state.generatedPassword }), n.a.createElement(bt.a, { text: this.state.generatedPassword, tip: "tooltip.copy_password", dataPlace: "top", className: "button registration-layout--copy-password-btn" })), n.a.createElement(de.Form.Item, { label: x.a.translate("wallet.confirm_password"), help: e.state.confirmPassword && !e.state.passwordConfirmed ? x.a.translate("wallet.confirm_error") : "", validateStatus: e.state.confirmPassword && !e.state.passwordConfirmed ? "error" : "" }, n.a.createElement(de.Input, { placeholder: x.a.translate("wallet.confirm_password"), type: "password", name: "password", id: "confirmPassword", value: this.state.confirmPassword, onChange: this.onConfirmation })), a ? null : n.a.createElement("div", { className: "full-width-content form-group no-overflow" }, n.a.createElement("label", { htmlFor: "account" }, n.a.createElement(Y.a, { content: "account.pay_from" })), n.a.createElement(Te.a, { id: "account", account_names: r, onChange: this.onRegistrarAccountChange }), t && !l ? n.a.createElement("div", { style: { textAlign: "left" }, className: "facolor-error" }, n.a.createElement(Y.a, { content: "wallet.must_be_ltm" })) : null), this.state.loading ? n.a.createElement(_.a, { type: "three-bounce" }) : n.a.createElement(de.Button, { htmlType: "submit", type: "primary", disabled: !s || !this.state.passwordConfirmed || t && !l }, n.a.createElement(Y.a, { content: "registration.continue" })))) } }, { key: "renderAccountCreateText", value: function() { var e = 0 === o.a.getMyAccounts().length; return n.a.createElement("div", null, n.a.createElement(Y.a, { component: "p", className: "model-description", content: "registration.accountDescription" }), e ? null : n.a.createElement(Y.a, { component: "p", content: "wallet.not_first_account" })) } }, { key: "render", value: function() { return n.a.createElement("div", null, this.renderAccountCreateText(), this.renderAccountCreateForm()) } }]), t }(); Kr.propTypes = { continue: C.a.func.isRequired }; var Vr = Object(q.a)(Kr, { listenTo: function() { return [o.a] }, getProps: function() { return {} } }) , Gr = function() { return function(e, t) { if (Array.isArray(e)) return e; if (Symbol.iterator in Object(e)) return function(e, t) { var r = [] , a = !0 , n = !1 , i = void 0; try { for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (r.push(o.value), !t || r.length !== t); a = !0) ; } catch (e) { n = !0, i = e } finally { try { !a && s.return && s.return() } finally { if (n) throw i } } return r }(e, t); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }() , Yr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Jr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { confirmed: !1 }, e.onFinishConfirm = e.onFinishConfirm.bind(e), e.toggleConfirmed = e.toggleConfirmed.bind(e), e.createAccount = e.createAccount.bind(e), e.onCreateAccount = e.onCreateAccount.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Yr(t, [{ key: "shouldComponentUpdate", value: function(e, t) { return t.confirmed !== this.state.confirmed } }, { key: "onFinishConfirm", value: function(e) { var t = this; e.included && e.broadcasted_transaction && (Ee.a.unlisten(this.onFinishConfirm), Ee.a.reset(), Object(i.FetchChain)("getAccount", this.state.accountName).then(function() { t.props.history.push("/wallet/backup/create?newAccount=true") })) } }, { key: "onCreateAccount", value: function(e) { e.preventDefault(), this.createAccount(this.props.accountName, this.props.password) } }, { key: "createAccount", value: function(e, t) { var r = this , a = o.a.getState().referralAccount; D.a.createAccountWithPassword(e, t, this.state.registrarAccount, a || this.state.registrarAccount, 0).then(function() { D.a.setPasswordAccount(e), r.state.registrarAccount ? (Object(i.FetchChain)("getAccount", e).then(function() { r.unlockAccount(e, t) }), Ee.a.listen(r.onFinishConfirm)) : (Object(i.FetchChain)("getAccount", e).then(function() {}), r.unlockAccount(e, t), r.props.history.push("/")) }).catch(function(t) { console.log("ERROR AccountActions.createAccount", t); var r = t.base && t.base.length && t.base.length > 0 ? t.base[0] : "unknown error"; t.remote_ip && (r = Gr(t.remote_ip, 1)[0]); de.Notification.error({ message: x.a.translate("account_create_failure", { account_name: e, error_msg: r }) }) }) } }, { key: "unlockAccount", value: function(e, t) { J.a.validatePassword(t, !0, e), Z.a.checkLock.defer() } }, { key: "toggleConfirmed", value: function(e) { this.setState({ confirmed: e.target.checked }) } }, { key: "render", value: function() { return n.a.createElement(de.Form, { layout: "vertical" }, n.a.createElement(de.Form.Item, { label: x.a.translate("registration.copyPassword") }, n.a.createElement(de.Input.TextArea, { disabled: !0, rows: 2, id: "password", value: this.props.password }), n.a.createElement(bt.a, { text: this.state.generatedPassword, tip: "tooltip.copy_password", dataPlace: "top", className: "button registration-layout--copy-password-btn" })), n.a.createElement(de.Form.Item, null, n.a.createElement(de.Alert, { showIcon: !0, type: "warning", message: "", description: x.a.translate("registration.accountNote") })), n.a.createElement(de.Form.Item, null, n.a.createElement(de.Checkbox, { checked: this.state.confirmed, onChange: this.toggleConfirmed }, n.a.createElement(Y.a, { content: "registration.accountConfirmation", className: "checkbox-text" }))), n.a.createElement(de.Form.Item, null, n.a.createElement(de.Button, { type: "primary", disabled: !this.state.confirmed, onClick: this.onCreateAccount }, n.a.createElement(Y.a, { content: "account.create_account" })))) } }]), t }(); Jr.propTypes = { accountName: C.a.string.isRequired, password: C.a.string.isRequired, toggleConfirmed: C.a.func.isRequired, history: C.a.object.isRequired }; var Xr = Object(q.a)(Jr, { listenTo: function() { return [o.a] }, getProps: function() { return {} } }) , Zr = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var Qr = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { accountName: "" }, e.continue = e.continue.bind(e), e.toggleConfirmed = e.toggleConfirmed.bind(e), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), Zr(t, [{ key: "componentWillMount", value: function() { L.a.changeSetting({ setting: "passwordLogin", value: !0 }) } }, { key: "componentDidMount", value: function() { ae.a.rebuild() } }, { key: "shouldComponentUpdate", value: function(e, t) { return !S.a.are_equal_shallow(t, this.state) } }, { key: "continue", value: function(e) { var t = e.accountName , r = e.password; this.setState({ accountName: t, password: r, confirmationStep: !0 }) } }, { key: "toggleConfirmed", value: function() { var e = this.state.active; this.setState({ active: !e }) } }, { key: "render", value: function() { return n.a.createElement("div", { className: "no-margin grid-block registration-layout registration" }, n.a.createElement("div", { className: "grid-block horizontal align-center text-center" }, n.a.createElement("div", null, n.a.createElement("img", { className: "model-img " + (this.state.active ? "confirmed" : ""), src: "/model-type-images/account.svg", alt: "account" })), n.a.createElement("div", { className: "create-account-block" }, n.a.createElement(Y.a, { component: "h3", className: "registration-account-title", content: "registration.createByPassword" }), this.state.confirmationStep ? n.a.createElement(Xr, { accountName: this.state.accountName, password: this.state.password, toggleConfirmed: this.toggleConfirmed, history: this.props.history }) : n.a.createElement(Vr, { continue: this.continue })))) } }]), t }() , $r = r(580) , ea = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var ta = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), ea(t, [{ key: "render", value: function() { return this.props.disabled || this.props.comingSoon ? n.a.createElement(de.Tooltip, { title: "string" == typeof this.props.disabled ? this.props.disabled : "Coming soon" }, n.a.createElement("div", { className: "showcases-grid--wrapper--item--wrapper--disabled disabled", onClick: function() {}, tabIndex: "0" }, n.a.createElement("h2", { className: "no-margin" }, !!this.props.comingSoon && n.a.createElement(V.a, { style: { float: "right" }, name: "coming_soon", size: "4x" }), n.a.createElement(Y.a, { content: this.props.title })), n.a.createElement("div", { className: "showcases-grid--wrapper--item--wrapper--content disabled" }, n.a.createElement(V.a, { name: this.props.icon, size: "5x" }), n.a.createElement("span", { className: "padding showcases-grid--wrapper--item--wrapper--content--description disabled" }, n.a.createElement(Y.a, { content: this.props.description }))))) : n.a.createElement("div", { className: "showcases-grid--wrapper--item--wrapper", onClick: this.props.target, tabIndex: "0" }, n.a.createElement(Y.a, { content: this.props.title, className: "no-margin", component: "h2" }), n.a.createElement("div", { className: "showcases-grid--wrapper--item--wrapper--content" }, n.a.createElement(V.a, { name: this.props.icon, size: "5x" }), n.a.createElement("span", { className: "padding showcases-grid--wrapper--item--wrapper--content--description" }, n.a.createElement(Y.a, { content: this.props.description })))) } }]), t }(); ta.propTypes = { target: C.a.func.isRequired, title: C.a.string.isRequired, description: C.a.string.isRequired, icon: C.a.string.isRequired, disabled: C.a.bool, comingSoon: C.a.bool }, ta.defaultProps = { disabled: !1 }; var ra = ta , aa = r(785) , na = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var ia = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return e.state = { currentAccount: null }, e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), na(t, [{ key: "componentWillMount", value: function() { this.setState({ currentAccount: i.ChainStore.getAccount(this.props.currentAccount) }) } }, { key: "componentWillReceiveProps", value: function(e) { e.currentAccount !== this.props.currentAccount && this.setState({ currentAccount: i.ChainStore.getAccount(e.currentAccount) }) } }, { key: "render", value: function() { var e = this , t = null !== this.state.currentAccount , r = this , a = [{ title: "showcases.paper_wallet.title", target: function() { t && Object(aa.a)(e.state.currentAccount) }, description: "showcases.paper_wallet.description", icon: "wallet", disabled: !t && "Please login to use this functionality" }, { title: "showcases.voting.title", target: function(a) { t && r.props.history.push("/account/" + e.state.currentAccount.get("name") + "/voting") }, description: "showcases.voting.description", icon: "voting", disabled: !t && "Please login to use this functionality" }, { title: "showcases.barter.title", target: function(e) { r.props.history.push("/barter") }, description: "showcases.barter.description", icon: "barter", disabled: !t && "Please login to use this functionality" }, { title: "showcases.borrow.title", target: function() { t && r.props.history.push("/borrow") }, description: "showcases.borrow.description", icon: "borrow", disabled: !t && "Please login to use this functionality" }, { title: "showcases.direct_debit.title", target: function(e) { r.props.history.push("/direct-debit") }, description: "showcases.direct_debit.description", icon: "direct_debit", disabled: !t && "Please login to use this functionality" }, { title: "showcases.htlc.title", target: function(e) { r.props.history.push("/htlc") }, description: "showcases.htlc.description", icon: "htlc", disabled: !t && "Please login to use this functionality" }, { title: "showcases.timed_transfer.title", target: function() {}, description: "showcases.timed_transfer.description", icon: "alarm", disabled: !0, comingSoon: !0 }]; return n.a.createElement("div", { className: "overflow-visible showcases-grid", style: { align: "center" } }, n.a.createElement("div", { className: "showcases-grid--wrapper" }, a.map(function(e) { return n.a.createElement("div", { key: e.title, className: "showcases-grid--wrapper--item" }, e.disabled ? n.a.createElement(ra, { target: e.target, title: e.title, description: e.description, icon: e.icon, disabled: e.disabled, comingSoon: e.comingSoon || !1 }) : n.a.createElement(ra, { target: e.target, title: e.title, description: e.description, icon: e.icon })) }))) } }]), t }() , oa = ia = Object(q.a)(ia, { listenTo: function() { return [o.a] }, getProps: function() { return { currentAccount: o.a.getState().currentAccount || o.a.getState().passwordAccount } } }) , sa = r(185) , la = r(347) , ca = r(88) , ua = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var da = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ua(t, [{ key: "_getRulesForCheck", value: function(e, t) { return e.map(function(e, r) { var a = e.quoteAssetSymbol + "_" + e.baseAssetSymbol , n = null; try { var i = t.get(a); n = i && i.price && i.price.toReal() } catch (e) { console.error("PriceAlertNotifications: Unable to get real price for pair " + a + ": ", e) } return { ruleKey: r, type: e.type, pair: a, quoteAssetSymbol: e.quoteAssetSymbol, baseAssetSymbol: e.baseAssetSymbol, actualPrice: n, expectedPrice: e.price } }) } }, { key: "_getFulfilledRules", value: function(e) { return e.filter(function(e) { return !isNaN(Number(e.actualPrice)) && (Number(e.type) === Number(la.a.HIGHER_THAN) && Number(e.actualPrice) >= Number(e.expectedPrice) || Number(e.type) === Number(la.a.LOWER_THAN) && Number(e.actualPrice) <= Number(e.expectedPrice)) }) } }, { key: "_filterByFulfilledRules", value: function(e) { return function(t, r) { return !e.some(function(e) { return r === e.ruleKey }) } } }, { key: "notifyAboutRules", value: function(e) { e.forEach(function(e) { Number(e.type) === Number(la.a.LOWER_THAN) && de.Notification.info({ duration: 30, message: x.a.translate("exchange.price_alert.title"), description: n.a.createElement(Y.a, { content: "exchange.price_alert.notification.lower_than", component: "div", pair: n.a.createElement("span", { className: "price-alert--notification--pair-name" }, n.a.createElement(ca.a, { name: e.quoteAssetSymbol }), "/", n.a.createElement(ca.a, { name: e.baseAssetSymbol })), expectedPrice: n.a.createElement("span", { className: "price-alert--notification--expected-price" }, e.expectedPrice), actualPrice: n.a.createElement("span", { className: "price-alert--notification--actual-price price-alert--notification--actual-price-down" }, e.actualPrice) }), icon: n.a.createElement(de.Icon, { type: "caret-down", className: "price-alert--notification--icon price-alert--notification--icon--down" }) }), Number(e.type) === Number(la.a.HIGHER_THAN) && de.Notification.info({ duration: 30, message: x.a.translate("exchange.price_alert.title"), description: n.a.createElement(Y.a, { content: "exchange.price_alert.notification.higher_than", component: "div", pair: n.a.createElement("span", { className: "price-alert--notification--pair-name" }, n.a.createElement(ca.a, { name: e.quoteAssetSymbol }), "/", n.a.createElement(ca.a, { name: e.baseAssetSymbol })), expectedPrice: n.a.createElement("span", { className: "price-alert--notification--expected-price" }, e.expectedPrice), actualPrice: n.a.createElement("span", { className: "price-alert--notification--actual-price price-alert--notification--actual-price-up" }, e.actualPrice) }), icon: n.a.createElement(de.Icon, { type: "caret-up", className: "price-alert--notification--icon price-alert--notification--icon--up" }) }) }) } }, { key: "render", value: function() { var e = this.props , t = e.priceAlert , r = e.allMarketStats; if (!(t && t.length && r && r.size)) return null; var a = this._getRulesForCheck(t, r) , n = this._getFulfilledRules(a); this.notifyAboutRules(n); var i = this.props.priceAlert.filter(this._filterByFulfilledRules(n)); return i.length !== this.props.priceAlert.length && L.a.setPriceAlert(i), null } }]), t }() , pa = Object(q.a)(da, { listenTo: function() { return [sa.a, b.a] }, getProps: function() { return { allMarketStats: sa.a.getState().allMarketStats, priceAlert: b.a.getState().priceAlert.toJS() } } }) , ha = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var a in r) Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]) } return e } , ma = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var fa = Rt()({ loader: function() { return Promise.all([r.e(2), r.e(3), r.e(5), r.e(24), r.e(9)]).then(r.bind(null, 2248)) }, loading: _.a }) , ga = Rt()({ loader: function() { return Promise.all([r.e(2), r.e(3), r.e(5), r.e(10)]).then(r.bind(null, 2249)) }, loading: _.a }) , _a = Rt()({ loader: function() { return Promise.all([r.e(2), r.e(25), r.e(0), r.e(6), r.e(11)]).then(r.bind(null, 2246)) }, loading: _.a }) , ba = Rt()({ loader: function() { return Promise.all([r.e(27), r.e(0), r.e(12)]).then(r.bind(null, 2240)) }, loading: _.a }) , ya = Rt()({ loader: function() { return Promise.all([r.e(3), r.e(23), r.e(0), r.e(13)]).then(r.bind(null, 2247)) }, loading: _.a }) , va = Rt()({ loader: function() { return Promise.all([r.e(26), r.e(14)]).then(r.bind(null, 2241)) }, loading: _.a }) , wa = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2250)) }, loading: _.a }) , ka = Rt()({ loader: function() { return r.e(16).then(r.bind(null, 2242)) }, loading: _.a }) , xa = Rt()({ loader: function() { return r.e(17).then(r.bind(null, 2251)) }, loading: _.a }) , Sa = Rt()({ loader: function() { return r.e(18).then(r.bind(null, 2255)) }, loading: _.a }) , Aa = Rt()({ loader: function() { return Promise.all([r.e(0), r.e(19)]).then(r.bind(null, 2256)) }, loading: _.a }) , Ea = Rt()({ loader: function() { return r.e(20).then(r.bind(null, 2252)) }, loading: _.a }) , Ta = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(4)]).then(r.bind(null, 850)) }, loading: _.a }) , Ca = Rt()({ loader: function() { return r.e(1).then(r.bind(null, 853)) }, loading: _.a }) , za = Rt()({ loader: function() { return r.e(21).then(r.bind(null, 2243)) }, loading: _.a }) , Ba = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2244)) }, loading: _.a }) , Oa = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2245)) }, loading: _.a }) , Pa = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2257)) }, loading: _.a }) , ja = Rt()({ loader: function() { return Promise.all([r.e(1), r.e(6), r.e(4), r.e(15)]).then(r.bind(null, 2253)) }, loading: _.a }) , Ia = function(e) { function t() { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var e = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)) , r = !(!i.ChainStore.subError || "ChainStore sync error, please check your system clock" !== i.ChainStore.subError.message); return e.state = { isBrowserSupportModalVisible: !1, loading: !1, synced: e._syncStatus(), syncFail: r, incognito: !1, incognitoWarningDismissed: !1, height: window && window.innerHeight }, e._rebuildTooltips = e._rebuildTooltips.bind(e), e._chainStoreSub = e._chainStoreSub.bind(e), e._syncStatus = e._syncStatus.bind(e), e._getWindowHeight = e._getWindowHeight.bind(e), e.showBrowserSupportModal = e.showBrowserSupportModal.bind(e), e.hideBrowserSupportModal = e.hideBrowserSupportModal.bind(e), de.Notification.config({ duration: Gt, top: 90 }), e } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), ma(t, [{ key: "componentWillUnmount", value: function() { window.removeEventListener("resize", this._getWindowHeight), m.unlisten(this._onNotificationChange), i.ChainStore.unsubscribe(this._chainStoreSub), clearInterval(this.syncCheckInterval) } }, { key: "getBlockTime", value: function() { var e = i.ChainStore.getObject("2.1.0"); if (e) { var t = e.get("time"); return /Z$/.test(t) || (t += "Z"), new Date(t) } throw new Error("Blocktime not available right now") } }, { key: "getBlockTimeDelta", value: function() { try { var e = (this.getBlockTime().getTime() + i.ChainStore.getEstimatedChainTimeOffset()) / 1e3 , t = (new Date).getTime() / 1e3; return Math.abs(t - e) } catch (e) { return -1 } } }, { key: "hideBrowserSupportModal", value: function() { this.setState({ isBrowserSupportModalVisible: !1 }) } }, { key: "showBrowserSupportModal", value: function() { this.setState({ isBrowserSupportModalVisible: !0 }) } }, { key: "_syncStatus", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0] , t = this.getBlockTimeDelta() < 5; return e && t !== this.state.synced && this.setState({ synced: t }), t } }, { key: "_setListeners", value: function() { try { window.addEventListener("resize", this._getWindowHeight, { capture: !1, passive: !0 }), m.listen(this._onNotificationChange.bind(this)), i.ChainStore.subscribe(this._chainStoreSub), o.a.tryToSetCurrentAccount() } catch (e) { console.error("e:", e) } } }, { key: "componentDidMount", value: function() { this._setListeners(), this.syncCheckInterval = setInterval(this._syncStatus.bind(this, !0), 5e3); var e = navigator.userAgent.toLowerCase(); window.electron || e.indexOf("firefox") > -1 || e.indexOf("chrome") > -1 || e.indexOf("edge") > -1 || this.showBrowserSupportModal(), this.props.history.listen(this._rebuildTooltips), this._rebuildTooltips(), Object(Wt.a)(function(e) { this.setState({ incognito: e }) } .bind(this)), Object(Ht.g)() } }, { key: "componentDidUpdate", value: function(e) { this.props.location !== e.location && this.onRouteChanged() } }, { key: "onRouteChanged", value: function() { document.title = Vt.GetTitleByPath(this.props.location.pathname) } }, { key: "_onIgnoreIncognitoWarning", value: function() { this.setState({ incognitoWarningDismissed: !0 }) } }, { key: "_rebuildTooltips", value: function() { var e = this; this.rebuildTimeout || (ae.a.hide(), this.rebuildTimeout = setTimeout(function() { e.refs.tooltip && e.refs.tooltip.globalRebuild(), e.rebuildTimeout = null }, 1500)) } }, { key: "_chainStoreSub", value: function() { var e = this._syncStatus(); if (e !== this.state.synced && this.setState({ synced: e }), i.ChainStore.subscribed !== this.state.synced || i.ChainStore.subError) { var t = !(!i.ChainStore.subError || "ChainStore sync error, please check your system clock" !== i.ChainStore.subError.message); this.setState({ syncFail: t }) } } }, { key: "_onNotificationChange", value: function() { var e = m.getState().notification; void 0 === e.autoDismiss && (e.autoDismiss = 10), this.refs.notificationSystem && this.refs.notificationSystem.addNotification(e) } }, { key: "_getWindowHeight", value: function() { this.setState({ height: window && window.innerHeight }) } }, { key: "render", value: function() { var e = this.state , t = e.incognito , r = e.incognitoWarningDismissed , a = this.props , i = a.walletMode , s = a.theme , l = (a.location, a.match, function(e, t) { var r = {}; for (var a in e) t.indexOf(a) >= 0 || Object.prototype.hasOwnProperty.call(e, a) && (r[a] = e[a]); return r }(a, ["walletMode", "theme", "location", "match"])) , c = null; if (this.state.syncFail) c = n.a.createElement(g.a, null); else if (this.state.loading) c = n.a.createElement("div", { className: "grid-frame vertical" }, n.a.createElement(_.a, { loadingText: "Connecting to APIs and starting app" })); else { var u = o.a.getState().currentAccount || o.a.getState().passwordAccount; u = u && "null" !== u ? u : "committee-account", c = n.a.createElement("div", { className: "grid-frame vertical" }, n.a.createElement(er, null), n.a.createElement(we, ha({ height: this.state.height }, l)), n.a.createElement("div", { id: "mainContainer", className: "grid-block" }, n.a.createElement("div", { className: "grid-block vertical" }, n.a.createElement(tr.a, null, n.a.createElement(rr.a, { path: "/", exact: !0, component: Ea }), n.a.createElement(rr.a, { path: "/account/:account_name", component: _a }), n.a.createElement(rr.a, { path: "/accounts", component: Aa }), n.a.createElement(rr.a, { path: "/market/:marketID", component: fa }), n.a.createElement(rr.a, { path: "/settings/:tab", component: wa }), n.a.createElement(rr.a, { path: "/settings", component: wa }), n.a.createElement(rr.a, { path: "/transfer", exact: !0, component: ba }), n.a.createElement(rr.a, { path: "/deposit-withdraw", exact: !0, component: ya }), n.a.createElement(rr.a, { path: "/create-account", component: ir.a }), n.a.createElement(rr.a, { path: "/login", component: Sr }), n.a.createElement(rr.a, { path: "/registration", exact: !0, component: zr }), n.a.createElement(rr.a, { path: "/registration/local", exact: !0, component: Wr }), n.a.createElement(rr.a, { path: "/registration/cloud", exact: !0, component: Qr }), n.a.createElement(rr.a, { path: "/news", exact: !0, component: va }), n.a.createElement(ar.a, { path: "/voting", to: { pathname: "/account/" + u + "/voting" } }), n.a.createElement(rr.a, { path: "/explorer/:tab", component: ga }), n.a.createElement(rr.a, { path: "/explorer", component: ga }), n.a.createElement(rr.a, { path: "/asset/:symbol", component: xa }), n.a.createElement(rr.a, { exact: !0, path: "/block/:height", component: Sa }), n.a.createElement(rr.a, { exact: !0, path: "/block/:height/:txIndex", component: Sa }), n.a.createElement(rr.a, { path: "/borrow", component: Oa }), n.a.createElement(rr.a, { path: "/barter", component: Ba }), n.a.createElement(rr.a, { path: "/direct-debit", component: ja }), n.a.createElement(rr.a, { path: "/spotlight", component: oa }), n.a.createElement(rr.a, { path: "/wallet", component: Ta }), n.a.createElement(rr.a, { path: "/create-wallet-brainkey", component: $r.a }), n.a.createElement(rr.a, { path: "/existing-account", component: Ca }), n.a.createElement(rr.a, { path: "/create-worker", component: za }), n.a.createElement(rr.a, { exact: !0, path: "/help", component: ka }), n.a.createElement(rr.a, { exact: !0, path: "/help/:path1", component: ka }), n.a.createElement(rr.a, { exact: !0, path: "/help/:path1/:path2", component: ka }), n.a.createElement(rr.a, { exact: !0, path: "/help/:path1/:path2/:path3", component: ka }), n.a.createElement(rr.a, { path: "/htlc", component: Pa }), n.a.createElement(rr.a, { path: "*", component: nr.a })))), n.a.createElement(Mt, { synced: this.state.synced, history: this.props.history }), n.a.createElement(ae.a, { ref: "tooltip", place: "top", type: "lightTheme" === s ? "dark" : "light", effect: "solid" })) } return n.a.createElement("div", { style: { backgroundColor: s ? null : "#2a2a2a" }, className: s }, n.a.createElement(de.BodyClassName, { className: s }, i && t && !r ? n.a.createElement(Ut, { onClickIgnore: this._onIgnoreIncognitoWarning.bind(this) }) : null, n.a.createElement("div", { id: "content-wrapper" }, c, n.a.createElement(xe.a, { ref: "notificationSystem", allowHTML: !0, style: { Containers: { DefaultStyle: { width: "425px" } } } }), n.a.createElement(Oe, null), n.a.createElement(N, null), n.a.createElement(pa, null), n.a.createElement(ct, null), n.a.createElement(dt, { visible: this.state.isBrowserSupportModalVisible, hideModal: this.hideBrowserSupportModal, showModal: this.showBrowserSupportModal })))) } }]), t }(); t.a = Object(f.a)(Ia) } , , , , , , , , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var o = function(e) { function t() { return function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t), function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).apply(this, arguments)) } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, n.a.Component), i(t, [{ key: "render", value: function() { return n.a.createElement("div", null, "Base Modal was removed by task following below:", n.a.createElement("br", null), "https://github.com/bitshares/bitshares-ui/issues/1942") } }]), t }(); t.a = o } , , , , , , function(e, t, r) {} , function(e, t, r) { "use strict"; var a = r(0) , n = r.n(a) , i = r(1) , o = r.n(i) , s = r(3) , l = r.n(s) , c = r(2) , u = r.n(c) , d = r(443) , p = r.n(d) , h = r(133) , m = function() { function e(e, t) { for (var r = 0; r < t.length; r++) { var a = t[r]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value"in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } } return function(t, r, a) { return r && e(t.prototype, r), a && e(t, a), t } }(); var f = function(e) { function t(e) { !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, t); var r = function(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t }(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return r.handleChange = r.handleChange.bind(r), r.onKeyDown = r.onKeyDown.bind(r), r.state = { value: e.value || "", error: null, wrong: !1, doesnt_match: !1 }, r } return function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) }(t, a["Component"]), m(t, [{ key: "value", value: function() { var e = this.refs.password; return e ? e.value : "" } }, { key: "clear", value: function() { this.refs.password.value = "", this.props.confirmation && (this.refs.confirm_password.value = "") } }, { key: "focus", value: function() { this.refs.password.focus() } }, { key: "valid", value: function() { return !(this.state.error || this.state.wrong || this.state.doesnt_match) && this.state.value.length >= this.props.passwordLength } }, { key: "handleChange", value: function(e) { e.preventDefault(), e.stopPropagation(); var t = !this.props.confirmation || this.refs.confirm_password.value , r = this.refs.password.value , a = !!this.props.confirmation && (t && r !== t) , n = 0 , i = void 0; if (this.props.checkStrength) { if (this.state.value.length > 100) n = { score: 4 }; else n = p.a.load({ sync: !0 })(this.state.value || ""); i = Math.min(5, n.score + Math.floor(this.state.value.length / (1.5 * this.props.passwordLength))) } var o = { valid: !this.state.error && !this.state.wrong && !(this.props.confirmation && a) && t && r.length >= this.props.passwordLength, value: r, score: i, doesnt_match: a }; this.props.onChange && this.props.onChange(o), this.setState(o) } }, { key: "onKeyDown", value: function(e) { this.props.onEnter && 13 === e.keyCode && this.props.onEnter(e) } }, { key: "render", value: function() { var e = this.state , t = e.score , r = e.value , a = this.props , i = a.copy , o = a.visible , s = a.readonly , c = null , d = null; this.state.wrong || this.props.wrongPassword ? c = n.a.createElement("div", null, n.a.createElement(u.a, { content: "wallet.pass_incorrect" })) : this.state.error && (c = n.a.createElement("div", null, this.state.error)), !this.props.noValidation && !c && this.state.value.length > 0 && this.state.value.length < this.props.passwordLength && (c = n.a.createElement("div", null, n.a.createElement(u.a, { content: "wallet.pass_length", minLength: this.props.passwordLength }))), this.state.doesnt_match && (d = n.a.createElement("div", null, n.a.createElement(u.a, { content: "wallet.confirm_error" }))); var p = l()("form-group", { "has-error": c }) , m = l()("form-group", { "has-error": this.state.doesnt_match }) , f = !1; return this.refs.confirm_password && this.refs.confirm_password.value && !this.state.doesnt_match && (f = !0), n.a.createElement("div", { className: "account-selector" }, n.a.createElement("div", { className: p }, n.a.createElement("section", null, n.a.createElement("label", { className: "left-label " + (this.props.labelClass || "") }, n.a.createElement(u.a, { content: "wallet.enter_password" })), n.a.createElement("div", { className: "generated-password-section" }, n.a.createElement("input", { style: { marginBottom: this.props.checkStrength ? 0 : null, display: i ? "inline" : "block" }, id: "current-password", name: "password", type: o ? "text" : "password", ref: "password", autoComplete: "current-password", onChange: this.handleChange, onKeyDown: this.onKeyDown, value: r, readOnly: s }), i && n.a.createElement(h.a, { text: r, tip: "tooltip.copy_password", dataPlace: "top", className: "button password-copy-button" })), this.props.checkStrength ? n.a.createElement("progress", { style: { height: 10 }, className: 5 === t ? "high" : 4 === t ? "medium" : "low", value: t, max: "5", min: "0" }) : null), c), this.props.confirmation ? n.a.createElement("div", { className: m }, n.a.createElement("label", { className: "left-label" }, n.a.createElement(u.a, { content: "wallet.confirm_password" })), n.a.createElement("section", { style: { position: "relative", maxWidth: "30rem" } }, n.a.createElement("input", { id: "confirm_password", name: "confirm_password", type: "password", ref: "confirm_password", autoComplete: "confirm-password", onChange: this.handleChange }), f ? n.a.createElement("div", { className: "ok-indicator success" }, "OK") : null), d) : null) } }]), t }(); f.propTypes = { onChange: o.a.func, onEnter: o.a.func, confirmation: o.a.bool, wrongPassword: o.a.bool, noValidation: o.a.bool, noLabel: o.a.bool, passwordLength: o.a.number, checkStrength: o.a.bool, value: o.a.string, copy: o.a.bool, visible: o.a.bool, readonly: o.a.bool }, f.defaultProps = { confirmation: !1, wrongPassword: !1, noValidation: !1, noLabel: !1, passwordLength: 8, checkStrength: !1, value: "", copy: !1, visible: !1, readonly: !1 }, t.a = f } , , , function(e, t, r) { r(870), window.Intl ? r(629) : Promise.all([r.e(28), r.e(8)]).then(function(e) { window.Intl = r(867), Intl.__addLocaleData(r(1958)), r(629) } .bind(null, r)).catch(r.oe) } , function(e, t, r) { r(871), r(876), r(877), r(1079), r(1080), r(1081), r(1169), r(1181) } , function(e, t, r) {} , , , , , function(e, t, r) { e.exports = r.p + "favicon.ico" } , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, r) { r(1082), r(1083), r(1084), r(1085), r(1086), r(1087), r(1088), r(1089), r(1090), r(1091), r(1092), r(1093), r(1094), r(1095), r(1096), r(1097), r(1098), r(1099), r(1100), r(1101), r(1102), r(1103), r(1104), r(1105), r(1106), r(1107), r(1108), r(1109), r(1110), r(1111), r(1112), r(1113), r(1114), r(1115), r(1116), r(1117), r(1118), r(1119), r(1120), r(1121), r(1122), r(1123), r(1124), r(1125), r(1126), r(1127), r(1128), r(1129), r(1130), r(1131), r(1132), r(1133), r(1134), r(1135), r(1136), r(1137), r(1138), r(1139), r(1140), r(1141), r(1142), r(1143), r(1144), r(1145), r(1146), r(1147), r(1148), r(1149), r(1150), r(1151), r(1152), r(1153), r(1154), r(1155), r(1156), r(1157), r(1158), r(1159), r(1160), r(1161), r(1162), r(1163), r(1164), r(1165), r(1166), r(1167), r(1168) } , function(e, t, r) { e.exports = r.p + "asset-symbols/bts.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/usd.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/eur.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/cny.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/gold.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/btc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/silver.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/eth.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/steem.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/mkr.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dgd.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/obits.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/btsr.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dao.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/lisk.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/peerplays.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/icoo.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/blockpay.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dash.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/eurt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/game.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/grc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/usdt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/bkt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/kapital.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dct.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/incnt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/nxc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/btwty.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/open.btc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/gdex.btc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/hempsweet.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/eos.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/yoyow.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/hero.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/ruble.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/oct.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/smoke.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/stealth.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/kexcoin.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/bto.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/btm.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/krm.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/golos.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/gbg.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/atn.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/neo.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/gas.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/qtum.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/bkbt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dht.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/gxs.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/scr.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/zeph.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/egem.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/hertz.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/dgb.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/doge.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/tusd.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/zec.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/waves.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/zrx.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/xrp.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/xmr.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/sbd.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/sth.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/kec.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/ltc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/post.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/bch.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/btg.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/mdl.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/cof.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/exr.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/lcrt.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/ppy.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.btc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.eos.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.eth.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.gbg.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.golos.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.grc.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.krm.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.sbd.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.smoke.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.steem.png" } , function(e, t, r) { e.exports = r.p + "asset-symbols/rudex.wls.png" } , function(e, t, r) { r(1170), r(1171), r(1172), r(1173), r(1174), r(1175), r(1176), r(1177), r(1178), r(1179), r(1180) } , function(e, t, r) { e.exports = r.p + "model-type-images/account-active.svg" } , function(e, t, r) { e.exports = r.p + "model-type-images/account-inactive.svg" } , function(e, t, r) { e.exports = r.p + "model-type-images/flesh-active.svg" } , function(e, t, r) { e.exports = r.p + "model-type-images/flesh-inactive.svg" } , function(e, t, r) { e.exports = r.p + "model-type-images/flesh-drive.svg" } , function(e, t, r) { e.exports = r.p + "model-type-images/account.svg" } , function(e, t, r) { e.exports = r.p + "bin-file/default.svg" } , function(e, t, r) { e.exports = r.p + "bin-file/downloaded.svg" } , function(e, t, r) { e.exports = r.p + "bin-file/error.svg" } , function(e, t, r) { e.exports = r.p + "bin-file/hover.svg" } , function(e, t, r) { e.exports = r.p + "bin-file/rounded-arrow.svg" } , function(e, t, r) { r(1182), r(1183), r(1184), r(1185), r(1186), r(1187), r(1188), r(1189), r(1190), r(1191) } , function(e, t, r) { e.exports = r.p + "language-dropdown/EN.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/FR.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/TR.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/ZH.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/DE.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/IT.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/KO.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/ES.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/RU.png" } , function(e, t, r) { e.exports = r.p + "language-dropdown/JA.png" } , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {} , , function(e, t) {} , , , , , , , , , , , , , , , , , , , , , function(e, t) {} , , , , , , , , , , , , , , , , , , , , , , function(e, t) { e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABCCAYAAAAVHYVwAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AYXEzkiXZr60wAABZFJREFUaN7tmHtsU3UUxz/ndrxCkLXdhqL4ABME5ZFoQkiIBkXDawLrnA8U1IBEY0RjokQFa3zHxEQBw4AsoAaxtJ2KUaNuE1CDr8QwY4AYl4CCOHovr/DQ9h7/6Nbh2NZ7u95Byc6/99x7+uk5v3O+5we91ms9bNGDV/GJ9iuUn2t0+kRkEiesBuJHgoUNkraJkNxKxLy00EFAGY2P7dRa4wsbJG0XYetWNiVuKXQQgEEYspmYeVehgwD0Bd4llggXOgiAgDxLNPEGYTUKGaS1PT/CGDNKZO+AwgZJ08zBN7DuXJg1+SiNc2LW5KfGz4FZk8/DelZnTb67zlmbNV60z7Mya7yaA+lZEzdfLnSQ1iYw6/wAOQ9KqxekF6TTJyl7G5AofJCq0l0YMgU4VAggRV0+neP/mU2JGRjyOTCwW5Fi5kMIw0B2Y0sjocE/IaI9d0ZuC36L6BzgVDdH5ESUJajWIPYPxK29xMzlRA9O8BYknriZWutyACqCX4DcCSTzWA0XAw8jxnZi1hdED13nDYhyGbZuofbQCABC/lpUFgCa/wrXKYj9PVHrdaq1jxeldSm23ZCBqfSvB1nsmT4TfYwSaysfHhjixRwZhm03EDl8ZUtmloM+51n7EfZwQVnCC5A0jC91GkwwjMjrHmC8j98/l8mSpFr7ED9a5sVkvwRfahuRxOh0A/A/DryUR4iNBPx3M1mSRNRHifU2+u9HTs+MW4lyIT6jPgMTCjyN8GIeIDaQOg3CZ70L3AFMoMRc6pHW0iH4jHqiiavTmQk8A/p87mdCamj030OVpKjWPhhmpAWi1eEp4gdHeSQadQhi1GVgQsFloC/kQLGWHcULCYudKSeRinZOPjDCHoG0wlBP3LymBWYpIosB2+H2uIbG4kWExe44E//zrczE8UbGSxmqdXxgjmlpAG+iWoVyBGhCeTLjavMawiuAhbKSkH9Rlky0/53zslwSdCbyEgtA1jgkasbHTcwONALw8SE/xuDjTJcz9dmHzYO4teQYItruYGezJkKB4V4vVqWkqCNqjgVgZrHVIQTArNKjiGjWcjrTrshk3uMNsRTRUY69S8whiEx1FSHJuJ4A+Y2KQMSxdyj4ByrV7o6kjnS/WInsRFnt4g5rm/tFSde5WtiUJnqtQEy62BCnorLSxZdiVASecBW91pyGzQoXb3xNKDDf5eWDsR90uPP6lXls3hemfOhxFzV/L+AiBp+671rJY7sdy41WyXKq//2O3Ru0CGWSywramcO91rATwC8uQOrpd7LGsftkSZLSm0EOOC9f+7sc54jEHYbYSio1i/Khx1EVYonbefuvjttqzLo+IwCrgr+SSt4A7HcQYy8VwR9zA/Fp3BlEcgZVZccIq0HcWgWykYF99xCz1rY1D6uCmNkIugWlPiM3qkp3kUpNzgqjEu1qTnUNkhaB33RZTn1PTqOq7BiqwhhrBfBAy8MAaGWbq04ArulQm7XB7OskUApSq7sn48VYlrWcwmoQN2uAB91pM75sB3NjxzD6DpUlO7sHUlFcj2hdp5mIqI+xZg3IvbkJzfYwZzSAE+DLuko7E40G9wHmGZlI7xM1qMzvnmo+HSbTAFoz8yih4t/zAzI7uBeRhf872BH1UWSty7a55ZwZsacAbxEKOBKu4ipcgxaddmWzHpib5Y3DhALF6bZrvgpkkzDNKFOoDOzw6qaxbYgBFFkbHEDknplI80hvQdp6+iqHQ8z1l1F9D0qaegYk5G+A1LUoH+cRognR6VQGF1Ml//QMCECodD+VgXLQid0D0r8RljDAP4qK4Ge5fqWo2/9jKLgdKCfSPBLDNwfREMj4LN/+E2UzYscIBL/KnD1PFqvuWLX2IZgYAcZwKgOftGitcdip/vQv2s3MYqt3pz3f7T/G2ymTRhfhyAAAAABJRU5ErkJggg==" } , , , , , , , function(e, t, r) { e.exports = function() { return r(650)('!function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=123)}([function(t,e,r){"use strict";var n=r(6),i=r(12),o={is_empty:function(t){return null===t||void 0===t},required:function(t,e){if(void 0===e&&(e=""),this.is_empty(t))throw new Error("value required "+e+" "+t);return t},require_array:function(t,e){if(!(t instanceof Array))throw new Error("array required");return e&&t.forEach(function(t){e(t)}),t},require_long:function(t,e){if(void 0===e&&(e=""),!n.Long.isLong(t))throw new Error("Long value required "+e+" "+t);return t},string:function(t){if(this.is_empty(t))return t;if("string"!=typeof t)throw new Error("string required: "+t);return t},number:function(t){if(this.is_empty(t))return t;if("number"!=typeof t)throw new Error("number required: "+t);return t},whole_number:function(t,e){if(void 0===e&&(e=""),this.is_empty(t))return t;if(/\\./.test(t))throw new Error("whole number required "+e+" "+t);return t},unsigned:function(t,e){if(void 0===e&&(e=""),this.is_empty(t))return t;if(/-/.test(t))throw new Error("unsigned required "+e+" "+t);return t},is_digits:function(t){return"numeric"==typeof t||/^[0-9]+$/.test(t)},to_number:function(t,e){return void 0===e&&(e=""),this.is_empty(t)?t:(this.no_overflow53(t,e),"number"==typeof t?t:parseInt(t))},to_long:function(t,e,r){return void 0===e&&(e=""),void 0===r&&(r=!1),this.is_empty(t)?t:n.Long.isLong(t)?t:(this.no_overflow64(t,e,r),"number"==typeof t&&(t=""+t),n.Long.fromString(t,r))},to_string:function(t,e){if(void 0===e&&(e=""),this.is_empty(t))return t;if("string"==typeof t)return t;if("number"==typeof t)return this.no_overflow53(t,e),""+t;if(n.Long.isLong(t))return t.toString();throw"unsupported type "+e+": ("+typeof t+") "+t},require_test:function(t,e,r){if(void 0===r&&(r=""),this.is_empty(e))return e;if(!t.test(e))throw new Error("unmatched "+t+" "+r+" "+e);return e},require_match:function(t,e,r){if(void 0===r&&(r=""),this.is_empty(e))return e;var n=e.match(t);if(null===n)throw new Error("unmatched "+t+" "+r+" "+e);return n},require_object_id:function(t,e){return require_match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/,t,e)},require_range:function(t,e,r,n){if(void 0===n&&(n=""),this.is_empty(r))return r;this.to_number(r);if(re)throw new Error("out of range "+r+" "+n+" "+r);return r},require_object_type:function(t,e,r,n){if(void 0===t&&(t=1),void 0===n&&(n=""),this.is_empty(r))return r;var o=i.a.object_type[e];if(!o)throw new Error("Unknown object type "+e+" "+n+" "+r);if(!new RegExp(t+"."+o+".[0-9]+$").test(r))throw new Error("Expecting "+e+" in format "+t+"."+o+".[0-9]+ instead of "+r+" "+n+" "+r);return r},get_instance:function(t,e,r,n){return this.is_empty(r)?r:(this.require_object_type(t,e,r,n),this.to_number(r.split(".")[2]))},require_relative_type:function(t,e,r){return this.require_object_type(0,t,e,r),e},get_relative_instance:function(t,e,r){return this.is_empty(e)?e:(this.require_object_type(0,t,e,r),this.to_number(e.split(".")[2]))},require_protocol_type:function(t,e,r){return this.require_object_type(1,t,e,r),e},get_protocol_instance:function(t,e,r){return this.is_empty(e)?e:(this.require_object_type(1,t,e,r),this.to_number(e.split(".")[2]))},get_protocol_type:function(t,e){if(this.is_empty(t))return t;this.require_object_id(t,e);var r=t.split(".");return this.to_number(r[1])},get_protocol_type_name:function(t,e){if(this.is_empty(t))return t;var r=this.get_protocol_type(t,e);return Object.keys(i.a.object_type)[r]},require_implementation_type:function(t,e,r){return this.require_object_type(2,t,e,r),e},get_implementation_instance:function(t,e,r){return this.is_empty(e)?e:(this.require_object_type(2,t,e,r),this.to_number(e.split(".")[2]))},no_overflow53:function(t,e){if(void 0===e&&(e=""),"number"!=typeof t)if("string"!=typeof t){if(!n.Long.isLong(t))throw"unsupported type "+e+": ("+typeof t+") "+t;this.no_overflow53(t.toInt(),e)}else{parseInt(t);if(t>9007199254740991||t<-9007199254740991)throw new Error("overflow "+e+" "+t)}else if(t>9007199254740991||t<-9007199254740991)throw new Error("overflow "+e+" "+t)},no_overflow64:function(t,e,r){if(void 0===e&&(e=""),void 0===r&&(r=!1),!n.Long.isLong(t))if(void 0===t.t||void 0===t.s)if("string"!=typeof t){if("number"!=typeof t)throw"unsupported type "+e+": ("+typeof t+") "+t;if(t>9007199254740991||t<-9007199254740991)throw new Error("overflow "+e+" "+t)}else{for(t=t.replace(/^0+/,"");/0$/.test(t);)t=t.substring(0,t.length-1);if(/\\.$/.test(t)&&(t=t.substring(0,t.length-1)),""===t&&(t="0"),n.Long.fromString(t,r).toString()!==t.trim())throw new Error("overflow "+e+" "+t)}else this.no_overflow64(t.toString(),e,r)}};e.a=o},function(t,e,r){"use strict";r.r(e),r.d(e,"sha1",function(){return a}),r.d(e,"sha256",function(){return u}),r.d(e,"sha512",function(){return f}),r.d(e,"HmacSHA256",function(){return c}),r.d(e,"ripemd160",function(){return h});var n=r(35),i=r.n(n),o=r(67),s=r.n(o);function a(t,e){return i()("sha1").update(t).digest(e)}function u(t,e){return i()("sha256").update(t).digest(e)}function f(t,e){return i()("sha512").update(t).digest(e)}function c(t,e){return s()("sha256",e).update(t).digest()}function h(t){return i()("rmd160").update(t).digest()}},function(t,e,r){"use strict";(function(e){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction n(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i=0;f--)if(c[f]!==h[f])return!1;for(f=c.length-1;f>=0;f--)if(u=c[f],!y(t[u],e[u],r,n))return!1;return!0}(t,e,r,s))}return r?t===e:t==e}function b(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function m(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError(\'"block" argument must be a function\');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&g(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!t&&o.isError(i),u=!t&&i&&!r;if((a&&s&&m(i,r)||u)&&g(i,r,"Got unwanted exception"+n),t&&i&&r&&!m(i,r)||!t&&i)throw i}h.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return p(_(t.actual),128)+" "+t.operator+" "+p(_(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=d(e),o=n.indexOf("\\n"+i);if(o>=0){var s=n.indexOf("\\n",o+1);n=n.substring(s+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=g,h.ok=v,h.equal=function(t,e,r){t!=e&&g(t,e,r,"==",h.equal)},h.notEqual=function(t,e,r){t==e&&g(t,e,r,"!=",h.notEqual)},h.deepEqual=function(t,e,r){y(t,e,!1)||g(t,e,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(t,e,r){y(t,e,!0)||g(t,e,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(t,e,r){y(t,e,!1)&&g(t,e,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function t(e,r,n){y(e,r,!0)&&g(e,r,n,"notDeepStrictEqual",t)},h.strictEqual=function(t,e,r){t!==e&&g(t,e,r,"===",h.strictEqual)},h.notStrictEqual=function(t,e,r){t===e&&g(t,e,r,"!==",h.notStrictEqual)},h.throws=function(t,e,r){w(!0,t,e,r)},h.doesNotThrow=function(t,e,r){w(!1,t,e,r)},h.ifError=function(t){if(t)throw t};var E=Object.keys||function(t){var e=[];for(var r in t)s.call(t,r)&&e.push(r);return e}}).call(this,r(16))},function(t,e,r){"use strict";var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,r):{};n.get||n.set?Object.defineProperty(e,r,n):e[r]=t[r]}return e.default=t,e}(r(63));Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Manager",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"ChainConfig",{enumerable:!0,get:function(){return o.default}}),e.Apis=void 0,e.Apis=n;var i=s(r(100)),o=s(r(65));function s(t){return t&&t.__esModule?t:{default:t}}},function(t,e,r){t.exports=function(){"use strict";var t=Array.prototype.slice;function e(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function r(t){return s(t)?t:K(t)}function n(t){return a(t)?t:Y(t)}function i(t){return u(t)?t:Z(t)}function o(t){return s(t)&&!f(t)?t:J(t)}function s(t){return!(!t||!t[h])}function a(t){return!(!t||!t[l])}function u(t){return!(!t||!t[d])}function f(t){return a(t)||u(t)}function c(t){return!(!t||!t[p])}e(n,r),e(i,r),e(o,r),r.isIterable=s,r.isKeyed=a,r.isIndexed=u,r.isAssociative=f,r.isOrdered=c,r.Keyed=n,r.Indexed=i,r.Set=o;var h="@@__IMMUTABLE_ITERABLE__@@",l="@@__IMMUTABLE_KEYED__@@",d="@@__IMMUTABLE_INDEXED__@@",p="@@__IMMUTABLE_ORDERED__@@",_=5,g=1<<_,v=g-1,y={},b={value:!1},m={value:!1};function w(t){return t.value=!1,t}function E(t){t&&(t.value=!0)}function S(){}function B(t,e){e=e||0;for(var r=Math.max(0,t.length-e),n=new Array(r),i=0;i>>0;if(""+r!==e||4294967295===r)return NaN;e=r}return e<0?I(t)+e:e}function k(){return!0}function x(t,e,r){return(0===t||void 0!==r&&t<=-r)&&(void 0===e||void 0!==r&&e>=r)}function O(t,e){return j(t,e,0)}function A(t,e){return j(t,e,e)}function j(t,e,r){return void 0===t?r:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}var L=0,M=1,D=2,R="function"==typeof Symbol&&Symbol.iterator,z="@@iterator",U=R||z;function q(t){this.next=t}function C(t,e,r,n){var i=0===t?e:1===t?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function P(){return{value:void 0,done:!0}}function N(t){return!!W(t)}function F(t){return t&&"function"==typeof t.next}function H(t){var e=W(t);return e&&e.call(t)}function W(t){var e=t&&(R&&t[R]||t[z]);if("function"==typeof e)return e}function V(t){return t&&"number"==typeof t.length}function K(t){return null===t||void 0===t?ot():s(t)?t.toSeq():function(t){var e=ut(t)||"object"==typeof t&&new et(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}(t)}function Y(t){return null===t||void 0===t?ot().toKeyedSeq():s(t)?a(t)?t.toSeq():t.fromEntrySeq():st(t)}function Z(t){return null===t||void 0===t?ot():s(t)?a(t)?t.entrySeq():t.toIndexedSeq():at(t)}function J(t){return(null===t||void 0===t?ot():s(t)?a(t)?t.entrySeq():t:at(t)).toSetSeq()}q.prototype.toString=function(){return"[Iterator]"},q.KEYS=L,q.VALUES=M,q.ENTRIES=D,q.prototype.inspect=q.prototype.toSource=function(){return this.toString()},q.prototype[U]=function(){return this},e(K,r),K.of=function(){return K(arguments)},K.prototype.toSeq=function(){return this},K.prototype.toString=function(){return this.__toString("Seq {","}")},K.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},K.prototype.__iterate=function(t,e){return ft(this,t,e,!0)},K.prototype.__iterator=function(t,e){return ct(this,t,e,!0)},e(Y,K),Y.prototype.toKeyedSeq=function(){return this},e(Z,K),Z.of=function(){return Z(arguments)},Z.prototype.toIndexedSeq=function(){return this},Z.prototype.toString=function(){return this.__toString("Seq [","]")},Z.prototype.__iterate=function(t,e){return ft(this,t,e,!1)},Z.prototype.__iterator=function(t,e){return ct(this,t,e,!1)},e(J,K),J.of=function(){return J(arguments)},J.prototype.toSetSeq=function(){return this},K.isSeq=it,K.Keyed=Y,K.Set=J,K.Indexed=Z;var G,X,$,Q="@@__IMMUTABLE_SEQ__@@";function tt(t){this._array=t,this.size=t.length}function et(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function rt(t){this._iterable=t,this.size=t.length||t.size}function nt(t){this._iterator=t,this._iteratorCache=[]}function it(t){return!(!t||!t[Q])}function ot(){return G||(G=new tt([]))}function st(t){var e=Array.isArray(t)?new tt(t).fromEntrySeq():F(t)?new nt(t).fromEntrySeq():N(t)?new rt(t).fromEntrySeq():"object"==typeof t?new et(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function at(t){var e=ut(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function ut(t){return V(t)?new tt(t):F(t)?new nt(t):N(t)?new rt(t):void 0}function ft(t,e,r,n){var i=t._cache;if(i){for(var o=i.length-1,s=0;s<=o;s++){var a=i[r?o-s:s];if(!1===e(a[1],n?a[0]:s,t))return s+1}return s}return t.__iterateUncached(e,r)}function ct(t,e,r,n){var i=t._cache;if(i){var o=i.length-1,s=0;return new q(function(){var t=i[r?o-s:s];return s++>o?{value:void 0,done:!0}:C(e,n?t[0]:s-1,t[1])})}return t.__iteratorUncached(e,r)}function ht(t,e){return e?function t(e,r,n,i){return Array.isArray(r)?e.call(i,n,Z(r).map(function(n,i){return t(e,n,i,r)})):dt(r)?e.call(i,n,Y(r).map(function(n,i){return t(e,n,i,r)})):r}(e,t,"",{"":t}):lt(t)}function lt(t){return Array.isArray(t)?Z(t).map(lt).toList():dt(t)?Y(t).map(lt).toMap():t}function dt(t){return t&&(t.constructor===Object||void 0===t.constructor)}function pt(t,e){if(t===e||t!=t&&e!=e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!=t&&e!=e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function _t(t,e){if(t===e)return!0;if(!s(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||a(t)!==a(e)||u(t)!==u(e)||c(t)!==c(e))return!1;if(0===t.size&&0===e.size)return!0;var r=!f(t);if(c(t)){var n=t.entries();return e.every(function(t,e){var i=n.next().value;return i&&pt(i[1],t)&&(r||pt(i[0],e))})&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var h=!0,l=e.__iterate(function(e,n){if(r?!t.has(e):i?!pt(e,t.get(n,y)):!pt(t.get(n,y),e))return h=!1,!1});return h&&t.size===l}function gt(t,e){if(!(this instanceof gt))return new gt(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(X)return X;X=this}}function vt(t,e){if(!t)throw new Error(e)}function yt(t,e,r){if(!(this instanceof yt))return new yt(t,e,r);if(vt(0!==r,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),r=void 0===r?1:Math.abs(r),en?{value:void 0,done:!0}:C(t,i,r[e?n-i++:i++])})},e(et,Y),et.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},et.prototype.has=function(t){return this._object.hasOwnProperty(t)},et.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length-1,o=0;o<=i;o++){var s=n[e?i-o:o];if(!1===t(r[s],s,this))return o+1}return o},et.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length-1,o=0;return new q(function(){var s=n[e?i-o:o];return o++>i?{value:void 0,done:!0}:C(t,s,r[s])})},et.prototype[p]=!0,e(rt,Z),rt.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var r=this._iterable,n=H(r),i=0;if(F(n))for(var o;!(o=n.next()).done&&!1!==t(o.value,i++,this););return i},rt.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterable,n=H(r);if(!F(n))return new q(P);var i=0;return new q(function(){var e=n.next();return e.done?e:C(t,i++,e.value)})},e(nt,Z),nt.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var r,n=this._iterator,i=this._iteratorCache,o=0;o=n.length){var e=r.next();if(e.done)return e;n[i]=e.value}return C(t,i,n[i++])})},e(gt,Z),gt.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},gt.prototype.get=function(t,e){return this.has(t)?this._value:e},gt.prototype.includes=function(t){return pt(this._value,t)},gt.prototype.slice=function(t,e){var r=this.size;return x(t,e,r)?this:new gt(this._value,A(e,r)-O(t,r))},gt.prototype.reverse=function(){return this},gt.prototype.indexOf=function(t){return pt(this._value,t)?0:-1},gt.prototype.lastIndexOf=function(t){return pt(this._value,t)?this.size:-1},gt.prototype.__iterate=function(t,e){for(var r=0;r=0&&e=0&&rr?{value:void 0,done:!0}:C(t,o++,s)})},yt.prototype.equals=function(t){return t instanceof yt?this._start===t._start&&this._end===t._end&&this._step===t._step:_t(this,t)},e(bt,r),e(mt,bt),e(wt,bt),e(Et,bt),bt.Keyed=mt,bt.Indexed=wt,bt.Set=Et;var St="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var r=65535&(t|=0),n=65535&(e|=0);return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0};function Bt(t){return t>>>1&1073741824|3221225471&t}function It(t){if(!1===t||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(!1===(t=t.valueOf())||null===t||void 0===t))return 0;if(!0===t)return 1;var e=typeof t;if("number"===e){if(t!=t||t===1/0)return 0;var r=0|t;for(r!==t&&(r^=4294967295*t);t>4294967295;)r^=t/=4294967295;return Bt(r)}if("string"===e)return t.length>Mt?function(t){var e=zt[t];return void 0===e&&(e=Tt(t),Rt===Dt&&(Rt=0,zt={}),Rt++,zt[t]=e),e}(t):Tt(t);if("function"==typeof t.hashCode)return t.hashCode();if("object"===e)return function(t){var e;if(At&&void 0!==(e=kt.get(t)))return e;if(void 0!==(e=t[Lt]))return e;if(!Ot){if(void 0!==(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Lt]))return e;if(void 0!==(e=function(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}(t)))return e}if(e=++jt,1073741824&jt&&(jt=0),At)kt.set(t,e);else{if(void 0!==xt&&!1===xt(t))throw new Error("Non-extensible objects are not allowed as keys.");if(Ot)Object.defineProperty(t,Lt,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Lt]=e;else{if(void 0===t.nodeType)throw new Error("Unable to set a non-enumerable property on object.");t[Lt]=e}}return e}(t);if("function"==typeof t.toString)return Tt(t.toString());throw new Error("Value type "+e+" cannot be hashed.")}function Tt(t){for(var e=0,r=0;r=e.length)throw new Error("Missing value for key: "+e[r]);t.set(e[r],e[r+1])}})},qt.prototype.toString=function(){return this.__toString("Map {","}")},qt.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},qt.prototype.set=function(t,e){return Qt(this,t,e)},qt.prototype.setIn=function(t,e){return this.updateIn(t,y,function(){return e})},qt.prototype.remove=function(t){return Qt(this,t,y)},qt.prototype.deleteIn=function(t){return this.updateIn(t,function(){return y})},qt.prototype.update=function(t,e,r){return 1===arguments.length?t(this):this.updateIn([t],e,r)},qt.prototype.updateIn=function(t,e,r){r||(r=e,e=void 0);var n=function t(e,r,n,i){var o=e===y,s=r.next();if(s.done){var a=o?n:e,u=i(a);return u===a?e:u}vt(o||e&&e.set,"invalid keyPath");var f=s.value,c=o?y:e.get(f,y),h=t(c,r,n,i);return h===c?e:h===y?e.remove(f):(o?$t():e).set(f,h)}(this,rr(t),e,r);return n===y?void 0:n},qt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):$t()},qt.prototype.merge=function(){return ne(this,void 0,arguments)},qt.prototype.mergeWith=function(e){var r=t.call(arguments,1);return ne(this,e,r)},qt.prototype.mergeIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,$t(),function(t){return"function"==typeof t.merge?t.merge.apply(t,r):r[r.length-1]})},qt.prototype.mergeDeep=function(){return ne(this,ie,arguments)},qt.prototype.mergeDeepWith=function(e){var r=t.call(arguments,1);return ne(this,oe(e),r)},qt.prototype.mergeDeepIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,$t(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,r):r[r.length-1]})},qt.prototype.sort=function(t){return Oe(Ve(this,t))},qt.prototype.sortBy=function(t,e){return Oe(Ve(this,e,t))},qt.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},qt.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new S)},qt.prototype.asImmutable=function(){return this.__ensureOwner()},qt.prototype.wasAltered=function(){return this.__altered},qt.prototype.__iterator=function(t,e){return new Zt(this,t,e)},qt.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate(function(e){return n++,t(e[1],e[0],r)},e),n},qt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Xt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},qt.isMap=Ct;var Pt,Nt="@@__IMMUTABLE_MAP__@@",Ft=qt.prototype;function Ht(t,e){this.ownerID=t,this.entries=e}function Wt(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r}function Vt(t,e,r){this.ownerID=t,this.count=e,this.nodes=r}function Kt(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r}function Yt(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r}function Zt(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&Gt(t._root)}function Jt(t,e){return C(t,e[0],e[1])}function Gt(t,e){return{node:t,index:0,__prev:e}}function Xt(t,e,r,n){var i=Object.create(Ft);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function $t(){return Pt||(Pt=Xt(0))}function Qt(t,e,r){var n,i;if(t._root){var o=w(b),s=w(m);if(n=te(t._root,t.__ownerID,0,void 0,e,r,o,s),!s.value)return t;i=t.size+(o.value?r===y?-1:1:0)}else{if(r===y)return t;i=1,n=new Ht(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?Xt(i,n):$t()}function te(t,e,r,n,i,o,s,a){return t?t.update(e,r,n,i,o,s,a):o===y?t:(E(a),E(s),new Yt(e,n,[i,o]))}function ee(t){return t.constructor===Yt||t.constructor===Kt}function re(t,e,r,n,i){if(t.keyHash===n)return new Kt(e,n,[t.entry,i]);var o,s=(0===r?t.keyHash:t.keyHash>>>r)&v,a=(0===r?n:n>>>r)&v,u=s===a?[re(t,e,r+_,n,i)]:(o=new Yt(e,n,i),s>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function ue(t,e,r,n){var i=n?t:B(t);return i[e]=r,i}Ft[Nt]=!0,Ft.delete=Ft.remove,Ft.removeIn=Ft.deleteIn,Ht.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,s=i.length;o=fe)return function(t,e,r,n){t||(t=new S);for(var i=new Yt(t,It(r),[r,n]),o=0;o>>t)&v),o=this.bitmap;return 0==(o&i)?n:this.nodes[ae(o&i-1)].get(t+_,e,r,n)},Wt.prototype.update=function(t,e,r,n,i,o,s){void 0===r&&(r=It(n));var a=(0===e?r:r>>>e)&v,u=1<=ce)return function(t,e,r,n,i){for(var o=0,s=new Array(g),a=0;0!==r;a++,r>>>=1)s[a]=1&r?e[o++]:void 0;return s[n]=i,new Vt(t,o+1,s)}(t,l,f,a,p);if(c&&!p&&2===l.length&&ee(l[1^h]))return l[1^h];if(c&&p&&1===l.length&&ee(p))return p;var b=t&&t===this.ownerID,m=c?p?f:f^u:f|u,w=c?p?ue(l,h,p,b):function(t,e,r){var n=t.length-1;if(r&&e===n)return t.pop(),t;for(var i=new Array(n),o=0,s=0;s>>t)&v,o=this.nodes[i];return o?o.get(t+_,e,r,n):n},Vt.prototype.update=function(t,e,r,n,i,o,s){void 0===r&&(r=It(n));var a=(0===e?r:r>>>e)&v,u=i===y,f=this.nodes,c=f[a];if(u&&!c)return this;var h=te(c,t,e+_,r,n,i,o,s);if(h===c)return this;var l=this.count;if(c){if(!h&&--l0&&n=0&&t=t.size||e<0)return t.withMutations(function(t){e<0?Te(t,e).set(0,r):Te(t,0,e+1).set(e,r)});e+=t._origin;var n=t._tail,i=t._root,o=w(m);return e>=xe(t._capacity)?n=Se(n,t.__ownerID,0,e,r,o):i=Se(i,t.__ownerID,t._level,e,r,o),o.value?t.__ownerID?(t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t):we(t._origin,t._capacity,t._level,i,n):t}(this,t,e)},le.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},le.prototype.insert=function(t,e){return this.splice(t,0,e)},le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=_,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Ee()},le.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(r){Te(r,0,e+t.length);for(var n=0;n>>e&v;if(n>=this.array.length)return new ge([],t);var i,o=0===n;if(e>0){var s=this.array[n];if((i=s&&s.removeBefore(t,e-_,r))===s&&o)return this}if(o&&!i)return this;var a=Be(this,t);if(!o)for(var u=0;u>>e&v;if(i>=this.array.length)return this;if(e>0){var o=this.array[i];if((n=o&&o.removeAfter(t,e-_,r))===o&&i===this.array.length-1)return this}var s=Be(this,t);return s.array.splice(i+1),n&&(s.array[i]=n),s};var ve,ye,be={};function me(t,e){var r=t._origin,n=t._capacity,i=xe(n),o=t._tail;return s(t._root,t._level,0);function s(t,a,u){return 0===a?function(t,s){var a=s===i?o&&o.array:t&&t.array,u=s>r?0:r-s,f=n-s;return f>g&&(f=g),function(){if(u===f)return be;var t=e?--f:u++;return a&&a[t]}}(t,u):function(t,i,o){var a,u=t&&t.array,f=o>r?0:r-o>>i,c=1+(n-o>>i);return c>g&&(c=g),function(){for(;;){if(a){var t=a();if(t!==be)return t;a=null}if(f===c)return be;var r=e?--c:f++;a=s(u&&u[r],i-_,o+(r<>>r&v,u=t&&a0){var f=t&&t.array[a],c=Se(f,e,r-_,n,i,o);return c===f?t:((s=Be(t,e)).array[a]=c,s)}return u&&t.array[a]===i?t:(E(o),s=Be(t,e),void 0===i&&a===s.array.length-1?s.array.pop():s.array[a]=i,s)}function Be(t,e){return e&&t&&e===t.ownerID?t:new ge(t?t.array.slice():[],e)}function Ie(t,e){if(e>=xe(t._capacity))return t._tail;if(e<1<0;)r=r.array[e>>>n&v],n-=_;return r}}function Te(t,e,r){void 0!==e&&(e|=0),void 0!==r&&(r|=0);var n=t.__ownerID||new S,i=t._origin,o=t._capacity,s=i+e,a=void 0===r?o:r<0?o+r:i+r;if(s===i&&a===o)return t;if(s>=a)return t.clear();for(var u=t._level,f=t._root,c=0;s+c<0;)f=new ge(f&&f.array.length?[void 0,f]:[],n),c+=1<<(u+=_);c&&(s+=c,i+=c,a+=c,o+=c);for(var h=xe(o),l=xe(a);l>=1<h?new ge([],n):d;if(d&&l>h&&s_;y-=_){var b=h>>>y&v;g=g.array[b]=Be(g.array[b],n)}g.array[h>>>_&v]=d}if(a=l)s-=l,a-=l,u=_,f=null,p=p&&p.removeBefore(n,0,s);else if(s>i||l>>u&v;if(m!==l>>>u&v)break;m&&(c+=(1<i&&(f=f.removeBefore(n,u,s-c)),f&&lo&&(o=f.size),s(u)||(f=f.map(function(t){return ht(t)})),n.push(f)}return o>t.size&&(t=t.setSize(o)),se(t,e,n)}function xe(t){return t>>_<<_}function Oe(t){return null===t||void 0===t?Le():Ae(t)?t:Le().withMutations(function(e){var r=n(t);Ut(r.size),r.forEach(function(t,r){return e.set(r,t)})})}function Ae(t){return Ct(t)&&c(t)}function je(t,e,r,n){var i=Object.create(Oe.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=r,i.__hash=n,i}function Le(){return ye||(ye=je($t(),Ee()))}function Me(t,e,r){var n,i,o=t._map,s=t._list,a=o.get(e),u=void 0!==a;if(r===y){if(!u)return t;s.size>=g&&s.size>=2*o.size?(i=s.filter(function(t,e){return void 0!==t&&a!==e}),n=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=a===s.size-1?s.pop():s.set(a,void 0))}else if(u){if(r===s.get(a)[1])return t;n=o,i=s.set(a,[e,r])}else n=o.set(e,s.size),i=s.set(s.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t):je(n,i)}function De(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function Re(t){this._iter=t,this.size=t.size}function ze(t){this._iter=t,this.size=t.size}function Ue(t){this._iter=t,this.size=t.size}function qe(t){var e=Qe(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=tr,e.__iterateUncached=function(e,r){var n=this;return t.__iterate(function(t,r){return!1!==e(r,t,n)},r)},e.__iteratorUncached=function(e,r){if(e===D){var n=t.__iterator(e,r);return new q(function(){var t=n.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===M?L:M,r)},e}function Ce(t,e,r){var n=Qe(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,y);return o===y?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate(function(t,i,s){return!1!==n(e.call(r,t,i,s),i,o)},i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(D,i);return new q(function(){var i=o.next();if(i.done)return i;var s=i.value,a=s[0];return C(n,a,e.call(r,s[1],a,t),i)})},n}function Pe(t,e){var r=Qe(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=qe(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=tr,r.__iterate=function(e,r){var n=this;return t.__iterate(function(t,r){return e(t,r,n)},!r)},r.__iterator=function(e,r){return t.__iterator(e,!r)},r}function Ne(t,e,r,n){var i=Qe(t);return n&&(i.has=function(n){var i=t.get(n,y);return i!==y&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,y);return o!==y&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var s=this,a=0;return t.__iterate(function(t,o,u){if(e.call(r,t,o,u))return a++,i(t,n?o:a-1,s)},o),a},i.__iteratorUncached=function(i,o){var s=t.__iterator(D,o),a=0;return new q(function(){for(;;){var o=s.next();if(o.done)return o;var u=o.value,f=u[0],c=u[1];if(e.call(r,c,f,t))return C(i,n?f:a++,c,o)}})},i}function Fe(t,e,r,n){var i=t.size;if(void 0!==e&&(e|=0),void 0!==r&&(r===1/0?r=i:r|=0),x(e,r,i))return t;var o=O(e,i),s=A(r,i);if(o!=o||s!=s)return Fe(t.toSeq().cacheResult(),e,r,n);var a,u=s-o;u==u&&(a=u<0?0:u);var f=Qe(t);return f.size=0===a?a:t.size&&a||void 0,!n&&it(t)&&a>=0&&(f.get=function(e,r){return(e=T(this,e))>=0&&ea)return{value:void 0,done:!0};var t=i.next();return n||e===M?t:C(e,u-1,e===L?void 0:t.value[1],t)})},f}function He(t,e,r,n){var i=Qe(t);return i.__iterateUncached=function(i,o){var s=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,u=0;return t.__iterate(function(t,o,f){if(!a||!(a=e.call(r,t,o,f)))return u++,i(t,n?o:u-1,s)}),u},i.__iteratorUncached=function(i,o){var s=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(D,o),u=!0,f=0;return new q(function(){var t,o,c;do{if((t=a.next()).done)return n||i===M?t:C(i,f++,i===L?void 0:t.value[1],t);var h=t.value;o=h[0],c=h[1],u&&(u=e.call(r,c,o,s))}while(u);return i===D?t:C(i,o,c,t)})},i}function We(t,e,r){var n=Qe(t);return n.__iterateUncached=function(n,i){var o=0,a=!1;return function t(u,f){var c=this;u.__iterate(function(i,u){return(!e||f0}function Ze(t,e,n){var i=Qe(t);return i.size=new tt(n).map(function(t){return t.size}).min(),i.__iterate=function(t,e){for(var r,n=this.__iterator(M,e),i=0;!(r=n.next()).done&&!1!==t(r.value,i++,this););return i},i.__iteratorUncached=function(t,i){var o=n.map(function(t){return t=r(t),H(i?t.reverse():t)}),s=0,a=!1;return new q(function(){var r;return a||(r=o.map(function(t){return t.next()}),a=r.some(function(t){return t.done})),a?{value:void 0,done:!0}:C(t,s++,e.apply(null,r.map(function(t){return t.value})))})},i}function Je(t,e){return it(t)?e:t.constructor(e)}function Ge(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Xe(t){return Ut(t.size),I(t)}function $e(t){return a(t)?n:u(t)?i:o}function Qe(t){return Object.create((a(t)?Y:u(t)?Z:J).prototype)}function tr(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):K.prototype.cacheResult.call(this)}function er(t,e){return t>e?1:t=0;r--)e={value:arguments[r],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Tr(t,e)},wr.prototype.pushAll=function(t){if(0===(t=i(t)).size)return this;Ut(t.size);var e=this.size,r=this._head;return t.reverse().forEach(function(t){e++,r={value:t,next:r}}),this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):Tr(e,r)},wr.prototype.pop=function(){return this.slice(1)},wr.prototype.unshift=function(){return this.push.apply(this,arguments)},wr.prototype.unshiftAll=function(t){return this.pushAll(t)},wr.prototype.shift=function(){return this.pop.apply(this,arguments)},wr.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):kr()},wr.prototype.slice=function(t,e){if(x(t,e,this.size))return this;var r=O(t,this.size),n=A(e,this.size);if(n!==this.size)return wt.prototype.slice.call(this,t,e);for(var i=this.size-r,o=this._head;r--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Tr(i,o)},wr.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Tr(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},wr.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var r=0,n=this._head;n&&!1!==t(n.value,r++,this);)n=n.next;return r},wr.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var r=0,n=this._head;return new q(function(){if(n){var e=n.value;return n=n.next,C(t,r++,e)}return{value:void 0,done:!0}})},wr.isStack=Er;var Sr,Br="@@__IMMUTABLE_STACK__@@",Ir=wr.prototype;function Tr(t,e,r,n){var i=Object.create(Ir);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function kr(){return Sr||(Sr=Tr(0))}function xr(t,e){var r=function(r){t.prototype[r]=e[r]};return Object.keys(e).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(r),t}Ir[Br]=!0,Ir.withMutations=Ft.withMutations,Ir.asMutable=Ft.asMutable,Ir.asImmutable=Ft.asImmutable,Ir.wasAltered=Ft.wasAltered,r.Iterator=q,xr(r,{toArray:function(){Ut(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate(function(e,r){t[r]=e}),t},toIndexedSeq:function(){return new Re(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new De(this,!0)},toMap:function(){return qt(this.toKeyedSeq())},toObject:function(){Ut(this.size);var t={};return this.__iterate(function(e,r){t[r]=e}),t},toOrderedMap:function(){return Oe(this.toKeyedSeq())},toOrderedSet:function(){return _r(a(this)?this.valueSeq():this)},toSet:function(){return ar(a(this)?this.valueSeq():this)},toSetSeq:function(){return new ze(this)},toSeq:function(){return u(this)?this.toIndexedSeq():a(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return wr(a(this)?this.valueSeq():this)},toList:function(){return le(a(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var e=t.call(arguments,0);return Je(this,function(t,e){var r=a(t),i=[t].concat(e).map(function(t){return s(t)?r&&(t=n(t)):t=r?st(t):at(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===i.length)return t;if(1===i.length){var o=i[0];if(o===t||r&&a(o)||u(t)&&u(o))return o}var f=new tt(i);return r?f=f.toKeyedSeq():u(t)||(f=f.toSetSeq()),(f=f.flatten(!0)).size=i.reduce(function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}},0),f}(this,e))},includes:function(t){return this.some(function(e){return pt(e,t)})},entries:function(){return this.__iterator(D)},every:function(t,e){Ut(this.size);var r=!0;return this.__iterate(function(n,i,o){if(!t.call(e,n,i,o))return r=!1,!1}),r},filter:function(t,e){return Je(this,Ne(this,t,e,!0))},find:function(t,e,r){var n=this.findEntry(t,e);return n?n[1]:r},forEach:function(t,e){return Ut(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){Ut(this.size),t=void 0!==t?""+t:",";var e="",r=!0;return this.__iterate(function(n){r?r=!1:e+=t,e+=null!==n&&void 0!==n?n.toString():""}),e},keys:function(){return this.__iterator(L)},map:function(t,e){return Je(this,Ce(this,t,e))},reduce:function(t,e,r){var n,i;return Ut(this.size),arguments.length<2?i=!0:n=e,this.__iterate(function(e,o,s){i?(i=!1,n=e):n=t.call(r,n,e,o,s)}),n},reduceRight:function(t,e,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return Je(this,Pe(this,!0))},slice:function(t,e){return Je(this,Fe(this,t,e,!0))},some:function(t,e){return!this.every(Mr(t),e)},sort:function(t){return Je(this,Ve(this,t))},values:function(){return this.__iterator(M)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return I(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return function(t,e,r){var n=qt().asMutable();return t.__iterate(function(i,o){n.update(e.call(r,i,o,t),0,function(t){return t+1})}),n.asImmutable()}(this,t,e)},equals:function(t){return _t(this,t)},entrySeq:function(){var t=this;if(t._cache)return new tt(t._cache);var e=t.toSeq().map(Lr).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Mr(t),e)},findEntry:function(t,e,r){var n=r;return this.__iterate(function(r,i,o){if(t.call(e,r,i,o))return n=[i,r],!1}),n},findKey:function(t,e){var r=this.findEntry(t,e);return r&&r[0]},findLast:function(t,e,r){return this.toKeyedSeq().reverse().find(t,e,r)},findLastEntry:function(t,e,r){return this.toKeyedSeq().reverse().findEntry(t,e,r)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(k)},flatMap:function(t,e){return Je(this,function(t,e,r){var n=$e(t);return t.toSeq().map(function(i,o){return n(e.call(r,i,o,t))}).flatten(!0)}(this,t,e))},flatten:function(t){return Je(this,We(this,t,!0))},fromEntrySeq:function(){return new Ue(this)},get:function(t,e){return this.find(function(e,r){return pt(r,t)},void 0,e)},getIn:function(t,e){for(var r,n=this,i=rr(t);!(r=i.next()).done;){var o=r.value;if((n=n&&n.get?n.get(o,y):y)===y)return e}return n},groupBy:function(t,e){return function(t,e,r){var n=a(t),i=(c(t)?Oe():qt()).asMutable();t.__iterate(function(o,s){i.update(e.call(r,o,s,t),function(t){return(t=t||[]).push(n?[s,o]:o),t})});var o=$e(t);return i.map(function(e){return Je(t,o(e))})}(this,t,e)},has:function(t){return this.get(t,y)!==y},hasIn:function(t){return this.getIn(t,y)!==y},isSubset:function(t){return t="function"==typeof t.includes?t:r(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return(t="function"==typeof t.isSubset?t:r(t)).isSubset(this)},keyOf:function(t){return this.findKey(function(e){return pt(e,t)})},keySeq:function(){return this.toSeq().map(jr).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Ke(this,t)},maxBy:function(t,e){return Ke(this,e,t)},min:function(t){return Ke(this,t?Dr(t):Ur)},minBy:function(t,e){return Ke(this,e?Dr(e):Ur,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return Je(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return Je(this,He(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Mr(t),e)},sortBy:function(t,e){return Je(this,Ve(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return Je(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return Je(this,function(t,e,r){var n=Qe(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var s=0;return t.__iterate(function(t,i,a){return e.call(r,t,i,a)&&++s&&n(t,i,o)}),s},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var s=t.__iterator(D,i),a=!0;return new q(function(){if(!a)return{value:void 0,done:!0};var t=s.next();if(t.done)return t;var i=t.value,u=i[0],f=i[1];return e.call(r,f,u,o)?n===D?t:C(n,u,f,t):(a=!1,{value:void 0,done:!0})})},n}(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Mr(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(t){if(t.size===1/0)return 0;var e=c(t),r=a(t),n=e?1:0;return function(t,e){return e=St(e,3432918353),e=St(e<<15|e>>>-15,461845907),e=St(e<<13|e>>>-13,5),e=St((e=(e+3864292196|0)^t)^e>>>16,2246822507),e=Bt((e=St(e^e>>>13,3266489909))^e>>>16)}(t.__iterate(r?e?function(t,e){n=31*n+qr(It(t),It(e))|0}:function(t,e){n=n+qr(It(t),It(e))|0}:e?function(t){n=31*n+It(t)|0}:function(t){n=n+It(t)|0}),n)}(this))}});var Or=r.prototype;Or[h]=!0,Or[U]=Or.values,Or.__toJS=Or.toArray,Or.__toStringMapper=Rr,Or.inspect=Or.toSource=function(){return this.toString()},Or.chain=Or.flatMap,Or.contains=Or.includes,xr(n,{flip:function(){return Je(this,qe(this))},mapEntries:function(t,e){var r=this,n=0;return Je(this,this.toSeq().map(function(i,o){return t.call(e,[o,i],n++,r)}).fromEntrySeq())},mapKeys:function(t,e){var r=this;return Je(this,this.toSeq().flip().map(function(n,i){return t.call(e,n,i,r)}).flip())}});var Ar=n.prototype;function jr(t,e){return e}function Lr(t,e){return[e,t]}function Mr(t){return function(){return!t.apply(this,arguments)}}function Dr(t){return function(){return-t.apply(this,arguments)}}function Rr(t){return"string"==typeof t?JSON.stringify(t):String(t)}function zr(){return B(arguments)}function Ur(t,e){return te?-1:0}function qr(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}return Ar[l]=!0,Ar[U]=Or.entries,Ar.__toJS=Or.toObject,Ar.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+Rr(t)},xr(i,{toKeyedSeq:function(){return new De(this,!1)},filter:function(t,e){return Je(this,Ne(this,t,e,!1))},findIndex:function(t,e){var r=this.findEntry(t,e);return r?r[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return Je(this,Pe(this,!1))},slice:function(t,e){return Je(this,Fe(this,t,e,!1))},splice:function(t,e){var r=arguments.length;if(e=Math.max(0|e,0),0===r||2===r&&!e)return this;t=O(t,t<0?this.count():this.size);var n=this.slice(0,t);return Je(this,1===r?n:n.concat(B(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var r=this.findLastEntry(t,e);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(t){return Je(this,We(this,t,!1))},get:function(t,e){return(t=T(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,r){return r===t},void 0,e)},has:function(t){return(t=T(this,t))>=0&&(void 0!==this.size?this.size===1/0||t\n * Backing buffer: ArrayBuffer, Accessor: Uint8Array\n * Released under the Apache License, Version 2.0\n * see: https://github.com/dcodeIO/bytebuffer.js for details\n */i=[r(69)],void 0===(o="function"==typeof(n=function(t){"use strict";var e=function(t,r,i){if(void 0===t&&(t=e.DEFAULT_CAPACITY),void 0===r&&(r=e.DEFAULT_ENDIAN),void 0===i&&(i=e.DEFAULT_NOASSERT),!i){if((t|=0)<0)throw RangeError("Illegal capacity");r=!!r,i=!!i}this.buffer=0===t?n:new ArrayBuffer(t),this.view=0===t?null:new Uint8Array(this.buffer),this.offset=0,this.markedOffset=-1,this.limit=t,this.littleEndian=r,this.noAssert=i};e.VERSION="5.0.1",e.LITTLE_ENDIAN=!0,e.BIG_ENDIAN=!1,e.DEFAULT_CAPACITY=16,e.DEFAULT_ENDIAN=e.BIG_ENDIAN,e.DEFAULT_NOASSERT=!1,e.Long=t||null;var r=e.prototype;r.__isByteBuffer__,Object.defineProperty(r,"__isByteBuffer__",{value:!0,enumerable:!1,configurable:!1});var n=new ArrayBuffer(0),i=String.fromCharCode;function o(t){var e=0;return function(){return e1024&&(e.push(i.apply(String,t)),t.length=0),Array.prototype.push.apply(t,arguments)}}function a(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,c=-7,h=r?i-1:0,l=r?-1:1,d=t[e+h];for(h+=l,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+t[e+h],h+=l,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=l,c-=8);if(0===o)o=1-f;else{if(o===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=f}return(d?-1:1)*s*Math.pow(2,o-n)}function u(t,e,r,n,i,o){var s,a,u,f=8*o-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+h>=1?l/u:l*Math.pow(2,1-h))*u>=2&&(s++,u/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(e*u-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,f-=8);t[r+d-p]|=128*_}e.accessor=function(){return Uint8Array},e.allocate=function(t,r,n){return new e(t,r,n)},e.concat=function(t,r,n,i){"boolean"!=typeof r&&"string"==typeof r||(i=n,n=r,r=void 0);for(var o,s=0,a=0,u=t.length;a0&&(s+=o);if(0===s)return new e(0,n,i);var f,c=new e(s,n,i);for(a=0;a0&&(s.buffer=t.buffer,s.offset=t.byteOffset,s.limit=t.byteOffset+t.byteLength,s.view=new Uint8Array(t.buffer));else if(t instanceof ArrayBuffer)s=new e(0,i,o),t.byteLength>0&&(s.buffer=t,s.offset=0,s.limit=t.byteLength,s.view=t.byteLength>0?new Uint8Array(t):null);else{if("[object Array]"!==Object.prototype.toString.call(t))throw TypeError("Illegal buffer");(s=new e(t.length,i,o)).limit=t.length;for(var a=0;a>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}var n,i=e,o=t.length,s=o>>3,a=0;for(e+=this.writeVarint32(o,e);s--;)n=1&!!t[a++]|(1&!!t[a++])<<1|(1&!!t[a++])<<2|(1&!!t[a++])<<3|(1&!!t[a++])<<4|(1&!!t[a++])<<5|(1&!!t[a++])<<6|(1&!!t[a++])<<7,this.writeByte(n,e++);if(a>3,s=0,a=[];for(t+=n.length;o--;)r=this.readByte(t++),a[s++]=!!(1&r),a[s++]=!!(2&r),a[s++]=!!(4&r),a[s++]=!!(8&r),a[s++]=!!(16&r),a[s++]=!!(32&r),a[s++]=!!(64&r),a[s++]=!!(128&r);if(s>u++&1)}return e&&(this.offset=t),a},r.readBytes=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+t>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+"+t+") <= "+this.buffer.byteLength)}var n=this.slice(e,e+t);return r&&(this.offset+=t),n},r.writeBytes=r.append,r.writeInt8=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=1;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=1,this.view[e]=t,r&&(this.offset+=1),this},r.writeByte=r.writeInt8,r.readInt8=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var r=this.view[t];return 128==(128&r)&&(r=-(255-r+1)),e&&(this.offset+=1),r},r.readByte=r.readInt8,r.writeUint8=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=1;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=1,this.view[e]=t,r&&(this.offset+=1),this},r.writeUInt8=r.writeUint8,r.readUint8=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var r=this.view[t];return e&&(this.offset+=1),r},r.readUInt8=r.readUint8,r.writeInt16=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=2;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=2,this.littleEndian?(this.view[e+1]=(65280&t)>>>8,this.view[e]=255&t):(this.view[e]=(65280&t)>>>8,this.view[e+1]=255&t),r&&(this.offset+=2),this},r.writeShort=r.writeInt16,r.readInt16=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+2) <= "+this.buffer.byteLength)}var r=0;return this.littleEndian?(r=this.view[t],r|=this.view[t+1]<<8):(r=this.view[t]<<8,r|=this.view[t+1]),32768==(32768&r)&&(r=-(65535-r+1)),e&&(this.offset+=2),r},r.readShort=r.readInt16,r.writeUint16=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=2;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=2,this.littleEndian?(this.view[e+1]=(65280&t)>>>8,this.view[e]=255&t):(this.view[e]=(65280&t)>>>8,this.view[e+1]=255&t),r&&(this.offset+=2),this},r.writeUInt16=r.writeUint16,r.readUint16=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+2>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+2) <= "+this.buffer.byteLength)}var r=0;return this.littleEndian?(r=this.view[t],r|=this.view[t+1]<<8):(r=this.view[t]<<8,r|=this.view[t+1]),e&&(this.offset+=2),r},r.readUInt16=r.readUint16,r.writeInt32=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=4,this.littleEndian?(this.view[e+3]=t>>>24&255,this.view[e+2]=t>>>16&255,this.view[e+1]=t>>>8&255,this.view[e]=255&t):(this.view[e]=t>>>24&255,this.view[e+1]=t>>>16&255,this.view[e+2]=t>>>8&255,this.view[e+3]=255&t),r&&(this.offset+=4),this},r.writeInt=r.writeInt32,r.readInt32=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+4) <= "+this.buffer.byteLength)}var r=0;return this.littleEndian?(r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0),r|=0,e&&(this.offset+=4),r},r.readInt=r.readInt32,r.writeUint32=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=4,this.littleEndian?(this.view[e+3]=t>>>24&255,this.view[e+2]=t>>>16&255,this.view[e+1]=t>>>8&255,this.view[e]=255&t):(this.view[e]=t>>>24&255,this.view[e+1]=t>>>16&255,this.view[e+2]=t>>>8&255,this.view[e+3]=255&t),r&&(this.offset+=4),this},r.writeUInt32=r.writeUint32,r.readUint32=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+4) <= "+this.buffer.byteLength)}var r=0;return this.littleEndian?(r=this.view[t+2]<<16,r|=this.view[t+1]<<8,r|=this.view[t],r+=this.view[t+3]<<24>>>0):(r=this.view[t+1]<<16,r|=this.view[t+2]<<8,r|=this.view[t+3],r+=this.view[t]<<24>>>0),e&&(this.offset+=4),r},r.readUInt32=r.readUint32,t&&(r.writeInt64=function(e,r){var n=void 0===r;if(n&&(r=this.offset),!this.noAssert){if("number"==typeof e)e=t.fromNumber(e);else if("string"==typeof e)e=t.fromString(e);else if(!(e&&e instanceof t))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof r||r%1!=0)throw TypeError("Illegal offset: "+r+" (not an integer)");if((r>>>=0)<0||r+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+r+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=t.fromNumber(e):"string"==typeof e&&(e=t.fromString(e)),r+=8;var i=this.buffer.byteLength;r>i&&this.resize((i*=2)>r?i:r),r-=8;var o=e.low,s=e.high;return this.littleEndian?(this.view[r+3]=o>>>24&255,this.view[r+2]=o>>>16&255,this.view[r+1]=o>>>8&255,this.view[r]=255&o,r+=4,this.view[r+3]=s>>>24&255,this.view[r+2]=s>>>16&255,this.view[r+1]=s>>>8&255,this.view[r]=255&s):(this.view[r]=s>>>24&255,this.view[r+1]=s>>>16&255,this.view[r+2]=s>>>8&255,this.view[r+3]=255&s,r+=4,this.view[r]=o>>>24&255,this.view[r+1]=o>>>16&255,this.view[r+2]=o>>>8&255,this.view[r+3]=255&o),n&&(this.offset+=8),this},r.writeLong=r.writeInt64,r.readInt64=function(e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var n=0,i=0;this.littleEndian?(n=this.view[e+2]<<16,n|=this.view[e+1]<<8,n|=this.view[e],n+=this.view[e+3]<<24>>>0,e+=4,i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0):(i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0,e+=4,n=this.view[e+1]<<16,n|=this.view[e+2]<<8,n|=this.view[e+3],n+=this.view[e]<<24>>>0);var o=new t(n,i,!1);return r&&(this.offset+=8),o},r.readLong=r.readInt64,r.writeUint64=function(e,r){var n=void 0===r;if(n&&(r=this.offset),!this.noAssert){if("number"==typeof e)e=t.fromNumber(e);else if("string"==typeof e)e=t.fromString(e);else if(!(e&&e instanceof t))throw TypeError("Illegal value: "+e+" (not an integer or Long)");if("number"!=typeof r||r%1!=0)throw TypeError("Illegal offset: "+r+" (not an integer)");if((r>>>=0)<0||r+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+r+" (+0) <= "+this.buffer.byteLength)}"number"==typeof e?e=t.fromNumber(e):"string"==typeof e&&(e=t.fromString(e)),r+=8;var i=this.buffer.byteLength;r>i&&this.resize((i*=2)>r?i:r),r-=8;var o=e.low,s=e.high;return this.littleEndian?(this.view[r+3]=o>>>24&255,this.view[r+2]=o>>>16&255,this.view[r+1]=o>>>8&255,this.view[r]=255&o,r+=4,this.view[r+3]=s>>>24&255,this.view[r+2]=s>>>16&255,this.view[r+1]=s>>>8&255,this.view[r]=255&s):(this.view[r]=s>>>24&255,this.view[r+1]=s>>>16&255,this.view[r+2]=s>>>8&255,this.view[r+3]=255&s,r+=4,this.view[r]=o>>>24&255,this.view[r+1]=o>>>16&255,this.view[r+2]=o>>>8&255,this.view[r+3]=255&o),n&&(this.offset+=8),this},r.writeUInt64=r.writeUint64,r.readUint64=function(e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+8) <= "+this.buffer.byteLength)}var n=0,i=0;this.littleEndian?(n=this.view[e+2]<<16,n|=this.view[e+1]<<8,n|=this.view[e],n+=this.view[e+3]<<24>>>0,e+=4,i=this.view[e+2]<<16,i|=this.view[e+1]<<8,i|=this.view[e],i+=this.view[e+3]<<24>>>0):(i=this.view[e+1]<<16,i|=this.view[e+2]<<8,i|=this.view[e+3],i+=this.view[e]<<24>>>0,e+=4,n=this.view[e+1]<<16,n|=this.view[e+2]<<8,n|=this.view[e+3],n+=this.view[e]<<24>>>0);var o=new t(n,i,!0);return r&&(this.offset+=8),o},r.readUInt64=r.readUint64),r.writeFloat32=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t)throw TypeError("Illegal value: "+t+" (not a number)");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=4;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=4,u(this.view,t,e,this.littleEndian,23,4),r&&(this.offset+=4),this},r.writeFloat=r.writeFloat32,r.readFloat32=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+4) <= "+this.buffer.byteLength)}var r=a(this.view,t,this.littleEndian,23,4);return e&&(this.offset+=4),r},r.readFloat=r.readFloat32,r.writeFloat64=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof t)throw TypeError("Illegal value: "+t+" (not a number)");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}e+=8;var n=this.buffer.byteLength;return e>n&&this.resize((n*=2)>e?n:e),e-=8,u(this.view,t,e,this.littleEndian,52,8),r&&(this.offset+=8),this},r.writeDouble=r.writeFloat64,r.readFloat64=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+8>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+8) <= "+this.buffer.byteLength)}var r=a(this.view,t,this.littleEndian,52,8);return e&&(this.offset+=8),r},r.readDouble=r.readFloat64,e.MAX_VARINT32_BYTES=5,e.calculateVarint32=function(t){return(t>>>=0)<128?1:t<16384?2:t<1<<21?3:t<1<<28?4:5},e.zigZagEncode32=function(t){return((t|=0)<<1^t>>31)>>>0},e.zigZagDecode32=function(t){return t>>>1^-(1&t)|0},r.writeVarint32=function(t,r){var n=void 0===r;if(n&&(r=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t|=0,"number"!=typeof r||r%1!=0)throw TypeError("Illegal offset: "+r+" (not an integer)");if((r>>>=0)<0||r+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+r+" (+0) <= "+this.buffer.byteLength)}var i,o=e.calculateVarint32(t);r+=o;var s=this.buffer.byteLength;for(r>s&&this.resize((s*=2)>r?s:r),r-=o,t>>>=0;t>=128;)i=127&t|128,this.view[r++]=i,t>>>=7;return this.view[r++]=t,n?(this.offset=r,this):o},r.writeVarint32ZigZag=function(t,r){return this.writeVarint32(e.zigZagEncode32(t),r)},r.readVarint32=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var r,n=0,i=0;do{if(!this.noAssert&&t>this.limit){var o=Error("Truncated");throw o.truncated=!0,o}r=this.view[t++],n<5&&(i|=(127&r)<<7*n),++n}while(0!=(128&r));return i|=0,e?(this.offset=t,i):{value:i,length:n}},r.readVarint32ZigZag=function(t){var r=this.readVarint32(t);return"object"==typeof r?r.value=e.zigZagDecode32(r.value):r=e.zigZagDecode32(r),r},t&&(e.MAX_VARINT64_BYTES=10,e.calculateVarint64=function(e){"number"==typeof e?e=t.fromNumber(e):"string"==typeof e&&(e=t.fromString(e));var r=e.toInt()>>>0,n=e.shiftRightUnsigned(28).toInt()>>>0,i=e.shiftRightUnsigned(56).toInt()>>>0;return 0==i?0==n?r<16384?r<128?1:2:r<1<<21?3:4:n<16384?n<128?5:6:n<1<<21?7:8:i<128?9:10},e.zigZagEncode64=function(e){return"number"==typeof e?e=t.fromNumber(e,!1):"string"==typeof e?e=t.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftLeft(1).xor(e.shiftRight(63)).toUnsigned()},e.zigZagDecode64=function(e){return"number"==typeof e?e=t.fromNumber(e,!1):"string"==typeof e?e=t.fromString(e,!1):!1!==e.unsigned&&(e=e.toSigned()),e.shiftRightUnsigned(1).xor(e.and(t.ONE).toSigned().negate()).toSigned()},r.writeVarint64=function(r,n){var i=void 0===n;if(i&&(n=this.offset),!this.noAssert){if("number"==typeof r)r=t.fromNumber(r);else if("string"==typeof r)r=t.fromString(r);else if(!(r&&r instanceof t))throw TypeError("Illegal value: "+r+" (not an integer or Long)");if("number"!=typeof n||n%1!=0)throw TypeError("Illegal offset: "+n+" (not an integer)");if((n>>>=0)<0||n+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+n+" (+0) <= "+this.buffer.byteLength)}"number"==typeof r?r=t.fromNumber(r,!1):"string"==typeof r?r=t.fromString(r,!1):!1!==r.unsigned&&(r=r.toSigned());var o=e.calculateVarint64(r),s=r.toInt()>>>0,a=r.shiftRightUnsigned(28).toInt()>>>0,u=r.shiftRightUnsigned(56).toInt()>>>0;n+=o;var f=this.buffer.byteLength;switch(n>f&&this.resize((f*=2)>n?f:n),n-=o,o){case 10:this.view[n+9]=u>>>7&1;case 9:this.view[n+8]=9!==o?128|u:127&u;case 8:this.view[n+7]=8!==o?a>>>21|128:a>>>21&127;case 7:this.view[n+6]=7!==o?a>>>14|128:a>>>14&127;case 6:this.view[n+5]=6!==o?a>>>7|128:a>>>7&127;case 5:this.view[n+4]=5!==o?128|a:127&a;case 4:this.view[n+3]=4!==o?s>>>21|128:s>>>21&127;case 3:this.view[n+2]=3!==o?s>>>14|128:s>>>14&127;case 2:this.view[n+1]=2!==o?s>>>7|128:s>>>7&127;case 1:this.view[n]=1!==o?128|s:127&s}return i?(this.offset+=o,this):o},r.writeVarint64ZigZag=function(t,r){return this.writeVarint64(e.zigZagEncode64(t),r)},r.readVarint64=function(e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+1) <= "+this.buffer.byteLength)}var n=e,i=0,o=0,s=0,a=0;if(a=this.view[e++],i=127&a,128&a&&(a=this.view[e++],i|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],i|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],i|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],o=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],o|=(127&a)<<7,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],o|=(127&a)<<14,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],o|=(127&a)<<21,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],s=127&a,(128&a||this.noAssert&&void 0===a)&&(a=this.view[e++],s|=(127&a)<<7,128&a||this.noAssert&&void 0===a))))))))))throw Error("Buffer overrun");var u=t.fromBits(i|o<<28,o>>>4|s<<24,!1);return r?(this.offset=e,u):{value:u,length:e-n}},r.readVarint64ZigZag=function(r){var n=this.readVarint64(r);return n&&n.value instanceof t?n.value=e.zigZagDecode64(n.value):n=e.zigZagDecode64(n),n}),r.writeCString=function(t,e){var r=void 0===e;r&&(e=this.offset);var n,i=t.length;if(!this.noAssert){if("string"!=typeof t)throw TypeError("Illegal str: Not a string");for(n=0;n>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}i=c.calculateUTF16asUTF8(o(t))[1],e+=i+1;var s=this.buffer.byteLength;return e>s&&this.resize((s*=2)>e?s:e),e-=i+1,c.encodeUTF16toUTF8(o(t),function(t){this.view[e++]=t}.bind(this)),this.view[e++]=0,r?(this.offset=e,this):i},r.readCString=function(t){var e=void 0===t;if(e&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var r,n=t,i=-1;return c.decodeUTF8toUTF16(function(){if(0===i)return null;if(t>=this.limit)throw RangeError("Illegal range: Truncated data, "+t+" < "+this.limit);return 0===(i=this.view[t++])?null:i}.bind(this),r=s(),!0),e?(this.offset=t,r()):{string:r(),length:t-n}},r.writeIString=function(t,e){var r=void 0===e;if(r&&(e=this.offset),!this.noAssert){if("string"!=typeof t)throw TypeError("Illegal str: Not a string");if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}var n,i=e;n=c.calculateUTF16asUTF8(o(t),this.noAssert)[1],e+=4+n;var s=this.buffer.byteLength;if(e>s&&this.resize((s*=2)>e?s:e),e-=4+n,this.littleEndian?(this.view[e+3]=n>>>24&255,this.view[e+2]=n>>>16&255,this.view[e+1]=n>>>8&255,this.view[e]=255&n):(this.view[e]=n>>>24&255,this.view[e+1]=n>>>16&255,this.view[e+2]=n>>>8&255,this.view[e+3]=255&n),e+=4,c.encodeUTF16toUTF8(o(t),function(t){this.view[e++]=t}.bind(this)),e!==i+4+n)throw RangeError("Illegal range: Truncated data, "+e+" == "+(e+4+n));return r?(this.offset=e,this):e-i},r.readIString=function(t){var r=void 0===t;if(r&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+4>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+4) <= "+this.buffer.byteLength)}var n=t,i=this.readUint32(t),o=this.readUTF8String(i,e.METRICS_BYTES,t+=4);return t+=o.length,r?(this.offset=t,o.string):{string:o.string,length:t-n}},e.METRICS_CHARS="c",e.METRICS_BYTES="b",r.writeUTF8String=function(t,e){var r,n=void 0===e;if(n&&(e=this.offset),!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: "+e+" (not an integer)");if((e>>>=0)<0||e+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+e+" (+0) <= "+this.buffer.byteLength)}var i=e;r=c.calculateUTF16asUTF8(o(t))[1],e+=r;var s=this.buffer.byteLength;return e>s&&this.resize((s*=2)>e?s:e),e-=r,c.encodeUTF16toUTF8(o(t),function(t){this.view[e++]=t}.bind(this)),n?(this.offset=e,this):e-i},r.writeString=r.writeUTF8String,e.calculateUTF8Chars=function(t){return c.calculateUTF16asUTF8(o(t))[0]},e.calculateUTF8Bytes=function(t){return c.calculateUTF16asUTF8(o(t))[1]},e.calculateString=e.calculateUTF8Bytes,r.readUTF8String=function(t,r,n){"number"==typeof r&&(n=r,r=void 0);var i=void 0===n;if(i&&(n=this.offset),void 0===r&&(r=e.METRICS_CHARS),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal length: "+t+" (not an integer)");if(t|=0,"number"!=typeof n||n%1!=0)throw TypeError("Illegal offset: "+n+" (not an integer)");if((n>>>=0)<0||n+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+n+" (+0) <= "+this.buffer.byteLength)}var o,a=0,u=n;if(r===e.METRICS_CHARS){if(o=s(),c.decodeUTF8(function(){return a>>=0)<0||n+t>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+n+" (+"+t+") <= "+this.buffer.byteLength)}var f=n+t;if(c.decodeUTF8toUTF16(function(){return n>>=0)<0||r+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+r+" (+0) <= "+this.buffer.byteLength)}var i,s,a=r;i=c.calculateUTF16asUTF8(o(t),this.noAssert)[1],s=e.calculateVarint32(i),r+=s+i;var u=this.buffer.byteLength;if(r>u&&this.resize((u*=2)>r?u:r),r-=s+i,r+=this.writeVarint32(i,r),c.encodeUTF16toUTF8(o(t),function(t){this.view[r++]=t}.bind(this)),r!==a+i+s)throw RangeError("Illegal range: Truncated data, "+r+" == "+(r+i+s));return n?(this.offset=r,this):r-a},r.readVString=function(t){var r=void 0===t;if(r&&(t=this.offset),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal offset: "+t+" (not an integer)");if((t>>>=0)<0||t+1>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+1) <= "+this.buffer.byteLength)}var n=t,i=this.readVarint32(t),o=this.readUTF8String(i.value,e.METRICS_BYTES,t+=i.length);return t+=o.length,r?(this.offset=t,o.string):{string:o.string,length:t-n}},r.append=function(t,r,n){"number"!=typeof r&&"string"==typeof r||(n=r,r=void 0);var i=void 0===n;if(i&&(n=this.offset),!this.noAssert){if("number"!=typeof n||n%1!=0)throw TypeError("Illegal offset: "+n+" (not an integer)");if((n>>>=0)<0||n+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+n+" (+0) <= "+this.buffer.byteLength)}t instanceof e||(t=e.wrap(t,r));var o=t.limit-t.offset;if(o<=0)return this;n+=o;var s=this.buffer.byteLength;return n>s&&this.resize((s*=2)>n?s:n),n-=o,this.view.set(t.view.subarray(t.offset,t.limit),n),t.offset+=o,i&&(this.offset+=o),this},r.appendTo=function(t,e){return t.append(this,e),this},r.assert=function(t){return this.noAssert=!t,this},r.capacity=function(){return this.buffer.byteLength},r.clear=function(){return this.offset=0,this.limit=this.buffer.byteLength,this.markedOffset=-1,this},r.clone=function(t){var r=new e(0,this.littleEndian,this.noAssert);return t?(r.buffer=new ArrayBuffer(this.buffer.byteLength),r.view=new Uint8Array(r.buffer)):(r.buffer=this.buffer,r.view=this.view),r.offset=this.offset,r.markedOffset=this.markedOffset,r.limit=this.limit,r},r.compact=function(t,e){if(void 0===t&&(t=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,t<0||t>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+e+" <= "+this.buffer.byteLength)}if(0===t&&e===this.buffer.byteLength)return this;var r=e-t;if(0===r)return this.buffer=n,this.view=null,this.markedOffset>=0&&(this.markedOffset-=t),this.offset=0,this.limit=0,this;var i=new ArrayBuffer(r),o=new Uint8Array(i);return o.set(this.view.subarray(t,e)),this.buffer=i,this.view=o,this.markedOffset>=0&&(this.markedOffset-=t),this.offset=0,this.limit=r,this},r.copy=function(t,r){if(void 0===t&&(t=this.offset),void 0===r&&(r=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof r||r%1!=0)throw TypeError("Illegal end: Not an integer");if(r>>>=0,t<0||t>r||r>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+r+" <= "+this.buffer.byteLength)}if(t===r)return new e(0,this.littleEndian,this.noAssert);var n=r-t,i=new e(n,this.littleEndian,this.noAssert);return i.offset=0,i.limit=n,i.markedOffset>=0&&(i.markedOffset-=t),this.copyTo(i,0,t,r),i},r.copyTo=function(t,r,n,i){var o,s;if(!this.noAssert&&!e.isByteBuffer(t))throw TypeError("Illegal target: Not a ByteBuffer");if(r=(s=void 0===r)?t.offset:0|r,n=(o=void 0===n)?this.offset:0|n,i=void 0===i?this.limit:0|i,r<0||r>t.buffer.byteLength)throw RangeError("Illegal target range: 0 <= "+r+" <= "+t.buffer.byteLength);if(n<0||i>this.buffer.byteLength)throw RangeError("Illegal source range: 0 <= "+n+" <= "+this.buffer.byteLength);var a=i-n;return 0===a?t:(t.ensureCapacity(r+a),t.view.set(this.view.subarray(n,i),r),o&&(this.offset+=a),s&&(t.offset+=a),this)},r.ensureCapacity=function(t){var e=this.buffer.byteLength;return et?e:t):this},r.fill=function(t,e,r){var n=void 0===e;if(n&&(e=this.offset),"string"==typeof t&&t.length>0&&(t=t.charCodeAt(0)),void 0===e&&(e=this.offset),void 0===r&&(r=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal value: "+t+" (not an integer)");if(t|=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal begin: Not an integer");if(e>>>=0,"number"!=typeof r||r%1!=0)throw TypeError("Illegal end: Not an integer");if(r>>>=0,e<0||e>r||r>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+r+" <= "+this.buffer.byteLength)}if(e>=r)return this;for(;e>>=0)<0||t+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+t+" (+0) <= "+this.buffer.byteLength)}return this.markedOffset=t,this},r.order=function(t){if(!this.noAssert&&"boolean"!=typeof t)throw TypeError("Illegal littleEndian: Not a boolean");return this.littleEndian=!!t,this},r.LE=function(t){return this.littleEndian=void 0===t||!!t,this},r.BE=function(t){return this.littleEndian=void 0!==t&&!t,this},r.prepend=function(t,r,n){"number"!=typeof r&&"string"==typeof r||(n=r,r=void 0);var i=void 0===n;if(i&&(n=this.offset),!this.noAssert){if("number"!=typeof n||n%1!=0)throw TypeError("Illegal offset: "+n+" (not an integer)");if((n>>>=0)<0||n+0>this.buffer.byteLength)throw RangeError("Illegal offset: 0 <= "+n+" (+0) <= "+this.buffer.byteLength)}t instanceof e||(t=e.wrap(t,r));var o=t.limit-t.offset;if(o<=0)return this;var s=o-n;if(s>0){var a=new ArrayBuffer(this.buffer.byteLength+s),u=new Uint8Array(a);u.set(this.view.subarray(n,this.buffer.byteLength),o),this.buffer=a,this.view=u,this.offset+=s,this.markedOffset>=0&&(this.markedOffset+=s),this.limit+=s,n+=s}else new Uint8Array(this.buffer);return this.view.set(t.view.subarray(t.offset,t.limit),n-o),t.offset=t.limit,i&&(this.offset-=o),this},r.prependTo=function(t,e){return t.prepend(this,e),this},r.printDebug=function(t){"function"!=typeof t&&(t=console.log.bind(console)),t(this.toString()+"\\n-------------------------------------------------------------------\\n"+this.toDebug(!0))},r.remaining=function(){return this.limit-this.offset},r.reset=function(){return this.markedOffset>=0?(this.offset=this.markedOffset,this.markedOffset=-1):this.offset=0,this},r.resize=function(t){if(!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal capacity: "+t+" (not an integer)");if((t|=0)<0)throw RangeError("Illegal capacity: 0 <= "+t)}if(this.buffer.byteLength>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,t<0||t>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+e+" <= "+this.buffer.byteLength)}return t===e?this:(Array.prototype.reverse.call(this.view.subarray(t,e)),this)},r.skip=function(t){if(!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal length: "+t+" (not an integer)");t|=0}var e=this.offset+t;if(!this.noAssert&&(e<0||e>this.buffer.byteLength))throw RangeError("Illegal length: 0 <= "+this.offset+" + "+t+" <= "+this.buffer.byteLength);return this.offset=e,this},r.slice=function(t,e){if(void 0===t&&(t=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,t<0||t>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+e+" <= "+this.buffer.byteLength)}var r=this.clone();return r.offset=t,r.limit=e,r},r.toBuffer=function(t){var e=this.offset,r=this.limit;if(!this.noAssert){if("number"!=typeof e||e%1!=0)throw TypeError("Illegal offset: Not an integer");if(e>>>=0,"number"!=typeof r||r%1!=0)throw TypeError("Illegal limit: Not an integer");if(r>>>=0,e<0||e>r||r>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+e+" <= "+r+" <= "+this.buffer.byteLength)}if(!t&&0===e&&r===this.buffer.byteLength)return this.buffer;if(e===r)return n;var i=new ArrayBuffer(r-e);return new Uint8Array(i).set(new Uint8Array(this.buffer).subarray(e,r),0),i},r.toArrayBuffer=r.toBuffer,r.toString=function(t,e,r){if(void 0===t)return"ByteBufferAB(offset="+this.offset+",markedOffset="+this.markedOffset+",limit="+this.limit+",capacity="+this.capacity()+")";switch("number"==typeof t&&(r=e=t="utf8"),t){case"utf8":return this.toUTF8(e,r);case"base64":return this.toBase64(e,r);case"hex":return this.toHex(e,r);case"binary":return this.toBinary(e,r);case"debug":return this.toDebug();case"columns":return this.toColumns();default:throw Error("Unsupported encoding: "+t)}};var f=function(){for(var t={},e=[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47],r=[],n=0,i=e.length;n>2&63]),i=(3&n)<<4,null!==(n=t())?(r(e[63&((i|=n>>4&15)|n>>4&15)]),i=(15&n)<<2,null!==(n=t())?(r(e[63&(i|n>>6&3)]),r(e[63&n])):(r(e[63&i]),r(61))):(r(e[63&i]),r(61),r(61))},t.decode=function(t,e){var n,i,o;function s(t){throw Error("Illegal character code: "+t)}for(;null!==(n=t());)if(void 0===(i=r[n])&&s(n),null!==(n=t())&&(void 0===(o=r[n])&&s(n),e(i<<2>>>0|(48&o)>>4),null!==(n=t()))){if(void 0===(i=r[n])){if(61===n)break;s(n)}if(e((15&o)<<4>>>0|(60&i)>>2),null!==(n=t())){if(void 0===(o=r[n])){if(61===n)break;s(n)}e((3&i)<<6>>>0|o)}}},t.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)},t}();r.toBase64=function(t,e){if(void 0===t&&(t=this.offset),void 0===e&&(e=this.limit),e|=0,(t|=0)<0||e>this.capacity||t>e)throw RangeError("begin, end");var r;return f.encode(function(){return tthis.capacity()||t>e)throw RangeError("begin, end");if(t===e)return"";for(var r=[],n=[];t=1024&&(n.push(String.fromCharCode.apply(String,r)),r=[]);return n.join("")+String.fromCharCode.apply(String,r)},e.fromBinary=function(t,r){if("string"!=typeof t)throw TypeError("str");for(var n,i=0,o=t.length,s=new e(o,r);i255)throw RangeError("illegal char code: "+n);s.view[i++]=n}return s.limit=o,s},r.toDebug=function(t){for(var e,r=-1,n=this.buffer.byteLength,i="",o="",s="";r32&&e<127?String.fromCharCode(e):".")),++r,t&&r>0&&r%16==0&&r!==n){for(;i.length<51;)i+=" ";s+=i+o+"\\n",i=o=""}r===this.offset&&r===this.limit?i+=r===this.markedOffset?"!":"|":r===this.offset?i+=r===this.markedOffset?"[":"<":r===this.limit?i+=r===this.markedOffset?"]":">":i+=r===this.markedOffset?"\'":t||0!==r&&r!==n?" ":""}if(t&&" "!==i){for(;i.length<51;)i+=" ";s+=i+o+"\\n"}return t?s:i},e.fromDebug=function(t,r,n){for(var i,o,s=t.length,a=new e((s+1)/3|0,r,n),u=0,f=0,c=!1,h=!1,l=!1,d=!1,p=!1;u":if(!n){if(d){p=!0;break}d=!0}a.limit=f,c=!1;break;case"\'":if(!n){if(l){p=!0;break}l=!0}a.markedOffset=f,c=!1;break;case" ":c=!1;break;default:if(!n&&c){p=!0;break}if(o=parseInt(i+t.charAt(u++),16),!n&&(isNaN(o)||o<0||o>255))throw TypeError("Illegal str: Not a debug encoded string");a.view[f++]=o,c=!0}if(p)throw TypeError("Illegal str: Invalid symbol at "+u)}if(!n){if(!h||!d)throw TypeError("Illegal str: Missing offset or limit");if(f>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,t<0||t>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+e+" <= "+this.buffer.byteLength)}for(var r,n=new Array(e-t);t255))throw TypeError("Illegal str: Contains non-hex characters");s.view[u++]=i}return s.limit=u,s};var c=function(){var t={MAX_CODEPOINT:1114111,encodeUTF8:function(t,e){var r=null;for("number"==typeof t&&(r=t,t=function(){return null});null!==r||null!==(r=t());)r<128?e(127&r):r<2048?(e(r>>6&31|192),e(63&r|128)):r<65536?(e(r>>12&15|224),e(r>>6&63|128),e(63&r|128)):(e(r>>18&7|240),e(r>>12&63|128),e(r>>6&63|128),e(63&r|128)),r=null},decodeUTF8:function(t,e){for(var r,n,i,o,s=function(t){t=t.slice(0,t.indexOf(null));var e=Error(t.toString());throw e.name="TruncatedError",e.bytes=t,e};null!==(r=t());)if(0==(128&r))e(r);else if(192==(224&r))null===(n=t())&&s([r,n]),e((31&r)<<6|63&n);else if(224==(240&r))(null===(n=t())||null===(i=t()))&&s([r,n,i]),e((15&r)<<12|(63&n)<<6|63&i);else{if(240!=(248&r))throw RangeError("Illegal starting byte: "+r);(null===(n=t())||null===(i=t())||null===(o=t()))&&s([r,n,i,o]),e((7&r)<<18|(63&n)<<12|(63&i)<<6|63&o)}},UTF16toUTF8:function(t,e){for(var r,n=null;null!==(r=null!==n?n:t());)r>=55296&&r<=57343&&null!==(n=t())&&n>=56320&&n<=57343?(e(1024*(r-55296)+n-56320+65536),n=null):e(r);null!==n&&e(n)},UTF8toUTF16:function(t,e){var r=null;for("number"==typeof t&&(r=t,t=function(){return null});null!==r||null!==(r=t());)r<=65535?e(r):(e(55296+((r-=65536)>>10)),e(r%1024+56320)),r=null},encodeUTF16toUTF8:function(e,r){t.UTF16toUTF8(e,function(e){t.encodeUTF8(e,r)})},decodeUTF8toUTF16:function(e,r){t.decodeUTF8(e,function(e){t.UTF8toUTF16(e,r)})},calculateCodePoint:function(t){return t<128?1:t<2048?2:t<65536?3:4},calculateUTF8:function(t){for(var e,r=0;null!==(e=t());)r+=e<128?1:e<2048?2:e<65536?3:4;return r},calculateUTF16asUTF8:function(e){var r=0,n=0;return t.UTF16toUTF8(e,function(t){++r,n+=t<128?1:t<2048?2:t<65536?3:4}),[r,n]}};return t}();return r.toUTF8=function(t,e){if(void 0===t&&(t=this.offset),void 0===e&&(e=this.limit),!this.noAssert){if("number"!=typeof t||t%1!=0)throw TypeError("Illegal begin: Not an integer");if(t>>>=0,"number"!=typeof e||e%1!=0)throw TypeError("Illegal end: Not an integer");if(e>>>=0,t<0||t>e||e>this.buffer.byteLength)throw RangeError("Illegal range: 0 <= "+t+" <= "+e+" <= "+this.buffer.byteLength)}var r;try{c.decodeUTF8toUTF16(function(){return t=0){if(void 0!==n[r])throw new Error("duplicate (set)");n[r]=!0}}return y(e,t)},fromByteBuffer:function(e){var r=e.readVarint32();return d&&console.log("varint32 size = "+r.toString(16)),this.validate(function(){for(var n=[],i=0;0r;i++)n.push(t.fromByteBuffer(e));return n}())},appendByteBuffer:function(e,r){r||(r=[]),e.writeVarint32(r.length);for(var n,i=this.validate(r),o=0;ot.length)throw new Error("two many fields");for(;r>0;){var i=e.readVarint32();if(i>=t.length)throw new Error("index out of range");var o=t[i];n[o.name]=o.type.fromByteBuffer(e),r--}return n}},appendByteBuffer:function(e,r){var n=new c.a(c.a.DEFAULT_CAPACITY,c.a.LITTLE_ENDIAN),i=0;r&&t.forEach(function(t,e){void 0!==r[t.name]&&null!==r[t.name]&&(n.writeVarint32(e),t.type.appendByteBuffer(n,r[t.name]),i++)}),e.writeVarint32(i),n.flip(),e.append(n)},fromObject:function(e){if(void 0!==e){var r={};return t.forEach(function(t){void 0!==e[t.name]&&null!==e[t.name]&&(r[t.name]=t.type.fromObject(e[t.name]))}),r}},toObject:function(e,r){void 0===r&&(r={});var n=function(){if(void 0!==e){var n={};return t.forEach(function(t){void 0!==e[t.name]&&null!==e[t.name]&&(n[t.name]=t.type.toObject(e[t.name],r))}),n}}();return r.annotate&&("object"==typeof n?n.__optional="parent is optional":n={__optional:n}),n}}},l.static_variant=function(t){return{nosort:!0,st_operations:t,fromByteBuffer:function(t){var e=t.readVarint32(),r=this.st_operations[e];return d&&console.error("static_variant id 0x"+e.toString(16)+" ("+e+")"),n.a.required(r,"operation "+e),[e,r.fromByteBuffer(t)]},appendByteBuffer:function(t,e){n.a.required(e);var r=e[0],i=this.st_operations[r];n.a.required(i,"operation "+r),t.writeVarint32(r),i.appendByteBuffer(t,e[1])},fromObject:function(t){n.a.required(t);var e=t[0],r=this.st_operations[e];return n.a.required(r,"operation "+e),[e,r.fromObject(t[1])]},toObject:function(t,e){if(void 0===e&&(e={}),e.use_default&&void 0===t)return[0,this.st_operations[0].toObject(void 0,e)];n.a.required(t);var r=t[0],i=this.st_operations[r];return n.a.required(i,"operation "+r),[r,i.toObject(t[1],e)]}}},l.map=function(t,e){return{validate:function(e){if(!Array.isArray(e))throw new Error("expecting array");for(var r,n={},i=0;i=0){if(void 0!==n[r[0]])throw new Error("duplicate (map)");n[r[0]]=!0}}return y(e,t)},fromByteBuffer:function(r){for(var n=[],i=r.readVarint32(),o=0;0i;o++)n.push([t.fromByteBuffer(r),e.fromByteBuffer(r)]);return this.validate(n)},appendByteBuffer:function(r,n){this.validate(n),r.writeVarint32(n.length);for(var i,o=0;oe?1:t63)return!1;for(r=0,i=(s=t.split(".")).length;r63)return a+"be shorter.";for(/\\./.test(t)&&(a="Each account segment should "),r=0,i=(s=t.split(".")).length;r=3))return a+"be longer"}return null},is_cheap_name:function(t){return/[0-9-]/.test(t)||!/[aeiouy]/.test(t)},is_empty_user_input:function(t){return!!this.is_empty(t)||""===(t+"").trim()},required:function(t,e){if(void 0===e&&(e=""),this.is_empty(t))throw new Error("value required for "+e+": "+t);return t},is_valid_symbol_error:function(t){var e="Asset name should ";return this.is_empty(t)?e+"not be empty.":t.split(".").length>2?e+"have only one dot.":t.length<3?e+"be longer.":t.length>16?e+"be shorter.":/^[A-Z]/.test(t)?/[A-Z0-9]$/.test(t)?/^[A-Z0-9\\.]$/.test(t)?e+"contain only letters numbers and perhaps a dot.":null:e+"end with a letter or number":e+"start with a letter"}};e.a=i},function(t,e,r){"use strict";var n=r(5),i=r.n(n),o=r(20),s=r(13),a=r(1),u=r(3),f=r(2),c=r.n(f),h=r(30),l=r.n(h),d=Object(o.getCurveByName)("secp256k1"),p=r(7).Buffer,_=d.G,g=d.n,v=function(){function t(t){this.Q=t}t.fromBinary=function(e){return t.fromBuffer(p.from(e,"binary"))},t.fromBuffer=function(e){return"000000000000000000000000000000000000000000000000000000000000000000"===e.toString("hex")?new t(null):new t(o.Point.decodeFrom(d,e))};var e=t.prototype;return e.toBuffer=function(t){return void 0===t&&(t=this.Q?this.Q.compressed:null),null===this.Q?p.from("000000000000000000000000000000000000000000000000000000000000000000","hex"):this.Q.getEncoded(t)},t.fromPoint=function(e){return new t(e)},e.toUncompressed=function(){var e=this.Q.getEncoded(!1),r=o.Point.decodeFrom(d,e);return t.fromPoint(r)},e.toBlockchainAddress=function(){var t=this.toBuffer(),e=Object(a.sha512)(t);return Object(a.ripemd160)(e)},e.toString=function(t){return void 0===t&&(t=u.ChainConfig.address_prefix),this.toPublicKeyString(t)},e.toPublicKeyString=function(t){void 0===t&&(t=u.ChainConfig.address_prefix);var e=this.toBuffer(),r=Object(a.ripemd160)(e),n=p.concat([e,r.slice(0,4)]);return t+Object(s.encode)(n)},t.fromPublicKeyString=function(e,r){void 0===r&&(r=u.ChainConfig.address_prefix);try{return t.fromStringOrThrow(e,r)}catch(t){return null}},t.fromStringOrThrow=function(e,r){void 0===r&&(r=u.ChainConfig.address_prefix),null===e.Q&&(e=r+"1111111111111111111111111111111114T1Anm");var n=e.slice(0,r.length);c.a.equal(r,n,"Expecting key to begin with "+r+", instead got "+n),e=e.slice(r.length);var i=(e=p.from(Object(s.decode)(e),"binary")).slice(-4);e=e.slice(0,-4);var o=Object(a.ripemd160)(e);if(o=o.slice(0,4),!l()(i,o))throw new Error("Checksum did not match");return t.fromBuffer(e)},e.toAddressString=function(t){void 0===t&&(t=u.ChainConfig.address_prefix);var e=this.toBuffer(),r=Object(a.sha512)(e),n=Object(a.ripemd160)(r),i=Object(a.ripemd160)(n);return n=p.concat([n,i.slice(0,4)]),t+Object(s.encode)(n)},e.toPtsAddy=function(){var t=this.toBuffer(),e=Object(a.sha256)(t),r=Object(a.ripemd160)(e);r=p.concat([p.from([56]),r]);var n=Object(a.sha256)(r);return n=Object(a.sha256)(n),r=p.concat([r,n.slice(0,4)]),Object(s.encode)(r)},e.child=function(e){c()(p.isBuffer(e),"Buffer required: offset"),c.a.equal(e.length,32,"offset length"),e=p.concat([this.toBuffer(),e]),e=Object(a.sha256)(e);var r=i.a.fromBuffer(e);if(r.compareTo(g)>=0)throw new Error("Child offset went out of bounds, try again");var n=_.multiply(r),o=this.Q.add(n);if(d.isInfinity(o))throw new Error("Child offset derived to an invalid key, try again");return t.fromPoint(o)},e.toByteBuffer=function(){var t=new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY,ByteBuffer.LITTLE_ENDIAN);return this.appendByteBuffer(t),t.copy(0,t.offset)},t.fromHex=function(e){return t.fromBuffer(p.from(e,"hex"))},e.toHex=function(){return this.toBuffer().toString("hex")},t.fromPublicKeyStringHex=function(e){return t.fromPublicKeyString(p.from(e,"hex"))},t}();e.a=v},function(t,e,r){"use strict";var n={reserved_spaces:{relative_protocol_ids:0,protocol_ids:1,implementation_ids:2},object_type:{null:0,base:1,account:2,asset:3,force_settlement:4,committee_member:5,witness:6,limit_order:7,call_order:8,custom:9,proposal:10,operation_history:11,withdraw_permission:12,vesting_balance:13,worker:14,balance:15,htlc:16},impl_object_type:{global_property:0,dynamic_global_property:1,index_meta:2,asset_dynamic_data:3,asset_bitasset_data:4,account_balance:5,account_statistics:6,transaction:7,block_summary:8,account_transaction_history:9,blinded_balance:10,chain_property:11,witness_schedule:12,budget_record:13},vote_type:{committee:0,witness:1,worker:2},operations:{transfer:0,limit_order_create:1,limit_order_cancel:2,call_order_update:3,fill_order:4,account_create:5,account_update:6,account_whitelist:7,account_upgrade:8,account_transfer:9,asset_create:10,asset_update:11,asset_update_bitasset:12,asset_update_feed_producers:13,asset_issue:14,asset_reserve:15,asset_fund_fee_pool:16,asset_settle:17,asset_global_settle:18,asset_publish_feed:19,witness_create:20,witness_update:21,proposal_create:22,proposal_update:23,proposal_delete:24,withdraw_permission_create:25,withdraw_permission_update:26,withdraw_permission_claim:27,withdraw_permission_delete:28,committee_member_create:29,committee_member_update:30,committee_member_update_global_parameters:31,vesting_balance_create:32,vesting_balance_withdraw:33,worker_create:34,custom:35,assert:36,balance_claim:37,override_transfer:38,transfer_to_blind:39,blind_transfer:40,transfer_from_blind:41,asset_settle_cancel:42,asset_claim_fees:43,fba_distribute:44,bid_collateral:45,execute_bid:46,asset_claim_pool:47,asset_update_issuer:48,htlc_create:49,htlc_redeem:50,htlc_redeemed:51,htlc_extend:52,htlc_refund:53}};e.a=n},function(t,e,r){var n=r(79);t.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},function(t,e,r){"use strict";var n=r(19);r.d(e,"a",function(){return n.a});r(25),r(17);var i=r(11);r.d(e,"b",function(){return i.a});var o=r(38);r.d(e,"c",function(){return o.a});r(37);var s=r(1);r.d(e,"d",function(){return s});r(29)},function(t,e){var r,n,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(t){r=o}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,f=[],c=!1,h=-1;function l(){c&&u&&(c=!1,u.length?f=u.concat(f):h=-1,f.length&&d())}function d(){if(!c){var t=a(l);c=!0;for(var e=f.length;e;){for(u=f,f=[];++h1)for(var r=1;r=0)throw new Error("Child offset went out of bounds, try again");var n=this.d.add(r);if(0===n.signum())throw new Error("Child offset derived to an invalid key, try again");return new t(n)},e.toByteBuffer=function(){var t=new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY,ByteBuffer.LITTLE_ENDIAN);return this.appendByteBuffer(t),t.copy(0,t.offset)},t.fromHex=function(e){return t.fromBuffer(new _(e,"hex"))},e.toHex=function(){return this.toBuffer().toString("hex")},t}();e.a=g;var v=function(t){return null==t?t:t.Q?t:u.a.fromStringOrThrow(t)}},function(t,e,r){"use strict";var n=r(11),i=r(7).Buffer,o=function(){function t(){}return t.fixed_data=function(t,e,r){if(t){if(!r){var n=t.copy(t.offset,t.offset+e);return t.skip(e),i.from(n.toBinary(),"binary")}var o=r.slice(0,e).toString("binary");for(t.append(o,"binary");e-- >o.length;)t.writeUint8(0)}},t.public_key=function(e,r){if(e){if(!r)return i=t.fixed_data(e,33),n.a.fromBuffer(i);var i=r.toBuffer();e.append(i.toString("binary"),"binary")}},t.ripemd160=function(e,r){if(e)return r?void t.fixed_data(e,20,r):t.fixed_data(e,20)},t.time_point_sec=function(t,e){return e?(e=Math.ceil(e/1e3),void t.writeInt32(e)):(e=t.readInt32(),new Date(1e3*e))},t}();e.a=o},function(t,e,r){"use strict";var n=r(2),i=r.n(n),o=r(3),s=r(1),a=r(13),u=r(30),f=r.n(u),c=r(7).Buffer,h=function(){function t(t){this.addy=t}t.fromBuffer=function(e){var r=Object(s.sha512)(e);return new t(Object(s.ripemd160)(r))},t.fromString=function(e,r){void 0===r&&(r=o.ChainConfig.address_prefix);var n=e.slice(0,r.length);i.a.equal(r,n,"Expecting key to begin with "+r+", instead got "+n);var u=e.slice(r.length),h=(u=new c(Object(a.decode)(u),"binary")).slice(-4);u=u.slice(0,-4);var l=Object(s.ripemd160)(u);if(l=l.slice(0,4),!f()(h,l))throw new Error("Checksum did not match");return new t(u)},t.fromPublic=function(e,r,n){void 0===r&&(r=!0),void 0===n&&(n=56);var i=Object(s.sha256)(e.toBuffer(r)),o=Object(s.ripemd160)(i),a=c.alloc(1);a.writeUInt8(255&n,0);var u=c.concat([a,o]),f=Object(s.sha256)(u);f=Object(s.sha256)(f);var h=c.concat([u,f.slice(0,4)]);return new t(Object(s.ripemd160)(h))};var e=t.prototype;return e.toBuffer=function(){return this.addy},e.toString=function(t){void 0===t&&(t=o.ChainConfig.address_prefix);var e=Object(s.ripemd160)(this.addy),r=c.concat([this.addy,e.slice(0,4)]);return t+Object(a.encode)(r)},t}();e.a=h},function(t,e,r){var n=r(50),i=r(51),o=r(77);t.exports={Curve:i,Point:n,getCurveByName:o}},function(t,e,r){t.exports=function(t){return t.enc.Hex}(r(22))},function(t,e,r){t.exports=function(){var t=t||function(t,e){var r=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},s=i.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:4*t.length},toString:function(t){return(t||u).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(var o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r,n=[],i=function(e){var e=e,r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return i/=4294967296,(i+=.5)*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new s.init(r,e/2)}},f=a.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new s.init(r,e)}},c=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(f.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return f.parse(unescape(encodeURIComponent(t)))}},h=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=c.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=4*o,u=i/a,f=(u=e?t.ceil(u):t.max((0|u)-this._minBufferSize,0))*o,c=t.min(4*f,i);if(f){for(var h=0;h \n * @license MIT\n */\nvar n=r(70),i=r(71),o=r(72);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return P(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return N(t).length;default:if(n)return P(t).length;e=(""+e).toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function f(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var c=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var h=!0,l=0;li&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function B(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function I(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:f>223?3:f>191?2:1;if(i+h<=r)switch(h){case 1:f<128&&(c=f);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&f)<<6|63&o)>127&&(c=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&f)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&f)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(c=u)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=T)return String.fromCharCode.apply(String,t);var r="",n=0;for(;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return O(this,e,r);case"utf8":case"utf-8":return I(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return x(this,e,r);case"base64":return B(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=r-e,a=Math.min(o,s),f=this.slice(n,i),c=t.slice(e,r),h=0;hi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return y(this,t,e,r);case"utf8":case"utf-8":return b(this,t,e,r);case"ascii":return m(this,t,e,r);case"latin1":case"binary":return w(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var T=4096;function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function L(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError(\'"buffer" argument must be a Buffer instance\');if(e>i||et.length)throw new RangeError("Index out of range")}function M(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function D(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function R(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function z(t,e,r,n,o){return o||R(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function U(t,e,r,n,o){return o||R(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if(t=~~t,e=void 0===e?n:~~e,t<0?(t+=n)<0&&(t=0):t>n&&(t=n),e<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||j(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||j(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||j(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||j(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||j(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||j(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||j(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||j(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||j(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||j(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||L(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):M(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):M(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):D(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):D(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):M(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):M(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):D(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||L(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):D(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return z(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return z(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return U(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return U(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function N(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,"")}(t).replace(q,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(16))},function(t,e,r){"use strict";var n=r(36),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var o=r(33);o.inherits=r(9);var s=r(55),a=r(43);o.inherits(h,s);for(var u=i(a.prototype),f=0;f=4))throw new Error("Invalid key, could not decrypt message(1)");var u=a.slice(0,4),f=a.slice(4),c=Object(h.sha256)(f);if(c=(c=c.slice(0,4)).toString("hex"),u.toString("hex")!==c)throw new Error("Invalid key, could not decrypt message(2)");return f},t.encrypt_with_checksum=function(e,r,n,i){null==n&&(n=""),l.isBuffer(i)||(i=new l(i,"binary"));var o=e.get_shared_secret(r),s=t.fromSeed(l.concat([l.from(""+n),l.from(o.toString("hex"))])),a=Object(h.sha256)(i).slice(0,4),u=l.concat([a,i]);return s.encrypt(u)},e._decrypt_word_array=function(t){return i.a.decrypt({ciphertext:t,salt:null},this.key,{iv:this.iv})},e._encrypt_word_array=function(t){var e=i.a.encrypt(t,this.key,{iv:this.iv});return u.a.parse(e.toString())},e.decrypt=function(t){if("string"==typeof t&&(t=new l(t,"binary")),!l.isBuffer(t))throw new Error("buffer required");c()(t,"Missing cipher text");var e=this.decryptHex(t.toString("hex"));return new l(e,"hex")},e.encrypt=function(t){if("string"==typeof t&&(t=new l(t,"binary")),!l.isBuffer(t))throw new Error("buffer required");var e=this.encryptHex(t.toString("hex"));return new l(e,"hex")},e.encryptToHex=function(t){if("string"==typeof t&&(t=new l(t,"binary")),!l.isBuffer(t))throw new Error("buffer required");return this.encryptHex(t.toString("hex"))},e.decryptHex=function(t){c()(t,"Missing cipher text");var e=s.a.parse(t),r=this._decrypt_word_array(e);return s.a.stringify(r)},e.decryptHexToBuffer=function(t){c()(t,"Missing cipher text");var e=s.a.parse(t),r=this._decrypt_word_array(e),n=s.a.stringify(r);return new l(n,"hex")},e.decryptHexToText=function(t,e){return void 0===e&&(e="binary"),this.decryptHexToBuffer(t).toString(e)},e.encryptHex=function(t){var e=s.a.parse(t),r=this._encrypt_word_array(e);return s.a.stringify(r)},t}();e.a=d},function(t,e,r){"use strict";var n=r(6),i=r(0),o=n.Long.fromNumber(Math.pow(2,48)-1),s=function(){function t(t,e,r){this.space=t,this.type=e,this.instance=r;var n=this.instance.toString(),o=this.space+"."+this.type+"."+n;if(!i.a.is_digits(n))throw new("Invalid object id "+o)}t.fromString=function(e){if(void 0!==e.space&&void 0!==e.type&&void 0!==e.instance)return e;var r=i.a.require_match(/^([0-9]+)\\.([0-9]+)\\.([0-9]+)$/,i.a.required(e,"ObjectId"),"ObjectId");return new t(parseInt(r[1]),parseInt(r[2]),n.Long.fromString(r[3]))},t.fromLong=function(e){return new t(e.shiftRight(56).toInt(),255&e.shiftRight(48).toInt(),e.and(o))},t.fromByteBuffer=function(e){return t.fromLong(e.readUint64())};var e=t.prototype;return e.toLong=function(){return n.Long.fromNumber(this.space).shiftLeft(56).or(n.Long.fromNumber(this.type).shiftLeft(48).or(this.instance))},e.appendByteBuffer=function(t){return t.writeUint64(this.toLong())},e.toString=function(){return this.space+"."+this.type+"."+this.instance.toString()},t}();e.a=s},function(t,e,r){var n=r(7).Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},function(t,e,r){"use strict";(function(t){var n=r(6),i=r.n(n),o=r(32),s=r(7).Buffer,a=t.env.npm_config__graphene_serializer_hex_dump,u=function(){function t(e,r){this.operation_name=e,this.types=r,this.types&&(this.keys=Object.keys(this.types)),t.printDebug=!0}var e=t.prototype;return e.fromByteBuffer=function(e){var r={},n=null;try{for(var i=this.keys,s=0;sf?1:un;f++)u=Object(a.sha256)(u);if(Object(a.sha256)(u).slice(0,4).toString("hex")!==o)throw new Error("wrong password");return s.a.fromSeed(u)},random32ByteBuffer:function(t){if(void 0===t&&(t=this.browserEntropy()),"string"!=typeof t)throw new Error("string required for entropy");if(t.length<32)throw new Error("expecting at least 32 bytes of entropy");for(var e=Date.now();Date.now()-e<250;)t=Object(a.sha256)(t);var r=[];return r.push(t),r.push(f.a.randomBuffer(32)),Object(a.sha256)(h.concat(r))},suggest_brain_key:function(t,e){void 0===t&&(t=","),void 0===e&&(e=this.browserEntropy());var r=this.random32ByteBuffer(e),n=t.split(",");if(49744!==n.length)throw new Error("expecting 49744 but got "+n.length+" dictionary words");for(var i=[],o=0;o<32;o+=2){var s=((r[o]<<8)+r[o+1])/Math.pow(2,16),a=Math.round(n.length*s);i.push(n[a])}return this.normalize_brainKey(i.join(" "))},get_random_key:function(t){return n.a.fromBuffer(this.random32ByteBuffer(t))},get_brainPrivateKey:function(t,e){if(void 0===e&&(e=0),e<0)throw new Error("invalid sequence");if(""===t.trim())throw new Error("empty brain key");return t=l.normalize_brainKey(t),n.a.fromBuffer(Object(a.sha256)(Object(a.sha512)(t+" "+e)))},normalize_brainKey:function(t){if("string"!=typeof t)throw new Error("string required for brainKey");if(""===(t=t.trim()))throw new Error("empty brain key");return t.split(/[\\t\\n\\v\\f\\r ]+/).join(" ")},browserEntropy:function(){var t="";try{t=(new Date).toString()+" "+window.screen.height+" "+window.screen.width+" "+window.screen.colorDepth+" "+window.screen.availHeight+" "+window.screen.availWidth+" "+window.screen.pixelDepth+navigator.language+" "+window.location+" "+window.history.length;for(var e,r=0;r=0;f--)if(h[f]!=l[f])return!1;for(f=h.length-1;f>=0;f--)if(c=h[f],!s(t[c],e[c],r))return!1;return typeof t==typeof e}(t,e,r))};function a(t){return null===t||void 0===t}function u(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}},function(t,e,r){"use strict";(function(t){function n(e,r){switch(e){case"Array":if(Array.isArray(r))return;break;case"Boolean":if("boolean"==typeof r)return;break;case"Buffer":if(t.isBuffer(r))return;break;case"Number":if("number"==typeof r)return;break;case"String":if("string"==typeof r)return;break;default:if(i(r.constructor)===i(e))return}throw new TypeError("Expected "+(i(e)||e)+", got "+r)}function i(t){var e=t.toString().match(/function (.*?)\\(/);return e?e[1]:null}r.d(e,"a",function(){return n})}).call(this,r(23).Buffer)},function(t,e,r){"use strict";var n=function(){function t(t,e){this.message=t,(void 0!==e&&null!==e?e.message:void 0)&&(this.message="cause\\t"+e.message+"\\t"+this.message);var r="";(void 0!==e&&null!==e?e.stack:void 0)&&(r="caused by\\n\\t"+e.stack+"\\t"+r),this.stack=this.message+"\\n"+r}return t.throw=function(t,e){var r=t;throw(void 0!==e&&null!==e?e.message:void 0)&&(r+="\\t cause: "+e.message+" "),(void 0!==e&&null!==e?e.stack:void 0)&&(r+="\\n stack: "+e.stack+" "),new Error(r)},t}();e.a=n},function(t,e,r){(function(t){function r(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===r(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===r(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===r(t)},e.isError=function(t){return"[object Error]"===r(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=t.isBuffer}).call(this,r(23).Buffer)},function(t,e,r){(function(n,i){var o;!function(s){"use strict";function a(t,e){if(e=e||{type:"Array"},void 0!==n&&"number"==typeof n.pid)return function(t,e){var n=r(107).randomBytes(t);switch(e.type){case"Array":return[].slice.call(n);case"Buffer":return n;case"Uint8Array":for(var i=new Uint8Array(t),o=0;o0,"R length is zero");var r=4+e;i.a.equal(t.readUInt8(r),2,"Expected a DER integer (2)");var n=t.readUInt8(r+1);i()(n>0,"S length is zero");var o=t.slice(4,r),s=t.slice(r+2);r+=2+n,e>1&&0===o.readUInt8(0)&&i()(128&o.readUInt8(1),"R value excessively padded"),n>1&&0===s.readUInt8(0)&&i()(128&s.readUInt8(1),"S value excessively padded"),i.a.equal(r,t.length,"Invalid DER encoding");var a=u.a.fromDERInteger(o),f=u.a.fromDERInteger(s);return i()(a.signum()>=0,"R value is negative"),i()(f.signum()>=0,"S value is negative"),new c(a,f)},c.parseScriptSignature=function(t){var e=t.readUInt8(t.length-1),r=-129&e;return i()(r>0&&r<4,"Invalid hashType"),{signature:c.fromDER(t.slice(0,-1)),hashType:e}},c.prototype.toCompact=function(t,e){e&&(t+=4),t+=27;var r=f.alloc(65);return r.writeUInt8(t,0),this.r.toBuffer(32).copy(r,1),this.s.toBuffer(32).copy(r,33),r},c.prototype.toDER=function(){var t=this.r.toDERInteger(),e=this.s.toDERInteger(),r=[];return r.push(2,t.length),(r=r.concat(t)).push(2,e.length),(r=r.concat(e)).unshift(48,r.length),f.from(r)},c.prototype.toScriptSignature=function(t){var e=f.alloc(1);return e.writeUInt8(t,0),f.concat([this.toDER(),e])};var h=c,l=r(7).Buffer;function d(t,e,r,n){var a,f,c=u.a.fromBuffer(e),d=t.n,p=t.G;!function(t,e,r,n,a){Object(s.a)("Buffer",e),Object(s.a)(u.a,r),a&&(e=Object(o.sha256)(l.concat([e,l.alloc(a)]))),i.a.equal(e.length,32,"Hash must be 256 bit");var f=r.toBuffer(32),c=l.alloc(32),h=l.alloc(32);h.fill(1),c.fill(0),c=Object(o.HmacSHA256)(l.concat([h,new l([0]),f,e]),c),h=Object(o.HmacSHA256)(h,c),c=Object(o.HmacSHA256)(l.concat([h,new l([1]),f,e]),c),h=Object(o.HmacSHA256)(h,c),h=Object(o.HmacSHA256)(h,c);for(var d=u.a.fromBuffer(h);d.signum()<=0||d.compareTo(t.n)>=0||!n(d);)c=Object(o.HmacSHA256)(l.concat([h,new l([0])]),c),h=Object(o.HmacSHA256)(h,c),h=Object(o.HmacSHA256)(h,c),d=u.a.fromBuffer(h)}(t,e,r,function(e){var n=p.multiply(e);return!t.isInfinity(n)&&(0!==(a=n.affineX.mod(d)).signum()&&0!==(f=e.modInverse(d).multiply(c.add(r.multiply(a))).mod(d)).signum())},n);var _=d.shiftRight(1);return f.compareTo(_)>0&&(f=d.subtract(f)),new h(a,f)}function p(t,e,r,n){i.a.strictEqual(3&n,n,"Recovery param is more than two bits");var o=t.n,s=t.G,a=r.r,u=r.s;i()(a.signum()>0&&a.compareTo(o)<0,"Invalid r value"),i()(u.signum()>0&&u.compareTo(o)<0,"Invalid s value");var f=1&n,c=n>>1?a.add(o):a,h=t.pointFromX(f,c),l=h.multiply(o);i()(t.isInfinity(l),"nR is not a valid curve point");var d=e.negate().mod(o),p=a.modInverse(o),_=h.multiplyTwo(u,s,d).multiply(p);return t.validate(_),_}function _(t,e,r,n){for(var i=0;i<4;i++){if(p(t,e,r,i).equals(n))return i}throw new Error("Unable to find valid recovery factor")}var g=r(20),v=r(11),y=Object(g.getCurveByName)("secp256k1"),b=r(7).Buffer,m=function(){function t(t,e,r){this.r=t,this.s=e,this.i=r,i.a.equal(null!=this.r,!0,"Missing parameter"),i.a.equal(null!=this.s,!0,"Missing parameter"),i.a.equal(null!=this.i,!0,"Missing parameter")}t.fromBuffer=function(e){var r;return i.a.equal(e.length,65,"Invalid signature length"),r=e.readUInt8(0),i.a.equal(r-27,r-27&7,"Invalid signature parameter"),new t(u.a.fromBuffer(e.slice(1,33)),u.a.fromBuffer(e.slice(33)),r)};var e=t.prototype;return e.toBuffer=function(){var t;return(t=b.alloc(65)).writeUInt8(this.i,0),this.r.toBuffer(32).copy(t,1),this.s.toBuffer(32).copy(t,33),t},e.recoverPublicKeyFromBuffer=function(t){return this.recoverPublicKey(Object(o.sha256)(t))},e.recoverPublicKey=function(t){var e,r,n;return r=u.a.fromBuffer(t),n=this.i,n-=27,e=p(y,r,this,n&=3),v.a.fromPoint(e)},t.signBuffer=function(e,r){var n=Object(o.sha256)(e);return t.signBufferSha256(n,r)},t.signBufferSha256=function(e,r){if(32!==e.length||!b.isBuffer(e))throw new Error("buf_sha256: 32 byte buffer requred");var n,i,o,s,a,f,c;for(s=null,c=0,i=u.a.fromBuffer(e);;){if(f=(n=(o=d(y,e,r.d,c++)).toDER())[5+(a=n[3])],32===a&&32===f){s=_(y,i,o,r.toPublicKey().Q),s+=4,s+=27;break}c%10==0&&console.log("WARN: "+c+" attempts to find canonical signature")}return new t(o.r,o.s,s)},t.sign=function(e,r){return t.signBuffer(b.from(e),r)},e.verifyBuffer=function(t,e){var r=Object(o.sha256)(t);return this.verifyHash(r,e)},e.verifyHash=function(t,e){return i.a.equal(t.length,32,"A SHA 256 should be 32 bytes long, instead got "+t.length),function(t,e,r,n){return function(t,e,r,n){var i=t.n,o=t.G,s=r.r,a=r.s;if(s.signum()<=0||s.compareTo(i)>=0)return!1;if(a.signum()<=0||a.compareTo(i)>=0)return!1;var u=a.modInverse(i),f=e.multiply(u).mod(i),c=s.multiply(u).mod(i),h=o.multiplyTwo(f,n,c);return!t.isInfinity(h)&&h.affineX.mod(i).equals(s)}(t,u.a.fromBuffer(e),r,n)}(y,t,{r:this.r,s:this.s},e.Q)},e.toByteBuffer=function(){var t;return t=new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY,ByteBuffer.LITTLE_ENDIAN),this.appendByteBuffer(t),t.copy(0,t.offset)},t.fromHex=function(e){return t.fromBuffer(b.from(e,"hex"))},e.toHex=function(){return this.toBuffer().toString("hex")},t.signHex=function(e,r){var n;return n=b.from(e,"hex"),t.signBuffer(n,r)},e.verifyHex=function(t,e){var r;return r=b.from(t,"hex"),this.verifyBuffer(r,e)},t}();e.a=m},function(t,e,r){"use strict";r.d(e,"a",function(){return s});var n,i=r(68),o=r.n(i);function s(){return n||(n=o()({})),n}},function(t,e,r){"use strict";(function(t){var n=r(4),i=r.n(n),o=r(3),s=r(12),a=r(10),u=r(5),f=r.n(u),c=r(39),h=s.a.object_type,l=s.a.impl_object_type,d=Object(c.a)(),p=parseInt(h.operation_history,10),_="1."+parseInt(h.witness,10)+".",g="1."+parseInt(h.committee_member,10)+".",v="1."+parseInt(h.account,10)+".",y=JSON.parse(t.env.npm_config__graphene_chain_chain_debug||!1),b=Object.keys(h),m=Object.keys(l);function w(t){var e=t.split("."),r=e[0],n=e[1];switch(n=parseInt(n,10),r){case"0":return"unknown";case"1":return b[n];case"2":return m[n];case"5":return"market"}}var E=new(function(){function t(){this.subscribers=new Set,this.subscribed=!1,this.clearCache(),this.chain_time_offset=[],this.dispatchFrequency=40}var e=t.prototype;return e.clearCache=function(){this.subbed_accounts=new Set,this.subbed_witnesses=new Set,this.subbed_committee=new Set,this.objects_by_id=new Map,this.accounts_by_name=new Map,this.assets_by_symbol=new Map,this.account_ids_by_key=i.a.Map(),this.account_ids_by_account=i.a.Map(),this.balance_objects_by_address=new Map,this.get_account_refs_of_keys_calls=new Set,this.get_account_refs_of_accounts_calls=new Set,this.account_history_requests=new Map,this.witness_by_account_id=new Map,this.workers=new Set,this.committee_by_account_id=new Map,this.objects_by_vote_id=new Map,this.fetching_get_full_accounts=new Map,this.get_full_accounts_subscriptions=new Map,clearTimeout(this.timeout),this.dispatched=!1},e.resetCache=function(t){return this.subscribed=!1,this.subError=null,this.clearCache(),this.head_block_time_string=null,this.init(t).catch(function(t){throw t})},e.setDispatchFrequency=function(t){this.dispatchFrequency=t},e.init=function(t){var e=this;void 0===t&&(t=!0);var r=0;return new Promise(function(n,i){return function n(i,s){if(e.subscribed)return i();var a=o.Apis.instance().db_api();return a?a.exec("get_objects",[["2.1.0"]]).then(function(a){for(var u=0;u5)return e.subError=new Error("ChainStore sync error, please check your system clock"),s(e.subError);setTimeout(n.bind(e,i,s),1e3)}}else setTimeout(n.bind(e,i,s),1e3)}}).catch(function(t){console.log("!!! Chain API error",t),e.objects_by_id.delete("2.1.0"),s(t)}):s(new Error("Api not found, please initialize the api instance before calling the ChainStore"))}(n,i)})},e._subTo=function(t,e){var r="subbed_"+t;this[r].has(e)||this[r].add(e)},e.unSubFrom=function(t,e){this["subbed_"+t].delete(e),this.objects_by_id.delete(e)},e._isSubbedTo=function(t,e){return this["subbed_"+t].has(e)},e.onUpdate=function(t){for(var e=this,r=[],n=[],o=0;o5e3)&&(this.fetching_get_full_accounts.set(t,Date.now()),o.Apis.instance().db_api().exec("get_full_accounts",[[t],e]).then(function(n){if(0!==n.length){var a=n[0][1];r.get_full_accounts_subscriptions.set(a.account.name,e),r.get_full_accounts_subscriptions.set(a.account.id,e),y&&console.log("full_account: ",a),r._subTo("accounts",a.account.id);var f=a.account,c=a.assets,h=a.vesting_balances,l=a.statistics,d=a.call_orders,p=a.limit_orders,_=a.referrer_name,g=a.registrar_name,v=a.lifetime_referrer_name,b=a.votes,m=a.proposals;r.accounts_by_name.set(f.name,f.id),f.assets=new i.a.List(c||[]),f.referrer_name=_,f.lifetime_referrer_name=v,f.registrar_name=g,f.balances={},f.orders=new i.a.Set,f.vesting_balances=new i.a.Set,f.balances=new i.a.Map,f.call_orders=new i.a.Set,f.proposals=new i.a.Set,f.vesting_balances=f.vesting_balances.withMutations(function(t){h.forEach(function(e){r._updateObject(e),t.add(e.id)})});var w=[];b.forEach(function(t){return r._updateObject(t)}),f.balances=f.balances.withMutations(function(t){a.balances.forEach(function(n){r._updateObject(n),t.set(n.asset_type,n.id),e&&w.push(n.id)})}),f.orders=f.orders.withMutations(function(t){p.forEach(function(n){r._updateObject(n),t.add(n.id),e&&w.push(n.id)})}),f.call_orders=f.call_orders.withMutations(function(t){d.forEach(function(n){r._updateObject(n),t.add(n.id),e&&w.push(n.id)})}),f.proposals=f.proposals.withMutations(function(t){m.forEach(function(n){r._updateObject(n),t.add(n.id),e&&w.push(n.id)})}),w.length&&o.Apis.instance().db_api().exec("get_objects",[w]),r._updateObject(l);var E=r._updateObject(f);r.fetchRecentHistory(E),r.notifySubscribers()}else s?(r.objects_by_id.set(t,null),r.notifySubscribers()):u&&(r.accounts_by_name.set(t,null),r.notifySubscribers())}).catch(function(e){e&&"Assert Exception: account: no such account"===e.message?s?(r.objects_by_id.set(t,null),r.notifySubscribers()):u&&(r.accounts_by_name.set(t,null),r.notifySubscribers()):s?r.objects_by_id.delete(t):r.accounts_by_name.delete(t)}))},e.getAccountMemberStatus=function(t){if(void 0!==t)return null===t?"unknown":t.get("lifetime_referrer")==t.get("id")?"lifetime":new Date(t.get("membership_expiration_date")).getTime()<(new Date).getTime()?"basic":"annual"},e.getAccountBalance=function(t,e){var r=t.get("balances");if(!r)return 0;var n=r.get(e);if(n){var i=this.objects_by_id.get(n);if(i)return i.get("balance")}return 0},e.fetchRecentHistory=function(t,e){var r=this;void 0===e&&(e=100);var n=t;if(!a.a.is_object_id(n)&&t.toJS&&(n=t.get("id")),a.a.is_object_id(n)&&(t=this.objects_by_id.get(n))&&!0!==t){var s=this.account_history_requests.get(n);if(s)return s.requests++,s.promise;s={requests:0};var u="1."+p+".0",f=t.get("history");f&&f.size&&(u=f.first().get("id"));var c="1."+p+".0";return s.promise=new Promise(function(t,s){o.Apis.instance().history_api().exec("get_account_history",[n,u,e,c]).then(function(o){var a=r.objects_by_id.get(n);if(a){var u=a.get("history");u||(u=i.a.List());var f=i.a.fromJS(o);f=f.withMutations(function(t){for(var e=0;e0?r.fetchRecentHistory(c,e).then(t,s):t(c)}})}),this.account_history_requests.set(n,s),s.promise}},e._updateObject=function(t,e,r){if(void 0===e&&(e=!1),void 0===r&&(r=!0),!("id"in t))return console.log("object with no id:",t),void("balance"in t&&"owner"in t&&"settlement_date"in t&&d.emit("settle-order-update",t));var n=w(t.id);switch(n){case"transaction":case"operation_history":case"block_summary":return;case"account_transaction_history":case"limit_order":case"call_order":case"account_balance":case"account_stats":if(!this._isSubbedTo("accounts",t.account||t.seller||t.borrower||t.owner))return;break;case"witness":if(!this._isSubbedTo("witnesses",t.id))return;break;case"committee_member":if(!this._isSubbedTo("committee",t.id))return;break;case"unknown":case"market":return}"2.1.0"==t.id&&(t.participation=f()(t.recent_slots_filled).bitCount()/128*100,this.head_block_time_string=t.time,this.chain_time_offset.push(Date.now()-S(t.time).getTime()),this.chain_time_offset.length>10&&this.chain_time_offset.shift());var s=this.objects_by_id.get(t.id);s||(s=i.a.Map());var a=s;if(void 0===s||!0===s)this.objects_by_id.set(t.id,s=i.a.fromJS(t));else switch(n){case"account":case"asset":case"asset_bitasset_data":this.objects_by_id.set(t.id,s=s.mergeDeep(i.a.fromJS(t)));break;default:this.objects_by_id.set(t.id,s=i.a.fromJS(t))}switch(n){case"account_balance":var u=this.objects_by_id.get(t.owner);if(void 0===u||null===u||!0===u)return;u.get("balances")||(u=u.set("balances",i.a.Map())),u=u.setIn(["balances",t.asset_type],t.id),this.objects_by_id.set(t.owner,u);break;case"account_statistics":try{a.get("most_recent_op","2.9.0")!=t.most_recent_op&&this.fetchRecentHistory(t.owner)}catch(e){console.log("object:",t,"prior",a,"err:",e)}break;case"witness":if(!this._isSubbedTo("witnesses",t.id))return;this.witness_by_account_id.set(t.witness_account,t.id),this.objects_by_vote_id.set(t.vote_id,t.id);break;case"committee_member":if(!this._isSubbedTo("committee",t.id))return;this.committee_by_account_id.set(t.committee_member_account,t.id),this.objects_by_vote_id.set(t.vote_id,t.id);break;case"worker":this.objects_by_vote_id.set(t.vote_for,t.id),this.objects_by_vote_id.set(t.vote_against,t.id),this.workers.has(t.id)||this.workers.add(t.id);break;case"account":s=(s=(s=(s=(s=(s=(s=s.set("active",i.a.fromJS(t.active))).set("owner",i.a.fromJS(t.owner))).set("options",i.a.fromJS(t.options))).set("whitelisting_accounts",i.a.fromJS(t.whitelisting_accounts))).set("blacklisting_accounts",i.a.fromJS(t.blacklisting_accounts))).set("whitelisted_accounts",i.a.fromJS(t.whitelisted_accounts))).set("blacklisted_accounts",i.a.fromJS(t.blacklisted_accounts)),this.objects_by_id.set(t.id,s),this.accounts_by_name.set(t.name,t.id);break;case"asset":if(this.assets_by_symbol.set(t.symbol,t.id),!s.get("bitasset")&&"bitasset_data_id"in t){var c=this.getObject(t.bitasset_data_id,!0);c||(c=i.a.Map()),c.get("asset_id")||(c=c.set("asset_id",t.id)),this.objects_by_id.set(t.bitasset_data_id,c),s=s.set("bitasset",c),this.objects_by_id.set(t.id,s)}break;case"asset_bitasset_data":var h=s.get("asset_id");if(h){var l=this.getObject(h);l&&(l=l.set("bitasset",s),d.emit("bitasset-update",l),this.objects_by_id.set(h,l))}break;case"call_order":r&&d.emit("call-order-update",t);var p=this.objects_by_id.get(t.borrower);if(p&&!0!==p){p.has("call_orders")||(p=p.set("call_orders",new i.a.Set));var _=p.get("call_orders");_.has(t.id)||(p=p.set("call_orders",_.add(t.id)),this.objects_by_id.set(p.get("id"),p),o.Apis.instance().db_api().exec("get_objects",[[t.id]]))}break;case"limit_order":var g=this.objects_by_id.get(t.seller);if(g&&!0!==g){g.has("orders")||(g=g.set("orders",new i.a.Set));var v=g.get("orders");v.has(t.id)||(g=g.set("orders",v.add(t.id)),this.objects_by_id.set(g.get("id"),g),o.Apis.instance().db_api().exec("get_objects",[[t.id]]))}break;case"proposal":e=(e=e||this.addProposalData(t.required_active_approvals,t.id))||this.addProposalData(t.required_owner_approvals,t.id)}return e&&this.notifySubscribers(),s},e.getObjectsByVoteIds=function(t){for(var e=this,r=[],n=[],i=0;i0&&this._events[t].length>s&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(t,e){if(!n(e))throw TypeError("listener must be a function");var r=!1;function i(){this.removeListener(t,i),r||(r=!0,e.apply(this,arguments))}return i.listener=e,this.on(t,i),this},r.prototype.removeListener=function(t,e){var r,o,s,a;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(s=(r=this._events[t]).length,o=-1,r===e||n(r.listener)&&r.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(r)){for(a=s;a-- >0;)if(r[a]===e||r[a].listener&&r[a].listener===e){o=a;break}if(o<0)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},r.prototype.removeAllListeners=function(t){var e,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n(r=this._events[t]))this.removeListener(t,r);else if(r)for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},r.prototype.listeners=function(t){return this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},r.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(n(e))return 1;if(e)return e.length}return 0},r.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,r){(e=t.exports=r(55)).Stream=e,e.Readable=e,e.Writable=r(43),e.Duplex=r(24),e.Transform=r(58),e.PassThrough=r(87)},function(t,e,r){"use strict";(function(e,n,i){var o=r(36);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=y;var a,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;y.WritableState=v;var f=r(33);f.inherits=r(9);var c={deprecate:r(86)},h=r(56),l=r(7).Buffer,d=i.Uint8Array||function(){};var p,_=r(57);function g(){}function v(t,e){a=a||r(24),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,f=t.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(f||0===f)?f:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(B,t,e),t._writableState.errorEmitted=!0,t.emit("error",n)):(i(n),t._writableState.errorEmitted=!0,t.emit("error",n),B(t,e))}(t,r,n,e,i);else{var s=E(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||w(t,r),n?u(m,t,r,s,i):m(t,r,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function y(t){if(a=a||r(24),!(p.call(y,this)||this instanceof a))return new y(t);this._writableState=new v(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),h.call(this)}function b(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function m(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),B(t,e)}function w(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var a=0,u=!0;r;)i[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;i.allBuffers=u,b(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;r;){var f=r.chunk,c=r.encoding,h=r.callback;if(b(t,e,!1,e.objectMode?1:f.length,f,c,h),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function E(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function S(t,e){t._final(function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),B(t,e)})}function B(t,e){var r=E(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(S,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),r}f.inherits(y,h),v.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(v.prototype,"buffer",{get:c.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===y&&(t&&t._writableState instanceof v)}})):p=function(t){return t instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(t,e,r){var n=this._writableState,i=!1,s=!n.objectMode&&function(t){return l.isBuffer(t)||t instanceof d}(t);return s&&!l.isBuffer(t)&&(t=function(t){return l.from(t)}(t)),"function"==typeof e&&(r=e,e=null),s?e="buffer":e||(e=n.defaultEncoding),"function"!=typeof r&&(r=g),n.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),o.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,s=!1;return null===r?s=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(t.emit("error",s),o.nextTick(n,s),i=!1),i}(this,n,t,r))&&(n.pendingcb++,i=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=l.from(e,r));return e}(e,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,B(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=_.destroy,y.prototype._undestroy=_.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(15),r(84).setImmediate,r(16))},function(t,e,r){"use strict";var n=r(7).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=u,this.end=f,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=c,this.end=h,e=3;break;default:return this.write=l,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function f(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function c(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function h(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function l(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){var n=r(7).Buffer,i=r(54).Transform,o=r(44).StringDecoder;function s(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(9)(s,i),s.prototype.update=function(t,e,r){"string"==typeof t&&(t=n.from(t,e));var i=this._update(t);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},s.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},s.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},s.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can\'t switch encodings");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},t.exports=s},function(t,e,r){"use strict";var n=r(115)();t.exports=function(t){return t!==n&&null!==t}},function(t,e,r){t.exports=function(t){return function(){var e=t,r=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,n=this._map;t.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var u=n.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(t){var e=t.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o>>6-s%4*2;i[o>>>2]|=(a|u)<<24-o%4*8,o++}return r.create(i,o)}(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),t.enc.Base64}(r(22))},function(t,e,r){t.exports=function(t){return function(){var e=t,r=e.lib.BlockCipher,n=e.algo,i=[],o=[],s=[],a=[],u=[],f=[],c=[],h=[],l=[],d=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,n=0;for(e=0;e<256;e++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var _=t[r],g=t[_],v=t[g],y=257*t[p]^16843008*p;s[r]=y<<24|y>>>8,a[r]=y<<16|y>>>16,u[r]=y<<8|y>>>24,f[r]=y,y=16843009*v^65537*g^257*_^16843008*r,c[p]=y<<24|y>>>8,h[p]=y<<16|y>>>16,l[p]=y<<8|y>>>24,d[p]=y,r?(r=_^t[t[t[v^_]]],n^=t[t[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=r.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s6&&s%r==4&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a]):(a=i[(a=a<<8|a>>>24)>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a],a^=p[s/r|0]<<24),o[s]=o[s-r]^a}for(var u=this._invKeySchedule=[],f=0;f>>24]]^h[i[a>>>16&255]]^l[i[a>>>8&255]]^d[i[255&a]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,u,f,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,c,h,l,d,o),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var u=this._nRounds,f=t[e]^r[0],c=t[e+1]^r[1],h=t[e+2]^r[2],l=t[e+3]^r[3],d=4,p=1;p>>24]^i[c>>>16&255]^o[h>>>8&255]^s[255&l]^r[d++],g=n[c>>>24]^i[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[d++],v=n[h>>>24]^i[l>>>16&255]^o[f>>>8&255]^s[255&c]^r[d++],y=n[l>>>24]^i[f>>>16&255]^o[c>>>8&255]^s[255&h]^r[d++];f=_,c=g,h=v,l=y}_=(a[f>>>24]<<24|a[c>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^r[d++],g=(a[c>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^r[d++],v=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&c])^r[d++],y=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[c>>>8&255]<<8|a[255&h])^r[d++],t[e]=_,t[e+1]=g,t[e+2]=v,t[e+3]=y},keySize:8});e.AES=r._createHelper(_)}(),t.AES}(r(22),r(47),r(103),r(66),r(106))},function(t,e,r){function n(t,e,r){if(!(this instanceof n))return new n(t,e,r);null!=t&&("number"==typeof t?this.fromNumber(t,e,r):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}var i=n.prototype;i.__bigi=r(73).version,n.isBigInteger=function(t,e){return t&&t.__bigi&&(!e||t.__bigi===i.__bigi)},n.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},n.prototype.DB=26,n.prototype.DM=67108863;var o=n.prototype.DV=1<<26;n.prototype.FV=Math.pow(2,52),n.prototype.F1=26,n.prototype.F2=0;var s,a,u="0123456789abcdefghijklmnopqrstuvwxyz",f=new Array;for(s="0".charCodeAt(0),a=0;a<=9;++a)f[s++]=a;for(s="a".charCodeAt(0),a=10;a<36;++a)f[s++]=a;for(s="A".charCodeAt(0),a=10;a<36;++a)f[s++]=a;function c(t){return u.charAt(t)}function h(t,e){var r=f[t.charCodeAt(e)];return null==r?-1:r}function l(t){var e=new n;return e.fromInt(t),e}function d(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function p(t){this.m=t}function _(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function w(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function E(){}function S(t){return t}function B(t){this.r2=new n,this.q3=new n,n.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}p.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},p.prototype.revert=function(t){return t},p.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},p.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},p.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},_.prototype.convert=function(t){var e=new n;return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(n.ZERO)>0&&this.m.subTo(e,e),e},_.prototype.revert=function(t){var e=new n;return t.copyTo(e),this.reduce(e),e},_.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},_.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},_.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},i.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},i.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+o:this.t=0},i.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var i=t.length,o=!1,s=0;--i>=0;){var a=8==r?255&t[i]:h(t,i);a<0?"-"==t.charAt(i)&&(o=!0):(o=!1,0==s?this[this.t++]=a:s+r>this.DB?(this[this.t-1]|=(a&(1<>this.DB-s):this[this.t-1]|=a<=this.DB&&(s-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},i.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},i.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},i.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},i.multiplyTo=function(t,e){var r=this.abs(),i=t.abs(),o=r.t;for(e.t=o+i.t;--o>=0;)e[o]=0;for(o=0;o=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},i.divRemTo=function(t,e,r){var i=t.abs();if(!(i.t<=0)){var o=this.abs();if(o.t0?(i.lShiftTo(f,s),o.lShiftTo(f,r)):(i.copyTo(s),o.copyTo(r));var c=s.t,h=s[c-1];if(0!=h){var l=h*(1<1?s[c-2]>>this.F2:0),p=this.FV/l,_=(1<=0&&(r[r.t++]=1,r.subTo(b,r)),n.ONE.dlShiftTo(c,b),b.subTo(s,s);s.t=0;){var m=r[--v]==h?this.DM:Math.floor(r[v]*p+(r[v-1]+g)*_);if((r[v]+=s.am(0,m,r,y,0,c))0&&r.rShiftTo(f,r),a<0&&n.ZERO.subTo(r,r)}}},i.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},i.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},i.exp=function(t,e){if(t>4294967295||t<1)return n.ONE;var r=new n,i=new n,o=e.convert(this),s=d(t)-1;for(o.copyTo(r);--s>=0;)if(e.sqrTo(r,i),(t&1<0)e.mulTo(i,o,r);else{var a=r;r=i,i=a}return e.revert(r)},i.toString=function(t){var e;if(this.s<0)return"-"+this.negate().toString(t);if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=c(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=c(r));return i?o:"0"},i.negate=function(){var t=new n;return n.ZERO.subTo(this,t),t},i.abs=function(){return this.s<0?this.negate():this},i.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},i.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+d(this[this.t-1]^this.s&this.DM)},i.byteLength=function(){return this.bitLength()>>3},i.mod=function(t){var e=new n;return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(n.ZERO)>0&&t.subTo(e,e),e},i.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new p(e):new _(e),this.exp(t,r)},E.prototype.convert=S,E.prototype.revert=S,E.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},E.prototype.sqrTo=function(t,e){t.squareTo(e)},B.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=new n;return t.copyTo(e),this.reduce(e),e},B.prototype.revert=function(t){return t},B.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},B.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},B.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var I=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],T=(1<<26)/I[I.length-1];i.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},i.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),i=l(r),o=new n,s=new n,a="";for(this.divRemTo(i,o,s);o.signum()>0;)a=(r+s.intValue()).toString(t).substr(1)+a,o.divRemTo(i,o,s);return s.intValue().toString(t)+a},i.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),i=Math.pow(e,r),o=!1,s=0,a=0,u=0;u=r&&(this.dMultiply(i),this.dAddOffset(a,0),s=0,a=0))}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(a,0)),o&&n.ZERO.subTo(this,this)},i.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(n.ONE.shiftLeft(t-1),v,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(n.ONE.shiftLeft(t-1),this);else{var i=new Array,o=7&t;i.length=1+(t>>3),e.nextBytes(i),o>0?i[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},i.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},i.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},i.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},i.millerRabin=function(t){var e=this.subtract(n.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var i=e.shiftRight(r);(t=t+1>>1)>I.length&&(t=I.length);for(var o=new n(null),s=[],a=0;a>24},i.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},i.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},i.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0===i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},i.equals=function(t){return 0==this.compareTo(t)},i.min=function(t){return this.compareTo(t)<0?this:t},i.max=function(t){return this.compareTo(t)>0?this:t},i.and=function(t){var e=new n;return this.bitwiseTo(t,g,e),e},i.or=function(t){var e=new n;return this.bitwiseTo(t,v,e),e},i.xor=function(t){var e=new n;return this.bitwiseTo(t,y,e),e},i.andNot=function(t){var e=new n;return this.bitwiseTo(t,b,e),e},i.not=function(){for(var t=new n,e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=new n;for(i.sqrTo(a[1],h);u<=c;)a[u]=new n,i.mulTo(h,a[u-2],a[u]),u+=2}var g,v,y=t.t-1,b=!0,m=new n;for(o=d(t[y])-1;y>=0;){for(o>=f?g=t[y]>>o-f&c:(g=(t[y]&(1<0&&(g|=t[y-1]>>this.DB+o-f)),u=r;0==(1&g);)g>>=1,--u;if((o-=u)<0&&(o+=this.DB,--y),b)a[g].copyTo(s),b=!1;else{for(;u>1;)i.sqrTo(s,m),i.sqrTo(m,s),u-=2;u>0?i.sqrTo(s,m):(v=s,s=m,m=v),i.mulTo(m,a[g],s)}for(;y>=0&&0==(t[y]&1<=0?(r.subTo(i,r),e&&o.subTo(a,o),s.subTo(u,s)):(i.subTo(r,i),e&&a.subTo(o,a),u.subTo(s,u))}if(0!=i.compareTo(n.ONE))return n.ZERO;for(;u.compareTo(t)>=0;)u.subTo(t,u);for(;u.signum()<0;)u.addTo(t,u);return u},i.pow=function(t){return this.exp(t,new E)},i.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},i.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=I[I.length-1]){for(e=0;e0;--o){var a=r.testBit(o),u=e.testBit(o);i=i.twice(),a!==u&&(i=i.add(a?this:n))}return i},a.prototype.multiplyTwo=function(t,e,r){for(var n=Math.max(t.bitLength(),r.bitLength())-1,i=this.curve.infinity,o=this.add(e);n>=0;){var s=t.testBit(n),a=r.testBit(n);i=i.twice(),s?i=a?i.add(o):i.add(this):a&&(i=i.add(e)),--n}return i},a.prototype.getEncoded=function(t){if(null==t&&(t=this.compressed),this.curve.isInfinity(this))return i.alloc(1,0);var e,r=this.affineX,n=this.affineY,o=this.curve.pLength;return t?(e=i.allocUnsafe(1+o)).writeUInt8(n.isEven()?2:3,0):((e=i.allocUnsafe(1+o+o)).writeUInt8(4,0),n.toBuffer(o).copy(e,1+o)),r.toBuffer(o).copy(e,1),e},a.decodeFrom=function(t,e){var r,i=e.readUInt8(0),s=4!==i,u=Math.floor((t.p.bitLength()+7)/8),f=o.fromBuffer(e.slice(1,1+u));if(s){n.equal(e.length,u+1,"Invalid sequence length"),n(2===i||3===i,"Invalid sequence tag");var c=3===i;r=t.pointFromX(c,f)}else{n.equal(e.length,1+u+u,"Invalid sequence length");var h=o.fromBuffer(e.slice(1+u));r=a.fromAffine(t,f,h)}return r.compressed=s,r},a.prototype.toString=function(){return this.curve.isInfinity(this)?"(INFINITY)":"("+this.affineX.toString()+","+this.affineY.toString()+")"},t.exports=a},function(t,e,r){var n=r(2),i=r(5),o=r(50);function s(t,e,r,n,s,a,u){this.p=t,this.a=e,this.b=r,this.G=o.fromAffine(this,n,s),this.n=a,this.h=u,this.infinity=new o(this,null,null,i.ZERO),this.pOverFour=t.add(i.ONE).shiftRight(2),this.pLength=Math.floor((this.p.bitLength()+7)/8)}s.prototype.pointFromX=function(t,e){var r=e.pow(3).add(this.a.multiply(e)).add(this.b).mod(this.p).modPow(this.pOverFour,this.p),n=r;return r.isEven()^!t&&(n=this.p.subtract(n)),o.fromAffine(this,e,n)},s.prototype.isInfinity=function(t){return t===this.infinity||0===t.z.signum()&&0!==t.y.signum()},s.prototype.isOnCurve=function(t){if(this.isInfinity(t))return!0;var e=t.affineX,r=t.affineY,n=this.a,i=this.b,o=this.p;if(e.signum()<0||e.compareTo(o)>=0)return!1;if(r.signum()<0||r.compareTo(o)>=0)return!1;var s=r.square().mod(o),a=e.pow(3).add(n.multiply(e)).add(i).mod(o);return s.equals(a)},s.prototype.validate=function(t){n(!this.isInfinity(t),"Point is at infinity"),n(this.isOnCurve(t),"Point is not on the curve");var e=t.multiply(this.n);return n(this.isInfinity(e),"Point is not a scalar multiple of G"),!0},t.exports=s},function(t,e,r){"use strict";(function(e){var n=r(9),i=r(53),o=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function a(t,e){return t<>>32-e}function u(t,e,r,n,i,o,s){return a(t+(e&r|~e&n)+i+o|0,s)+e|0}function f(t,e,r,n,i,o,s){return a(t+(e&n|r&~n)+i+o|0,s)+e|0}function c(t,e,r,n,i,o,s){return a(t+(e^r^n)+i+o|0,s)+e|0}function h(t,e,r,n,i,o,s){return a(t+(r^(e|~n))+i+o|0,s)+e|0}n(s,i),s.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,s=this._d;n=h(n=h(n=h(n=h(n=c(n=c(n=c(n=c(n=f(n=f(n=f(n=f(n=u(n=u(n=u(n=u(n,i=u(i,s=u(s,r=u(r,n,i,s,t[0],3614090360,7),n,i,t[1],3905402710,12),r,n,t[2],606105819,17),s,r,t[3],3250441966,22),i=u(i,s=u(s,r=u(r,n,i,s,t[4],4118548399,7),n,i,t[5],1200080426,12),r,n,t[6],2821735955,17),s,r,t[7],4249261313,22),i=u(i,s=u(s,r=u(r,n,i,s,t[8],1770035416,7),n,i,t[9],2336552879,12),r,n,t[10],4294925233,17),s,r,t[11],2304563134,22),i=u(i,s=u(s,r=u(r,n,i,s,t[12],1804603682,7),n,i,t[13],4254626195,12),r,n,t[14],2792965006,17),s,r,t[15],1236535329,22),i=f(i,s=f(s,r=f(r,n,i,s,t[1],4129170786,5),n,i,t[6],3225465664,9),r,n,t[11],643717713,14),s,r,t[0],3921069994,20),i=f(i,s=f(s,r=f(r,n,i,s,t[5],3593408605,5),n,i,t[10],38016083,9),r,n,t[15],3634488961,14),s,r,t[4],3889429448,20),i=f(i,s=f(s,r=f(r,n,i,s,t[9],568446438,5),n,i,t[14],3275163606,9),r,n,t[3],4107603335,14),s,r,t[8],1163531501,20),i=f(i,s=f(s,r=f(r,n,i,s,t[13],2850285829,5),n,i,t[2],4243563512,9),r,n,t[7],1735328473,14),s,r,t[12],2368359562,20),i=c(i,s=c(s,r=c(r,n,i,s,t[5],4294588738,4),n,i,t[8],2272392833,11),r,n,t[11],1839030562,16),s,r,t[14],4259657740,23),i=c(i,s=c(s,r=c(r,n,i,s,t[1],2763975236,4),n,i,t[4],1272893353,11),r,n,t[7],4139469664,16),s,r,t[10],3200236656,23),i=c(i,s=c(s,r=c(r,n,i,s,t[13],681279174,4),n,i,t[0],3936430074,11),r,n,t[3],3572445317,16),s,r,t[6],76029189,23),i=c(i,s=c(s,r=c(r,n,i,s,t[9],3654602809,4),n,i,t[12],3873151461,11),r,n,t[15],530742520,16),s,r,t[2],3299628645,23),i=h(i,s=h(s,r=h(r,n,i,s,t[0],4096336452,6),n,i,t[7],1126891415,10),r,n,t[14],2878612391,15),s,r,t[5],4237533241,21),i=h(i,s=h(s,r=h(r,n,i,s,t[12],1700485571,6),n,i,t[3],2399980690,10),r,n,t[10],4293915773,15),s,r,t[1],2240044497,21),i=h(i,s=h(s,r=h(r,n,i,s,t[8],1873313359,6),n,i,t[15],4264355552,10),r,n,t[6],2734768916,15),s,r,t[13],1309151649,21),i=h(i,s=h(s,r=h(r,n,i,s,t[4],4149444226,6),n,i,t[11],3174756917,10),r,n,t[2],718787259,15),s,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=new e(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s}).call(this,r(23).Buffer)},function(t,e,r){"use strict";var n=r(7).Buffer,i=r(54).Transform;function o(t){i.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(9)(o,i),o.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(t)||(t=n.from(t,e));for(var r=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},function(t,e,r){t.exports=i;var n=r(41).EventEmitter;function i(){n.call(this)}r(9)(i,n),i.Readable=r(42),i.Writable=r(88),i.Duplex=r(89),i.Transform=r(90),i.PassThrough=r(91),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",o),t._isStdio||e&&!1===e.end||(r.on("end",a),r.on("close",u));var s=!1;function a(){s||(s=!0,t.end())}function u(){s||(s=!0,"function"==typeof t.destroy&&t.destroy())}function f(t){if(c(),0===n.listenerCount(this,"error"))throw t}function c(){r.removeListener("data",i),t.removeListener("drain",o),r.removeListener("end",a),r.removeListener("close",u),r.removeListener("error",f),t.removeListener("error",f),r.removeListener("end",c),r.removeListener("close",c),t.removeListener("close",c)}return r.on("error",f),t.on("error",f),r.on("end",c),r.on("close",c),t.on("close",c),t.emit("pipe",r),t}},function(t,e,r){"use strict";(function(e,n){var i=r(36);t.exports=b;var o,s=r(80);b.ReadableState=y;r(41).EventEmitter;var a=function(t,e){return t.listeners(e).length},u=r(56),f=r(7).Buffer,c=e.Uint8Array||function(){};var h=r(33);h.inherits=r(9);var l=r(81),d=void 0;d=l&&l.debuglog?l.debuglog("stream"):function(){};var p,_=r(82),g=r(57);h.inherits(b,u);var v=["error","close","destroy","pause","resume"];function y(t,e){o=o||r(24),t=t||{};var n=e instanceof o;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,s=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new _,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=r(44).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function b(t){if(o=o||r(24),!(this instanceof b))return new b(t);this._readableState=new y(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function m(t,e,r,n,i){var o,s=t._readableState;null===e?(s.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,B(t)}(t,s)):(i||(o=function(t,e){var r;(function(t){return f.isBuffer(t)||t instanceof c})(e)||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(s,e)),o?t.emit("error",o):s.objectMode||e&&e.length>0?("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===f.prototype||(e=function(t){return f.from(t)}(e)),n?s.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):w(t,s,e,!0):s.ended?t.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?w(t,s,e,!1):T(t,s)):w(t,s,e,!1))):n||(s.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function B(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(I,t):I(t))}function I(t){d("emit readable"),t.emit("readable"),A(t)}function T(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(k,t,e))}function k(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=f.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0===(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function L(t){var e=t._readableState;if(e.length>0)throw new Error(\'"endReadable()" called on non-empty stream\');e.endEmitted||(e.ended=!0,i.nextTick(M,e,t))}function M(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function D(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return d("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?L(this):B(this),null;if(0===(t=S(t,e))&&e.ended)return 0===e.length&&L(this),null;var n,i=e.needReadable;return d("need readable",i),(0===e.length||e.length-t0?j(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&L(this)),null!==n&&this.emit("data",n),n},b.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,d("pipe count=%d opts=%j",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr?c:b;function f(e,n){d("onunpipe"),e===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,d("cleanup"),t.removeListener("close",v),t.removeListener("finish",y),t.removeListener("drain",h),t.removeListener("error",g),t.removeListener("unpipe",f),r.removeListener("end",c),r.removeListener("end",b),r.removeListener("data",_),l=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||h())}function c(){d("onend"),t.end()}o.endEmitted?i.nextTick(u):r.once("end",u),t.on("unpipe",f);var h=function(t){return function(){var e=t._readableState;d("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,A(t))}}(r);t.on("drain",h);var l=!1;var p=!1;function _(e){d("ondata"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==D(o.pipes,t))&&!l&&(d("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function g(e){d("onerror",e),b(),t.removeListener("error",g),0===a(t,"error")&&t.emit("error",e)}function v(){t.removeListener("finish",y),b()}function y(){d("onfinish"),t.removeListener("close",v),b()}function b(){d("unpipe"),r.unpipe(t)}return r.on("data",_),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",g),t.once("close",v),t.once("finish",y),t.emit("pipe",r),o.flowing||(d("pipe resume"),r.resume()),t},b.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o>>32-e}function _(t,e,r,n,i,o,s,a){return p(t+(e^r^n)+o+s|0,a)+i|0}function g(t,e,r,n,i,o,s,a){return p(t+(e&r|~e&n)+o+s|0,a)+i|0}function v(t,e,r,n,i,o,s,a){return p(t+((e|~r)^n)+o+s|0,a)+i|0}function y(t,e,r,n,i,o,s,a){return p(t+(e&n|r&~n)+o+s|0,a)+i|0}function b(t,e,r,n,i,o,s,a){return p(t+(e^(r|~n))+o+s|0,a)+i|0}i(d,o),d.prototype._update=function(){for(var t=s,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,d=0|this._e,m=0|this._a,w=0|this._b,E=0|this._c,S=0|this._d,B=0|this._e,I=0;I<80;I+=1){var T,k;I<16?(T=_(r,n,i,o,d,t[a[I]],h[0],f[I]),k=b(m,w,E,S,B,t[u[I]],l[0],c[I])):I<32?(T=g(r,n,i,o,d,t[a[I]],h[1],f[I]),k=y(m,w,E,S,B,t[u[I]],l[1],c[I])):I<48?(T=v(r,n,i,o,d,t[a[I]],h[2],f[I]),k=v(m,w,E,S,B,t[u[I]],l[2],c[I])):I<64?(T=y(r,n,i,o,d,t[a[I]],h[3],f[I]),k=g(m,w,E,S,B,t[u[I]],l[3],c[I])):(T=b(r,n,i,o,d,t[a[I]],h[4],f[I]),k=_(m,w,E,S,B,t[u[I]],l[4],c[I])),r=d,d=o,o=p(i,10),i=n,n=T,m=B,B=S,S=p(E,10),E=w,w=k}var x=this._b+i+S|0;this._b=this._c+o+B|0,this._c=this._d+d+m|0,this._d=this._e+r+w|0,this._e=this._a+n+E|0,this._a=x},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=d},function(t,e,r){(e=t.exports=function(t){t=t.toLowerCase();var r=e[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r}).sha=r(92),e.sha1=r(93),e.sha224=r(94),e.sha256=r(61),e.sha384=r(95),e.sha512=r(62)},function(t,e,r){var n=r(9),i=r(27),o=r(7).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function u(){this.init(),this._w=a,i.call(this,64,56)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function l(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function p(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,a=0|this._e,u=0|this._f,_=0|this._g,g=0|this._h,v=0;v<16;++v)e[v]=t.readInt32BE(4*v);for(;v<64;++v)e[v]=p(e[v-2])+e[v-7]+d(e[v-15])+e[v-16]|0;for(var y=0;y<64;++y){var b=g+l(a)+f(a,u,_)+s[y]+e[y]|0,m=h(r)+c(r,n,i)|0;g=_,_=u,u=a,a=o+b|0,o=i,i=n,n=r,r=b+m|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=a+this._e|0,this._f=u+this._f|0,this._g=_+this._g|0,this._h=g+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},function(t,e,r){var n=r(9),i=r(27),o=r(7).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function u(){this.init(),this._w=a,i.call(this,128,112)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function l(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function _(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function v(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,u=0|this._fh,y=0|this._gh,b=0|this._hh,m=0|this._al,w=0|this._bl,E=0|this._cl,S=0|this._dl,B=0|this._el,I=0|this._fl,T=0|this._gl,k=0|this._hl,x=0;x<32;x+=2)e[x]=t.readInt32BE(4*x),e[x+1]=t.readInt32BE(4*x+4);for(;x<160;x+=2){var O=e[x-30],A=e[x-30+1],j=d(O,A),L=p(A,O),M=_(O=e[x-4],A=e[x-4+1]),D=g(A,O),R=e[x-14],z=e[x-14+1],U=e[x-32],q=e[x-32+1],C=L+z|0,P=j+R+v(C,L)|0;P=(P=P+M+v(C=C+D|0,D)|0)+U+v(C=C+q|0,q)|0,e[x]=P,e[x+1]=C}for(var N=0;N<160;N+=2){P=e[N],C=e[N+1];var F=c(r,n,i),H=c(m,w,E),W=h(r,m),V=h(m,r),K=l(a,B),Y=l(B,a),Z=s[N],J=s[N+1],G=f(a,u,y),X=f(B,I,T),$=k+Y|0,Q=b+K+v($,k)|0;Q=(Q=(Q=Q+G+v($=$+X|0,X)|0)+Z+v($=$+J|0,J)|0)+P+v($=$+C|0,C)|0;var tt=V+H|0,et=W+F+v(tt,V)|0;b=y,k=T,y=u,T=I,u=a,I=B,a=o+Q+v(B=S+$|0,S)|0,o=i,S=E,i=n,E=w,n=r,w=m,r=Q+et+v(m=$+tt|0,$)|0}this._al=this._al+m|0,this._bl=this._bl+w|0,this._cl=this._cl+E|0,this._dl=this._dl+S|0,this._el=this._el+B|0,this._fl=this._fl+I|0,this._gl=this._gl+T|0,this._hl=this._hl+k|0,this._ah=this._ah+r+v(this._al,m)|0,this._bh=this._bh+n+v(this._bl,w)|0,this._ch=this._ch+i+v(this._cl,E)|0,this._dh=this._dh+o+v(this._dl,S)|0,this._eh=this._eh+a+v(this._el,B)|0,this._fh=this._fh+u+v(this._fl,I)|0,this._gh=this._gh+y+v(this._gl,T)|0,this._hh=this._hh+b+v(this._hl,k)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.orders=e.crypto=e.history=e.network=e.db=e.close=e.chainId=e.instance=e.reset=e.setAutoReconnect=e.setRpcConnectionStatusCallback=void 0;var n=s(r(64)),i=s(r(99)),o=s(r(65));function s(t){return t&&t.__esModule?t:{default:t}}var a=!1,u=null,f=null;e.setRpcConnectionStatusCallback=(t=>{f=t,u&&u.setRpcConnectionStatusCallback(t)});e.setAutoReconnect=(t=>{a=t});e.reset=((t="ws://localhost:8090",e,r=4e3,n,i)=>h().then(()=>(u=y(),u.setRpcConnectionStatusCallback(f),u&&e&&u.connect(t,r,n,i),u)));const c=(t="ws://localhost:8090",e,r=4e3,n,i)=>(u||(u=y(),u.setRpcConnectionStatusCallback(f)),u&&e&&u.connect(t,r,n),i&&(u.closeCb=i),u);e.instance=c;e.chainId=(()=>c().chain_id);const h=async()=>{u&&(await u.close(),u=null)};e.close=h;const l=t=>new Proxy([],{get:(e,r)=>(...e)=>u[t].exec(r,[...e])}),d=l("_db");e.db=d;const p=l("_net");e.network=p;const _=l("_hist");e.history=_;const g=l("_crypt");e.crypto=g;const v=l("_orders");e.orders=v;const y=()=>({connect:(t,e,r={enableCrypto:!1,enableOrders:!1})=>{if(u.url=t,"undefined"!=typeof window&&window.location&&"https:"===window.location.protocol&&0>t.indexOf("wss://"))throw new Error("Secure domains require wss connection");u.ws_rpc&&(u.ws_rpc.statusCb=null,u.ws_rpc.keepAliveCb=null,u.ws_rpc.on_close=null,u.ws_rpc.on_reconnect=null),u.ws_rpc=new n.default(t,u.statusCb,e,a,t=>{u._db&&!t&&u._db.exec("get_objects",[["2.1.0"]]).catch(()=>{})}),u.init_promise=u.ws_rpc.login("","").then(()=>{u._db=new i.default(u.ws_rpc,"database"),u._net=new i.default(u.ws_rpc,"network_broadcast"),u._hist=new i.default(u.ws_rpc,"history"),r.enableOrders&&(u._orders=new i.default(u.ws_rpc,"orders")),r.enableCrypto&&(u._crypt=new i.default(u.ws_rpc,"crypto"));var t=u._db.init().then(()=>u._db.exec("get_chain_id",[]).then(t=>(u.chain_id=t,o.default.setChainId(t))));u.ws_rpc.on_reconnect=(()=>{u.ws_rpc&&u.ws_rpc.login("","").then(()=>{u._db.init().then(()=>{u.statusCb&&u.statusCb("reconnect")}),u._net.init(),u._hist.init(),r.enableOrders&&u._orders.init(),r.enableCrypto&&u._crypt.init()})}),u.ws_rpc.on_close=(()=>{u.close().then(()=>{u.closeCb&&u.closeCb()})});let e=[t,u._net.init(),u._hist.init()];return r.enableOrders&&e.push(u._orders.init()),r.enableCrypto&&e.push(u._crypt.init()),Promise.all(e)}).catch(e=>(console.error(t,"Failed to initialize with error",e&&e.message),u.close().then(()=>{throw e})))},close:async()=>{u.ws_rpc&&1===u.ws_rpc.ws.readyState&&await u.ws_rpc.close(),u.ws_rpc=null},db_api:()=>u._db,network_api:()=>u._net,history_api:()=>u._hist,crypto_api:()=>u._crypt,orders_api:()=>u._orders,setRpcConnectionStatusCallback:t=>u.statusCb=t})},function(t,e,r){"use strict";var n=function(t){return t&&t.__esModule?t:{default:t}}(r(98));function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;const o=!1,s=5,a=2*s;var u=class{constructor(t,e,r=5e3,u=!0,f=null){i(this,"connect",(t,e)=>new Promise((r,i)=>{this.current_reject=i,this.current_resolve=r;try{this.ws=new n.default(t)}catch(e){this.ws={readyState:3,close:()=>{}},i(new Error("Invalid url",t," closed"))}this.ws.onopen=this.onOpen,this.ws.onerror=this.onError,this.ws.onmessage=this.onMessage,this.ws.onclose=this.onClose,this.connectionTimeout=setTimeout(()=>{this.current_reject&&(this.current_reject=null,this.close(),i(new Error("Connection attempt timed out after "+e/1e3+"s")))},e)})),i(this,"onOpen",()=>{clearTimeout(this.connectionTimeout),this.statusCb&&this.statusCb("open"),this.on_reconnect&&this.on_reconnect(),this.keepalive_timer=setInterval(()=>(this.recv_life--,0==this.recv_life?(console.error(this.url+" connection is dead, terminating ws"),void this.close()):(this.send_life--,void(0==this.send_life&&(this.keepAliveCb&&this.keepAliveCb(this.closed),this.send_life=s)))),5e3),this.current_reject=null,this.current_resolve()}),i(this,"onError",t=>{this.keepalive_timer&&(clearInterval(this.keepalive_timer),this.keepalive_timer=void 0),clearTimeout(this.connectionTimeout),this.statusCb&&this.statusCb("error"),this.current_reject&&this.current_reject(t)}),i(this,"onMessage",t=>{this.recv_life=a,this.listener(JSON.parse(t.data))}),i(this,"onClose",()=>{this.closed=!0,this.keepalive_timer&&(clearInterval(this.keepalive_timer),this.keepalive_timer=void 0);for(var t=this.responseCbId+1;t<=this.cbId;t+=1)this.cbs[t].reject(new Error("connection closed"));this.statusCb&&this.statusCb("closed"),this._closeCb&&this._closeCb(),this.on_close&&this.on_close()}),i(this,"call",t=>{if(1!==this.ws.readyState)return Promise.reject(new Error("websocket state error:"+this.ws.readyState));let e=t[1];if(o&&console.log(\'[ChainWebSocket] >---- call -----\\x3e "id":\'+(this.cbId+1),JSON.stringify(t)),this.cbId+=1,["set_subscribe_callback","subscribe_to_market","broadcast_transaction_with_callback","set_pending_transaction_callback","set_block_applied_callback"].includes(e)&&(this.subs[this.cbId]={callback:t[2][0]},t[2][0]=this.cbId),["unsubscribe_from_market","unsubscribe_from_accounts"].includes(e)){if("function"!=typeof t[2][0])throw new Error("First parameter of unsub must be the original callback");let e=t[2].splice(0,1)[0];for(let t in this.subs)if(this.subs[t].callback===e){this.unsub[this.cbId]=t;break}}var r={method:"call",params:t};return r.id=this.cbId,this.send_life=s,new Promise((t,e)=>{this.cbs[this.cbId]={time:new Date,resolve:t,reject:e},this.ws.send(JSON.stringify(r))})}),i(this,"listener",t=>{o&&console.log("[ChainWebSocket] <---- reply ----<",JSON.stringify(t));let e=!1,r=null;"notice"===t.method&&(e=!0,t.id=t.params[0]),e?r=this.subs[t.id].callback:(r=this.cbs[t.id],this.responseCbId=t.id),r&&!e?(t.error?r.reject(t.error):r.resolve(t.result),delete this.cbs[t.id],this.unsub[t.id]&&(delete this.subs[this.unsub[t.id]],delete this.unsub[t.id])):r&&e?r(t.params[1]):console.log("Warning: unknown websocket response: ",t)}),i(this,"login",(t,e)=>this.connect_promise.then(()=>this.call([1,"login",[t,e]]))),i(this,"close",()=>new Promise(t=>(clearInterval(this.keepalive_timer),this.keepalive_timer=void 0,this._closeCb=(()=>{t(),this._closeCb=null}),this.ws?(this.ws.terminate?this.ws.terminate():this.ws.close(),void(3===this.ws.readyState&&t())):(console.log("Websocket already cleared",this),t())))),this.url=t,this.statusCb=e,this.current_reject=null,this.on_reconnect=null,this.closed=!1,this.send_life=s,this.recv_life=a,this.keepAliveCb=f,this.cbId=0,this.responseCbId=0,this.cbs={},this.subs={},this.unsub={},this.connect_promise=this.connect(t,r)}};e.default=u},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={core_asset:"CORE",address_prefix:"GPH",expire_in_secs:15,expire_in_secs_proposal:86400,review_in_secs_committee:86400,networks:{BitShares:{core_asset:"BTS",address_prefix:"BTS",chain_id:"4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8"},Muse:{core_asset:"MUSE",address_prefix:"MUSE",chain_id:"45ad2d3f9ef92a49b55c2227eb06123f613bb35dd08bd876f2aea21925a67a67"},Test:{core_asset:"TEST",address_prefix:"TEST",chain_id:"39f5e2ede1f8bc1a3a54a7914414e3779e33193f1f5693510e73cb7a87617447"},Obelisk:{core_asset:"GOV",address_prefix:"FEW",chain_id:"1cfde7c388b9e8ac06462d68aadbd966b58f88797637d9af805b4560b0e9661e"}},setChainId:t=>{let e=Object.entries(n.networks).find(([e,r])=>{if(r.chain_id===t)return n.network_name=e,r.address_prefix&&(n.address_prefix=r.address_prefix),!0});return e?{network_name:e[0],network:e[1]}:void console.log("Unknown chain id (this may be a testnet)",t)},reset:()=>{n.core_asset="CORE",n.address_prefix="GPH",n.expire_in_secs=15,n.expire_in_secs_proposal=86400,console.log("Chain config reset")},setPrefix:(t="GPH")=>n.address_prefix=t},i=n;e.default=i},function(t,e,r){t.exports=function(t){return function(){var e=t,r=e.lib,n=r.Base,i=r.WordArray,o=e.algo,s=o.MD5,a=o.EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:s,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=r.hasher.create(),o=i.create(),s=o.words,a=r.keySize,u=r.iterations;s.lengthr)?e=("rmd160"===t?new u:f(t)).update(e).digest():e.length\n * Released under the Apache License, Version 2.0\n * see: https://github.com/dcodeIO/long.js for details\n */i=[],void 0===(o="function"==typeof(n=function(){"use strict";function t(t,e,r){this.low=0|t,this.high=0|e,this.unsigned=!!r}function e(t){return!0===(t&&t.__isLong__)}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),t.isLong=e;var r={},n={};function i(t,e){var i,o,a;return e?(a=0<=(t>>>=0)&&t<256)&&(o=n[t])?o:(i=s(t,(0|t)<0?-1:0,!0),a&&(n[t]=i),i):(a=-128<=(t|=0)&&t<128)&&(o=r[t])?o:(i=s(t,t<0?-1:0,!1),a&&(r[t]=i),i)}function o(t,e){if(isNaN(t)||!isFinite(t))return e?_:p;if(e){if(t<0)return _;if(t>=h)return m}else{if(t<=-l)return w;if(t+1>=l)return b}return t<0?o(-t,e).neg():s(t%c|0,t/c|0,e)}function s(e,r,n){return new t(e,r,n)}t.fromInt=i,t.fromNumber=o,t.fromBits=s;var a=Math.pow;function u(t,e,r){if(0===t.length)throw Error("empty string");if("NaN"===t||"Infinity"===t||"+Infinity"===t||"-Infinity"===t)return p;if("number"==typeof e?(r=e,e=!1):e=!!e,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return u(t.substring(1),e,r).neg();for(var i=o(a(r,8)),s=p,f=0;f>>0:this.low},E.toNumber=function(){return this.unsigned?(this.high>>>0)*c+(this.low>>>0):this.high*c+(this.low>>>0)},E.toString=function(t){if((t=t||10)<2||36>>0).toString(t);if((s=f).isZero())return c+u;for(;c.length<6;)c="0"+c;u=""+c+u}},E.getHighBits=function(){return this.high},E.getHighBitsUnsigned=function(){return this.high>>>0},E.getLowBits=function(){return this.low},E.getLowBitsUnsigned=function(){return this.low>>>0},E.getNumBitsAbs=function(){if(this.isNegative())return this.eq(w)?64:this.neg().getNumBitsAbs();for(var t=0!=this.high?this.high:this.low,e=31;e>0&&0==(t&1<=0},E.isOdd=function(){return 1==(1&this.low)},E.isEven=function(){return 0==(1&this.low)},E.equals=function(t){return e(t)||(t=f(t)),(this.unsigned===t.unsigned||this.high>>>31!=1||t.high>>>31!=1)&&this.high===t.high&&this.low===t.low},E.eq=E.equals,E.notEquals=function(t){return!this.eq(t)},E.neq=E.notEquals,E.lessThan=function(t){return this.comp(t)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(t){return this.comp(t)<=0},E.lte=E.lessThanOrEqual,E.greaterThan=function(t){return this.comp(t)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(t){return this.comp(t)>=0},E.gte=E.greaterThanOrEqual,E.compare=function(t){if(e(t)||(t=f(t)),this.eq(t))return 0;var r=this.isNegative(),n=t.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(w)?w:this.not().add(g)},E.neg=E.negate,E.add=function(t){e(t)||(t=f(t));var r=this.high>>>16,n=65535&this.high,i=this.low>>>16,o=65535&this.low,a=t.high>>>16,u=65535&t.high,c=t.low>>>16,h=0,l=0,d=0,p=0;return d+=(p+=o+(65535&t.low))>>>16,l+=(d+=i+c)>>>16,h+=(l+=n+u)>>>16,h+=r+a,s((d&=65535)<<16|(p&=65535),(h&=65535)<<16|(l&=65535),this.unsigned)},E.subtract=function(t){return e(t)||(t=f(t)),this.add(t.neg())},E.sub=E.subtract,E.multiply=function(t){if(this.isZero())return p;if(e(t)||(t=f(t)),t.isZero())return p;if(this.eq(w))return t.isOdd()?w:p;if(t.eq(w))return this.isOdd()?w:p;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(d)&&t.lt(d))return o(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,n=65535&this.high,i=this.low>>>16,a=65535&this.low,u=t.high>>>16,c=65535&t.high,h=t.low>>>16,l=65535&t.low,_=0,g=0,v=0,y=0;return v+=(y+=a*l)>>>16,g+=(v+=i*l)>>>16,v&=65535,g+=(v+=a*h)>>>16,_+=(g+=n*l)>>>16,g&=65535,_+=(g+=i*h)>>>16,g&=65535,_+=(g+=a*c)>>>16,_+=r*l+n*h+i*c+a*u,s((v&=65535)<<16|(y&=65535),(_&=65535)<<16|(g&=65535),this.unsigned)},E.mul=E.multiply,E.divide=function(t){if(e(t)||(t=f(t)),t.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?_:p;var r,n,i;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return _;if(t.gt(this.shru(1)))return v;i=_}else{if(this.eq(w))return t.eq(g)||t.eq(y)?w:t.eq(w)?g:(r=this.shr(1).div(t).shl(1)).eq(p)?t.isNegative()?g:y:(n=this.sub(t.mul(r)),i=r.add(n.div(t)));if(t.eq(w))return this.unsigned?_:p;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();i=p}for(n=this;n.gte(t);){r=Math.max(1,Math.floor(n.toNumber()/t.toNumber()));for(var s=Math.ceil(Math.log(r)/Math.LN2),u=s<=48?1:a(2,s-48),c=o(r),h=c.mul(t);h.isNegative()||h.gt(n);)h=(c=o(r-=u,this.unsigned)).mul(t);c.isZero()&&(c=g),i=i.add(c),n=n.sub(h)}return i},E.div=E.divide,E.modulo=function(t){return e(t)||(t=f(t)),this.sub(this.div(t).mul(t))},E.mod=E.modulo,E.not=function(){return s(~this.low,~this.high,this.unsigned)},E.and=function(t){return e(t)||(t=f(t)),s(this.low&t.low,this.high&t.high,this.unsigned)},E.or=function(t){return e(t)||(t=f(t)),s(this.low|t.low,this.high|t.high,this.unsigned)},E.xor=function(t){return e(t)||(t=f(t)),s(this.low^t.low,this.high^t.high,this.unsigned)},E.shiftLeft=function(t){return e(t)&&(t=t.toInt()),0==(t&=63)?this:t<32?s(this.low<>>32-t,this.unsigned):s(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):s(this.high>>t-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(t){if(e(t)&&(t=t.toInt()),0==(t&=63))return this;var r=this.high;return t<32?s(this.low>>>t|r<<32-t,r>>>t,this.unsigned):s(32===t?r:r>>>t-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?s(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:s(this.low,this.high,!0)},E.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var t=this.high,e=this.low;return[255&e,e>>>8&255,e>>>16&255,e>>>24&255,255&t,t>>>8&255,t>>>16&255,t>>>24&255]},E.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e]},t})?n.apply(e,i):n)||(t.exports=o)},function(t,e,r){"use strict";e.byteLength=function(t){return 3*t.length/4-f(t)},e.toByteArray=function(t){var e,r,n,s,a,u,c=t.length;a=f(t),u=new o(3*c/4-a),n=a>0?c-4:c;var h=0;for(e=0,r=0;e>16&255,u[h++]=s>>8&255,u[h++]=255&s;2===a?(s=i[t.charCodeAt(e)]<<2|i[t.charCodeAt(e+1)]>>4,u[h++]=255&s):1===a&&(s=i[t.charCodeAt(e)]<<10|i[t.charCodeAt(e+1)]<<4|i[t.charCodeAt(e+2)]>>2,u[h++]=s>>8&255,u[h++]=255&s);return u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o="",s=[],a=0,u=r-i;au?u:a+16383));1===i?(e=t[r-1],o+=n[e>>2],o+=n[e<<4&63],o+="=="):2===i&&(e=(t[r-2]<<8)+t[r-1],o+=n[e>>10],o+=n[e>>4&63],o+=n[e<<2&63],o+="=");return s.push(o),s.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function c(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function h(t,e,r){for(var n,i=[],o=e;o>1,c=-7,h=r?i-1:0,l=r?-1:1,d=t[e+h];for(h+=l,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+t[e+h],h+=l,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=l,c-=8);if(0===o)o=1-f;else{if(o===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=f}return(d?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,f=8*o-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+h>=1?l/u:l*Math.pow(2,1-h))*u>=2&&(s++,u/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(e*u-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,f-=8);t[r+d-p]|=128*_}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t){t.exports={name:"bigi",version:"1.4.2",description:"Big integers.",keywords:["cryptography","math","bitcoin","arbitrary","precision","arithmetic","big","integer","int","number","biginteger","bigint","bignumber","decimal","float"],devDependencies:{coveralls:"^2.11.2",istanbul:"^0.3.5",jshint:"^2.5.1",mocha:"^2.1.0",mochify:"^2.1.0"},repository:{url:"https://github.com/cryptocoinjs/bigi",type:"git"},main:"./lib/index.js",scripts:{"browser-test":"./node_modules/.bin/mochify --wd -R spec",test:"./node_modules/.bin/_mocha -- test/*.js",jshint:"./node_modules/.bin/jshint --config jshint.json lib/*.js ; true",unit:"./node_modules/.bin/mocha",coverage:"./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",coveralls:"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"},dependencies:{},testling:{files:"test/*.js",harness:"mocha",browsers:["ie/9..latest","firefox/latest","chrome/latest","safari/6.0..latest","iphone/6.0..latest","android-browser/4.2..latest"]},_resolved:"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",_integrity:"sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=",_from:"bigi@1.4.2"}},function(t,e,r){(function(t){var e=r(2),n=r(49);n.fromByteArrayUnsigned=function(t){return 128&t[0]?new n([0].concat(t)):new n(t)},n.prototype.toByteArrayUnsigned=function(){var t=this.toByteArray();return 0===t[0]?t.slice(1):t},n.fromDERInteger=function(t){return new n(t)},n.prototype.toDERInteger=n.prototype.toByteArray,n.fromBuffer=function(t){if(128&t[0]){var e=Array.prototype.slice.call(t);return new n([0].concat(e))}return new n(t)},n.fromHex=function(t){return""===t?n.ZERO:(e.equal(t,t.match(/^[A-Fa-f0-9]+/),"Invalid hex string"),e.equal(t.length%2,0,"Incomplete hex"),new n(t,16))},n.prototype.toBuffer=function(e){for(var r=this.toByteArrayUnsigned(),n=[],i=e-r.length;n.length=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),u=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),p(r)?n.showHidden=r:r&&e._extend(n,r),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),c(n,t,n.depth)}function u(t,e){var r=a.styles[e];return r?"["+a.colors[r][0]+"m"+t+"["+a.colors[r][1]+"m":t}function f(t,e){return t}function c(t,r,n){if(t.customInspect&&r&&S(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return v(i)||(i=c(t,i,n)),i}var o=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(v(e)){var r="\'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/\'/g,"\\\\\'").replace(/\\\\"/g,\'"\')+"\'";return t.stylize(r,"string")}if(g(e))return t.stylize(""+e,"number");if(p(e))return t.stylize(""+e,"boolean");if(_(e))return t.stylize("null","null")}(t,r);if(o)return o;var s=Object.keys(r),a=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(r)),E(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return h(r);if(0===s.length){if(S(r)){var u=r.name?": "+r.name:"";return t.stylize("[Function"+u+"]","special")}if(b(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return t.stylize(Date.prototype.toString.call(r),"date");if(E(r))return h(r)}var f,m="",B=!1,I=["{","}"];(d(r)&&(B=!0,I=["[","]"]),S(r))&&(m=" [Function"+(r.name?": "+r.name:"")+"]");return b(r)&&(m=" "+RegExp.prototype.toString.call(r)),w(r)&&(m=" "+Date.prototype.toUTCString.call(r)),E(r)&&(m=" "+h(r)),0!==s.length||B&&0!=r.length?n<0?b(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),f=B?function(t,e,r,n,i){for(var o=[],s=0,a=e.length;s=0&&0,t+e.replace(/\\u001b\\[\\d\\d?m/g,"").length+1},0)>60)return r[0]+(""===e?"":e+"\\n ")+" "+t.join(",\\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(f,m,I)):I[0]+m+I[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function l(t,e,r,n,i,o){var s,a,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?a=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(a=t.stylize("[Setter]","special")),k(n,i)||(s="["+i+"]"),a||(t.seen.indexOf(u.value)<0?(a=_(r)?c(t,u.value,null):c(t,u.value,r-1)).indexOf("\\n")>-1&&(a=o?a.split("\\n").map(function(t){return" "+t}).join("\\n").substr(2):"\\n"+a.split("\\n").map(function(t){return" "+t}).join("\\n")):a=t.stylize("[Circular]","special")),y(s)){if(o&&i.match(/^\\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/\'/g,"\\\\\'").replace(/\\\\"/g,\'"\').replace(/(^"|"$)/g,"\'"),s=t.stylize(s,"string"))}return s+": "+a}function d(t){return Array.isArray(t)}function p(t){return"boolean"==typeof t}function _(t){return null===t}function g(t){return"number"==typeof t}function v(t){return"string"==typeof t}function y(t){return void 0===t}function b(t){return m(t)&&"[object RegExp]"===B(t)}function m(t){return"object"==typeof t&&null!==t}function w(t){return m(t)&&"[object Date]"===B(t)}function E(t){return m(t)&&("[object Error]"===B(t)||t instanceof Error)}function S(t){return"function"==typeof t}function B(t){return Object.prototype.toString.call(t)}function I(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(y(o)&&(o=n.env.NODE_DEBUG||""),t=t.toUpperCase(),!s[t])if(new RegExp("\\\\b"+t+"\\\\b","i").test(o)){var r=n.pid;s[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else s[t]=function(){};return s[t]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=d,e.isBoolean=p,e.isNull=_,e.isNullOrUndefined=function(t){return null==t},e.isNumber=g,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=y,e.isRegExp=b,e.isObject=m,e.isDate=w,e.isError=E,e.isFunction=S,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(76);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",function(){var t=new Date,e=[I(t.getHours()),I(t.getMinutes()),I(t.getSeconds())].join(":");return[t.getDate(),T[t.getMonth()],e].join(" ")}(),e.format.apply(e,arguments))},e.inherits=r(9),e._extend=function(t,e){if(!e||!m(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,r(16),r(15))},function(t,e){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e,r){var n=r(5),i=r(78),o=r(51);t.exports=function(t){var e=i[t];if(!e)return null;var r=new n(e.p,16),s=new n(e.a,16),a=new n(e.b,16),u=new n(e.n,16),f=new n(e.h,16),c=new n(e.Gx,16),h=new n(e.Gy,16);return new o(r,s,a,c,h,u,f)}},function(t){t.exports={secp128r1:{p:"fffffffdffffffffffffffffffffffff",a:"fffffffdfffffffffffffffffffffffc",b:"e87579c11079f43dd824993c2cee5ed3",n:"fffffffe0000000075a30d1b9038a115",h:"01",Gx:"161ff7528b899b2d0c28607ca52c5b86",Gy:"cf5ac8395bafeb13c02da292dded7a83"},secp160k1:{p:"fffffffffffffffffffffffffffffffeffffac73",a:"00",b:"07",n:"0100000000000000000001b8fa16dfab9aca16b6b3",h:"01",Gx:"3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",Gy:"938cf935318fdced6bc28286531733c3f03c4fee"},secp160r1:{p:"ffffffffffffffffffffffffffffffff7fffffff",a:"ffffffffffffffffffffffffffffffff7ffffffc",b:"1c97befc54bd7a8b65acf89f81d4d4adc565fa45",n:"0100000000000000000001f4c8f927aed3ca752257",h:"01",Gx:"4a96b5688ef573284664698968c38bb913cbfc82",Gy:"23a628553168947d59dcc912042351377ac5fb32"},secp192k1:{p:"fffffffffffffffffffffffffffffffffffffffeffffee37",a:"00",b:"03",n:"fffffffffffffffffffffffe26f2fc170f69466a74defd8d",h:"01",Gx:"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",Gy:"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"},secp192r1:{p:"fffffffffffffffffffffffffffffffeffffffffffffffff",a:"fffffffffffffffffffffffffffffffefffffffffffffffc",b:"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",n:"ffffffffffffffffffffffff99def836146bc9b1b4d22831",h:"01",Gx:"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",Gy:"07192b95ffc8da78631011ed6b24cdd573f977a11e794811"},secp256k1:{p:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",a:"00",b:"07",n:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",h:"01",Gx:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",Gy:"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"},secp256r1:{p:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",a:"ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",b:"5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",n:"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",h:"01",Gx:"6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",Gy:"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"}}},function(t,e,r){const n=r(7).Buffer;t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");const e=new Uint8Array(256);e.fill(255);for(let r=0;r>>0,c=new Uint8Array(f);for(;t[s];){let n=e[t.charCodeAt(s)];if(255===n)return;let i=0;for(let t=f-1;(0!==n||i>>0,c[t]=n%256>>>0,n=n/256>>>0;if(0!==n)throw new Error("Non-zero carry");u=i,s++}if(" "===t[s])return;let h=f-u;for(;h!==f&&0===c[h];)h++;const l=n.allocUnsafe(a+(f-h));l.fill(0,0,a);let d=a;for(;h!==f;)l[d++]=c[h++];return l}return{encode:function(e){if(!n.isBuffer(e))throw new TypeError("Expected Buffer");if(0===e.length)return"";let o=0,a=0,u=0;const f=e.length;for(;u!==f&&0===e[u];)u++,o++;const c=(f-u)*s+1>>>0,h=new Uint8Array(c);for(;u!==f;){let t=e[u],n=0;for(let e=c-1;(0!==t||n>>0,h[e]=t%r>>>0,t=t/r>>>0;if(0!==t)throw new Error("Non-zero carry");a=n,u++}let l=c-a;for(;l!==c&&0===h[l];)l++;let d=i.repeat(o);for(;l0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e=n.allocUnsafe(t>>>0),r=this.head,i=0;r;)o(r.data,e,i),i+=r.data.length,r=r.next;return e},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,r){(function(t){var n=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},r(85),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(16))},function(t,e,r){(function(t,e){!function(t,r){"use strict";if(!t.setImmediate){var n,i=1,o={},s=!1,a=t.document,u=Object.getPrototypeOf&&Object.getPrototypeOf(t);u=u&&u.setTimeout?u:t,"[object process]"==={}.toString.call(t.process)?n=function(t){e.nextTick(function(){c(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?function(){var e="setImmediate$"+Math.random()+"$",r=function(r){r.source===t&&"string"==typeof r.data&&0===r.data.indexOf(e)&&c(+r.data.slice(e.length))};t.addEventListener?t.addEventListener("message",r,!1):t.attachEvent("onmessage",r),n=function(r){t.postMessage(e+r,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){c(t.data)},n=function(e){t.port2.postMessage(e)}}():a&&"onreadystatechange"in a.createElement("script")?function(){var t=a.documentElement;n=function(e){var r=a.createElement("script");r.onreadystatechange=function(){c(e),r.onreadystatechange=null,t.removeChild(r),r=null},t.appendChild(r)}}():n=function(t){setTimeout(c,0,t)},u.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),r=0;r>>27}function c(t){return t<<30|t>>>2}function h(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,a=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=e[u-3]^e[u-8]^e[u-14]^e[u-16];for(var l=0;l<80;++l){var d=~~(l/20),p=f(r)+h(d,n,i,o)+a+e[l]+s[d]|0;a=o,o=i,i=c(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=a+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){var n=r(9),i=r(27),o=r(7).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function u(){this.init(),this._w=a,i.call(this,64,56)}function f(t){return t<<1|t>>>31}function c(t){return t<<5|t>>>27}function h(t){return t<<30|t>>>2}function l(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,a=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=f(e[u-3]^e[u-8]^e[u-14]^e[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),_=c(r)+l(p,n,i,o)+a+e[d]+s[p]|0;a=o,o=i,i=h(n),n=r,r=_}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=a+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){var n=r(9),i=r(61),o=r(27),s=r(7).Buffer,a=new Array(64);function u(){this.init(),this._w=a,o.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=s.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=u},function(t,e,r){var n=r(9),i=r(62),o=r(27),s=r(7).Buffer,a=new Array(160);function u(){this.init(),this._w=a,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=s.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},function(t,e,r){"use strict";var n=r(9),i=r(7).Buffer,o=r(45),s=i.alloc(128),a=64;function u(t,e){o.call(this,"digest"),"string"==typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>a?e=t(e):e.length(t.api_id=e,t))}exec(t,e){return this.ws_rpc.call([this.api_id,t,e]).catch(t=>{throw t})}};e.default=n},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,r):{};n.get||n.set?Object.defineProperty(e,r,n):e[r]=t[r]}return e.default=t,e}(r(63)),i=function(t){return t&&t.__esModule?t:{default:t}}(r(64));function o(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var s=class{constructor({url:t,urls:e,autoFallback:r,closeCb:s,optionalApis:a,urlChangeCallback:u}){o(this,"setCloseCb",t=>{this.closeCb=t}),o(this,"logFailure",(t,e,r)=>{let n=r&&r.message?r.message:"";console.error(t,"Failed to connect to "+e+(n?" Error: "+JSON.stringify(n):""))}),o(this,"_onClose",()=>{this.isConnected=!1,this.closeCb&&(this.closeCb(),this.setCloseCb(null)),this.autoFallback&&this.connectWithFallback()}),o(this,"connect",async(t=!0,e=this.url)=>{try{let r=await n.instance(e,t,void 0,this.optionalApis,this._onClose).init_promise;return this.url=e,this.isConnected=!0,r}catch(t){throw await n.close(),t}}),o(this,"connectWithFallback",async(t=!0,e=this.url,r=0,n=null,i=null)=>{if(r>this.urls.length)return i(new Error("Tried "+r+" connections, none of which worked: "+JSON.stringify(this.urls.concat(this.url))));try{return await this.connect(t,e)}catch(e){return this.urlChangeCallback&&this.urlChangeCallback(this.urls[r]),this.connectWithFallback(t,this.urls[r],r+1,n,i)}}),o(this,"checkConnections",async(t="",e="",r,n)=>{let o={},s=this.urls.concat(this.url).map(async r=>{let n=new i.default(r,()=>{},void 0,!1);o[r]=(new Date).getTime();try{await n.login(t,e);let i={[r]:(new Date).getTime()-o[r]};return await n.close(),i}catch(t){return r===this.url?this.url=this.urls[0]:this.urls=this.urls.filter(t=>t!==r),void await n.close()}});try{let t=await Promise.all(s),e=t.filter(t=>!!t).sort((t,e)=>Object.values(t)[0]-Object.values(e)[0]).reduce((t,e)=>{let r=Object.keys(e)[0];return t[r]=e[r],t},{});return console.log(`Checked ${t.length} connections, ${t.length-Object.keys(e).length} failed`),e}catch(o){return this.checkConnections(t,e,r,n)}}),this.url=t,this.urls=e.filter(e=>e!==t),this.autoFallback=r,this.closeCb=s,this.optionalApis=a||{},this.isConnected=!1,this.urlChangeCallback=u}static close(){return n.close()}};e.default=s},function(t,e){function r(t){var e=[];for(var r in t)e.push(r);return e}(t.exports="function"==typeof Object.keys?Object.keys:r).shim=r},function(t,e){var r="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function n(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function i(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}(e=t.exports=r?n:i).supported=n,e.unsupported=i},function(t,e,r){t.exports=function(t){return function(e){var r=t,n=r.lib,i=n.WordArray,o=n.Hasher,s=r.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var u=s.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,s=t[e+0],u=t[e+1],d=t[e+2],p=t[e+3],_=t[e+4],g=t[e+5],v=t[e+6],y=t[e+7],b=t[e+8],m=t[e+9],w=t[e+10],E=t[e+11],S=t[e+12],B=t[e+13],I=t[e+14],T=t[e+15],k=o[0],x=o[1],O=o[2],A=o[3];x=l(x=l(x=l(x=l(x=h(x=h(x=h(x=h(x=c(x=c(x=c(x=c(x=f(x=f(x=f(x=f(x,O=f(O,A=f(A,k=f(k,x,O,A,s,7,a[0]),x,O,u,12,a[1]),k,x,d,17,a[2]),A,k,p,22,a[3]),O=f(O,A=f(A,k=f(k,x,O,A,_,7,a[4]),x,O,g,12,a[5]),k,x,v,17,a[6]),A,k,y,22,a[7]),O=f(O,A=f(A,k=f(k,x,O,A,b,7,a[8]),x,O,m,12,a[9]),k,x,w,17,a[10]),A,k,E,22,a[11]),O=f(O,A=f(A,k=f(k,x,O,A,S,7,a[12]),x,O,B,12,a[13]),k,x,I,17,a[14]),A,k,T,22,a[15]),O=c(O,A=c(A,k=c(k,x,O,A,u,5,a[16]),x,O,v,9,a[17]),k,x,E,14,a[18]),A,k,s,20,a[19]),O=c(O,A=c(A,k=c(k,x,O,A,g,5,a[20]),x,O,w,9,a[21]),k,x,T,14,a[22]),A,k,_,20,a[23]),O=c(O,A=c(A,k=c(k,x,O,A,m,5,a[24]),x,O,I,9,a[25]),k,x,p,14,a[26]),A,k,b,20,a[27]),O=c(O,A=c(A,k=c(k,x,O,A,B,5,a[28]),x,O,d,9,a[29]),k,x,y,14,a[30]),A,k,S,20,a[31]),O=h(O,A=h(A,k=h(k,x,O,A,g,4,a[32]),x,O,b,11,a[33]),k,x,E,16,a[34]),A,k,I,23,a[35]),O=h(O,A=h(A,k=h(k,x,O,A,u,4,a[36]),x,O,_,11,a[37]),k,x,y,16,a[38]),A,k,w,23,a[39]),O=h(O,A=h(A,k=h(k,x,O,A,B,4,a[40]),x,O,s,11,a[41]),k,x,p,16,a[42]),A,k,v,23,a[43]),O=h(O,A=h(A,k=h(k,x,O,A,m,4,a[44]),x,O,S,11,a[45]),k,x,T,16,a[46]),A,k,d,23,a[47]),O=l(O,A=l(A,k=l(k,x,O,A,s,6,a[48]),x,O,y,10,a[49]),k,x,I,15,a[50]),A,k,g,21,a[51]),O=l(O,A=l(A,k=l(k,x,O,A,S,6,a[52]),x,O,p,10,a[53]),k,x,w,15,a[54]),A,k,u,21,a[55]),O=l(O,A=l(A,k=l(k,x,O,A,b,6,a[56]),x,O,T,10,a[57]),k,x,v,15,a[58]),A,k,B,21,a[59]),O=l(O,A=l(A,k=l(k,x,O,A,_,6,a[60]),x,O,E,10,a[61]),k,x,d,15,a[62]),A,k,m,21,a[63]),o[0]=o[0]+k|0,o[1]=o[1]+x|0,o[2]=o[2]+O|0,o[3]=o[3]+A|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),s=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,u=a.words,f=0;f<4;f++){var c=u[f];u[f]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return a},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function f(t,e,r,n,i,o,s){var a=t+(e&r|~e&n)+i+s;return(a<>>32-o)+e}function c(t,e,r,n,i,o,s){var a=t+(e&n|r&~n)+i+s;return(a<>>32-o)+e}function h(t,e,r,n,i,o,s){var a=t+(e^r^n)+i+s;return(a<>>32-o)+e}function l(t,e,r,n,i,o,s){var a=t+(r^(e|~n))+i+s;return(a<>>32-o)+e}r.MD5=o._createHelper(u),r.HmacMD5=o._createHmacHelper(u)}(Math),t.MD5}(r(22))},function(t,e,r){t.exports=function(t){return function(){var e=t,r=e.lib,n=r.WordArray,i=r.Hasher,o=[],s=e.algo.SHA1=i.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],s=r[2],a=r[3],u=r[4],f=0;f<80;f++){if(f<16)o[f]=0|t[e+f];else{var c=o[f-3]^o[f-8]^o[f-14]^o[f-16];o[f]=c<<1|c>>>31}var h=(n<<5|n>>>27)+u+o[f];h+=f<20?1518500249+(i&s|~i&a):f<40?1859775393+(i^s^a):f<60?(i&s|i&a|s&a)-1894007588:(i^s^a)-899497514,u=a,a=s,s=i<<30|i>>>2,i=n,n=h}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+s|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(n+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA1=i._createHelper(s),e.HmacSHA1=i._createHmacHelper(s)}(),t.SHA1}(r(22))},function(t,e,r){t.exports=function(t){!function(){var e=t,r=e.lib,n=r.Base,i=e.enc,o=i.Utf8,s=e.algo;s.HMAC=n.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=o.parse(e));var r=t.blockSize,n=4*r;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),s=this._iKey=e.clone(),a=i.words,u=s.words,f=0;f>>2];t.sigBytes-=e}},v=(n.BlockCipher=h.extend({cfg:h.cfg.extend({mode:p,padding:g}),reset:function(){h.reset.call(this);var t=this.cfg,e=t.iv,r=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{var n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(r,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else{var e=this._process(!0);t.unpad(e)}return e},blockSize:4}),n.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=r.format={},b=y.OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;if(r)var n=o.create([1398893684,1701076831]).concat(r).concat(e);else var n=e;return n.toString(u)},parse:function(t){var e=u.parse(t),r=e.words;if(1398893684==r[0]&&1701076831==r[1]){var n=o.create(r.slice(2,4));r.splice(0,4),e.sigBytes-=16}return v.create({ciphertext:e,salt:n})}},m=n.SerializableCipher=i.extend({cfg:i.extend({format:b}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n),o=i.finalize(e),s=i.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=t.createDecryptor(r,n).finalize(e.ciphertext);return i},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),w=r.kdf={},E=w.OpenSSL={execute:function(t,e,r,n){n||(n=o.random(8));var i=c.create({keySize:e+r}).compute(t,n),s=o.create(i.words.slice(e),4*r);return i.sigBytes=4*e,v.create({key:i,iv:s,salt:n})}},S=n.PasswordBasedCipher=m.extend({cfg:m.cfg.extend({kdf:E}),encrypt:function(t,e,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,t.keySize,t.ivSize);n.iv=i.iv;var o=m.encrypt.call(this,t,e,i.key,n);return o.mixIn(i),o},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=n.kdf.execute(r,t.keySize,t.ivSize,e.salt);n.iv=i.iv;var o=m.decrypt.call(this,t,e,i.key,n);return o}})}()}(r(22),r(66))},function(t,e){},function(t,e,r){"use strict";var n=r(109),i=r(117),o=r(118),s=r(119);(t.exports=function(t,e){var r,o,a,u,f;return arguments.length<2||"string"!=typeof t?(u=e,e=t,t=null):u=arguments[2],null==t?(r=a=!0,o=!1):(r=s.call(t,"c"),o=s.call(t,"e"),a=s.call(t,"w")),f={value:e,configurable:r,enumerable:o,writable:a},u?n(i(u),f):f}).gs=function(t,e,r){var a,u,f,c;return"string"!=typeof t?(f=r,r=e,e=t,t=null):f=arguments[3],null==e?e=void 0:o(e)?null==r?r=void 0:o(r)||(f=r,r=void 0):(f=e,e=r=void 0),null==t?(a=!0,u=!1):(a=s.call(t,"c"),u=s.call(t,"e")),c={get:e,set:r,configurable:a,enumerable:u},f?n(i(f),c):c}},function(t,e,r){"use strict";t.exports=r(110)()?Object.assign:r(111)},function(t,e,r){"use strict";t.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},function(t,e,r){"use strict";var n=r(112),i=r(116),o=Math.max;t.exports=function(t,e){var r,s,a,u=o(arguments.length,2);for(t=Object(i(t)),a=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},s=1;s-1}},function(t,e,r){"use strict";t.exports=function(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");return t}},function(t,e,r){"use strict";r.r(e);var n={};r.r(n),r.d(n,"operation",function(){return k}),r.d(n,"transfer_operation_fee_parameters",function(){return O}),r.d(n,"limit_order_create_operation_fee_parameters",function(){return A}),r.d(n,"limit_order_cancel_operation_fee_parameters",function(){return j}),r.d(n,"call_order_update_operation_fee_parameters",function(){return L}),r.d(n,"fill_order_operation_fee_parameters",function(){return M}),r.d(n,"account_create_operation_fee_parameters",function(){return D}),r.d(n,"account_update_operation_fee_parameters",function(){return R}),r.d(n,"account_whitelist_operation_fee_parameters",function(){return z}),r.d(n,"account_upgrade_operation_fee_parameters",function(){return U}),r.d(n,"account_transfer_operation_fee_parameters",function(){return q}),r.d(n,"asset_create_operation_fee_parameters",function(){return C}),r.d(n,"asset_update_operation_fee_parameters",function(){return P}),r.d(n,"asset_update_bitasset_operation_fee_parameters",function(){return N}),r.d(n,"asset_update_feed_producers_operation_fee_parameters",function(){return F}),r.d(n,"asset_issue_operation_fee_parameters",function(){return H}),r.d(n,"asset_reserve_operation_fee_parameters",function(){return W}),r.d(n,"asset_fund_fee_pool_operation_fee_parameters",function(){return V}),r.d(n,"asset_settle_operation_fee_parameters",function(){return K}),r.d(n,"asset_global_settle_operation_fee_parameters",function(){return Y}),r.d(n,"asset_publish_feed_operation_fee_parameters",function(){return Z}),r.d(n,"witness_create_operation_fee_parameters",function(){return J}),r.d(n,"witness_update_operation_fee_parameters",function(){return G}),r.d(n,"proposal_create_operation_fee_parameters",function(){return X}),r.d(n,"proposal_update_operation_fee_parameters",function(){return $}),r.d(n,"proposal_delete_operation_fee_parameters",function(){return Q}),r.d(n,"withdraw_permission_create_operation_fee_parameters",function(){return tt}),r.d(n,"withdraw_permission_update_operation_fee_parameters",function(){return et}),r.d(n,"withdraw_permission_claim_operation_fee_parameters",function(){return rt}),r.d(n,"withdraw_permission_delete_operation_fee_parameters",function(){return nt}),r.d(n,"committee_member_create_operation_fee_parameters",function(){return it}),r.d(n,"committee_member_update_operation_fee_parameters",function(){return ot}),r.d(n,"committee_member_update_global_parameters_operation_fee_parameters",function(){return st}),r.d(n,"vesting_balance_create_operation_fee_parameters",function(){return at}),r.d(n,"vesting_balance_withdraw_operation_fee_parameters",function(){return ut}),r.d(n,"worker_create_operation_fee_parameters",function(){return ft}),r.d(n,"custom_operation_fee_parameters",function(){return ct}),r.d(n,"assert_operation_fee_parameters",function(){return ht}),r.d(n,"balance_claim_operation_fee_parameters",function(){return lt}),r.d(n,"override_transfer_operation_fee_parameters",function(){return dt}),r.d(n,"transfer_to_blind_operation_fee_parameters",function(){return pt}),r.d(n,"blind_transfer_operation_fee_parameters",function(){return _t}),r.d(n,"transfer_from_blind_operation_fee_parameters",function(){return gt}),r.d(n,"asset_settle_cancel_operation_fee_parameters",function(){return vt}),r.d(n,"asset_claim_fees_operation_fee_parameters",function(){return yt}),r.d(n,"fba_distribute_operation_fee_parameters",function(){return bt}),r.d(n,"bid_collateral_operation_fee_parameters",function(){return mt}),r.d(n,"execute_bid_operation_fee_parameters",function(){return wt}),r.d(n,"asset_claim_pool_operation_fee_parameters",function(){return Et}),r.d(n,"asset_update_issuer_operation_fee_parameters",function(){return St}),r.d(n,"htlc_create_operation_fee_parameters",function(){return Bt}),r.d(n,"htlc_redeem_operation_fee_parameters",function(){return It}),r.d(n,"htlc_redeemed_operation_fee_parameters",function(){return Tt}),r.d(n,"htlc_extend_operation_fee_parameters",function(){return kt}),r.d(n,"htlc_refund_operation_fee_parameters",function(){return xt}),r.d(n,"fee_schedule",function(){return Ot}),r.d(n,"void_result",function(){return At}),r.d(n,"asset",function(){return jt}),r.d(n,"processed_transaction",function(){return Mt}),r.d(n,"signed_block",function(){return Dt}),r.d(n,"block_header",function(){return Rt}),r.d(n,"signed_block_header",function(){return zt}),r.d(n,"memo_data",function(){return Ut}),r.d(n,"transfer",function(){return qt}),r.d(n,"limit_order_create",function(){return Ct}),r.d(n,"limit_order_cancel",function(){return Pt}),r.d(n,"call_order_update",function(){return Nt}),r.d(n,"fill_order",function(){return Ft}),r.d(n,"authority",function(){return Ht}),r.d(n,"account_options",function(){return Wt}),r.d(n,"account_create",function(){return Vt}),r.d(n,"account_update",function(){return Kt}),r.d(n,"account_whitelist",function(){return Yt}),r.d(n,"account_upgrade",function(){return Zt}),r.d(n,"account_transfer",function(){return Jt}),r.d(n,"price",function(){return Gt}),r.d(n,"asset_options",function(){return Xt}),r.d(n,"bitasset_options",function(){return $t}),r.d(n,"asset_create",function(){return Qt}),r.d(n,"asset_update",function(){return te}),r.d(n,"asset_update_bitasset",function(){return ee}),r.d(n,"asset_update_feed_producers",function(){return re}),r.d(n,"asset_issue",function(){return ne}),r.d(n,"asset_reserve",function(){return ie}),r.d(n,"asset_fund_fee_pool",function(){return oe}),r.d(n,"asset_settle",function(){return se}),r.d(n,"asset_global_settle",function(){return ae}),r.d(n,"price_feed",function(){return ue}),r.d(n,"asset_publish_feed",function(){return fe}),r.d(n,"witness_create",function(){return ce}),r.d(n,"witness_update",function(){return he}),r.d(n,"op_wrapper",function(){return le}),r.d(n,"proposal_create",function(){return de}),r.d(n,"proposal_update",function(){return pe}),r.d(n,"proposal_delete",function(){return _e}),r.d(n,"withdraw_permission_create",function(){return ge}),r.d(n,"withdraw_permission_update",function(){return ve}),r.d(n,"withdraw_permission_claim",function(){return ye}),r.d(n,"withdraw_permission_delete",function(){return be}),r.d(n,"committee_member_create",function(){return me}),r.d(n,"committee_member_update",function(){return we}),r.d(n,"chain_parameters",function(){return Ee}),r.d(n,"committee_member_update_global_parameters",function(){return Se}),r.d(n,"linear_vesting_policy_initializer",function(){return Be}),r.d(n,"cdd_vesting_policy_initializer",function(){return Ie}),r.d(n,"vesting_balance_create",function(){return ke}),r.d(n,"vesting_balance_withdraw",function(){return xe}),r.d(n,"refund_worker_initializer",function(){return Oe}),r.d(n,"vesting_balance_worker_initializer",function(){return Ae}),r.d(n,"burn_worker_initializer",function(){return je}),r.d(n,"worker_create",function(){return Me}),r.d(n,"custom",function(){return De}),r.d(n,"account_name_eq_lit_predicate",function(){return Re}),r.d(n,"asset_symbol_eq_lit_predicate",function(){return ze}),r.d(n,"block_id_predicate",function(){return Ue}),r.d(n,"assert",function(){return Ce}),r.d(n,"balance_claim",function(){return Pe}),r.d(n,"override_transfer",function(){return Ne}),r.d(n,"stealth_confirmation",function(){return Fe}),r.d(n,"blind_output",function(){return He}),r.d(n,"transfer_to_blind",function(){return We}),r.d(n,"blind_input",function(){return Ve}),r.d(n,"blind_transfer",function(){return Ke}),r.d(n,"transfer_from_blind",function(){return Ye}),r.d(n,"asset_settle_cancel",function(){return Ze}),r.d(n,"asset_claim_fees",function(){return Je}),r.d(n,"fba_distribute",function(){return Ge}),r.d(n,"bid_collateral",function(){return Xe}),r.d(n,"execute_bid",function(){return $e}),r.d(n,"asset_claim_pool",function(){return Qe}),r.d(n,"asset_update_issuer",function(){return tr}),r.d(n,"htlc_create",function(){return er}),r.d(n,"htlc_redeem",function(){return rr}),r.d(n,"htlc_redeemed",function(){return nr}),r.d(n,"htlc_extend",function(){return ir}),r.d(n,"htlc_refund",function(){return or}),r.d(n,"transaction",function(){return sr}),r.d(n,"signed_transaction",function(){return ar}),r.d(n,"stealth_memo_data",function(){return ur});var i=r(28),o=(r(18),r(8)),s=o.a.uint8,a=o.a.uint16,u=o.a.uint32,f=o.a.int64,c=o.a.uint64,h=o.a.string,l=o.a.bytes,d=o.a.bool,p=o.a.array,_=o.a.protocol_id_type,g=o.a.object_id_type,v=o.a.vote_id,y=o.a.future_extensions,b=o.a.static_variant,m=o.a.map,w=o.a.set,E=o.a.public_key,S=o.a.address,B=o.a.time_point_sec,I=o.a.optional,T=o.a.extension;y=o.a.void;var k=b(),x=function(t,e){return new i.a(t,e)},O=new x("transfer_operation_fee_parameters",{fee:c,price_per_kbyte:u}),A=new x("limit_order_create_operation_fee_parameters",{fee:c}),j=new x("limit_order_cancel_operation_fee_parameters",{fee:c}),L=new x("call_order_update_operation_fee_parameters",{fee:c}),M=new x("fill_order_operation_fee_parameters"),D=new x("account_create_operation_fee_parameters",{basic_fee:c,premium_fee:c,price_per_kbyte:u}),R=new x("account_update_operation_fee_parameters",{fee:f,price_per_kbyte:u}),z=new x("account_whitelist_operation_fee_parameters",{fee:f}),U=new x("account_upgrade_operation_fee_parameters",{membership_annual_fee:c,membership_lifetime_fee:c}),q=new x("account_transfer_operation_fee_parameters",{fee:c}),C=new x("asset_create_operation_fee_parameters",{symbol3:c,symbol4:c,long_symbol:c,price_per_kbyte:u}),P=new x("asset_update_operation_fee_parameters",{fee:c,price_per_kbyte:u}),N=new x("asset_update_bitasset_operation_fee_parameters",{fee:c}),F=new x("asset_update_feed_producers_operation_fee_parameters",{fee:c}),H=new x("asset_issue_operation_fee_parameters",{fee:c,price_per_kbyte:u}),W=new x("asset_reserve_operation_fee_parameters",{fee:c}),V=new x("asset_fund_fee_pool_operation_fee_parameters",{fee:c}),K=new x("asset_settle_operation_fee_parameters",{fee:c}),Y=new x("asset_global_settle_operation_fee_parameters",{fee:c}),Z=new x("asset_publish_feed_operation_fee_parameters",{fee:c}),J=new x("witness_create_operation_fee_parameters",{fee:c}),G=new x("witness_update_operation_fee_parameters",{fee:f}),X=new x("proposal_create_operation_fee_parameters",{fee:c,price_per_kbyte:u}),$=new x("proposal_update_operation_fee_parameters",{fee:c,price_per_kbyte:u}),Q=new x("proposal_delete_operation_fee_parameters",{fee:c}),tt=new x("withdraw_permission_create_operation_fee_parameters",{fee:c}),et=new x("withdraw_permission_update_operation_fee_parameters",{fee:c}),rt=new x("withdraw_permission_claim_operation_fee_parameters",{fee:c,price_per_kbyte:u}),nt=new x("withdraw_permission_delete_operation_fee_parameters",{fee:c}),it=new x("committee_member_create_operation_fee_parameters",{fee:c}),ot=new x("committee_member_update_operation_fee_parameters",{fee:c}),st=new x("committee_member_update_global_parameters_operation_fee_parameters",{fee:c}),at=new x("vesting_balance_create_operation_fee_parameters",{fee:c}),ut=new x("vesting_balance_withdraw_operation_fee_parameters",{fee:c}),ft=new x("worker_create_operation_fee_parameters",{fee:c}),ct=new x("custom_operation_fee_parameters",{fee:c,price_per_kbyte:u}),ht=new x("assert_operation_fee_parameters",{fee:c}),lt=new x("balance_claim_operation_fee_parameters"),dt=new x("override_transfer_operation_fee_parameters",{fee:c,price_per_kbyte:u}),pt=new x("transfer_to_blind_operation_fee_parameters",{fee:c,price_per_output:u}),_t=new x("blind_transfer_operation_fee_parameters",{fee:c,price_per_output:u}),gt=new x("transfer_from_blind_operation_fee_parameters",{fee:c}),vt=new x("asset_settle_cancel_operation_fee_parameters"),yt=new x("asset_claim_fees_operation_fee_parameters",{fee:c}),bt=new x("fba_distribute_operation_fee_parameters"),mt=new x("bid_collateral_operation_fee_parameters",{fee:c}),wt=new x("execute_bid_operation_fee_parameters"),Et=new x("asset_claim_pool_operation_fee_parameters",{fee:c}),St=new x("asset_update_issuer_operation_fee_parameters",{fee:c}),Bt=new x("htlc_create_operation_fee_parameters",{fee:c,fee_per_day:c}),It=new x("htlc_redeem_operation_fee_parameters",{fee:c,fee_per_kb:c}),Tt=new x("htlc_redeemed_operation_fee_parameters",{}),kt=new x("htlc_extend_operation_fee_parameters",{fee:c,fee_per_day:c}),xt=new x("htlc_refund_operation_fee_parameters",{}),Ot=new x("fee_schedule",{parameters:w(b([O,A,j,L,M,D,R,z,U,q,C,P,N,F,H,W,V,K,Y,Z,J,G,X,$,Q,tt,et,rt,nt,it,ot,st,at,ut,ft,ct,ht,lt,dt,pt,_t,gt,vt,yt,bt,mt,wt,Et,St,Bt,It,Tt,kt,xt])),scale:u}),At=new x("void_result"),jt=new x("asset",{amount:f,asset_id:_("asset")}),Lt=b([At,g,jt]),Mt=new x("processed_transaction",{ref_block_num:a,ref_block_prefix:u,expiration:B,operations:p(k),extensions:w(y),signatures:p(l(65)),operation_results:p(Lt)}),Dt=new x("signed_block",{previous:l(20),timestamp:B,witness:_("witness"),transaction_merkle_root:l(20),extensions:w(y),witness_signature:l(65),transactions:p(Mt)}),Rt=new x("block_header",{previous:l(20),timestamp:B,witness:_("witness"),transaction_merkle_root:l(20),extensions:w(y)}),zt=new x("signed_block_header",{previous:l(20),timestamp:B,witness:_("witness"),transaction_merkle_root:l(20),extensions:w(y),witness_signature:l(65)}),Ut=new x("memo_data",{from:E,to:E,nonce:c,message:l()}),qt=new x("transfer",{fee:jt,from:_("account"),to:_("account"),amount:jt,memo:I(Ut),extensions:w(y)}),Ct=new x("limit_order_create",{fee:jt,seller:_("account"),amount_to_sell:jt,min_to_receive:jt,expiration:B,fill_or_kill:d,extensions:w(y)}),Pt=new x("limit_order_cancel",{fee:jt,fee_paying_account:_("account"),order:_("limit_order"),extensions:w(y)}),Nt=new x("call_order_update",{fee:jt,funding_account:_("account"),delta_collateral:jt,delta_debt:jt,extensions:T([{name:"target_collateral_ratio",type:a}])}),Ft=new x("fill_order",{fee:jt,order_id:g,account_id:_("account"),pays:jt,receives:jt}),Ht=new x("authority",{weight_threshold:u,account_auths:m(_("account"),a),key_auths:m(E,a),address_auths:m(S,a)}),Wt=new x("account_options",{memo_key:E,voting_account:_("account"),num_witness:a,num_committee:a,votes:w(v),extensions:w(y)}),Vt=new x("account_create",{fee:jt,registrar:_("account"),referrer:_("account"),referrer_percent:a,name:h,owner:Ht,active:Ht,options:Wt,extensions:w(y)}),Kt=new x("account_update",{fee:jt,account:_("account"),owner:I(Ht),active:I(Ht),new_options:I(Wt),extensions:w(y)}),Yt=new x("account_whitelist",{fee:jt,authorizing_account:_("account"),account_to_list:_("account"),new_listing:s,extensions:w(y)}),Zt=new x("account_upgrade",{fee:jt,account_to_upgrade:_("account"),upgrade_to_lifetime_member:d,extensions:w(y)}),Jt=new x("account_transfer",{fee:jt,account_id:_("account"),new_owner:_("account"),extensions:w(y)}),Gt=new x("price",{base:jt,quote:jt}),Xt=new x("asset_options",{max_supply:f,market_fee_percent:a,max_market_fee:f,issuer_permissions:a,flags:a,core_exchange_rate:Gt,whitelist_authorities:w(_("account")),blacklist_authorities:w(_("account")),whitelist_markets:w(_("asset")),blacklist_markets:w(_("asset")),description:h,extensions:T([{name:"reward_percent",type:a},{name:"whitelist_market_fee_sharing",type:w(_("account"))}])}),$t=new x("bitasset_options",{feed_lifetime_sec:u,minimum_feeds:s,force_settlement_delay_sec:u,force_settlement_offset_percent:a,maximum_force_settlement_volume:a,short_backing_asset:_("asset"),extensions:w(y)}),Qt=new x("asset_create",{fee:jt,issuer:_("account"),symbol:h,precision:s,common_options:Xt,bitasset_opts:I($t),is_prediction_market:d,extensions:w(y)}),te=new x("asset_update",{fee:jt,issuer:_("account"),asset_to_update:_("asset"),new_issuer:I(_("account")),new_options:Xt,extensions:w(y)}),ee=new x("asset_update_bitasset",{fee:jt,issuer:_("account"),asset_to_update:_("asset"),new_options:$t,extensions:w(y)}),re=new x("asset_update_feed_producers",{fee:jt,issuer:_("account"),asset_to_update:_("asset"),new_feed_producers:w(_("account")),extensions:w(y)}),ne=new x("asset_issue",{fee:jt,issuer:_("account"),asset_to_issue:jt,issue_to_account:_("account"),memo:I(Ut),extensions:w(y)}),ie=new x("asset_reserve",{fee:jt,payer:_("account"),amount_to_reserve:jt,extensions:w(y)}),oe=new x("asset_fund_fee_pool",{fee:jt,from_account:_("account"),asset_id:_("asset"),amount:f,extensions:w(y)}),se=new x("asset_settle",{fee:jt,account:_("account"),amount:jt,extensions:w(y)}),ae=new x("asset_global_settle",{fee:jt,issuer:_("account"),asset_to_settle:_("asset"),settle_price:Gt,extensions:w(y)}),ue=new x("price_feed",{settlement_price:Gt,maintenance_collateral_ratio:a,maximum_short_squeeze_ratio:a,core_exchange_rate:Gt}),fe=new x("asset_publish_feed",{fee:jt,publisher:_("account"),asset_id:_("asset"),feed:ue,extensions:w(y)}),ce=new x("witness_create",{fee:jt,witness_account:_("account"),url:h,block_signing_key:E}),he=new x("witness_update",{fee:jt,witness:_("witness"),witness_account:_("account"),new_url:I(h),new_signing_key:I(E)}),le=new x("op_wrapper",{op:k}),de=new x("proposal_create",{fee:jt,fee_paying_account:_("account"),expiration_time:B,proposed_ops:p(le),review_period_seconds:I(u),extensions:w(y)}),pe=new x("proposal_update",{fee:jt,fee_paying_account:_("account"),proposal:_("proposal"),active_approvals_to_add:w(_("account")),active_approvals_to_remove:w(_("account")),owner_approvals_to_add:w(_("account")),owner_approvals_to_remove:w(_("account")),key_approvals_to_add:w(E),key_approvals_to_remove:w(E),extensions:w(y)}),_e=new x("proposal_delete",{fee:jt,fee_paying_account:_("account"),using_owner_authority:d,proposal:_("proposal"),extensions:w(y)}),ge=new x("withdraw_permission_create",{fee:jt,withdraw_from_account:_("account"),authorized_account:_("account"),withdrawal_limit:jt,withdrawal_period_sec:u,periods_until_expiration:u,period_start_time:B}),ve=new x("withdraw_permission_update",{fee:jt,withdraw_from_account:_("account"),authorized_account:_("account"),permission_to_update:_("withdraw_permission"),withdrawal_limit:jt,withdrawal_period_sec:u,period_start_time:B,periods_until_expiration:u}),ye=new x("withdraw_permission_claim",{fee:jt,withdraw_permission:_("withdraw_permission"),withdraw_from_account:_("account"),withdraw_to_account:_("account"),amount_to_withdraw:jt,memo:I(Ut)}),be=new x("withdraw_permission_delete",{fee:jt,withdraw_from_account:_("account"),authorized_account:_("account"),withdrawal_permission:_("withdraw_permission")}),me=new x("committee_member_create",{fee:jt,committee_member_account:_("account"),url:h}),we=new x("committee_member_update",{fee:jt,committee_member:_("committee_member"),committee_member_account:_("account"),new_url:I(h)}),Ee=new x("chain_parameters",{current_fees:Ot,block_interval:s,maintenance_interval:u,maintenance_skip_slots:s,committee_proposal_review_period:u,maximum_transaction_size:u,maximum_block_size:u,maximum_time_until_expiration:u,maximum_proposal_lifetime:u,maximum_asset_whitelist_authorities:s,maximum_asset_feed_publishers:s,maximum_witness_count:a,maximum_committee_count:a,maximum_authority_membership:a,reserve_percent_of_fee:a,network_percent_of_fee:a,lifetime_referrer_percent_of_fee:a,cashback_vesting_period_seconds:u,cashback_vesting_threshold:f,count_non_member_votes:d,allow_non_member_whitelists:d,witness_pay_per_block:f,worker_budget_per_day:f,max_predicate_opcode:a,fee_liquidation_threshold:f,accounts_per_fee_scale:a,account_fee_scale_bitshifts:s,max_authority_depth:s,extensions:w(y)}),Se=new x("committee_member_update_global_parameters",{fee:jt,new_parameters:Ee}),Be=new x("linear_vesting_policy_initializer",{begin_timestamp:B,vesting_cliff_seconds:u,vesting_duration_seconds:u}),Ie=new x("cdd_vesting_policy_initializer",{start_claim:B,vesting_seconds:u}),Te=b([Be,Ie]),ke=new x("vesting_balance_create",{fee:jt,creator:_("account"),owner:_("account"),amount:jt,policy:Te}),xe=new x("vesting_balance_withdraw",{fee:jt,vesting_balance:_("vesting_balance"),owner:_("account"),amount:jt}),Oe=new x("refund_worker_initializer"),Ae=new x("vesting_balance_worker_initializer",{pay_vesting_period_days:a}),je=new x("burn_worker_initializer"),Le=b([Oe,Ae,je]),Me=new x("worker_create",{fee:jt,owner:_("account"),work_begin_date:B,work_end_date:B,daily_pay:f,name:h,url:h,initializer:Le}),De=new x("custom",{fee:jt,payer:_("account"),required_auths:w(_("account")),id:a,data:l()}),Re=new x("account_name_eq_lit_predicate",{account_id:_("account"),name:h}),ze=new x("asset_symbol_eq_lit_predicate",{asset_id:_("asset"),symbol:h}),Ue=new x("block_id_predicate",{id:l(20)}),qe=b([Re,ze,Ue]),Ce=new x("assert",{fee:jt,fee_paying_account:_("account"),predicates:p(qe),required_auths:w(_("account")),extensions:w(y)}),Pe=new x("balance_claim",{fee:jt,deposit_to_account:_("account"),balance_to_claim:_("balance"),balance_owner_key:E,total_claimed:jt}),Ne=new x("override_transfer",{fee:jt,issuer:_("account"),from:_("account"),to:_("account"),amount:jt,memo:I(Ut),extensions:w(y)}),Fe=new x("stealth_confirmation",{one_time_key:E,to:I(E),encrypted_memo:l()}),He=new x("blind_output",{commitment:l(33),range_proof:l(),owner:Ht,stealth_memo:I(Fe)}),We=new x("transfer_to_blind",{fee:jt,amount:jt,from:_("account"),blinding_factor:l(32),outputs:p(He)}),Ve=new x("blind_input",{commitment:l(33),owner:Ht}),Ke=new x("blind_transfer",{fee:jt,inputs:p(Ve),outputs:p(He)}),Ye=new x("transfer_from_blind",{fee:jt,amount:jt,to:_("account"),blinding_factor:l(32),inputs:p(Ve)}),Ze=new x("asset_settle_cancel",{fee:jt,settlement:_("force_settlement"),account:_("account"),amount:jt,extensions:w(y)}),Je=new x("asset_claim_fees",{fee:jt,issuer:_("account"),amount_to_claim:jt,extensions:w(y)}),Ge=new x("fba_distribute",{fee:jt,account_id:_("account"),fba_id:_("fba_accumulator"),amount:f}),Xe=new x("bid_collateral",{fee:jt,bidder:_("account"),additional_collateral:jt,debt_covered:jt,extensions:w(y)}),$e=new x("execute_bid",{fee:jt,bidder:_("account"),debt:jt,collateral:jt}),Qe=new x("asset_claim_pool",{fee:jt,issuer:_("account"),asset_id:_("asset"),amount_to_claim:jt,extensions:w(y)}),tr=new x("asset_update_issuer",{fee:jt,issuer:_("account"),asset_to_update:_("asset"),new_issuer:_("account"),extensions:w(y)}),er=new x("htlc_create",{fee:jt,from:_("account"),to:_("account"),amount:jt,preimage_hash:b([l(20),l(20),l(32)]),preimage_size:a,claim_period_seconds:u,extensions:w(y)}),rr=new x("htlc_redeem",{fee:jt,htlc_id:_("htlc"),redeemer:_("account"),preimage:l(),extensions:w(y)}),nr=new x("htlc_redeemed",{fee:jt,htlc_id:_("htlc"),from:_("account"),to:_("account"),amount:jt}),ir=new x("htlc_extend",{fee:jt,htlc_id:_("htlc"),update_issuer:_("account"),seconds_to_add:u,extensions:w(y)}),or=new x("htlc_refund",{fee:jt,htlc_id:_("htlc"),to:_("account")});k.st_operations=[qt,Ct,Pt,Nt,Ft,Vt,Kt,Yt,Zt,Jt,Qt,te,ee,re,ne,ie,oe,se,ae,fe,ce,he,de,pe,_e,ge,ve,ye,be,me,we,Se,ke,xe,Me,De,Ce,Pe,Ne,We,Ke,Ye,Ze,Je,Ge,Xe,$e,Qe,tr,er,rr,nr,ir,or];var sr=new x("transaction",{ref_block_num:a,ref_block_prefix:u,expiration:B,operations:p(k),extensions:w(y)}),ar=new x("signed_transaction",{ref_block_num:a,ref_block_prefix:u,expiration:B,operations:p(k),extensions:w(y),signatures:p(l(65))}),ur=new x("stealth_memo_data",{from:I(E),amount:jt,blinding_factor:l(32),commitment:l(33),check:u});r(0),r(19),r(25);var fr=r(17),cr=(r(11),r(38),r(37),r(1),r(29)),hr=r(40);r(2),r(14),r(3),r(12),r(7).Buffer;r(26),r(34),r(6),r(10),r(39);var lr={},dr={};new(function(){function t(){var t={loggedIn:!1,roles:["active","owner","memo"]};this.get=function(t){return function(e){return t[e]||""}}(t),this.set=function(t){return function(e,r){return t[e]=r,this}}(t),this.subs={}}var e=t.prototype;return e.addSubscription=function(t){this.subs[t]=t},e.setRoles=function(t){this.set("roles",t)},e.generateKeys=function(t,e,r,n){(new Date).getTime();if(!t||!e)throw new Error("Account name or password required");if(e.length<12)throw new Error("Password must have at least 12 characters");var i={},o={};return(r||this.get("roles")).forEach(function(r){var s=t+r+e,a=lr[s]?lr[s]:fr.a.fromSeed(cr.a.normalize_brainKey(s));lr[s]=a,i[r]=a,o[r]=dr[s]?dr[s]:a.toPublicKey().toString(n),dr[s]=o[r]}),{privKeys:i,pubKeys:o}},e.checkKeys=function(t){var e=this,r=t.accountName,n=t.password,i=t.auths;if(!r||!n||!i)throw new Error("checkKeys: Missing inputs");var o=!1,s=function(t){var s=e.generateKeys(r,n,[t]),a=s.privKeys,u=s.pubKeys;i[t].forEach(function(r){r[0]===u[t]&&(o=!0,e.set(t,{priv:a[t],pub:u[t]}))})};for(var a in i)s(a);return o&&this.set("name",r),this.set("loggedIn",o),o},e.signTransaction=function(t){var e=this,r=!1;if(this.get("roles").forEach(function(n){var i=e.get(n);i&&(r=!0,console.log("adding signer:",i.pub),t.add_signer(i.priv,i.pub))}),!r)throw new Error("You do not have any private keys to sign this transaction")},t}()),hr.a.FetchChainObjects,hr.a.FetchChain;onmessage=function(t){try{console.log("AddressIndexWorker start");var e=t.data,r=e.pubkeys,n=e.address_prefix,i=[],o=!0,s=!1,a=void 0;try{for(var u,f=r[Symbol.iterator]();!(o=(u=f.next()).done);o=!0){var c=u.value;i.push(cr.a.addresses(c,n))}}catch(t){s=!0,a=t}finally{try{!o&&f.return&&f.return()}finally{if(s)throw a}}postMessage(i),console.log("AddressIndexWorker done")}catch(t){console.error("AddressIndexWorker",t)}}}]);\n//# sourceMappingURL=main.js.map', r.p + "e5f3e1f7c0e288b21992.worker.js") } } , function(e, t, r) { var a = { "./locale-de.json": 1272, "./locale-en.json": 651, "./locale-es.json": 1273, "./locale-fr.json": 1274, "./locale-it.json": 1275, "./locale-ja.json": 1276, "./locale-ko.json": 1277, "./locale-ru.json": 1278, "./locale-tr.json": 1279, "./locale-zh.json": 1280 }; function n(e) { var t = i(e); return r(t) } function i(e) { var t = a[e]; if (!(t + 1)) { var r = new Error("Cannot find module '" + e + "'"); throw r.code = "MODULE_NOT_FOUND", r } return t } n.keys = function() { return Object.keys(a) } , n.resolve = i, e.exports = n, n.id = 1271 } , function(e) { e.exports = { account: { accounts: "Konten", activity: "Aktivität", advanced: "Fortgeschritten", as_collateral: "Sicherheit", asset: "Anlage", asset_details: "Anlage Details", average_price: "Average price", bittrex_scam: "Achtung, dies ist ein Betrügerkonto, das echte Bittrex-Konto heißt: bittrex-deposit!", bts_market: "Markt", collaterals: "Sicherheits-Positionen", confirm_asset_modal: { are_you_sure: "Sind Sie sicher alle Änderungen der Tabs zu speichern?", header: "Bestätigen Sie alle Änderungen!" }, connections: { black: "Schwarzgelistet von", known: "Bekannt von" }, contacts: "Kontakte", create_account: "Konto erstellen", create_new: "Ein neues Konto erstellen", deactivate_suspicious_proposals: "Deactivate suspicious proposals", deposit: "Zahlen Sie BTS ein", deposit_address: "Ihre Einzahladresse ist Ihr Kontoname", deposit_withdraw: "Einzahlen/Auszahlen", download_history: "Download History", eq_value: "entspricht", eq_value_header: "Wert ({asset})", errors: { invalid: "Ungültiger Kontoname", memo_missing: "Sie haben nicht die Kontrolle über den Notitzschlüssel. Damit Sie die Notitzfunktion benutzen können, muss unter Einstellungen -> Konten -> Berechtigungen, ein von Ihnen kontrollierter Schlüssel ausgewählt werden.", not_found: "Das Konto %(name)s existiert nicht. Bitte prüfen Sie die Schreibweise!", not_yours: "Nicht Ihr Konto", unknown: "Unbekannter Kontoname" }, estimate_value: "Geschätzter Kontowert", existing_accounts: "Existierendes Konto", existing_user: "Existierender Benutzer", export_modal: { coinbase_report: "CoinTracking.info Report", description: "Enter your desired elastic search instance and click the report type", full_report: "Full Report", title: "History Export", use_custom: "Use custom wrapper" }, filter_orders: "Filter", follow: "Kontakt hinzufügen", group_by_asset: "Group by asset", hidden_accounts_row: "Versteckte Konten", hide_hidden: "Aktiv", hide_ignored: "Blende versteckte Konten aus", history: "Verlauf", history_error: "Verlaufsfehler", home: "Zuhause", hour_24: "24h-Wechsel", hour_24_short: "24h", id: "Konto Identifikation", identicon: "Identicon", ignore: "Verstecke", in_open: "Der Betrag von %(asset)s steckt in Ihren offenen Aufträgen.", in_open_value: "Der geschätze Wert von %(asset)s steckt in Ihren offenen Aufträgen.", intro_text_1: "Ihre dezentrale Platform", intro_text_2: "Die DEX ist von Natur aus dezentralisiert, ermöglicht Ihnen das Handeln von Bitshares-Kern Wertmarken, zusätzlich eine Spanne von preisstabilen Markt gebundener Anlagen wie bitUSD, bitCNY, bitBTC, bitGold und mehr. Diese Anlagen können ohne Gegenpartei-Risiko gehandelt werden und ermöglicht Ihnen die komplette Kontrolle Ihres Vermögens.", intro_text_3: "Die DEX ermöglicht Ihnen die Herausgabe eigener Anlagen (UIAs = user-issued assets), die gegen andere UIAs oder preisgebundenen Anlagen gehandelt werden können. Ein namhafter Anbieter auf der DEX ist OpenLedger, der verschiedene Anlagen wie BTC, ETH, STEEM, DASH, LTC, DOGE und zur Verfügung stellt.", intro_text_4: "Dies gibt Händlern eine einzigartige Mischung aus traditionelles und dezentrales Handeln, alles in gewohnter Oberfläche. Erfolgreiches Tauschen!", intro_text_title: "Willkommen auf BitShares", login_with: "Anmelden mit", market_actions: "Markt Handlungen", market_value: "Marktwert", member: { annual: "Jahresabonent", available: "Zur Beanspruchung verfügbar", balance_type: "Type", basic: "Grundmitglied", cashback: "Skonto", claim: "Guthaben einfordern", coindays: "Münztage", earned: "Erworbene Münztage", expires: "endet", fee_allocation: "Gebührenverteilung", fees_cashback: "Gebühren und Rückerstattung", fees_paid: "Auf Lebenszeit bezahlte Gebühren", join: "Beitritt am", lifetime: "Lebenszeit Mitgliedschaft", lifetime_referrer: "Lebenszeit-Empfehlung", membership: "Mitgliedschaft", membership_expiration: "Ablauf der Mitgliedschaft", network_percentage: "Netzwerk", referral_link: "Dein Empfehlungs-Link", referral_text: "Geben Sie diesen Link den Leuten, die Sie für Bitshares werben wollen %(wallet_name)s", referrals: "Empfehlungen", referrer: "Empfohlen von", registrar: "Registriert durch", remaining: "Übrige Zusicherungswartezeit", required: "Benötigte Münztage", rewards: "Belohnungen", stats: "Mitgliederstatistiken", subscribe: "Jährliche Mitgliedschaft erwerben", suspected_scammer: "Mutmaßlicher Scammer", unknown: "unbekanntes Mitglied", upgrade_lifetime: "Lebenslange Mitgliedschaft erwerben", vested: "Zugesichert" }, mine: "Mein Konto", more: "mehr", name: "Konto-Name", name_input: { name_is_taken: "Kontoname ist bereits vergeben.", not_found: "Konto nicht gefunden.", premium_name_faucet: "Es handelt sich um einen Premiumnamen. Premiumnamen sind teurer und können nicht gratis registriert werden. Nutzen Sie einen Namen der mindestens einen Bindestrich, eine Zahl oder keine Vokal enthält.", premium_name_warning: "Es handelt sich um einen Premiumnamen. Premiumnamen sind teurer. Günstige Namen enthalten mindestens einen Bindestrich, eine Zahl, oder keine Vokale." }, new_user: "Neuer Benutzer?", no_orders: "Keine offenen Aufträge", no_price: "--", open_orders: "Offene Aufträge", optional: { formatter: "Optional, {restore_link} oder erstellen Sie ein Konto mit {restore_form}.", restore_form: "Formular", restore_link: "stellen Sie Ihr Konto wiederher" }, options: { memo_key: "Notitz-Schlüssel", num_committee: "Gewünschte Größe des Komitees", num_witnesses: "Gewünschte Anzahl an Zeugen" }, orders: "Anweisungen", other_scam: "Dies ist ein Betrügerkonto, bitte überprüfen Sie den Empfänger bevor Sie überweisen.", overview: "Übersicht", password_login: "Anmelden mit Passwort", pay: "Bezahlen", pay_from: "Bezahlen von", payees: "Empfänger", percent: "Prozent der Gesamtmenge", perm: { account_name_or_key: "Kontoname oder Schlüssel", acct_or_key: " Konto/Schlüssel", action: "Aktion", active: "Aktive Berechtigungen", add: "Berechtigung hinzufügen", add_permission_label: "Geben Sie den Kontoname/Schlüssel und eine Gewichtung an", brain: "Gedächtnisschlüssel Position", cancel: "Abbrechen", confirm_add: "Hinzufügen", create_paperwallet: "Create Paper Wallet", create_paperwallet_private_hint: "Unlock/Login before creating the paper wallet to include private keys", from: "Importieren von Konto", key: "Schlüssel/Name", key_viewer: "Gedächtnisschlüssel Betrachter", memo_key: "Notitz-Schlüssel", memo_public_key: "Öffentlicher Schlüssel für Notitzen", memo_warning: "WARNUNG: Wenn Sie den Notitzschlüssel ändern, können Sie Ihre alten Notitzen nach der Anmeldung, nicht mehr lesen! Zusätzlich wird in der alten Brieftasche der neue Schlüssel benötigt, um die neuen Notitzen lesen zu können.", new_active: "Neuer aktiver Schlüssel", new_memo: "Neuer Notitz-Schlüssel ", new_owner: "Neuer Besitzer-Schlüssel", owner: "Eigentümer-Berechtigungen", password_model: "Cloud Wallet (Digitale Brieftasche)", password_model_1: "Wenn Sie sich überal mit Ihrem Passwort anmelden wollen, können Sie diese Seite benutzen, um neue Schlüssel für Berechtigungen hinzuzufügen. Wenn Sie den orginalen Schlüssel entfernen wollen, ist dies unter den Aktiven/Besitzer Tab möglich.", password_model_2: "Ein Passwort generierter Schlüssel wird hinzugefügt", private: "Privater Schlüssel (WIF - Wallet Import Format)", public: "Öffentlicher Schlüssel", publish: "Speichern", remove_proxy: "Remove proxy", remove_text: "Entfernen", reset: "Zurücksetzen", save: "Änderungen speichern", save_all: "Alle Änderungen speichern", show: "Zeige", sign_owner: "Besitzzeichen", threshold: "Schwellwert", type: "Typ", use_text: "Benutze", valid_pub: "Gültiger Öffentlicher Schlüssel", warning1: "Aktive Erlaubnis Gewichtung von insgesamt %(weights_total)s, sollte gleich den Schwellwert von %(threshold)s oder größer sein.", warning2: "Eigentümer Berechtigungs Gewichtung von insgesamt %(weights_total)s, sollte gleich den Schwellwert von %(threshold)s oder größer sein.", warning3: "Konto ist schon in der Liste.", warning4: "Der Schlüssel befindet sich schon in der Liste.", weight: "Gewichtung" }, permissions: "Berechtigungen", please_create_account: "Bitte erstellen Sie ein Konto.", polo_scam: "Achtung, dies ist ein Betrügerkonto, das echte Poloniex-Konto heißt: poloniexwallet!", portfolio: "Portfolio", propose_from: "Vorschlagen von", qty: "Stk", quote: "Kursangabe", recent: "Letzte Aktivität", reset_orders: "Zurücksetzen", restore: "Wiederherstellen", search: "Suche ein Konto", see_open: "Betrachte offene Aufträge", select_placeholder: "Konto auswählen...", settle: "Verrechnen", show_hidden: "Versteckt", show_ignored: "Zeige versteckte Konten", show_visual: "Sichtbar", signedmessages: { automaticcreation: "Signierte Nachricht wird automatisch erstellt.", copysuccessful: "Signierte Nachricht wurde in die Zwischenablage kopiert.", copyunsuccessful: "Kopie der Nachricht ist gescheitert.", entermessage: "Nachricht hier eintragen!", errorverifying: "Ein Fehler ist bei der Überprüfung der Nachricht aufgetreten.", invalidformat: "Das Format der signierten Nachricht, kann nicht erkannt werden.", invalidkey: "Der private Schlüssel konnte nicht erlangt werden, ist der öffentliche Schlüssel richtig?", invalidsignature: "Der Inhalt dieser Nachricht konnte gegenüber der Signatur nicht validiert werden.", invaliduser: "Das Konto des Nachrichten Absenders ist nicht gültig.", keymismatch: "Der öffentliche Schlüssel des Absenders passt nicht zu der gespeicherten Ausführung.", menuitem: "Signierte Nachrichten", sign: "Signieren", signing: "Signierung, bitte warten Sie...", signmessage: "Nachricht signieren", title: "Signierte Nachrichten", verify: "Überprüfe", verifying: "Überprüfung, bitte warten Sie ...", verifymessage: "Nachricht überprüfen", verifyonchange: "Überprüfung während der Eingabe" }, start_typing_to_search: "Start typing to search for accounts", submit_orders: "Absenden", total: "Gesamt ({asset})", total_estimate: "Dies ist Ihr geschätzter Wert aller Anlagen, der alle versteckten Anlagen, offene Aufträge, Schulden und Sicherheiten beinhaltet. Die Schätzung wird mit Hilfe von live Blockchain Daten berechnet und ist dadurch natürlichen Schwankungen ausgesetzt.", total_value: "Gesamtwert", trade: "Handeln", transactions: { fee: "Fee", id: "Identifikation", info: "Info", time: "Zeit", type: "Art" }, transfer_actions: "Überweisungen", unfollow: "Entfolgen", unignore: "Einblenden", upgrade: "Konto erweitern", user_issued_assets: { add_feed: "Neue Preisquelle hinzufügen", advanced: "Fortgeschrittene", approx_fee: "Geschätze Gebühr", backing: "Sicherheit", base: "Basismenge", base_name: "Basisanlage", bitasset_opts: "SmartCoin Optionen", cer_warning_1: "Warnung", cer_warning_2: "Stellen Sie sicher, dass die Kernhandelsrate größer als der Marktpreis ist, ansonsten werden die Wertmarken vom Markt gekauft und der Gebührenspeicher durch den Preisunterschied geleert. Der Kernkurs sollte regelmäßig angepasst werden, um den Marktpreis Sorge zu tragen.", charge_market_fee: "Marktgebühren aktivieren", committee_fed_asset: "Erlaube dem Komitee einen Preis bereitzustellen", condition: "Bedingung max. 60 Zeichen:", conflict_feed: "Es ist nicht möglich gleichzeitig einen Zeugen- und ein Komiteemitglied als Preisangabe zu wählen.", core_exchange_rate: "Kernhandelsrate", current_issuer: "Aktueller Eigentümer", decimals: "Anzahl der Nachkommastellen", description: "Beschreibung", details: "Details", disable_confidential: "Verbiete vertrauliche Überweisungen", disable_force_settle: "Deaktiviere Zwangs-Verrechnung", error_invalid: "Diese Anlage wird nicht benutzt", error_precision: "Diese Anlage hat nicht die selbe Anzahl an Nachkommastellen als %(asset)s", error_too_deep: "Fehler, Wert zu niedrig!", exists: "Diese Anlage existiert bereits", expiry: "Ablaufdatum", feed_lifetime_sec: "Lebenszeit der Preisangabe in Minuten", feed_not_allowed_1: "Die Preisangabe kann nicht bei Anlagen von Zeugen- oder Komiteemitglieder geändert werden.", feed_not_allowed_2: "Bitte deaktivieren Sie den Schalter „Erlaube Zeugen einen Preis bereitzustellen“ und aktivieren „Erlaube Komitee einen Preis bereitzustellen“, damit die Preise manuell ausgewählt werden können!", feed_producers: "Preisquellen", flags: "Schalter", force_settlement_delay_sec: "Verzögerung der erzwungenen Verrechnung (Minuten)", force_settlement_offset_percent: "Prozentpunkte der Gegenrechnung bei der erzwungenen Verrechnung", global_settle: "Erlaube Herausgeber ein globale Verrechnung zu erzwingen.", id: "Identifikation", invalid_backing_asset_change: "Ungültige Änderung der Sicherheit", invalid_market_pair: "Die gewünschte Paarbildung ist beim gleichen Markt nicht möglich.", invalid_permissions_change: "Ungültige Erlaubnissänderung", issued_assets: "Herausgegebene Anlage", market: "Bevorzugte Markt Paarbildung", market_fee: "Marktgebühr", max_market_fee: "Max. Marktgebühr", max_positive: "Maximale Verfügbarkeit muss eine positive Zahl sein!", max_supply: "Maximale Verfügbarkeit", maximum_force_settlement_volume: "Max. Umsatz bei der erzwungenen Verrechnung (Prozent vom ganzen Angebot pro Stunde)", minimum_feeds: "Minimale Anzahl an Preisquellen", mpa: "SmartCoin", name: "Anlagen-Name", need_asset: "Zumindest eines der Anlage muss %(name)s sein.", new_issuer: "Neuer Herausgeber", optional: "Optionales", override_authority: "Herausgeber darf Anteile zurückholen.", perm_warning: "WARNUNG: Rechte können nur abgeschalten werden! Einmal abgeschalten, lassen Sie sich nicht reaktivieren!", pm: "Binärer Prognosemarkt", precision: "Genauigkeit", precision_warning: "Warnung: Die Anzahl der Nachkommastellen kann nachträglich nicht mehr geändert werden!", primary: "Primäreinstellungen", quote: "Kursangabe", quote_name: "Kursangabenname", reward_percent: "Reward percent", reward_percent_tooltip: "If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.", short: "Kurzer Name (max 32 Buchstaben)", symbol: "Symbol", to: "An Konto übergeben", too_large: "Die max. Verfügbarkeit ist zu groß, bitte wählen Sie eine kleinere Zahl!", too_many_feed: "Die Anzahl der Preisquellen hat den Maximalwert von (%(max)s überschritten).", transfer_restricted: "Herauseber muss alle Überweisungen genehmigen.", update_owner: "Eigentümer aktualisieren", update_owner_text: "Der Anlagenbsitzer kann den Eigentümer mit diesem Formular ändern:", visible: "Anlage von der Suche und dem Markt verstecken.", white_list: "Halter benötigen einen Eintrag auf der weißen Liste.", witness_fed_asset: "Erlaube Zeugen eine Preisquelle bereit zustellen." }, vesting: { balance_number: "Guthaben #%(id)s", explain: "Sperrfristguthaben beinhaltet alle Gebühren durch Empfehlungen oder Arbeitsbezahlungen. Dieses Guthaben hat eine bestimmte Zeitspanne, bis es verfügbar ist.", no_balances: "Dieses Konto hat kein zugesichertes Guthaben.", title: "Zusicherungen" }, votes: { about: "Über", active: "Aktiv (%(count)s)", active_short: "Aktiv", add_committee: "Hinzufügen", add_committee_label: "Mitglied des Komitees", add_witness: "Hinzufügen", add_witness_label: "Zeuge", already: "Konto ist schon in der Liste", approve_worker: "Budgetpunkt bestätigen", cast_votes_through_one_operation: "Cast your votes for witness, committee and workers and broadcast them together.", clear_proxy: "Stellvertreter entfernen", cm_approved_by: "Komitee Mitglied bestätigt durch %(account)s", cm_not_approved_by: "Komitee Mitglied nicht bestätigt durch %(account)s", committee: "Komitee Mitgliedsname", create_worker: "Lege einen neuen Arbeiter an", creator: "Besitzer", daily: "täglich", daily_pay: "Tagessold", end: "Enddatum", expired: "Abgelaufen", funding: "Auszahlend", go_proxy: "Zu Vertreter gehen", hide_legacy_proposals: "Hide Legacy Proposals", inactive: "Inaktiv", info: "Info", join_committee: "Join committee", join_witnesses: "Join Witnesses", line: "Linie", max_pay: "Maximaler Tagessold", missing: "Benötigt", name: "Name", new: "Vorgeschlagen (%(count)s)", no_proxy: "Kein Vertreter", polls: "BSIPs/Polls (%(count)s)", proxy: "Vertreter-Konto", proxy_current: "Ihr aktueller Vertreter ist", proxy_known: "Oder wählen Sie ein Konto als Ihren Vertreter", proxy_short: "Vertreter", publish: "Änderungen bekanntgeben", recycled: "Recycelt", reject_worker: "Budgetpunkt ablehnen", remove_committee: "Entfernen", remove_witness: "Entfernen", save_finish: "Abschließen durch ein Klicken auf Speichern", set_proxy: "Vertreter festlegen", start: "Start Datum", status: { neutral: "Neutral", rejected: "Kontra", supported: "Pro", title: "Status" }, support: "Unterstützung", supported: "Unterstützt", threshold: "Benötigte Stimmen für die Aktivierung", toggle: "Stimmschalter", total_budget: "Gesamtes Arbeiter-Budget", total_votes: "Gesamtstimmen", unclaimed: "nicht ausbezahlter Sold", unused_budget: "Ungenutztes Arbeiter-Budget", url: "Webseite", votes: "Stimmen", votes_against: "Gegenstimmen", w_approved_by: "Zeuge bestätigt durch %(account)s", w_not_approved_by: "Zeuge nicht bestätigt durch %(account)s", witness: "Zeugenname", worker_account: "Arbeiter-Konto", workers: "Budgetpunkte", workers_short: "Arbeiter" }, voting: "Abstimmung", welcome: "Willkommen", whitelist: { add: "Zur Weißliste hinzufügen", add_black: "Zur Schwarzliste hinzufügen", black: "Schwarzliste", black_by: "Schwarzgelistet durch", blacklist_authorities: "Schwarzlisten Verwalter", empty: "%(account)s hat keine Konten in seiner Weißliste.", empty_black: "%(account)s hat keine Konten in seiner Schwarzliste.", empty_black_by: "Keine Konten haben %(account)s schwarzgelistet.", empty_white_by: "Keine Konten haben %(account)s weißgelistet.", title: "Weißliste", white_by: "Weißgelistet durch", whitelist_authorities: "Weißlisten Verwalter", whitelist_market_fee_sharing: "Market fee sharing whitelist" } }, account_browsing_mode: { go_back: "Go back to my account", modal_description: "You're switching an account which you don't have active authority over. You can browse this account, but in view only mode", modal_title: "View Only Mode", never_show_again: "Never show again", view_mode: "View Mode", you_are_in_browsing_mode: "You're in view only mode of the current account. Click here to get back to your account." }, alert: { warning: "Warning" }, app_init: { browser: "Nicht unterstützter Browser", browser_text: "Ihr Browser ist unzureichend mit BitShares getestet worden. Wir empfehlen Ihnen, eine Sicherung Ihrer Wallet (digitale Brieftasche) durchzuführen und diese in den Chrome Browser zu importieren. Nutzen Sie Ihren Browser auf eigene Gefahr!", check_latency: "Ausführung von Latenztests ...", check_latency_feedback: "Führe Latenztests aus (%(pinged)s/%(totalToPing)s Knoten) ...", check_latency_feedback_country: "Latency check in best country (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_last: "Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_region: "Latency check in best region (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_rest: "Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_world: "Latency check in each region (%(pinged)s/%(totalToPing)s nodes)", connected: "verbunden", connecting: "Verbindung zum API Server: %(server)s", database: "Verbindung hergestllt, Initialisiere lokale Datenbank", not_connected: "Nicht verbunden", retry: "nocheinmal versuchen", title: "Initialisierungsfehler", understand: "Verstanden", ws_status: "Websocket Verbindungsstatus" }, assets: { BTS: "BTS is the core token of the BitShares Blockchain" }, boolean: { false: "falsch", true: "richtig" }, borrow: { adjust: "Position anpassen", adjust_short: "Anpassen", call_limit: "Markt Kauflimit", close: "Position schließen", coll_ratio: "Sicherheiten-Ratio", coll_ratio_target: "Ziel-Ratio", considered_on_revival: "Included", enable_target_collateral_ratio: "Zielsicherheiten-Ratio benutzen", errors: { below: "Sicherheiten-Ratio unter Aufrechterhaltungslevel", below_info: "Ihre Postition ist unterhalb der benötigten Sicherheiten-Ratio! Die Sicherheiten-Ratio kann nur erhöht werden und die Schuld nur verringert werden.", below_ratio_mcr_update: "Ihre Sicherheiten-Ratio ist unterhalb der orginal %(ocr)s. Nur eine Erhöhung der Ratio ist zulässig.", close: "Ihre Sicherheiten-Ratio ist in der Nähe von %(mr)s, dadurch besteht die Gefahr, dass bei einem Preisverfall Ihre Sicherheiten verkauft werden.", collateral: "Unzureichende Sicherheiten", increased_debt_on_margin_call: "Sie haben Ihre Schuld erhöht, was nicht zulässig auf den Sicherheitenverkauf ist." }, maximize_debt_set_ratio_slider: "Als erstes muss die Sicherheiten-Ratio festgelegt werden, bevor die Schuld maximiert werden kann.", no_valid: "Kein gültige Preisquelle für %(asset_symbol)s", pay_max_debt: "Bezahle max. Schulden", target_collateral_ratio: "Ziel Sicherheiten-Ratio", target_collateral_ratio_explanation: "When the position is being margin called, the corresponding order will be just big enough to bring the collateral ratio of the position greater or equal to the target collateral ratio", target_collateral_ratio_short: "TCR", title: "Sicherheiten Position für %(asset_symbol)s", update: "Aktualisieren", use_max: "Benutze Max" }, browser_notification_messages: { money_received_body: "Hat Ihnen %(amount)s %(symbol)s überwiesen", money_received_title: "Erhalten von %(from)s" }, cancel: "Abbrechen", connection: { automatic_reconnect: "Nach %(reconnect_in_seconds)s wird automatisch ein neue Verbindung hergestellt.", manual_ping: "Ping auf Knoten ausführen.", manual_reconnect: "Erneut verbinden", out_of_sync: "Ihre Verbindung ist seit %(out_of_sync_seconds)s Sekunden nicht mehr synchron.", title_out_of_sync: "Verbindung nicht mehr synchron", want_to_reconnect: "Wenn die Verbindung wiederhergestellt wird, verschwindet diese Meldung automatisch." }, counterpart: { formats: { date: { full: "%F %T %Z", market_history: "%e.%m %H:%M:%S", market_history_us: "%m/%e %H:%M:%S", short_custom: "%e %b '%y" } } }, dashboard: { featured_markets: "Ausgezeichnete Märkte", starred_markets: "Stern Märkte", table_empty: "Kein Marktübereinstimmung", top_markets: "Top Märkte" }, exchange: { add_quote: "Kursangabe hinzufügen", asks: "Briefkurse", atr: "Durchschnittliche echte Bandbreite", balance: "Guthaben", base_supply: "Basisverfügbarkeit", bids: "Geldkurse", borrow: "Leihen", borrow_short: "Leihen", buy: "Kaufen", buy_description: "Kaufe %(baseAsset)s %(baseName)s für %(quoteAsset)s %(quoteName)s", buy_min: "Mindestpreis Kaufen", buy_sell: "Kaufen/Verkaufen", buysell_formatter: "{Richtung} {Anlage}", call: "Kaufpreis", cancel_selected_orders: "Cancel selected order(s)", change: "Änderung", chart_height: "Chart Höhe (Pixel)", chart_hide: "Chart ausblenden", chart_modal: "Chart Optionen", chart_type: "Chart Arten", checking_for_worth_less_settlement: "Prüfe einen kleineren Wert für die Verrechnung", confirm_buy: "Ihr Auftrag ist um das %(diff)s-fache größer als der niedrigste Geldkurs, sind Sie sicher?", confirm_no_orders_buy: "Sie geben einen Kaufauftrag in einem Markt mit keinen offenen Verkaufsaufträgen ab. Sind Sie sicher vortzufahren?", confirm_no_orders_sell: "Sie geben einen Verkaufsauftrag in einem Markt mit keinen offenen Kaufaufträgen ab. Sind Sie sicher vortzufahren?", confirm_sell: "Ihr Auftrag ist um das %(diff)s-fache niedriger als der höchste Auftrag, sind Sie sicher?", core_rate: "Kernrate", custom_quote: "Eine eigene Kursangabe hinzufügen.", deposit: "Einzahlen", description: "Beschreibung", ema: "Exponentiell gleitender Mittelwert", featured: "Top Märkte", feed_price: "Preisangabe", filter: "Suchen ...", flip: "Vertauschen", global_settle: "Global Settlement", group_order_limit: "Gruppe", hide: "Verstecken", highest_bid: "Höchster Geldkurs", history: "Marktverlauf", horizontal: "Horizontal", index: "Index", invalid_amount: "Ungültiger Betrag", invalid_price: "Ungültiger Preis", invert: "Preis invertieren", latest: "Letzer Preis", limit: "Limit", lowest_ask: "Günstigster Briefkurs", maintenance: "Benötigter Kaufpreis", market: "Markt", market_depth: "Market Depth", market_frozen: "Der Eigentümer von %(asset)s hat das Handeln in diesem Markt deaktiviert.", market_name: "Meine Märkte", market_picker: { filter_by_issuer: "Durch Herausgeber filtern", find_by_asset: "Anlagen Eingabe", results: "Ergebnis (%(total_assets)s)", search: "Anlagenname", search_for_asset: "Suchen nach Anlage", search_mode: "Modus", show_all: "Alle anzeigen", sub_title: "Neue Anlagen finden für", title: "Marktgreifer", use: "Benutzen" }, more: "Alle Märkte", move_down: "Nach unten bewegen", move_up: "Nach oben bewegen", my_asks: "Meine Briefkurse", my_bids: "Meine Geldkurse", my_history: "Mein Verlauf", my_orders: "Meine offenen Aufträge", native: "Native", new: "Neu", no_asks: "keine Briefkurse", no_balance: "Ungenügendes Guthaben", no_bids: "Keine Geldkurse", no_data: "Keine Daten", no_orders: "Keine Aufträge", order_book: "Auftragsliste", order_depth: "Ordertiefe", order_grouping: "Auftragsgruppierung", others: "Andere", overbought: "Überkauft", oversold: "Überverkauft", panels_mirror: "Spiegel", period: "Zeitspanne (Tage)", price: "Preis", price_alert: { add_rule: "add rule", alert_when: "Alert me when", higher_than: "Higher Than", lower_than: "Lower Than", notification: { higher_than: "The price of %(pair)s rose higher than %(expectedPrice)s and now is %(actualPrice)s", lower_than: "The price of %(pair)s fell lower than %(expectedPrice)s and now is %(actualPrice)s" }, price: "Price", title: "Price Alert", use_button: 'Use "add rule" button to create price alert for ' }, price_history: "Preisverlauf", price_market: "Marktpreis", quantity: "Quantität", quick_deposit: "Einzahlen", quick_deposit_bridge: "Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s", quick_deposit_bridge_button: "Use a Bridge", quick_deposit_gateway: "Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway", quick_deposit_gateway_button: "Use a Gateway", quick_deposit_tooltip: "Deposit %(asset)s, click to open options", quote: "Währung zur Kursangabe:", quote_selection: "Ändere Kursangabe", quote_supply: "Verfügbarkeit von Kursangaben", receive: "Empfangen", remove: "Entfernen", rsi: "Relativer Stärke Index", scaled: "Scaled", search: "Für mehr Märkte hier suchen", sell: "Verkaufen", sell_description: "Verkaufe %(baseAsset)s %(baseName)s für %(quoteAsset)s %(quoteName)s", settings: { header: { chart_options: "Chart options", general: "General", order_options: "Order Options", panel_grouping: "Panel Grouping", title: "Personalize" }, options: { grouping_1: "Group 1", grouping_2: "Group 2", grouping_standalone: "Standalone", hidden_chart: "Hide chart", horizontal: "Horizontal", position_order_asset_opt1: "Orders above Asset", position_order_asset_opt2: "Asset above Order", position_order_form_opt1: "Buy - Sell", position_order_form_opt2: "Sell - Buy", position_order_orders_opt1: "Buy - Sell", position_order_orders_opt2: "Sell - Buy", vertical: "Vertical" }, title: { chart_height: "Height", chart_tools: "View Tools", chart_type: "Type", chart_zoom: "Allow Zoom", hide_function_buttons: "Hide function buttons", market_location: "Market location", market_trades: "Market Trades", my_trades: "My Trades", open_orders: "Open Orders", order_book_grouping: "Order Book Grouping", order_style: "Style", orderbook_auto_scroll: "Auto scroll", position_order_asset: "Vertical Orders / Asset", position_order_form: "Buy/Sell Asset", position_order_orders: "Buy/Sell Orders", reduce_scrollbars: "Reduce Scroll Bars", reverse_order_book: "Reverse Order Book", settlements: "Settlements", single_colum_order_form: "Single Column Order Form" }, tooltip: { chart_height: "Define the height of the charts", chart_reload: "Changing this setting will reload the chart", chart_tools: "Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.", chart_type: "Switch between market depth and price charts, or disable charts", chart_zoom: "Allow chart zooming. Zooming is always disabled in tiny screen.", decrease_chart_height: "Decrease the height of the chart", hide_function_buttons: "Hide all buttons that can be managed within the personalize form", increase_chart_height: "Increase the height of the chart", market_location: "Which side to pin the vertical order book on. This will switch place with market panel", market_trades: "", my_trades: "", open_orders: "", order_book_grouping: "Group orders which are close together by a defined percentage", order_style: "Use vertical order book to pin it to the side panel", orderbook_auto_scroll: "Auto scroll the order book to keep center as new orders come in. Disable to allow scrolling", panel_grouping: "Define panel grouping", position_order_asset: "Define the vertical order for the order form vs order book", position_order_form: "Define the horizontal order for the order form", position_order_orders: "Define the horizontal order for the order book", reduce_scrollbars: "Disable scroll bars by default", reload: "Changing this option will only affect after manually reloading", reverse_order_book: "Reverse order book to have buy orders on top", settlements: "", show_market_depth: "Zeige Markttiefe", show_price_chart: "Zeige Preisübersicht", single_colum_order_form: "Enforce that Price, Quantity, Total, etc. are in one column (not floating)" } }, settle: "Verrechnungs-Preis", settle_better_marketprice: "Market price is in favour", settle_better_settleprice: "Settlement price is in favour", settle_delay: "This asset will settle in %(hours)s hours", settle_delay_globally_settled: "This asset will settle instantly", settle_globally_settled: "Settle instantly", settle_globally_settled_tooltip: "This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)", settle_offset: "Settlement price offset: %(offset)s%", settle_orders: "Verrechnungs-Auftrag", settlement_hint: "You are attempting to settle {long}. Current price of {market_link}", short: "Short", show_all_orders: "Alle Aufträge zeigen", show_all_trades: "Alle Geschäfte zeigen", show_asks: "Briefkurse zeigen", show_bids: "Geldkurse zeigen", show_only_liquid: "Nur liquide Märkte zeigen", show_only_star_formatter: "Nur {star_icon} zeigen", sma: "Einfach gleitender Mittelwert", spread: "Spreizung", squeeze: "Sicherheiten Verkaufspreis", time: "Zeitintervall", to_market: "Gehe zum Markt", total: "Gesamt", trading_pair: "Handelspaar", value: "Wert", vertical: "Vertikal", vol_short: "Vol", volume: "Volumen", volume_24: "24h-Volumen", worth_less_settlement_warning: "The current market price of {market_link} is higher than settle price", your_price: "Ihr Preis", zoom: "Vergrößern", zoom_all: "Alle anzeigen" }, explorer: { account: { title: "Konto" }, accounts: { filter: "Konten filtern", filter_contacts: "Kontakte filtern", title: "Konten" }, asset: { actions: "Anlage Aktionen", collateral: { bid: "Bid Collateral", bid_price: "Bid price", bid_text: "Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.", remove_bid: "A bid can be removed by placing a zero collateral bid." }, collateral_bid: { bid: "Bid Price", collateral: "Additional Collateral", debt: "Debt Covered", included: { no: "No", partial: "Partially", yes: "Yes" }, title: "Collateral Bids" }, cumulative: "Cumulative", fee_pool: { claim_balance: "Gebührenguthaben einfordern", claim_fees: "Gebühren einfordern", claim_pool_text: "Der Eigentümer der Anlage kann mit diesem Formular Kapital vom Gebührenspeicher abheben:", claim_text: "Der Anlagen-Herausgeber kann die zusammengetragenen Anteile hier beanspruchen", core_exchange_rate: "Kernhandelsrate", fund: "Gebührenspeicher finanzieren", fund_text: "Der Gebührenspeicher wird dazu genutzt Gebühren in %(core)s, durch einen Umtausch von %(asset)s in %(core)s, zu finanzieren. Sollte der Gebührenpool trocken liegen, können Gebühren nicht länger in %(asset)s, sondern nur noch in %(core)s, bezahlt werden.", pool_balance: "Poolguthaben", pool_text: "Der Gebührenspeicher wird dazu genutzt Gebühren in %(core)s, durch einen Umtausch von %(asset)s in %(core)s, zu finanzieren. Sollte der Gebührenpool trocken liegen, können Gebühren nicht länger in %(asset)s, sondern nur noch in %(core)s, bezahlt werden.

    Die Kernhandelsrate ist der Preis zu der %(asset)s in %(core)s getauscht werden.", title: "Gebührenpool", unclaimed_issuer_income: "Nicht ausgezahlte Herausgeberanteile" }, feed_producer: "Preiangaben Erzeuger", feed_producer_text: "Genehmigte Preisangaben Erzeuger, können mit diesem Formular neue Quellen hinzufügen:", info: "Anlagen Info", invalid: "Der Anlagenname %(name)s ist ungültig", margin_positions: { click_to_switch_to_cumulative: "Click to switch to cumulative sum of the columns.", ratio_danger: "Position is below MCR and will be margin called", ratio_warning: "Position is near MCR and in danger of being margin called", title: "Sicherheiten Positionen" }, not_found: "Die Anlage %(name)s existiert nicht", permissions: { accounts_in_whitelist_market_fee_sharing: "Accounts included in Market fee sharing whitelist", blacklist_authorities: "Authoritäten der Schwarzliste", blacklist_markets: "Schwarzgelistete Märkte", max_market_fee: "Maximale Marktgebühr", max_supply: "Maximale Verfügbarkeit", title: "Befugnisse", whitelist_authorities: "Authoritäten der Weißliste", whitelist_markets: "Weißgelistete Märkte" }, price_feed: { external_feed_price: "Feed price (median of witness feeds)", feed_lifetime: "Feed lifetime (hours)", feed_price: "Feed price", global_settlement_price: "Globaler Verrechnungspreis", maintenance_collateral_ratio: "Benötigte Sicherheiten-Ratio", maximum_short_squeeze_price: "Maximum short squeeze price (MSSP)", maximum_short_squeeze_ratio: "Maximales short squeeze Verhältnis", min_feeds: "Minimum feeds", settlement_price: "Verrechnungs-Preis", title: "Preisangabe" }, price_feed_data: { core_exchange_rate: "CER", feed_price: "Feed price", maintenance_collateral_ratio: "MCR", maximum_short_squeeze_ratio: "MSSR", published: "Veröffentlicht", publisher: "Herausgeber", settlement_price: "Verrechnungs-Preis", title: "Preisquellen Daten" }, settlement: { current_settled: "Already settled supply", delay: "Delay", force_settlement: "Force Settlement", gs_auto_revive_price: "Auto Revive Price (without/with bids)", gs_collateral_valuation: "Collateral Valuation (with bids)", gs_description: "Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.", gs_included_on_revival: "Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.", gs_or: "or", gs_place_bid: "click here to place a bid", gs_revert: "Reviving", gs_revive: "Asset will be revived automatically if auto revive price (bids included) is greater than feed price or all debt is force settled", gs_see_actions: "see Asset actions", max_settle_volume: "Max. settlement volume each maintenance period", offset: "offset included", price: "Price", settle_remaining_volume: "Remaining settleable volume", settlement_funds: "Settlement Funds", settlement_funds_collateral_ratio: "Settlement Fund Collateral Ratio", settlement_price: "Settlement Price", title: "Settlement" }, summary: { asset_type: "Anlage-Typ", current_supply: "Aktuelle Verfügbarkeit", issuer: "Herausgeber", market_fee: "Marktgebühr", market_fee_referral_reward_percent: "Market fee referral reward", stealth_supply: "Stealth Verfügbarkeit" }, title: "Anlagen", whitelist: { blacklist_authorities: "Schwarzlisten Bevollmächtigte", blacklist_markets: "Markt Schwarzliste", enable_flag: "Der Weißlistenschalter muss aktiviert werden, damit Bevollmächtigte eingetragen werden können", market_fee_enable_flag: "The market fee flag must be enabled in order to set whitelist", whitelist_authorities: "Weißlisten Bevollmächtigte", whitelist_market_fee_sharing: "Market fee sharing whitelist", whitelist_markets: "Markt Weißliste" } }, assets: { backing_asset: "Backing asset", id: "Identifikation", issuer: "Herausgeber", market: "SmartCoins", precision: "Genauigkeit", prediction: "Prognosemärkte Anlage", symbol: "Symbol", title: "Anlage", units: "Einheiten", user: "Benutzer veröffentlichte Anlage" }, block: { account_upgrade: "Kontoerweiterung", asset_issue: "Zu emittierender Betrag", asset_update: "zu aktualisierende Anlage", authorizing_account: "Kontovollmacht", call_limit: "Kauf-Limit", common_options: "Allgemeine Optionen", count: "Transaktionszähler", date: "Datum", fee_payer: "Gebührenkonto", feed_price: "Preisangabe", go_to: "Gehe zu Block", id: "Block Identifikation", key: "Öffentlicher Schlüssel", lifetime: "Lebenslanges Mitglied werden", listed_account: "Kontenübersicht", max_margin_period_sec: "Max Sicherheiten Dauer (s)", new_listing: "Neuer Eintrag", new_options: "Neue Option", new_producers: "Neue Preisquelle", next_secret: "Hash des nächsten Geheimnisses", op: "Aktion", op_type: "Aktionstyp", previous: "Vorherige", previous_secret: "Vorheriges Geheimnis", settlement_price: "Verrechnungs-Preis", short_limit: "Short-Limit", time: "Zeit", title: "Block", transactions: "Anzahl der Transaktionen", trx: "Transaktion", witness: "Zeuge" }, blocks: { active_committee_members: "Aktive Kommittee-Mitglieder", active_witnesses: "Aktive Zeugen", avg_conf_time: "mittlere Bestätigungszeit", block_time: "Block-Zeit", block_times: "Block-Zeiten", current_block: "Aktueller Block", globals: "Globale Einstellungen", last_block: "Letzter Block", recent: "Letzte Blöcke", recently_missed_blocks: "kürzlich verpasste Transaktionen", title: "Blockchain", transactions: "# an Transaktionen", trx: "Transaktion", trx_per_block: "Trx/Block", trx_per_sec: "Trx/s" }, committee_member: { title: "Kommitteemitglied" }, committee_members: { active: "Gesamtzahl aktiver Komiteemitglieder", title: "Komiteemitglieder" }, fees: { fee: "Standartgebühr", feeeq: "(äquivalent)", feeltm: "Gebühr mit lebenslanger Mitgliedschaft", feeltmeq: "(äquivalent)", type: "Gebührentyp" }, proposals: { authority_depth_warning: "Dieser Antrag wird nicht angenommen werden, weil die benötigten Befugnisse nicht ausreichen.", children_authority_depth_warning: "Dieser Antrag wird nicht angenommen werden, weil die benötigten Befugnisse nicht ausreichen.", failed: "Gescheitert", failed_execute: "Angenommen, jedoch gescheitert bei der Ausführung.", no_reason_available_switch_node: "Reason of failure is available with core release >=3.1.0, please switch your node.", pending: "Schwebend", pending_approval: "Schwebende Annahme.", pending_review: "Angenommen, aktuell im Bewertungszeitraum", review: "In der Bewertung", title: "Vorschlag" }, witnesses: { budget: "Übriges Budget", card: "Kartenansicht", current: "Aktueller Zeuge", filter_by_name: "Nach Name filtern", last_confirmed: "Zuletzt bestätigt", missed: "Verpasste Blöcke", next_vote: "Aktualisierung der Stimmen", participation: "Beteiligungsrate", pay: "Bezahlung pro Block", rank: "Rang", table: "Tabellenansicht", title: "Zeugen" }, workers: { create: "Einen neuen Arbeiterantrag erstellen", create_text_1: "Um einen neuen Arbeiter zu erstellen, muss das nächste Formular ausgefüllt werden. Dieser Arbeiter wird durch Ihren Bitshares Account erstellt, eine lebenslange Mitgliedschaft ist hierfür notwendig.", create_text_2: "Wählen Sie die Parameter sorgfältig, da diese nachträglich nicht mehr geändert werden können, nachdem der Arbeiter abgeschickt worden ist!", daily_pay: "Tägliche Auszahlung (BTS)", date_text: "Der Starttermin sollte mindestens zwei Wochen in der Zukunft liegen. Dadurch wird den Leute genügend Zeit gegebe, um den Arbeiter zu entdecken, bewerten und abzustimmen.", name_text: "Der Name des Arbeiters sollte kurz, prägnant und in der Form „Arbeiter Zweck - Kontoname“ sein.", pay_text: "Die tägliche Bezahlung wird in BTS pro Tag festgelegt. Die beste Vorgehensweise ist aktuell den BTS-Preis in EUR oder Dollar umzurechnen und bei einem Preisanstieg den Überschuss zurückzugeben. Solanger der Arbeiter aktiv ist und genügend Stimmen oberhalb der Rückerstatungsschwelle hat, wird diese Anzahl an BTS pro Tag ausgezahlt.", period: "Arbeiter Laufzeit", title: "Budgetpunkte", url_text: "Sie sollten eine Wesbseite, ein Github Dokument oder ein Google Dokument bereitstellen, das im Detail den Zweck des Arbeiters und der Verwendung der Bezahlung beschreibt.", vesting_pay: "Bezahlungsanspruchsdauer (Tage)", vesting_text: "Die Sperrfristguthabendauer deffiniert die Anzahl der Tage bis die Arbeiterbezahlung vollständig eingefordert werden kann.", website: "Webseite" } }, fees: { title: "Gebühren" }, footer: { advanced_settings: "Fortgeschrittene Einstellungen", backup: "Eine Sicherung ist erforderlich!", block: "Spitzenblock", brainkey: "Sicherung des Gedächtnisschlüssels wird empfohlen.", connected: "Verbunden", connection: "Keine Blockchain Verbindung", disconnected: "Getrennt", latency: "Latenzzeit", loading: "Lade ...", nosync: "Dein Verbindungsknoten ist nicht mehr synchron.", synced: "Synchronisiert", title: "BitShares", unsynced: "Keine Synchronisation", update_available: "Aktualisierung verfügbar" }, gateway: { add_funds: "Schnell und Einfach Kapital zu Ihren Bitshares Konto %(account)s hinzufügen. Dieser Service wird durch OpenLedger bereitgestellt.", address: "Adresse", address_with_memo: '%(address)s mit Notitz %(memo)s', agreement: { hint: "Ich habe das gelesen und stimme zu", name: "《Dienstleistungsvereinbarung》", notice: "Bitte überprüfen Sie die Vereinbarung um fortzufahren!", register: "Zustimmen" }, asset: "Anlage", asset_search_deposit: "Eine Anlage zum Einzahlen suchen", asset_search_withdraw: "Eine Anlage zum Auszahlen suchen", asset_to_deposit: "Anlage zur Einzahlung:", asset_to_receive: "Sie werden erhalten:", asset_to_withdraw: "Anlage zur Auszahlung:", asset_unavailable: "Das Gateway für %(asset)s ist nicht in Betrieb", assets: { bit: "bit%(asset)s ist ein Derivat, das den echten Wert von %(backed)s verfolgt. Es ist 100% dezentralisiert, benötigt kein Vertrauen und wird durch eine Sicherheit auf der Blockchain in einem Smart Contrakt hinterlegt.", bitcny: "bitCNY kann 1:1 zum echten Yuan ein- oder ausbezahlt werden, indem die Gateway des Magic Wallet Dienstes benutzt wird. Mehr Informationen auf https://www.magicw.net/", bridge: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch CryptoBridge bereitgestellt", gdex: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch Gdex bereitgestellt", open: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch OpenLedger bereitgestellt", rudex: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch Rudex bereitgestellt", trade: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch Blocktrades bereitgestellt", win: "", xbtsx: "Die %(asset)s Anlage ist 1:1 durch echte %(backed)s hinterlegt und kann ein- oder ausgezahlt werden. Der Gateway-Dienst wird durch XBTS bereitgestellt" }, balance: "Guthaben", balance_asset: "Aktuelles %(asset)s Guthaben", bitkapital_receive: "Sie werden erhalten:", bitkapital_text: "Wähle eine Anlage zum ein- oder auszahlen:", bitkapital_withdraw: "Auszahlung", bitspark: { support_block: 'For DEPOSIT AND WITHDRAWAL issues using "BitSpark TRANSFER SERVICE", please contact BitSpark at:' }, bridge: "Brücke", bridge_text: "Eine Brücke (Gateway) lässt Ihnen eine Anlage in eine andere tauschen, zum Beispiel BTC in BTS.", calc: "Berechnung", choose_deposit: "Bitte wählen Sie die Münznen, die Sie einzahlen wollen!", choose_withdraw: "Bitte wählen Sie die Münznen, die Sie auszahlen wollen!", citadel: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact citadel.li at:", under_construction: "Under Construction" }, contact_TRADE: "Kontakt Blocktrades", convert: "Interner Wechselkurs", convert_coin: "Tausche in %(coin)s (%(symbol)s)", convert_now: "Jetzt tauschen", copy_address: "Adresse kopieren", copy_memo: "Notitz kopieren", deposit: "Einzahlung", deposit_address: "Einzahlungsadresse", deposit_from_wallet: "Einzahlung von Wallet", deposit_history_status: { confirming: "Einzahlung bestätigen", fail: "gescheitert", success: "erfolgreich", transfering: "Übertragung", waiting: "Warte für die Einzahlung" }, deposit_inst: "Einzahlungsanweisungen", deposit_limit: "Einzahlungslimit", deposit_notice_delay: "(Neue Adresse kann alle 5 Minuten erstellt werden)", deposit_summary: "Einzahlung Zusammenfassung", deposit_to: "Einzahlen auf", deposit_warning: "Das schicken von einer anderen Währung als %(asset)s zu dieser Adresse führt zum Verlust deiner Einzahlung", deposit_warning_memo: "Einzahlung von %(asset)s muss eine Notitz aufweißen, ansonsten wird es nicht gutgeschrieben", fee: "Gateway-Gebühr", fiat: "Fiatwährung", fiat_text: "Hinweis: Fiat Gateways sind geschlossen, bis auf einen weiteren Hinweis. Entschuldigung für die Unannehmlichkeit. Bitte folgen Sie unsere letzten Neuigkeiten und Aktualisierung hier blog.openledger.info!", frozen: "Das Benutzerkonto %(account)s war eingefroren.", gateway: "Gateway", gateway_text: "Auswahl für Einzahlung oder Auszahlung hier:", generate: "Generieren", generate_new: "Neue Adresse anfordern", generate_new_memo: "Neue Notitz anfordern", iban: "IBAN", info: "Info", intermediate: "Zwischenglied Konto", inventory: "Inventar", limit: "Limit: %(amount)s %(symbol)s", limit_withdraw_asset: "Min: %(min)s, Max: %(max)s", limit_withdraw_asset_max: "Maximale Auszahlung: %(min)s %(coin)s", limit_withdraw_asset_min: "Minimale Auszahlung: %(min)s %(coin)s", limit_withdraw_asset_none: "Keine", memo: "Notitz", meta: { open_website: "Webseite öffnen" }, min_deposit_warning_amount: "Minimale Einzahlung: %(minDeposit)s %(coin)s", min_deposit_warning_asset: "WICHTIG: Schicken Sie nur %(coin)s zu dieser Adresse. Geringere Einzahlung als %(minDeposit)s %(coin)s oder eine andere Währung an diese Adresse, führt zum Verlust der Einzahlung.", over_limit: "Limit erreicht", phase_out_warning: "Warnung vor Auslauf der Anlage!", please_generate_address: "Bitte, eine neue Adresse anfordern!", purchase: "Kauf von %(asset)s", purchase_1: "Schnell und einfacher Kauf von %(outputAsset)s durch die Einzahlung von %(inputAsset)s aus einer externen Wallet. Diese Dienstleistung wird Ihnen durch Blocktrades zur Verfügung gestellt.", purchase_notice: "%(inputAsset)s zu dieser Adresse gesendet erscheinen als %(outputAsset)s.", purchase_notice_memo: "Notitz erforderlich zur richtigen Weiterleitung Ihres Kontos.", receive_account: "Annahme Konto:", recent_deposit: "Kürzliche Einzahlungen", recent_withdraw: "Kürzliche Auszahlung", rudex: { coming_soon: "Kommt bald ...", min_amount: "Minimaler Betrag: %(minAmount)s %(symbol)s", min_amount_error: "Bitte geben Sie eine Zahl ein >= Minimum!", support_block: "Für Ünterstützung kontaktieren Sie RuDEX unter:", under_construction: "In Arbeit" }, scan_qr: "QR-Code einlesen", service: "Gateway ", status: "Status", support_block: 'Für Einzahlung- oder Auszahlungsprobleme durch die Benutzung von "OpenLedger Gateway", bitte kontaktieren Sie OpenLedger unter:', support_gdex: "Für Unterstützung bitte kontaktieren Sie GDEX", symbol: "Symbol", time: "Zeit", title: "Einzahlung & Auszahlung", transaction_history_info: " %(amount)s %(assetName)s mit Transaktions ID: %(txid)s ", unavailable: "Die Gatewaydienstleistung für diese Anlage ist gerade außer Betrieb, bitte versuchen Sie es später noch einmal.", unavailable_CITADEL: "The Citadel Bridge is down or not responding", unavailable_OPEN: "Das OpenLedger Gateway ist außer Betrieb oder antwortet nicht.", unavailable_RUDEX: "Das RuDEX Gateway ist außer Betrieb oder antwortet nicht.", unavailable_TRADE: "Das Blocktrades Gateway ist außer Betrieb oder antwortet nicht.", unavailable_bridge: "Die Gatewaydienstleisung für diese Anlage ist im Moment außer Betrieb, bitte versuchen Sie es später noch einmal!", use_copy_button: "BITTE BENUTZEN SIE DEN KOPIER-KNOPF ZUM KOPIEREN VON ADRESSE UND NOTITZ!", user_unavailable: "Benutzerinformation ist im Moment nicht verfügbar, bitte versuchen Sie es später noch einmal!", valid_address: "Bitte geben Sie eine gültige %(coin_type)s Adresse ein!", website: "Webseite besuchen", withdraw: "Auszahlung", withdraw_coin: "Auszahlung von %(coin)s (%(symbol)s)", withdraw_funds: "Sie werden Kapital von Ihren Bitshares Konto zu Ihren externen Konto %(asset)s auszahlen.", withdraw_history_status: { audited: "Prüfung abgeschlossen", auditing: "Prüfung der Auszahlung", confirming: "bestätigt", fail: "gescheitert", refused: "Prüfung gescheitert", success: "erfolgreich", transfering: "Übertragung" }, withdraw_inst: "Auszahlungsanweisungen", withdraw_now: "Jetzt auszahlen", withdraw_placeholder: "Bitte geben Sie Ihre %(asset)s Adresse ein", withdraw_summary: "Auszahlungsübersicht", withdraw_to: "Drücken Sie denn Knopf unterhalb, um eine Anlage auszuzahlen.", xbtsx: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact XBTS at:", under_construction: "Under Construction" }, your_account: "Ihr Konto" }, global: { cancel: "Abbrechen", close: "Close", confirm: "Bestätigen", field_type: { account: "account" }, help: "Hilfe", not_found: "Not found", return_to_top: "Nach oben", scan_qr_code: "QR-Code einlesen", set: "Set" }, header: { account: "Konto", account_notify: "Das aktive Konto ist jetzt %(account)s", account_value: "Kontowert", accounts_manage: "Konten verwalten", collateral_ratio: "Sicherheiten-Ratio", create_account: "Konto erstellen", create_asset: "Anlage erstellen", current: "Aktives Konto", dashboard: "Übersicht", "deposit-withdraw": "Einzahlung/Auszahlung", deposit_legacy: "or Legacy Deposit", exchange: "Börse", explorer: "Explorer", help: "Hilfe", lock: "Sperren", lock_short: "gesperrt", locked_tip: "Wallet (digitale Brieftasche) ist gesperrt. Zum Entsperren klicken.", logout: "Abmelden", payments: "Transaktionen", payments_legacy: "Senden (überholt)", settings: "Einstellungen", showcases: "Spotlight", title: "BitShares Benutzeroberfläche", unlock: "Entsperren", unlock_password: "Anmeldung mit einem Passwort", unlock_short: "Anmeldung", unlocked_tip: "Wallet (digitale Brieftasche) ist entsperrt. Zum Sperren klicken.", update_asset: "Anlage ändern", withdraw_legacy: "or Legacy Withdraw" }, htlc: { claim_period: "Seconds to claim", claim_period_due: "Claimable until", id: "HTLC id", preimage: "Preimage", preimage_explanation: "The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC", preimage_hash: "Preimage hash", preimage_hash_explanation: "The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: '(, ): '", redeemer: "Redeemer", seconds_to_add: "Add seconds to claim period", update_issuer: "Update issuer" }, icons: { adjust: "Stelle eine Sicherheitenpostion ein.", assets: "Anlagen", checkmark_circle: { approved: "Genehmigt", operation_succeed: "Ausführung war erfolgreich.", yes: "Ja" }, chevron_down: { gateways: "Mehr Gateways anzeigen.", other: "Mehr Punkte anzeigen.", transactions: "Mehr Transaktionen anzeigen." }, clippy: { copy: "In die Zwischenablage kopieren.", withdraw_full: "Das volle Guthaben auszahlen." }, clock: "Bitte überprüfen Sie Ihre Uhrzeit am Computer!", cog: "Einstellungen", cogs: "Einstellungen", connect: "Verbindung mit diesen API Knoten:", connected: "API Knoten ist verbunden.", cross_circle: { cancel_order: "Auftrag abbrechen", close_position: "Position schließen", hide_asset: "Verstecke Anlage", hide_market: "Verstecke Markt", operation_failed: "Ausführung gescheitert", remove: "Entfernen" }, dashboard: "Dashboard", "debug-report": "Report your error log console, or create a screenshot", deposit: { deposit: "Einzahlen", deposit_withdraw: "Einzahlen/Auszahlen" }, disconnected: "API Knoten ist nicht verbunden.", dollar: { borrow: "Leihen", buy: "Kaufen" }, download: "Laden Sie eine neue Version der Bitshares Benutzeroberfläche herunter", excel: ".csv herunterladen", eye: "Verbindungsknoten verstecken", "eye-striked": "Verbindungsknoten zeigen", fees: "Gebühren", fi_star: { account: "Konto von den Favoriten hinzufügen/entfernen", market: "Markt von den Favoriten hinzufügen/entfernen", sort_accounts: "Nach Favoriten sortieren", symbol: "Symbol von den Favoriten hinzufügen/entfernen" }, filter: "Filter", folder: "Konten", hamburger: "Menü öffnen", hamburger_x: "Menü schließen", hourglass: "Guthaben einfordern", info_circle_o: "Info", key: "Schlüssel", list: "Weißliste", locked: { action: "Klicken, um Ihr Konto für diese Aktion zu entsperren.", common: "Klicken, um Ihr Konto zu entsperren.", enable_auto_scroll: "Automatisches Scrollen aktivieren." }, manage_accounts: "Konten verwalten", minus_circle: { disapproved: "Abgelehnt", no: "Nein", remove_contact: "Kontakt von der Liste entfernen.", wrong_address: "Adresse konnte nicht generiert werden." }, news: "Neuigkeiten", order_grouping: "Order Grouping Active", plus_circle: { add_contact: "Kontakt zur Liste hinzufügen", show_asset: "Anlage zeigen", show_market: "Markt zeigen" }, power: "Einloggen", question_circle: "Hilfe", reverse_orderbook: "Reverse orderbook", server: "Erkunden", settle: "Verrechnen", share: "Über", shuffle: "Handelspaare tauschen", text: { membership_stats: "Mitgliedschaftsstatistik", signed_messages: "Signierte Nachrichten" }, thumb_tack: "Pin panel to the side", thumb_untack: "Leiste lösen", thumbs_up: "Abstimmung", times: "Entferne API Knoten", trade: { exchange: "Börse", trade: "Handeln" }, transfer: "Überweisung", unlocked: { common: "Klicken, um Ihr Konto zu sperren.", disable_auto_scroll: "Automatisches Scrollen deaktivieren" }, user: { account: "Konto", create_account: "Konto erstellen", following: "Sie folgen diesen Benutzer:" }, warning: "Berechtigungen", withdraw: "Auszahlung", zoom: "Suchen" }, incognito: { mode: "Privat/Inkognito:", warning: "WARNUNG: Wenn Sie den Browser schließen ohne Ihr Wallet (digitale Brieftasche) vorher zu sichern, verlieren Sie diese Konto un­wi­der­ruf­lich!" }, languages: { de: "Deutsch", en: "English", es: "Español", fr: "Français", it: "Italiano", ja: "日本語", ko: "한국어", ru: "Русский", tr: "Türkçe", zh: "简体中文" }, login: { browseFile: "browse your files", browseFileLabel: "Browse your backup file", dropFile: "Drop your backup file in this area or ", invalidFormat: "Invalid format!", loginButton: "Login", selectDifferent: "Select different file", supportWarning: "Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup.", title: "Select Login Type", withoutBinFile: "I don't have .bin-file" }, markets: { base: "Basisanlage", core_rate: "Kernrate:", filter: "Filter", market_search: "Markt Suche", preferred: "Bevorzugte Märkte", search: "Suche", supply: "Verfügbarkeit", title: "Märkte" }, migration: { announcement_1: "Damit für die webbasierte Wallet (digitale Brieftasche) die Sicherheit gewährleistet werden kann, wird diese sofort auf die untere Adresse übertragen. Bitte stellen Sie sicher alle Lesezeichen zu aktualisieren!", text_1: "Lokale Wallet (digitale Brieftasche) entdeckt", text_2: "Bitte sichern Sie Ihre Wallet jetzt und stellen Sie die Sicherung auf https://wallet.bitshares.org, wieder her, was Ihre neue Adresse für die Cloud Wallet (webbasierte digitale Brieftasche) darstellt! Danke für Ihre kontinuierliche Unterstüzung.", text_3: "Bitte benutzen Sie von nun an https://wallet.bitshares.org, Ihre Anmeldedaten sind hier ebenfals gültig!", title: "Mitteilung" }, modal: { buy: { asset: "Anlage", bridge: "Brücke", title: "Kaufen" }, cancel: "cancel", close: "close", committee: { confirm: "CONFIRM", create_committee: "Become a committee member", from: "From", text: "After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
    • Transaction fees
    • Parameters of BitAssets (e.g. market fees)
    • Blockchain parameters (e.g. block size & interval)
    • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
    • Other governance matters
    Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.", url: "URL", web_example: "Enter link to your committee proposal post" }, confirmation: { accept: "Ja", cancel: "Nein", title: "Ihre eingegeben Adresse scheint nicht gültig zu sein, sind Sie wirklich sicher diese Auszahlung zu tätigen?" }, convert: { amount: "Betrag zum Tauschen", submit: "Ok" }, deposit: { address_generation_error: "Adresse konnte nicht genieriert werden.", amount: "Einzahlungsbetrag", asset: "Anlage", bts_transfer_description: "Es ist einfach BTS zu empfangen. So lange diese BTS auf Ihren Kontonamen überwiesen werden, erscheinen diese in Ihrer Wallet. Der QR-Code enthält auch Ihren Kontonamen.", cancel: "Abbrechen", close: "Schließen", header: "Einzahlen auf %(account_name)s", header_short: "Einzahlen", no_assets: "No depositable assets available", submit: "Einzahlen" }, deposit_withdraw: { disabled: "%(gateway)s gateway service disabled", gateway: "Gateway", no_gateway_available: "Kein Gateway verfügbar", select_gateway: "Bitte den Gateway Betreiber wählen", wallet_error: "Gateway Wallet deaktiviert" }, issue: { amount: "Menge", submit: "Herausgeben", to: "Herausgeben an" }, ok: "OK", proposals: { actions: { approve: "Approve proposal", delete: "Permanently reject proposal", reject: "Reject proposal" }, approval_add: "Genehmigung hinzufügen", approval_remove: "Genehmigung entfernen", key_approval_add: "Schlüssel für die Genehmigung hinzufügen", key_approval_remove: "Schlüssel für die Genehmigung entfernen", pay_with: "Bezahlen mit Konto" }, qrcode: { input_message: "Bitte geben Sie ein Passwort ein um den QR-Code zu verschlüsseln.
    Ein leeres Passwort zeigt den unverschlüsselten QR-Code.", label: "QR-Code", title: "Privater-Schlüssel QR-Code" }, report: { button: "Report", copyLog: "Copy Log", copyScreenshot: "Right click in Image Preview -> Copy", copySuccess: "Copy ended", explanatory_text_1: "This report collects the last entries in the console log and takes a screenshot of the current view before the modal is opened. Click on either entry to see the details.", explanatory_text_2: "Please report the issue you have found to GitHub:", explanatory_text_3: "You can copy and paste (CTRL+V) the screenshot as well as the log entries directly into the issue content text area, pasting the screenshot also works in telegram chat.", explanatory_text_4: "If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:", hideLog: "Hide Log", hideScreenshot: "Hide screenshot", lastLogEntries: "Last 20 log entries", screenshot: "Screenshot", showLog: "Show Log", takeScreenshot: "Show screenshot", title: "Error report" }, reserve: { amount: "Menge zur Vernichtung", from: "Konto von der Vernichtung", submit: "Vernichten", title: "Vernichten (Reserve) Anlage", warning_message: "Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!" }, save: "save", send: { header: 'Überweisen von %(fromName)s', header_propose: 'Vorgeschlagene Überweisung von %(fromName)s' }, settle: { amount: "Menge für die Verrechnung", delay: "Estimated delay: %(amount)s hours", max_volume: "Max. settlement volume: %(amount)s %(asset)s", remaining_volume: "Remaining settleable volume: %(amount)s %(asset)s", submit: "Verrechnung durchführen", title: "Verrechnung von %(asset)s durchführen" }, withdraw: { address: "Auszahlung zur Adresse", address_not_valid: "Ungültige Adresse", amount: "Auszahlender Betrag", available: "Verfügbar", bitshares_account: "Überweisung zum Bitshares Konto", cancel: "Abbrechen", cannot_cover: "Ungültiges Guthaben!", estimated_value: "Geschätzter Wert", fee: "Gebühr", gateway_fee: "Gateway Gebühr", header: "Auszahlung (beta)", memo: "Notitz", no_assets: "No withdrawable assets available", no_estimate: "Kein geschätzter Wert für diese Anlage verfügbar", no_gateways: "Entschuldigung, aber es gibt kein Gateway, um diese Auszahlung vorzunehmen.", quantity: "Menge", submit: "Auszahlung", withdraw: "Auszahlung" }, witness: { confirm: "CONFIRM", create_witness: "Become a witness member", enter_public_signing_key: "Enter your public signing key", invalid_key: "Public Key is invalid", public_signing_key: "Public Signing Key", text: "After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
    • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
    • participation in block production and rolling releases of the testnet
    • provision of a public node for the community
    • publication of price feeds for the BitAssets
    Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.", url: "URL", web_example: "Enter link to your witness proposal post", witness_account: "Witness Account" } }, news: { author: "Autor", errors: { fetch: "Ops... etwas ist schief gelaufen, um diese Nachricht zu laden" }, news: "Neuigkeiten", subject: "Thema" }, notifications: { account_create_failure: "Failed to create account: %(account_name)s - %(error_msg)s", account_permissions_update_warning: "Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you're doing before modifying account authorities!", account_wallet_create_failure: "Failed to create wallet: %(error_msg)s", asset_issue_failure: "Failed to issue the asset, probably due to an invalid amount being issued", backup_file_save_unsupported: "File saving is not supported", balance_claim_error: "Error claiming balance: %(error_msg)s", exchange_enter_valid_values: "Please enter a valid amount and price", exchange_insufficient_funds_for_fees: "Insufficient funds to pay fees", exchange_insufficient_funds_to_place_order: "Insufficient funds to place order, you need at least %(amount)s $(symbol)s", exchange_unknown_error_place_order: "Unknown error. Failed to place order for %(amount)s %(symbol)s", exchange_unknown_error_place_scaled_order: "Unknown error. Failed to place Scaled Order", import_keys_already_imported: "This wallet has already been imported", import_keys_error: "Account %(account_name)s had a private key import error: %(error_msg)s", import_keys_error_unknown: "Key import error: %(error_msg)s", invalid_password: "Invalid Password", password_change_failure: "Unable to change password: %(error_msg)s", password_change_success: "Password changed", wallet_unlock_different_block_chain: "This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s", worker_create_failure: "Failed to create worker: %(error_msg)s" }, openledger: { deposit_amount: "Einzahlungsmenge", deposit_details: "Details", deposit_none: "Keine Einzahlungen", header_fiat: "Fiat", header_transaction_history: "Transaktionsverlauf", loading: "Läd ...", refresh_transaction_history: "Neu laden", retry: "Noch einmal versuchen", show_transaction_history: "Zeige den Transaktionsverlauf", status: "Status", withdraw_amount: "Auszahlungsmenge", withdraw_none: "Keine Auszahlungen" }, operation: { annual_upgrade_account: "{account} hat ein Jahresabo gekauft.", asset_claim_pool: "{account} beansprucht {amount} von der Anlage {asset}'s Gebührenpool.", asset_create: "{account} hat die Anlage {asset} erzeugt.", asset_fund_fee_pool: "{account} hat {amount} in den Gebührenpool von {asset} überwiesen.", asset_global_settle: "{account} hat ein globale Verrechnung von {asset} bei {price} beantragt.", asset_issue: "{account} hat {amount} an {to} herausgegeben.", asset_reserve: "{account} hat {amount} zurückgelegt.", asset_settle: "{account} hat eine Verrechnung von {amount} beantragt.", asset_settle_cancel: "{account} hat die Verrechnung der Menge von {amount} abgebrochen.", asset_settle_instant: "{account} settled {amount} instantly at {price}", asset_update: "{account} hat die Anlage {asset} aktualisiert.", asset_update_feed_producers: "{account} hat die Preisangabe für {asset} aktualisiert.", asset_update_issuer: "{from_account} überweist {asset} nach {to_account}.", balance_claim: "{account} hat Guthaben von {amount} beansprucht.", bid_collateral: "{bid_account} bid {collateral} for {debt}", blacklisted_by: "{lister} hat Konto {listee} schwarzgelistet.", call_order_update: "{account} hat nun {debt} {debtSymbol} Schulden mit einer Sicherheit von {collateral}.", committee_member_update_global_parameters: "{account} hat die globalen Komitee Parameter aktualsiert.", fill_order_buy: "{account} hat {amount} zum Preis von {price} gekauft.", fill_order_sell: "{account} hat {amount} zum Preis von {price} verkauft.", htlc_create: "{from} locked {amount} for {to} to redeem until {lock_period}", htlc_extend: "{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}", htlc_redeem: "{redeemer} request to redeem from HTLC {htlc_id}", htlc_redeemed: "{to} redeemed {amount} from HTLC {htlc_id} of {from}", htlc_refund: "{to} got refund of HTLC {htlc_id}", lifetime_upgrade_account: "{account} hat eine lebenslange Mitgliedschaft gekauft.", limit_order_buy: "{account} hat einen Kaufauftrag von {amount} für {price} eingestellt.", limit_order_cancel: "{account} hat Auftrag #%(order)s zurückgezogen.", limit_order_sell: "{account} hat einen Verkaufsauftrag von {amount} für {price} eingestellt.", no_recent: "keine kürzlichen Transaktionen", override_transfer: "{issuer} hat {amount} von {from} nach {to} überwiesen.", pending: "schwebend %(blocks)s Blöcke", proposal_create: "{account} hat Transaktion vorgeschlagen.", proposal_delete: "{account} hat Transaktionsvorschlag gelöscht.", proposal_update: "{account} hat Transaktionsvorschlag geändert.", publish_feed: "{account} hat eine Preisangabe von {price} veröffentlicht.", reg_account: "{registrar} hat das Konto {newaccount} registriert.", set_proxy: "{account} hat {proxy} als seinen Vertreter eingestellt.", transfer: "{from} hat {amount} an {to} überwiesen.", transfer_account: "Konto {account} wurde an {to} übertragen.", unlisted_by: "{lister} hat {listee} von der Liste gestrichen.", update_account: "{account} hat seine Kontodetails aktualisiert.", vesting_balance_withdraw: "{account} hat Sperrfristguthaben {amount} beansprucht.", whitelisted_by: "{lister} hat Konto {listee} weißgelistet.", witness_create: "{account} ist jetzt ein Zeuge.", witness_pay: "{account} hat Zeugen-Guthaben eingezogen.", witness_receive: "Hat den Zeugen von {witness} erhalten.", witness_update: "{account} hat seinen Zeugen aktualisiert.", worker_create: "{account} hat einen Arbeitervorschlag mit einer täglichen Bezahlung von {pay} BTS/Tag erstellt." }, page404: { asset_not_found_subtitle: "Diese Anlage existert nicht.", home: "Zuhause", market_not_found_subtitle: "Dieser Markt existiert nicht.", page_not_found_subtitle: "Diese Seite existiert nicht.", page_not_found_title: "404 Fehler - Seite nicht gefunden." }, pagination: { newer: "Jüngere", older: "Ältere" }, proposal: { action: "Tätigkeit", add: "Add", add_vote: "Add vote for", approve: "Bestätigen", approvers: "Bestätigun(en)", asset_create: "Durch die Benutzung von {account} die Anlage %(asset)s erstellen.", asset_issue: "{amount} nach {to} durch {account} beanspruchen.", asset_reserve: "Vorrat {amount} durch {account} vernichten.", asset_settle: "Eine Verrechnung anfordern.", asset_update: "Die Anlage {asset} durch das Konto {account} aktualisieren.", call_order_update: "{account} {debtSymbol} Schuld von {debt} und Sicherheit von {collateral} ändern.", changes_to_active: "Changes to active", changes_to_memo: "Changes to memo", changes_to_owner: "Changes to owner", committee_member_update_global_parameters: "Die globale Komitee Parameter durch {account} aktualisieren.", danger_operation: "Dangerous operation", delete: "Permanently reject", expires: "Ablaufen", feed_producer: "Die Preisquelle für die Anlage {asset} durch das Konto {account} aktualisieren.", limit_order_buy: "Einen Auftrag zum Kauf von {amount} bei {price} durch {account} platzieren.", limit_order_create: "Einen Auftrag zum Kauf von %(buy_amount)s für %(sell_amount)s durch %(account)s platzieren.", limit_order_sell: "Einen Auftrag zum Kauf von {amount} bei {price} durch {account} platzieren.", override_transfer: "{amount} von {from} nach {to} durch die Befugnis von {issuer} überweisen.", permission_changes: "Permission changes", proposals: "Vorschlag", reject: "Ablehnung", remove: "Remove", remove_vote: "Remove vote for", set_threshold: "Set threshold to %(threshold)s", status: "Status", transfer: "{amount} von {from} nach {to} überweisen", update: { active_approvals_to_add: "Aktive Genehmigung hinzufügen", active_approvals_to_remove: "Aktive Genehmigung entfernen", key_approvals_to_add: "Schlüsselgenehmigung hinzufügen", key_approvals_to_remove: "Schlüsselgenehmigung entfernen", owner_approvals_to_add: "Besitzergenehmigung hinzufügen", owner_approvals_to_remove: "Besitzergenehmigung entfernen" }, update_account: "Aktualisiere Kontodaten von {account}", updated: { active_approvals_to_add: "Active approval(s) added", active_approvals_to_remove: "Active approval(s) removed", key_approvals_to_add: "Key approval(s) added", key_approvals_to_remove: "Key approval(s) removed", owner_approvals_to_add: "Owner approval(s) added", owner_approvals_to_remove: "Owner approval(s) removed" }, vesting_balance_withdraw: "Auszahlung {amount} Sperrfristguthaben durch {account}", votes: "Votes" }, proposal_create: { expiration_time: "Ablaufzeit", fee_paying_account: "Konto zur Gebührenbezahlung", id: "Vorschlagseinheit ID", proposed_operations: "Vorgeschlagene Tätigkeiten", review_period: "Bewertungszeitraum beginnt" }, proposal_delete: { using_owner_authority: "Using owner authority" }, propose: "vorschlagen", qr_address_scanner: { address_found: "Adresse gefunden", amount: "Betrag", retry: "Wiederholen", use_address: "Adresse verwenden" }, refcode: { claim: "Beanspruchen", claim_refcode: "Empfehlungencode einlösen", enter_refcode: "Geben Sie den Empfehlungencode ein!", refcode_optional: "Empfehlungencode (optional)" }, registration: { accountConfirmation: "I have written down or otherwise stored my username and password.", accountDescription: "Please keep your password in a safe place. Don’t share it with any third-parties or send it online.", accountLoginByValue: "Account name + Password", accountModelTitle: 'By Account Name and Password', accountNote: "If you forget your pass phrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!", attention: "Attention", backUpRestoreKey: "Back up and restore Account", checkboxRecover: "I understand that no one can recover my password or .bin file if I forget or lose it.", checkboxRemember: "I have remembered or otherwise stored my password and I safely kept downloaded .bin file.", checkboxUploaded: "I understand that .bin file must be uploaded during the login process and without .bin file I will lose access to my funds.", continue: "Continue", copyPassword: "Copy your password to save.", createAccountTitle: "Create Account by Bin-file", createByPassword: "Create Account by Name and Password", downloadFile: "Download file", loginByKey: "Login by", passwordPlaceholder: "Minimum 7 characters", recommended: "recommended", securityAccountModel: "Medium", securityKey: "Security", securityWalletModel: "High", select: "Select", title: "Registration", walletDescription: "A bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to upload this file to login to your account in the future.", walletLoginByValue: "Bin-file + Password", walletModelTitle: "By bin-file", walletNote: "Please keep in mind, that BitShares doesn't store users passwords and couldn't recover users accounts after password loss.", whyBinFile: "Why do I need a .bin file?" }, scaled_orders: { action: { buy: "Buy", sell: "Sell", title: "Action" }, distribution: { flat: "Flat", title: "Distribution" }, fee: "Fee", market_fee: "Market Fee", order_count: "Order Count", order_s: "Order(s)", please_log_in: "You need to login before use Scaled Orders", preview_table: { price: "Price" }, price_lower: "Price Lower", price_upper: "Price Upper", quantity: "Quantity", title: "Scaled Order", total: "Total" }, settings: { access: "Verbindungsknoten", access_text: "", accounts: "Konten", accounts_text: "Ihre Kontenliste", activate: "Aktivität", active_node: "Aktiver Verbindungsknoten", add_api: "Verbindungsknoten hinzufügen", add_ws: "Websocket API hinzufügen", always_confirm: "Für jede Transaktion nach einer Bestätigung fragen.", apiServer: "API Anbindung", api_closest: "Wähle den schnellsten automatisch", automatic: "Automatisch Verbindungsknoten wählen (%(totalNodes)s verfügbar)", automatic_short: "Automatisch wählen", available_nodes: "Verfügbar", backup: "Sicherung", backup_backup: "Wiederherstellung durch Sicherungsdatei (.bin)", backup_backup_short: "Wiederherstellung durch Sicherung", backup_brainkey: "Wiederherstellung durch eine lokale Wallet und Gedächtnisschlüssel.", backup_favorites: "Wiederherstellung der Favoriten durch eine JSON-Datei.", backup_favorites_error: "Die JSON konnte nicht eingelesen werden.", backup_favorites_finish: "Favoriten importieren", backup_favorites_success: "Erfolgreich die Marktfavoriten wiederhergestellt.", backup_favoritesbtn: "Sicherung der Favoriten", backup_favoritestext: "Sicherung der Favoriten, zur Wiederherstellung nach einer Aktualisierung.", backup_key: "Einen privaten Schlüssel importieren", backup_legacy: "Eine BTS 0.9.3c Schlüsselexportdatei (.json) importieren", backup_text: "Erstellen Sie hier eine Sicherungen!", backupcreate_backup: "Erstellen Sie eine lokale Wallet zur Sicherung!", backupcreate_brainkey: "Erstellen Sie einen Gedächtnisschlüssel zur Sicherung!", backupcreate_favorites: "Erstellen Sie eine Favoriten Sicherung!", browser_notifications: "Browserbenachrichtigungen", browser_notifications_additional_transfer_to_me: "Über Überweisungen an mein Konto benachrichtigen.", browser_notifications_allow: "Benachrichtigungen aktivieren", browser_notifications_disabled_by_browser_notify: "Ihr Browser hat Benachrichtigungen deaktiviert. Klicken zur Aktivierung der Browser Benachrichtigung!", cloud_login: "Cloud Wallet (digitale Brieftasche) Anmeldung", confirmMarketOrder: "Nach Bestätigung für Marktanweisungen fragen", confirm_no: "Nie", confirm_remove: "Sind Sie sicher %(name)s von den verfügbaren Verbindungsknoten zu entfernen?", confirm_yes: "Immer", connection_error: "Es ist nicht möglich sich mit dem API Knoten %(url)s zu verbinden, Rückgriff auf bekannte funktionierende Verbindungsknoten.", darkTheme: "Dunkel", delete_select: "Auswahl einer lokalen Wallet zur Löschung", disabled: "Disabled", enable_wallet: "Aktiviere lokale Walelt (digitale Brieftasche)", faucet_address: "Aufnahme Addresse", faucet_address_text: "Die Aufnahme Adresse wird benutzt, um die Registrierungsgebühren für neue Benutzer zu bezahlen.", general: "Allgemeine", general_text: "Grundeinstellungen anpassen", global_settings: "Default Global Settings", hidden_nodes: "Versteckt", hide: "Verstecken", high_latency: " Latenzzeit", inverseMarket: "Bevorzugte Marktorientierung", left: "Left", lightTheme: "Hell", local_wallet: "Lokale Wallet (digitale Brieftasche) Anmeldung", locale: "Sprachauswahl", lookup_text: "Klicken Sie auf den Knopf unterhalb, damit auf nicht beanspruchte Guthaben von BTS 1.0 geprüft werden kann.", low_latency: "Geringe Latenzzeit", medium_latency: "Ak­zep­ta­bel Latenzzeit", midnightTheme: "Mitternacht", my_nodes: "Persönlich", no: "Nein", no_accounts: "Diese lokale Wallet beinhaltet keine Konten.", node_already_exists: "Knoten mit dieser URL existiert bereits", node_down: "Nicht erreichbar", node_up: "Verfügbar", olDarkTheme: "OpenLedger dunkel", orderbook_autoscroll: "Order Book Autoscroll", orderbook_grouping: "Order Book Grouping", orderbook_reverse: "Order Book Reversed", password: "Passwort", passwordLogin: "Auswahl des Standardkontos", password_text: "Ändern Sie Ihr Passwort!", personal_active: "Es ist nur Ihr persönlicher Verbindungsknoten aktiv, um diesen zu entfernen oder ändern, müssen Sie als erstes einen anderen Verbindungsknoten auswählen.", ping: "Ping Verbindungsknoten", pinging: "Ping Test ...", placeholder_select: "Select option", remove: "Entfernen", remove_api: "Entferne Verbindungsknoten", remove_ws: "Websocket API entfernen", reset: "Einstellungen zurücksetzen", reset_text: "Werkseinstellungen wiederherstellen", reset_text_description: "Dies wird alle Ihre %(generalName)s, %(accessName)s und %(faucetName)s Einstellungen zurücksetzen", restore: "Wiederherstellen/Importieren", restore_brainkey_text: "Für eine Wiederherstellung durch den Gedächtnisschlüssel, muss eine neue Wallet anlegt werden. Bitte stellen Sie unterhalbe ein Passwort und Name für die neue Wallet zur Verfügung und geben danach den Gedächtnisschlüssel ein.", restore_default_success: "Einstellungen wurden erfolgreich zurückgesetzt", restore_key_count: "# an Schlüssel", restore_text: "Wiederherstellung von einer Sicherung oder Import eines Schlüssels.", right: "Right", scrollbars_hide: "Reduce scroll bars", show: "Show", showAssetPercent: "Zeige Marktanteile der Anlagen", showSettles: "Verrechnung im Chart anzeigen", skipped: "Übersprungen", switch: "Ändere Verbindungsknoten", testnet_nodes: "Testnetzwerk", testnet_nodes_disclaimer: "Die Verfügbarkeit des Testnetzwerkes kann nicht garantiert werden. Bauen Sie eine Verbindung durch eine manuelle Auswahl der folgenden Verbindungsknoten auf:", themes: "Erscheinungsbild", unit: "Bevorzugte Rechnungseinheit", valid_node_url: "Knoten URL muss mit ws:// oder wss:// beginnen", viewOnlyMode: "View only mode", view_keys: "Schlüssel betrachten", wallet: "Lokale Wallet", walletLockTimeout: "Wallet automatisch sperren (Sekunden)", walletLockTimeoutTooltip: "Zeit bis die Wallet sich automatisch sperrt", wallet_required: "Lokale Wallet benötigt", wallet_required_text: "Damit Sie die Sicherung wiederherstellen können, müssen Sie auf eine lokale Wallet (digitale Brieftasche) wechseln. (Klicken auf darunter liegenden Knopf)", wallet_text: "Detaileinstellungen Ihrer lokalen Wallet.", wallets: "Wallets", yes: "Ja" }, showcases: { barter: { account: "Account", action: "Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ", add_escrow: "Add escrow", add_escrow_tooltip: "Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1's funds.", balance_warning: "Balance Warning", balance_warning_line: "wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s", balance_warning_tooltip: "%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed", bartering_asset: "Bartering asset", description: "Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.", error_fill_in_escrow_name: "Please fill in the account name of the escrow", error_fill_in_peer_left_name: "Please fill in the account name of Peer 1", error_fill_in_peer_right_name: "Please fill in the account name of Peer 2", error_fill_in_valid_asset_amount: "Please fill in valid amounts for the bartering assets", error_same_name: "Peer 1 and Peer 2 must be different accounts", error_same_name_escrow: "The escrow can not be Peer 1 or Peer 2", escrow_account: "Escrowing account", escrow_as_custodian: "An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.", escrow_as_witness: "An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.", escrow_payment: "Payment for escrow services", escrow_payment_tooltip: "Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1's account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.", fee_due_now: "Fee due now", fee_due_now_tooltip: "The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow", fee_when_proposal_executes: "Fee when proposal executes", fee_when_proposal_executes_tooltip: "When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations", new_barter: "Propose a new barter", new_barter_tooltip: "This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow", not_complete: "Please fill out all fields to see a description of the action here", peer_left: "Peer 1", peer_right: "Peer 2", proposal_fee: "Proposal fee", proposal_fee_tooltip: "The indicated transaction fee will be paid to create the proposal to realize this barter", propose_tooltip: "This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Dashboard, approve the proposal and notify the other involved parties.", remove_escrow: "Remove escrow", send_to_escrow: "Use escrow as custodian for Peer 1's funds", send_to_escrow_tooltip: "Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2", title: "Barter", total_fees: "Total fees: %(fee)s %(asset)s", total_fees_tooltip: "The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter" }, borrow: { borrow_tooltip: "You can also find this feature in your Dashboard under the tab Margin Positions, or by clicking Borrow in the Exchange", choose: "Choose the SmartCoin you want to create a position for", description: "Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)", do_it: "Let's do it", get_started: "Get started", navigate_with_keys: "The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate", next: "Next", now_ready: "Finalize the creation of your own Collateralized Debt Position", previous: "Previous", steps_benefits: { text: "Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.", text_legend: "Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).", title: "Benefits", title_within: "What are the benefits?" }, steps_concept: { text: "A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.", text_legend: "Example bitUSD: Provide BTS as collateral to borrow bitUSD", title: "Concept", title_within: "What is a Collateralized Debt Position?" }, steps_costs: { text: "Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ", title: "Settlement", title_within: "" }, steps_introduction: { text: "Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.", title_within: "This is the place to generate SmartCoins (Market Pegged Assets, MPAs)" }, steps_risks: { text: "As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.", text_legend: "Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.", title: "Risks", title_within: "What are the risks involved in borrowing?" }, steps_setup: { text: "You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.", text_legend: "Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.", title: "Setup", title_within: "How does it work?" }, title: "Collaterized Debt Position", title_long: "Create a Collateralized Debt Position" }, direct_debit: { amount_to_withdraw: "Amount to collect", authorized_account: "Payee", authorizing_account: "Payer", claim: "Claim", claim_funds: "Claim funds", create: "Create", create_new_mandate: "Create authorization", current_period_expires: "Current period ends", delete: "Delete", description: "Setup a direct debit authorization for recurring payments. The authorization allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.", expires: "Expires", first_period_not_started: "First period has not started!", limit: "limit", limit_per_period: "Maximum amount per period", num_of_periods: "Number of periods", period: "Specify period", start_date: "First period starts on", title: "Direct debit", tooltip: { authorized_account: "The account that is eligible to collect from your account.", limit_per_period: "The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.", num_of_periods: "After the start time this amount of periods are available consecutively.", period: "One period lasts the indicated time interval, e.g. 2 weeks.", start_time: "The start time of the first period must be in the future when broadcasting." }, update: "Update", update_mandate: "Update existing authorization" }, htlc: { actions: "Actions", amount: "Amount", create_htlc: "Create HTLC", custom: "Custom", description: "A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.", enter_secret_preimage: "Enter secret preimage", expiration: "Expiration", expiration_date: "Expiration date", expiration_period: { one_day: "One day", one_week: "One week", two_days: "Two days" }, expires: "Expires", extend: "Extend", extend_htlc: "Extend HTLC", first_stage: "1st stage", from: "From", hash: "Hash", preimage: "Preimage", preimage_has_been_created: "A random preimage has been created and filled in automatically below", recipient: "Recipient", redeem: "Redeem", redeem_htlc: "Redeem HTLC", second_stage: "2nd stage", sender: "Sender", size: "Size", title: "Hashed Time-Lock Contracts", to: "To", tooltip: { enter_preimage: "Enter the secret preimage that you have obtained from the sender", new_random: "Roll the dice and create a new random string.", preimage_button: "Please click to enter secret preimage", preimage_hash: "The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.", preimage_input: "Field requires a secret preimage", preimage_random: "The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.", preimage_size: "The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size." } }, paper_wallet: { description: "Create a PDF with your account's keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.", title: "Paper Wallet" }, timed_transfer: { description: "Initiate a transfer that will execute at a specified time.", title: "Timed transfer" }, voting: { description: "Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.", title: "Voting" } }, sync_fail: { sub_text_1: "Bitte stellen Sie sicher, dass Ihre Uhrzeit richtig eingestellt ist!", sub_text_2: "Nach der Synchronisation Ihrer Uhrzeit, bitte diese Seite noch einmal laden.

    Wenn Ihre Uhr bereits richtig eingestellt ist, könnte der API Server asynchron sein. In diesem Fall probieren Sie einen anderen Server von der Liste unterhalb.", title: "Synchronisation mit dem API Server fehlgeschlagen" }, tooltip: { add_memo_field: "Add memo text field", borrow: "Leihen Sie %(asset)s vom Netzwerk. Dies erstellt einen Smart Contract, der Ihre Sicherheiten einschließt, bis Sie Ihre Position ändern oder ein Wertausgleich (margin call) notwendig wird.", borrow_disabled: "%(asset)s is in global settlement. Margin positions can't be created until it is revived. See asset details page for more information", bridge: "Bridges allow deposit of any external assets and instant trade into the desired gateway asset", bridge_TRADE: "BlockTrades ist eine Brücke (Gateway), die ein sofortiges Handeln von Anlagen ermöglicht. Details und Bedingungen können auf https://blocktrades.us eingesehen werden", buy_min: "Sie werden mindestens diesen Betrag erhalten. Wenn es günstiger Angebote gibt, werden Sie einen größeren Betrag erhalten.", call_limit: "Dies ist der Kaufpreis von der geringsten Sicherheitenposition im Markt.", call_price: "Dies ist der Kaufpreis Ihrer Postion. Wenn die Preisquelle unter den Kaufpreis fällt, findet ein Werteausgleich (margin call) statt.", close_position: "Hier Klicken, um Ihre Postion zu schließen. Sie müssen zum Abschließen mindestens %(amount)s %(asset)s haben.", coll_ratio: "Die Sicherheiten-Ratio dieser Position ist SICHERHEIT * PREISQUELLE / SCHULD.", copy_password: "Klicken, um das Passwort in die Zwischenablage zu kopieren.", copy_tip: "Klicken um den Text in die Zwischenablage zu kopieren.", cr_danger: "Bei dieser Position findet ein Wertausgleich (margin call) statt. Ziehen Sie in Betracht Sicherheiten hinzuzufügen, um die Sicherheiten-Ratio über %(mr)s anzuheben oder Ihre Position zu schließen.", cr_warning: "Diese Position hat ein geringes Sicherheitslevel und es findet ein Werteausgleich (margin call) statt, wenn die Sicherheiten-Ratio unter %(mr)s fällt. Ziehen Sie in Betracht Sicherheiten hinzuzufügen oder die Position zu schließen.", debug_report: "Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.", deposit_tip: "Zum Abschließen der Einzahlung, gehen Sie auf die externe %(asset)s Wallet und führen Sie eine Überweisung an die Adresse auf dieser Seite durch. Wenn eine Notiz benötigt wird, muss diese angegeben werden, damit Ihre Übwereisung richtig verbucht werden kann. Sie erhalten Ihre Einzahlung, sobald diese bestätigt worden ist.", disconnected: "Sie sind nicht mit einem API Knoten verbunden, versuchen Sie neu zu laden oder wählen einen anderen Verbindungsknoten in den Einstellungen.", feed_price: "Dies ist die aktuelle externe Preisquelle", filter_ops: "Benutzen Sie diese Liste um den Verlauf nach Tätigkeiten zu filtern.", follow_user: "Sie folgen diesen Benutzer", follow_user_add: "Klicken, um diesen Benutzer zu folgen.", gateway: "Gateways sichern Einzahlungen durch 100%% echte Anlagen.", generate: "Diese Passwort wurde durch Ihren Browser lokal erzeugt.

    Nur Sie haben darauf Zugriff.

    Kopieren Sie dieses Passwort und sichern Sie es an einem sicheren Ort.", global_settle: "This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).", global_settle_price: "This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly", hide_asset: "Hier klicken um die Anlage von der Liste zu entfernen.", lack_funds: "There is not enough funds to perform the operation", latest_price: "Dies ist der letzte Preis, der im Markt gehandelt wurde.", legacy_explanation: "Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.", login: "%(wallet_name)s bietet keine gewöhnliche Anmeldung, sondern sperrt oder entsperrt eine Wallet (digitale Brieftasche), die nur lokal in Ihrem Browser gespeichert wird.

    Nach jedem Schließen wird die Wallet automatisch gesperrt und Sie sind effektiv abgemeldet.", "login-tooltip": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, "login-tooltips": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, login_required: "Please login to the selected account to perform this action", margin_price: "Dies ist der maximale Preis, der bei einen Wertausgleich (margin call) Ihrer Sicherheit bezahlt werden kann.", market_fee: "Der Besitzer von %(asset)s berechnet eine Marktgebühr von %(percent)s für Kaufaufträge. Die Gebühr wird erst bezahlt, nachdem ein Auftrag ausgeführt worden ist, sie fällt nicht an, wenn ein Auftrag abgegegeben wird.", memo_tip: "You may include an optional message in the memo field. This allows you to write personal notes and is also often used by exchanges to identify deposits.", no_groups_available: "Keine Gruppierungen verfügbar, bei Benutzung dieses API Knotens.", no_price: "Es gibt keinen aktuellen Preis für diese Anlage, der benutzt werden kann.", nodes_popup: "Click here to open the access settings popup that allows you to switch nodes if necessary", over_limit: "Die Brücke (Gateway) hat nicht die gewünschte Menge der Anlage, für Ihren Kaufauftrag zur Verfügung.", own_account: "You hold keys for this account", propose_scam: "Dieser Vorschlag wurde von einen Betrüger eingereicht, nehmen Sie ihn nicht an!", propose_tip: "Schlagen Sie einen anderen Benutzer für die Ausführung der Transaktion vor!", propose_unhide: "Do not uncheck this unless you know what you are doing", propose_unknown: "This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.", proxy_remove: "Sie haben einen Vertreter ausgewählt, um diesen zu entfernen einfach den Eintrag löschen und speichern.", proxy_search: "Suchen Sie nach einem Konto, der als Ihr Vertreter gewählt werden kann!", registration: { accountModel: "The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!", accountName: "Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.", password: "Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.", walletModel: "The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", whyBinFile: ".bin file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be uploaded during the login process." }, required_input: "Field requires a valid %(type)s", scam_account: "Account is suspected scammer", self_help: "Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet", settle: "Settling will let you convert your holdings of %(asset)s to %(backingAsset)s after a delay of %(settleDelay)s hours, at a price equal to the feed price at that time.", settle_price: "Dies ist der Preis bei dem die Verrechnungsaufträge ausgeführt werden.", show_asset: "Hier klicken, um die Anlage in der Hauptliste zu zeigen.", show_block: "Hier klicken, um den Block #%(block)s der Transaktion anzuzeigen.", sign_owner: "Wenn Sie der Besitzer dieses Kontos sind, stellen Sie sicher, dass die Transaktion entprechend signiert wird. Dies wird nur benötigt, wenn das Besitzerkonto benutzt wird und dieses Konto nicht in den aktiven Berechtigungen gelistet wird.", sync_no: "Der aktuelle Verbindungsknoten ist asynchron mit der Blockchain, versuchen Sie einen anderen zu wählen.", sync_yes: "Der aktuelle Verbindungsknoten ist synchron mit der Blockchain.", target_collateral_ratio: "Durch das Setzen einer Zielsicherheiten-Ratio, kann erreicht werden, nicht die ganze Position auf einmal zu verkaufen.

    Verkaufe so wenig wie möglich durch eine Ziel-Ratio unter MCR (z.B. 1,5)

    Verkaufe etwas mehr, verringere jedoch die Wahrscheinlichkeit erneut einen Werteausgleich durchzuführen, durch einen höheren Wert als MCR (z.B. 3)", transfer_actions: "Hier klicken um eine Transaktion, Ein-/Auszahlung mit den unterstützten Anlagen, durchzuführen.", unlock_account_name: "Click to edit the account name, e.g. when your account is set as permission of another account.", update_position: "Hier klicken, um Ihre Position zu ändern. Sie können zu jeder Zeit die Schuld oder Sicherheit ändern.", withdraw_address: "Wenn Sie noch keine Adresse für %(asset)s haben, erstellen Sie eine neue Wallet, um diese Auszahlung abzuschließen.", withdraw_full: "Klicken, um den vollen Betrag auszuzahlen." }, transaction: { amount_sell: "Betrag", asset_claim_fees: "Anlagegebühren von %(balance_amount)s aus %(asset)s Gebührenpool entnommen.", asset_reserve: "Rücklagen", at: "für", balance_id: "Guthaben ID", balance_owner: "Guthabeneigentümer", bidder: "Bidder", blinding_factor: "Blinding-Faktor", bond_accept_offer: "Ein Bondangebot wurde akzeptiert.", bond_cancel_offer: "Ein Bondangebot wurde abgebrochen.", bond_claim_collateral: "Eine Sicherheit wurde eingefordert.", bond_create_offer: "Ein Bondangebot wurde erstellt.", bond_pay_collateral: "Eine Sicherheit wurde bezahlt.", borrow_amount: "Schuld", borrower: "Schuldner", broadcast_fail: "Bei der Übermittlung der Transaktion ist ein Fehler aufgetreten: %(message)s", broadcast_success: "Transaktion wurde übermittelt.", broadcasting: "Übermittle Transaktion ...", broadcasting_short: "Übermittle ...", burn_asset: "Vernichtet", by: "von", claimed: "Insgesamt beansprucht", coll_maint: "Unterhalt der Sicherheiten-Ratio ", coll_of: "mit einer Sicherheit bestehend aus", coll_ratio: "Anfängliche Sicherheiten-Ratio", collateral: "Sicherheit", collateral_target: "Zielsicherheiten-Ratio", committee_member_create: "Komitee-Mitglied erstellen", confirm: "Bitte bestätigen Sie die Transaktion!", create_key: "Ein öffentlicher Schlüssel wurde erzeugt.", csv: "Exportieren als csv-Datei.", csv_tip: "Verlauf als csv-Datei (durch Komma getrennt) herunterladen.", cumulative_borrow_amount: "Cumulative Debt", custom: "Eine benutzerdefinierte Operation wurde definiert.", delta_collateral: "Änderung der Sicherheit", delta_debt: "Änderung der Schuld", deposit_to: "In Konto einzahlen", expiration: "Ablauf", feeGroups: { account: "Konto-spezifisch", asset: "Anlage-spezifisch", business: "Unternehmensführung", general: "Allgemein", market: "Markt-spezifisch" }, feeTypes: { _none: "gratis", basic_fee: "Grundgebühr", fee: "Reguläre Gebühr", fee_per_day: "Price per day", fee_per_kb: "Price per KByte Transaction Size", long_symbol: "Längeres Symbol", membership_annual_fee: "Jahresabonement", membership_lifetime_fee: "Lebenslange Mitgliedschaft", premium_fee: "Premiumname", price_per_kbyte: "Preis pro KByte Transaktionsgröße", price_per_output: "Price per recipient", symbol3: "Symbol mit 3 Zeichen", symbol4: "Sybmol mit 4 Zeichen" }, feed_price: "Preisquelle", feed_producer: "Werde eine Preisquelle für eine Anlage", file_write: "Eine Datei wurde geschrieben", fill_or: "sofortige Ausführung oder Annullierung", for: "für", from: "von", fund_pool: "Anlagen-Gebührenpool finanziert mit", funding_account: "Bezahlendes Konto", global_parameters_update: "Globale Parameter aktualisiert", inputs: "Eingänge", market_fee: "Marktgebühr", max_market_fee: "Maximale Marktgebühr", min_receive: "Mindestbetrag", new_url: "Webseite", obtain: "zu erhalten", order_id: "Anweisungskennung (ID)", outputs: "Ausgänge", paid: "Bezahlt", publisher: "Herausgeber", received: "Empfangen", seller: "Verkäufer", sent: "Gesendet", settlement_date: "Verrechnungs-Datum", to: "an", transaction_confirmed: "Transaktion bestätigt", trxTypes: { account_create: "Konto erstellen", account_transfer: "Konto-Überweisung", account_update: "Kontoaktualisierung", account_upgrade: "Konto-Upgrade", account_whitelist: "Konto-Positivliste", all: "Zeige alles", assert: "Operation bestätigen", asset_bid_collateral: "Bid collateral", asset_claim_fee_pool: "Beanspruche Gebührenpool Guthaben", asset_claim_fees: "Gebühr für 'Anlage beanspruchen'", asset_claim_pool: "Gebührenpool beanspruchen", asset_create: "Anlage erstellen", asset_fund_fee_pool: "Anlagen-Gebührenpool finanzieren", asset_global_settle: "Globales Anlagen-Verrechnung", asset_issue: "Anlage herausgeben", asset_publish_feed: "Preisquelle veröffentlichen", asset_reserve: "Anlagenanteile vernichten", asset_settle: "Anlagen-Verrechnung", asset_settle_cancel: "Anlagen-Verrechnung abbrechen", asset_update: "Anlage aktualisieren", asset_update_bitasset: "SmartCoin aktualisieren", asset_update_feed_producers: "Preisquelle aktualisieren", asset_update_issuer: "Aktualisere Anlagen Herausgeber", balance_claim: "Guthaben eingefordert", bid_collateral: "Collateral bid", blind_transfer: "Blind-Überweisung", call_order_update: "Kaufauftrag aktualisieren", committee_member_create: "Komiteemitglied erstellen", committee_member_update: "Komiteemitglied editieren", committee_member_update_global_parameters: "Globale Parameter aktualisiert", custom: "benutzerdefiniert", execute_bid: "Execute bid", fba_distribute: "Fee backed asset distribution", fill_order: "Gebot ausgeführt", htlc_create: "HTLC create", htlc_extend: "HTLC extend", htlc_redeem: "HTLC redeem", htlc_redeemed: "HTLC redeemed", htlc_refund: "HTLC refund", limit_order_cancel: "Limit-Auftrag abbrechen", limit_order_create: "Limit-Auftrag", override_transfer: "Übwereisung überschreiben", proposal_create: "Vorschlag erstellen", proposal_delete: "Vorschlag löschen", proposal_update: "Vorschlag aktualisieren", transfer: "Überweisung", transfer_from_blind: "Überweisung von blindem Konto", transfer_to_blind: "Überweisung zu blinden Konten", vesting_balance_create: "Sperrfristguthaben erstellt", vesting_balance_withdraw: "Sperrfristguthaben eingefordert", withdraw_permission_claim: "Einzugsermächtigung eingefordert", withdraw_permission_create: "Einzugsermächtigung erstellen", withdraw_permission_delete: "Einzugsermächtigung aufgehoben", withdraw_permission_update: "Einzugsermächtigung aktualisiert", witness_create: "Zeugen erstellen", witness_update: "Zeugen ändern", witness_withdraw_pay: "Zeugenlohn ausbezahlen", worker_create: "Budgetpunkt erstellen" }, vesting_balance_create: "Ein Sperrfristguthaben wurde erstellt.", waiting: "Warte auf Bestätigung ...", whitelist_states: { black_listed: "schwarzgelistet", no_listing: "Nicht gelistet", white_and_black_listed: "schwarz- und weißgelistet", white_listed: "weißgelistet" }, withdraw_permission_claim: "Einzugsermächtigung wurde eingefordert für Konto.", withdraw_permission_create: "Einzugsermächtigung wurde verliehen an Konto.", withdraw_permission_delete: "Einzugsermächtigung wurde aufgehoben für Konto.", withdraw_permission_update: "Einzugsermächtigung wurde aktualisiert für Konto." }, transfer: { again: "WEITERE ÜBERWEISUNG", amount: "Betrag", available: "Verfügbar: ", back: "ZURÜCK", balances: "Guthaben", broadcast: "Ihre Überweisung wurde gesendet", broadcasting: "Übermittle ...", by: "By", cancel: "Abbrechen", close: "SCHLIEßEN", confirm: "BESTÄTIGEN", copy_address: "Adresse kopieren", copy_memo: "Notiz kopieren", errors: { balance: "Ihr abschließendes Guthaben kann nicht negativ sein!", insufficient: "Ungenügendes Guthaben", memo_error: "Eine Transaktionsfehler ist beim Einlesen der Notiz aufgetreten, bitte versuchen Sie es später noch einmal.", memo_length_error: "Die maximale Länge der Notiz wurde überschritten, bitte diese ändern!", minimum_amount: "Minimaler Auszahlungsbetrag: %(amount)s %(symbol)s", noFeeBalance: "Ihr Guthaben ist nicht ausreichend, um mit dieser Anlage die Gebühren zu bezahlen, bitte wählen Sie eine andere Anlage aus!", noFunds: "Kein Guthaben", noPoolBalance: "Die Anlagen hat keinen ausreichenden Gebührenpool, um diese Gebühren zu bezahlen. Bitte informieren Sie den Anlagenhalter oder wählen Sie eine andere Anlage zur Bezahlung der Gebühren aus!", pos: "Betrag darf nicht negativ sein!", precision: "Minimale Nachkommastellen der Auszahlungs: %(precision)s", req: "Pfichtfeld", valid: "Bitte geben Sie einen positiven Betrag ein" }, explict_price: "Explict price:", fee: "Gebühr", final: "Abschließendes Guthaben", free: "Free", from: "Von", header: "Überweisungsdetails", header_subheader: "Überweisungen werden benutzt, um Kapital zu einen anderen Bitshares Konto zu schicken.", header_subheader_propose: "Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.", memo: "Notiz", memo_unlock: "Entsperren um Notiz zu lesen.", optional: "Optional", pay_from: "Bezahlen von", phase_out_warning: "We recommend using the new {modal_link} modal as this page will be phased out", see: "ÜBERWEISUNGSÜBERSICHT", send: "Überweisen", to: "Zu", warn_name_unable_read_memo: "Der vorgeschlagener Absender kann diese Notiz nicht lesen!" }, trx_error: { expire: "Ihre Transaktion ist verfallen ohne besätigt worden zu sein, bitte versuchen Sie es später noch einmal!" }, utility: { asset_input_placeholder: "Enter asset symbol", asset_select_placeholder: "Select asset", total_x_assets: "Gesamtanzahl von %(count)s Anlagen", total_x_items: "Gesamtanzahl von %(count)s Objekte", total_x_markets: "Total of %(count)s markets", total_x_operations: "Gesamtanzahl von %(count)s Tätigkeiten" }, validation: { messages: { balance: "Insufficient balance. Available only: %(balance)s %(symbol)s", email: "The field should be email", emailNamed: "%(name)s should be email", float: "The field should be float", floatNamed: "%(name)s should be float", integer: "The field should be integer", integerNamed: "%(name)s should be integer", max: "The field should be less than %(max)s", maxNamed: "%(name)s should be less than %(max)s", min: "The field should higher than %(min)s", minNamed: "%(name)s should be higher than %(min)s", number: "The field should be number", numberNamed: "%(name)s should be number", oneOf: "The field should be one of: %(list)s", oneOfNamed: "%(name)s should be one of: %(list)s", range: "The field should be in range from %(min)s to %(max)s", rangeNamed: "%(name)s should in range from %(min)s to %(max)s", required: "The field is required", requiredNamed: "%(name)s is required", test: "", types: { array: "The field should be array", arrayNamed: "%(name)s should be array", boolean: "The field should be boolean", booleanNamed: "%(name)s should be boolean", date: "The field should be date", dateNamed: "%(name)s should be date", enum: "The field should be one of %(list)s", enumNamed: "%(name)s should be one of %(list)s", hex: "The field should be hex", hexNamed: "%(name)s should be hex", method: "The field should be method", methodNamed: "%(name)s should be method", object: "The field should be object", objectNamed: "%(name)s should be object", regexp: "The field should be regexp", regexpNamed: "%(name)s should be regexp", string: "The field should be string", stringNamed: "%(name)s should be string" }, url: "The field should be url", urlNamed: "%(name)s should be url" } }, voting: { description: "The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).", title: "Voting" }, walkthrough: { buy_form: "Platzieren Sie Kaufaufträge über dieses Formular!", buy_orders: "Alle Kaufaufträge für diesen Markt anschauen.", chart_tool_duration: "Handelsdaten in verschiedenen Intervallen gruppieren.", chart_tool_indicators: "Der Preistabelle technische Indikatoren hinzufügen, um Handelsmöglichkeiten zu identifizieren.", chart_tool_zoom: "Preischart anpassen, um mehr oder weniger Preisverlauf anzuzeigen.", collapsed_items: "View one or several sections of the market by expanding the drawers", create_cloud_wallet: "Greifen Sie über einen Kontonamen und ein Passwort auf die Cloud Wallet (digitale Brieftasche) zu!", create_local_wallet: "Erstellen Sie eine lokale Wallet (digitale Brieftasche) und laden Sie alle zugehörigen privaten Schlüssel herunter!", depth_chart: "Verwenden Sie eine Markttiefe-Grafik, um Angebot und Nachfrage zu unterschiedlichen Preisen darzustellen.", done_label: "Fertig", favourite_button: "Markieren Sie dieses Paar als Favorit in Ihrer Marktliste.", find_markets_tab: "Über diese Registerkarte können Sie den Tab 'Meine Märkte' durchsuchen und zusätzliche Märkte hinzufügen.", language_flag: "Wählen Sie aus 9 verschiedenen Sprachen für die Verwendung in DEX aus!", my_markets: "This tab lists commonly used markets.", next_label: "Weiter", panel_hide: "You can hide the panel to have more room", personalize: "Change the default layout in the personalize settings", prev_label: "Zurück", price_alerts: "Set alerts to get notifications if the price fluctuates", price_chart: "Anzeigen der Preisaktion eines Vermögenswerts mithilfe des Preistabellenfelds.", restore_account: "Stellen Sie Ihre lokale Wallet mithilfe Ihrer Sicherungsdatei wieder her!", sell_form: "Platzieren Sie Verkaufsaufträge mit diesem Formular!", sell_orders: "Alle Verkaufsaufträge für diesen Markt anzeigen.", skip_label: "Überspringen", switch_button: "Wechseln Sie die Handelspaare mit dieser Schaltfläche!", vertical_lock: "Disable auto scroll to scroll through the order book", vertical_order: "View all orders for this market, including spread and latest order price" }, wallet: { accept: "Zustimmen", account_public: "Kontoname (öffentlich)", active_wallet: "Aktive Wallet", all_set: "Sie haben alles eingestellt!", ask_to_select_wallet: "Bitte wählen Sie eine Schlüssel-Datei!", back: "Zurück", backup_brainkey: "Gedächtnisschlüssel sichern!", backup_explain: "Durch das Klicken auf den Knopf darunter, wird eine Sicherungsdatei mit der .bin-Endung erstellt. Diese Datei wird mit Ihrem Passwort verschlüsselt und beinhaltet alle privaten Schlüssel von Ihrem Konto. Diese Datei kann benutzt werden, um Ihre Wallet wiederherzustellen oder zu einem anderen Computer/Browser zu wechseln.", backup_login: "Sicherung & Anmeldung", backup_new_account: "Glückwunsch, Sie haben gerade ein neues Konto auf der Bitshares Blockchain erstellt! Sie sollten jetzt auf jeden Fall eine Sicherung Ihrer Wallet erstellen! Ohne Sicherung gibt es keine Möglichkeit auf Ihr Konto zugreifen zu können.", backup_types: "backup types", backup_warning: "Es schaut so aus, als wäre Ihre private Schlüssel-Datei noch nicht gesichert worden. Aus Gründen der Sicherheit empfehlen wir keine Anmeldung ohne Sicherungskopie Ihres privaten Schlüssels.", balance_claim_lookup: "Guthaben anschauen", balance_claims: "Guthaben einfordern", brainkey: "Gedächtnisschlüssel", brainkey_backed_up: "Dieser Gedächtnisschlüssel wurde das letzte mal gesichert.", brainkey_not_backed_up: "Dieser Gedächtnisschlüssel wurde noch nie gesichert.", brainkey_not_verified: "Dieser Gedächtnisschlüssel ist nicht verifiziert.", brainkey_reset_success: "Schlüsselsequenz zurückgesetzt. Um Ihren privaten Schlüssel vom Gedächtnisschlüssel neu anzulegen, laden Sie die Seite neu und entsperren Sie Ihre Wallet.", brainkey_seq_reset: "Sequenz des Gedächtnisschlüssel zurücksetzen.", brainkey_seq_reset_button: "Jetzt zurücksetzen", brainkey_seq_reset_text: "Benutzen Sie dies, um den Zähler für die Herleitung des privaten Schlüssels aus dem Gedächtnisschlüssel, zurückzusetzen.
    Dies kann benutzt werden, um eine Regeneration des privaten Schlüssels aus dem Gedächtnisschlüssel, zu erzwingen.", brainkey_w1: "WARNUNG: Bitte ausdrucken oder aufschreiben!", brainkey_w2: "Jeder mit Zugang zu diesem Schlüssel wird", brainkey_w3: "Zugang zu Ihren Guthaben in dieser Wallet erhalten.", bts_09_export: "BTS 0.9.3c Schlüsselexportdatei (.json)", cancel: "Abbrechen", change: "Wallet (%(name)s) wechseln", change_backup: "Sie haben gerade Ihr Passwort geändert. Es wird jetzt dringenst empfohlen, eine neue Sicherung anzulegen!", change_password: "Passwort ändern", change_success: "Passwort erfolgreich geändert!", change_wallet: "Wallet (digitale Brieftasche) wechseln", claim_balance: "Guthaben einfordern", claim_balances: "Guthaben einfordern", claim_later: "Nachdem Sie den Schlüssel importiert haben, können Sie das Guthaben auf ein Konto Ihrer Wahl auszahlen lassen.", confirm: "Passwort bestätigen", confirm_error: "Die Bestätigung des Passworts stimmt nicht überein", confirm_password: "Passwort bestätigen", congrat: "Glückwunsch, Sie sind jetzt dabei!", console: "Wallet-Management-Konsole", create: "Erstellen", create_a: "Ein neues Blockchain Konto erstellen", create_account_password_text: "Die Schlüssel für das neue Konto beziehen sich auf Ihr Passwort. Es wird nichts im Browser oder einem zentralen Server gespeichert. Stellen Sie sicher, dass Sie Ihr Passwort nicht vergessen!", create_account_text: "Der gewählte Kontoname muss einzigartig sein, da dieser auf der Blockchain öffentlich registriert wird und zur Identifikation der Transaktionen benutzt wird.", create_backup: "Sicherung erstellen", create_backup_of: "Jetzt Wallet sichern", create_importkeys_text: "Damit Ihre Schlüssel importiert werden können, muss als erstes eine lokale Wallet angelegt werden. Durch das Abschließen des Dialogs unterhalb, kann eine neue lokale Wallet angelegt werden.", create_password: "Neues Konto durch die Benutzung eines Passwortes erstellen.", create_success: "Ihre lokale Wallet wurde erfolgreich erstellt.", create_text: "Die lokale Bitshares Wallet wird im Browser gespeichert und nicht in der Cloud. Eine Wallet kann mehrere Konten beinhalten und durch Benutzung der Sicherungsdatei zwischen Browser oder Computer einfach gewechselt werden.", create_w_a: "Erstelle eine lokale Wallet (digitale Brieftasche, enthält den Kontonamen und nötigen privaten Schlüssel)", create_wallet: "Wallet erstellen", create_wallet_backup: "Eine neue Wallet von einer Sicherungsdatei erstellen.", current_pass: "Aktuelles Passwort", custom_brainkey: "Individueller Gedächtnisschlüssel (Fortgeschritten)", delete_confirm_line1: "Sind Sie ABSOLUT sicher?", delete_confirm_line2: "Unerwartete schlechte Dinge werden passieren, sollten Sie das hier nicht lesen!", delete_confirm_line3: "Diese Aktion kan NICHT rückgängig gemacht werden!", delete_confirm_line4: "Ja, %(name)s Wallet löschen", delete_wallet: "Lokale Wallet löschen", delete_wallet_name: "Wallet (%(name)s) löschen", different_file_type: "Haben Sie eine anderen Datentyp?", done: "Erledigt", dont_ask_for_backup: "Fragen Sie mich nicht mehr eine Sicherung anzulegen.", download: "Download", enter_password: "Passworteingabe", existing_password: "Existierendes Passwort", first_account_paid: "Da dies Ihr erstes Konto ist, wird ein Aufnehmer Ihre Registrierungsgebühren übernehmen.", generated: "Erzeugtes Passwort", go_get_started: "Beginnen", has_wallet: "Wenn Sie Ihr erstes Bitshares Konto anlegen, wird automatisch eine lokale Wallet erstellt, die in Ihrem Browser gespeichert wird. Diese lokale Wallet ist mit Ihrem Passwort verschlüsselt und enthält die privaten Schlüssel zu Ihrem Konto. Es ist wichtig, sich anschließend die Zeit zu nehmen, diese Wallet zu sicher!", import_20_notice1: "Importieren Sie Ihre BTS 2.0+ SICHERUNG zuerst!", import_20_notice2: "(falls vorhanden)", import_backup: "Sicherung importieren", import_backup_choose: "Bitte wählen Sie eine Sicherungsdatei im nachfolgenden Dialog aus. Dies ist komplett sicher, da die Datei nirgends hochgeladen wird und Ihren Browser nicht verlässt.", import_balance: "Kontostand importieren", import_bts: "Eine BTS 0.9.3c Schlüssel Datei importieren", import_bts1: "Von BitShares 0.9.3c importieren", import_key_success: "Es wurden erfolgreich %(count)s Schlüssel importiert.", import_keys: "Schlüssel importieren", import_keys_tool: "Schlüsselimport-Werkzeug", import_pass_match: "Passwort stimmt überein. Sicherung wird jetzt entschlüsselt ...", import_password: "Passwort für den Dateiimport eingeben.", import_private_key: "Importiere einen privaten Schlüssel.", invalid_format: "Ungültiges Format", key_file: "Schlüssel Datei", key_file_bin: "Schlüssel Datei (.bin)", last_backup: "letzte Sicherung", link_account: "Konto", link_deposit: "Einzahlungen", link_transfer: "Transaktionen", loading_balances: "Bestehende Kontostände werden geladen.", local_switch: "Lokale Wallet mit gleichem Password gefunden, wechsle automatisch zu der lokalen Wallet.", login_type: "Auswahl der Anmeldeart", must_be_ltm: "Das Konto zur Gebürenbezahlung muss eine Lebenszeit Mitglied sein, um diese Tätigkeit auszuführen.", name: "Name der Wallet (digitale Brieftasche)", need_backup: "Diese Wallet sollte neu gesichert werden!", never_backed_up: "Diese Wallet wurde noch nie gesichert!", new_confirm: "Bestätigen Sie das neue Passwort!", new_password: "Neues Passwort", new_wallet: "Neue Wallet", new_wallet_name: "Name der neuen Wallet", no_accounts: "Keine Konten", no_balance: "Keine Kontostände bekannt", no_wallet: "Sie haben noch keine lokale Wallet?", noneed_backup: "Kein Sicherung erforderlich", not_first_account: "Nachdem Sie schon ein Konto haben, müssen Sie für das neue Konto selber bezahlen. Damit dies möglich ist, brauchen Sie eine Lebenszeit Mitgliedshaft, die auf der Konto Seite gekauft werden kann.", ok_done: "OK, bringen Sie mich zum Dashboard", pass_incorrect: "Falsches Passwort", pass_length: "Das Passwort muss aus mindestens %(minLength)s Zeichen bestehen. Ide­a­ler­wei­se sollten Sie mindestens 20 Zeichen aus einer Kombination von Zahlen, Sonderzeichen und Buchstaben, verwenden.", password: "Passwort", password_crucial: "Es ist kritisch, dass Sie sich jetzt die Zeit nehmen und das Passwort aufschreiben, entweder auf Papier, in einer Passwortverwaltung oder irgendwo anders. Wenn Sie das Passwort vergessen besteht kein Zugriff mehr auf Ihr Konto.Wir können Ihnen nicht helfen, das Passwort wieder zu erlangen", password_lose_warning: "WICHTIG: Wenn Sie das Passwort vergessen, können Sie auf Ihr Konto nicht mehr zugreifen. Wir können weder das Passwort zurücksetzen noch wiederherstellen. Stellen Sie sicher, sich das Passwort zu merken oder es aufzuschreiben!", password_model: "Konten Modell", password_model_1: "Das Konten Modell benutzt ein Passwort in Kombination mit Ihrem Kontonamen, um Ihren privaten Schlüssel zu erzeugen.", password_model_2: "Dies gibt Ihnen die Möglichkeit, nur durch die Benutzung Ihres Kontonamens und Passwortes, sich von überall anzumelden. Jedoch ist das Konten Modell durch eine Brute-Force-Attacke angreifbar, dadurch ist es wichtig ein sehr langes Passwort zu wählen!", password_model_3: "
  • Cloud Konto
  • Einfache Anmeldung
  • Mäßige Sicherheit
  • ", password_show: "Passwort anzeigen", paste_private: "Privaten Schlüssel hier einfügen (Wallet Import Format - WIF)", pwd4brainkey: "Passwort eingeben, um Gedächtnisschlüssel anzuzeigen", read_more: "Read more about %(wallet)s and %(backup)s.", ready_to_restore: "Fertig für Wiederherstellung", reenter_brainkey: "Gedächtnisschlüssel bestätigen", remember_me: "Remember me", remember_me_explanation: "Turn 'Remember Me' off to disable remembering your account name and other personal settings.", reset: "Zurücksetzen", restore: "Lokale Wallet von Sicherung wiederherstellen", restore_backup: "Sicherung wiederherstellen", restore_it_here: "Wiederherstellung hier", restore_key_file: "Wiederherstellungs Schlüsseldatei ...", restore_success: "Wallet (%(name)s) erfolgreich wiederhergestellt", restore_wallet_of: "Wallet (%(name)s) wiederhergestellen", select_wallet: "Wähle Schlüsseldatei", setup_wallet: "Wallet (digitale Brieftasche) einrichten", show_brainkey: "Gedächtnisschlüssel anzeigen", step_1: "Wallet erstellen", step_2: "Sicherung erstellen", step_3: "Beginnen", submit: "Absenden", switch_model_password: "Zur Cloud Wallet wechseln", switch_model_wallet: "Zum lokalen Wallet wechseln", tips_account: "Neues Konto betrachten", tips_dashboard: "Dashboard betrachten", tips_deposit: "Einzahlung vornehmen", tips_explore: "Sie haben jetzt erfolgreich ein Konto erstellt und Ihre Sicherung heruntergeladen, es ist jetzt an der Zeit anzufangen. Drücken Sie eine der Links unterhalb, um mit der Erforschung anzufangen.", tips_explore_pass: "Sie haben jetzt erfolgreich ein Konto erstellt und Ihre Sicherung heruntergeladen, es ist jetzt an der Zeit anzufangen. Drücken Sie eine der Links auf der linken Seite, um mit der Erforschung anzufangen.", tips_header: "Sie können die selben Links auch im oberen Menü und im Drop-down-Menü finden.", tips_login: "WICHTIG: Es gibt hier keine Anmelden/Abmelden Funktion, Sie entsperren lediglich Ihre Wallet um eine Tätigkeit auszuführen.", tips_settings: "Einstellungen ändern", tips_transfer: "Transaktion ausführen", title: "Wallet (digitale Brieftasche)", totals: "Anlagen Gesammtsumme", unclaimed: "nicht eingefordert", unclaimed_vesting: "nicht eingefordert (vesting)", understand_1: "Ich habe vestanden, dass keiner mein Passwort wiederherstellen kann, wenn ich es vergessen habe.", understand_2: "Ich habe es aufgeschrieben oder woanders abgespeichert", understand_3: "Ich habe verstanden, dass ich meinen Zugang zu meinem Konto verliere, wenn ich mein Passwort verliere.", use_different: "Benutzen Sie eine andere Datei!", use_password: "Cloud Wallet benutzen", use_wallet: "Lokale Wallet benutzen", using: "Benutzen:", verified: "Verifiziert!", verify: "Prüfe", verify_prior_backup: "Prüfe vorherige Sicherung", wallet_browser: "Ihr Webbrowser ist Ihre Wallet (digitale Brieftasche)", wallet_created: "Wallet erstellt", wallet_crucial: "Ihre lokale Wallet wird nur in Ihren Browser gespeichert, dadurch ist es kritisch eine Sicherung zu erstellen, um Ihre Wallet wiederherstellen zu können. Keiner kann Ihr Konto wiederherstellen, wenn Sie Ihre Sicherung verlieren.", wallet_exist: "Wallet existiert bereits. Wählen Sie einen anderen Namen.", wallet_exist_with_name: "Wallet (%(name)s) existiert bereits. Wählen Sie einen anderen Namen", wallet_lose_warning: "WICHTIG: Wenn Sie Ihre lokale Wallet oder Passwort verlieren, können Sie nicht mehr auf Ihr Konto zugreifen. Stellen Sie sicher irgendwo ein Sicherungskopie anzulegen und sich das Passwort zu merken oder aufzuschreiben!", wallet_model: "Lokale Wallet (digitale Brieftasche)", wallet_model_1: "Eine lokale Wallet speichert die digitale Brieftasche im Browser und wird mit Ihrem gewählten Passwort verschlüsselt. Die Wallet kann entweder mit einem Gedächtnisschlüssel oder einer verschlüsselten Binärdatei, der alle privaten Schlüssel enthält, gesichert werden.", wallet_model_2: "Eine lokale Wallet bietet die beste Sicherheit, ist aber an den aktuellen Browser und Computer gebunden. Zur Migration auf ein anderes System, sollten Sie die Sicherungskopie (bin-Datei) oder den Gedächtnisschlüssel nutzen.", wallet_model_3: "
  • Verschiedene Konten
  • Wallet Sicherung (Backup) benötigt
  • Hohe Sicherheit
  • ", wallet_move: "Diese Sicherungsdatei kann auch benutzt werden, um Ihre lokale Wallet, auf einen anderen Browser oder Computer zu benutzen. Damit Sie Ihre lokale Wallet wiederherstellen können, benötigen Sie auch Ihr Passwort!", wallet_password: "Anmeldung von überall möglich, durch Ihr Passwort.", wallet_types: "wallet types" } } } , function(e) { e.exports = { account: { accounts: "Cuentas", activity: "Actividad", advanced: "Avanzado", as_collateral: "Collateral", asset: "Activo", asset_details: "Detalles de activos", average_price: "Average price", bittrex_scam: "Esta cuenta no es la verdadera cuenta de Bittrex, por favor envíe a esta cuenta: bittrex-deposit.", bts_market: "Mercado", collaterals: "Posiciones Collaterales", confirm_asset_modal: { are_you_sure: "¿Está seguro de que desea guardar todos los cambios en estas pestañas?", header: "Confirmar multiples cambios" }, connections: { black: "En lista negra por", known: "Conocido por" }, contacts: "Contactos", create_account: "Crear cuenta", create_new: "Crear una nueva cuenta", deactivate_suspicious_proposals: "Deactivate suspicious proposals", deposit: "Depositar BTS", deposit_address: "Su dirección de depósito es su nombre de cuenta", deposit_withdraw: "Depositar/Retirar", download_history: "Download History", eq_value: "Estimada", eq_value_header: "Valor ({asset})", errors: { invalid: "Nombre de cuenta no válido", memo_missing: "No tiene control de la tecla de nota para esta cuenta. Para utilizar una nota, configure la tecla de nota de cuenta en una tecla que controle utilizando la página Permisos.", not_found: "La cuenta %(name)s no existe, está seguro de haberla escrito correctamente?", not_yours: "No es el propietario de la cuenta", unknown: "Cuenta desconocida" }, estimate_value: "Valor estimado de la cuenta", existing_accounts: "Cuentas Existentes", existing_user: "Usuario existente", export_modal: { coinbase_report: "CoinTracking.info Report", description: "Enter your desired elastic search instance and click the report type", full_report: "Full Report", title: "History Export", use_custom: "Use custom wrapper" }, filter_orders: "Filter", follow: "Agregar contacto", group_by_asset: "Group by asset", hidden_accounts_row: "Hidden Accounts", hide_hidden: "Active", hide_ignored: "Ocultar cuentas ocultas", history: "Historial", history_error: "Error al descargar el historial de la cuenta, inténtalo de nuevo", home: "Pagina principal", hour_24: "Cambio 24horas", hour_24_short: "24horas y menos", id: "ID de la cuenta", identicon: "Identicon", ignore: "Ocultar", in_open: "Esta es la cantidad de %(asset)s que usted tiene en pedidos abiertos.", in_open_value: "Este es el valor estimado de lo %(asset)s que usted tiene en pedidos abiertos.", intro_text_1: "Su Decentralized Platform", intro_text_2: "El DEX está inherentemente descentralizado, permitiéndote comerciar BitShares core token (BTS) y un rango de activos sin confianza con precio estable, vinculado al mercado como bitUSD, bitCNY, bitBTC, bitGold y mucho mas. estos activos pueden ser comerciados sin zero rischio de contraparte, poniéndote en control total de tus fondos.", intro_text_3: "El DEX también permite la creación de activos emitidos por el usuario (UIAs), que pueden ser comerciados en contra de cualquier otro UIAs o activos sin confianza en la plataforma. Un emisor muy conocido en The DEX es OpenLedger, que ofrece una serie de activos que incluyen BTC, ETH, STEEM, DASH, LTC, DOGE, y mucho mas", intro_text_4: "Esto le da a los comerciantes de criptomonedas una combinación única de comercio tradicional y descentralizado, todo en una interfaz de intercambio familiar. Feliz comercio!", intro_text_title: "Bienvenido en BitShares", login_with: "Login with", market_actions: "Acciones del mercado", market_value: "Valor de Mercado", member: { annual: "Suscriptor anual", available: "Disponible para reclamar", balance_type: "Type", basic: "Miembro básico", cashback: "Reembolso", claim: "Reclama ahora", coindays: "días de monedas", earned: "Días de monedas ganadas", expires: "expira", fee_allocation: "Asignación de Comisiones", fees_cashback: "Estadísticas de comisìon", fees_paid: "Membresía vitalicia paga", join: "Ingresado en", lifetime: "Miembro vitalicio", lifetime_referrer: "Referente Vitalicio", membership: "Membresía", membership_expiration: "Vencimiento de la Membresía", network_percentage: "Red", referral_link: "Tu enlace de referencia", referral_text: "Dale esto a personas que usted quiera referir a BitShares", referrals: "Referidos", referrer: "Afiliado Referente", registrar: "Registrante", remaining: "Días restantes del período de adjudicación", required: "Días de monedas requeridos", rewards: "Reembolso de Honorarios", stats: "Membresía", subscribe: "Comprar Suscripción Anual", suspected_scammer: "Sospechoso de estafador", unknown: "Miembro desconocido", upgrade_lifetime: "Comprar Suscripción Vitalicia", vested: "Consolidado" }, mine: "Mi cuenta", more: "ver más", name: "Nombre de la Cuenta", name_input: { name_is_taken: "El nombre de la cuenta ya está tomado.", not_found: "Cuenta no encontrada.", premium_name_faucet: "Este es un nombre premium. Los nombres premium son más caros y no pueden registrarse de forma gratuita con faucet. Intente seleccionar otro nombre que contenga al menos un guion, número o sin vocales.", premium_name_warning: "Este es un nombre premium que es más caro registrar. Los nombres comunes tienen al menos un guion, número o sin vocales." }, new_user: "Nuevo usuario?", no_orders: "No hay pedidos abiertos", no_price: "--", open_orders: "Ordenes abiertas", optional: { formatter: "Opcionalmente, {restore_link} o crea una cuenta usando el {restore_form}.", restore_form: "forma avanzada", restore_link: "restaurar su cuenta" }, options: { memo_key: "Llave Memo", num_committee: "Miembros del Comité Deseados", num_witnesses: "Testigos Deseados" }, orders: "Ordenes", other_scam: "Esta cuenta no es conocida por ser una cuenta oficial, por favor verifique el destino antes de transferir", overview: "Resumen", password_login: "Iniciar la sesión con contraseña", pay: "Pagar", pay_from: "Pagar con la cuenta", payees: "Beneficiarios", percent: "Porcentaje de oferta total", perm: { account_name_or_key: "Nombre de cuenta o Llave", acct_or_key: " Cuenta/Clave/Direcciòn", action: "Acción", active: "Permisos Activos", add: "Agregar Permisos", add_permission_label: "Ingrese nombre de cuenta/llave y su relevancia", brain: "Posición de Brainkey", cancel: "Cancelar", confirm_add: "Agregar", create_paperwallet: "Crear billetera de papel", create_paperwallet_private_hint: "Desbloquee / inicie sesión antes de crear la billetera de papel para incluir claves privadas", from: "Importado desde la cuenta", key: "Llave/Nombre", key_viewer: "Visionador de clave privada", memo_key: "Memo key", memo_public_key: "Llave Pública Memo", memo_warning: "ADVERTENCIA: Si reemplaza la tecla memo no podrá leer las notas viejas cuando inicie la sesión con su contraseña, y a menos que importe la nueva clave privada memo en su billetera anterior esa billetera no podrá decodificar nuevos memos", new_active: "Nueva clave activa", new_memo: "Nueva clave memo", new_owner: "Nueva clave de propietario", owner: "Permisos de Propietario", password_model: "Modelo de cuenta", password_model_1: "Si desea poder iniciar sesión desde cualquier lugar solo con su contraseña, puede usar esta página para agregar nuevas claves a sus permisos. Si también quieres eliminar las claves originales, puede hacerlo en las pestañas de permisos de propietario/activo. ", password_model_2: "Agregar claves generadas por contraseña", private: "Llave privada (WIF - Wallet Import Format)", public: "Llave pública", publish: "Publicar Cambios", remove_proxy: "Eliminar proxy", remove_text: "Eliminar", reset: "Resetear Cambios", save: "Save Changes", save_all: "Save All Changes", show: "Espectáculo", sign_owner: "Firmar como propietario", threshold: "Humbral", type: "Tipo", use_text: "Utilizar", valid_pub: "Llàve publica valida", warning1: "Las ponderaciones de permisos activos totales de %(weights_total)s debe ser igual o superar el umbral de %(threshold)s", warning2: "Las ponderaciones de permisos de propietario total de %(weights_total)s debe ser igual o superar el umbral de %(threshold)s", warning3: "La cuenta ya está en la lista", warning4: "La clave ya está en la lista", weight: "Relevancia" }, permissions: "Permisos", please_create_account: "Por favor cree una cuenta", polo_scam: "Esta cuenta no es la verdadera cuenta de Poloniex, por favor envíe a esta cuenta: poloniexwallet.", portfolio: "Portafolio", propose_from: "Proponer desde", qty: " Cantidad", quote: "Citar", recent: "Actividad reciente", reset_orders: "Reiniciar", restore: "Restaurar", search: "Buscar una cuenta", see_open: "Ver pedidos abiertos", select_placeholder: "Seleccionar Cuenta...", settle: "Resolver", show_hidden: "Oculto", show_ignored: "Mostrar cuentas ocultas", show_visual: "Visual", signedmessages: { automaticcreation: "El mensaje firmado se creará automáticamente", copysuccessful: "Mensaje firmado copiado en el portapapeles", copyunsuccessful: "Error al copiar el mensaje", entermessage: "Ingrese el mensaje aquí", errorverifying: "Se produjo un error al verificar el mensaje", invalidformat: "El formato de mensaje firmado no puede ser reconocido", invalidkey: "No se pudo obtener la clave privada, ¿es válida la clave pública?", invalidsignature: "El contenido del mensaje podría ser validado contra la firma", invaliduser: "La cuenta del remitente del mensaje no es válida", keymismatch: "Dada la clave pública del remitente no a la almacenada en la cuenta del remitente", menuitem: "Mensajes firmados", sign: "Firmar", signing: "Firmando, por favor espera ...", signmessage: "Firmar mensaje", title: "Mensajes firmados", verify: "Verificar", verifying: "Verificando, por favore espera ...", verifymessage: "Verificar mensaje", verifyonchange: "Verificar mientras escribes" }, start_typing_to_search: "Comience a escribir para buscar cuentas", submit_orders: "Enviar", total: "Total ({asset})", total_estimate: "Este es el valor estimado de todos sus activos, incluyendo cualquier activo oculto, ordenes abiertas, deuda y colateral. La estimación se realiza usando solo datos de cadena de bloques y puede no ser perfectamente exacto.", total_value: "Valor total", trade: "Comercio", transactions: { fee: "Cuota", id: "ID", info: " Información", time: "Hora", type: "Tipo" }, transfer_actions: "Transfiere acciones", unfollow: "Retirar", unignore: "Mostrar", upgrade: "Actualizar membresía", user_issued_assets: { add_feed: "Añadir nuevo productor de feed", advanced: "Características avanzadas", approx_fee: "Comisiòn aproximada", backing: "Activo de respaldo corto", base: "Cantidad de activos base", base_name: "Activo base", bitasset_opts: "opciones SmartCoin", cer_warning_1: "Advertencia", cer_warning_2: "Asegúrese de que su tipo de cambio sea más alto que el precio de mercado, de lo contrario, las personas comprarán su token desde el mercado y agotarán su grupo de honorarios a través del arbitraje implícito. La tasa de cambio central debe actualizarse periódicamente para reflejar el precio de mercado de su activo.", charge_market_fee: "Habilitar tasa de mercado", committee_fed_asset: "Permitir que los miembros del comité proveer feeds", condition: "Condición (max 60 caracteres)", conflict_feed: "No es posible permitir los testigos y los miembros de comité proporcionar feeds simultaneamente", core_exchange_rate: "Core Tasa de intercambio", current_issuer: "Cuenta del propietario actual", decimals: "Número de decimales", description: "Descripcion", details: "Detalles", disable_confidential: "Deshabilitar transacciones confidenciales", disable_force_settle: " Desactivar el settling forzado", error_invalid: "Ese activo no puede ser usado", error_precision: "Ese activo no tiene la misma precisión que %(asset)s", error_too_deep: "No puede crear un bitasset respaldado por un bitasset respaldado por un bitasset", exists: "Ese activo ya existe", expiry: "Fecha de resolución del mercado", feed_lifetime_sec: "Feed tiempo de vida en minutos", feed_not_allowed_1: "No se puede establecer productores en un asset alimentado por testigos o comités", feed_not_allowed_2: "Desactive las marcas denominadas 'Permitir que los testigos proporcionen feeds' y 'Permitir que los miembros del comité proporcionen feeds' para permitir la definición manual de productores de feeds", feed_producers: "Productores de feeds", flags: "Banderas", force_settlement_delay_sec: "Retardo para asentamientos forzados (minutos)", force_settlement_offset_percent: "Porcentaje de compensación de asentamientos forzados", global_settle: "Permite al emisor de desactivar el settling global", id: "CARNÉ DE IDENTIDAD", invalid_backing_asset_change: "No puede cambiar el activo de respaldo de un activo que tiene un suministro que no es cero", invalid_market_pair: "El par preferido del mercado no puede ser el mismo mercado", invalid_permissions_change: "No puede habilitar un permiso para un activo que tiene un suministro actual distinto de cero", issued_assets: "Activos emitidos", market: "emparejamiento del mercado Preferido", market_fee: "comisiòn de mercado", max_market_fee: "Comisiòn de mercado máxima", max_positive: "El oferta máxima deberia ser un número positivo", max_supply: "Emision maxima", maximum_force_settlement_volume: "Volumen máximo de asentamiento de fuerza (porcentaje del oferta total por hora)", minimum_feeds: "Número mínimo de feeds", mpa: "SmartCoin", name: "Nombre del Activo", need_asset: "Al menos uno de los dos activos debe ser %(name)s", new_issuer: "Nueva cuenta del propietario", optional: "Configuraciones opcionales", override_authority: "El emisor puede transferir el activo a sí mismo", perm_warning: "ADVERTENCIA: Los permisos pueden ser solo deshabilitados, una vez desactivadas no pueden ser reactivadas!!", pm: "Mercado de predicción binaria", precision: " Precisión", precision_warning: "Advertencia: La cantidad de decimales no puede cambiarse después de la creación", primary: "Configuraciones primarias", quote: "Cita cantidad de activos", quote_name: "Cita activos", reward_percent: "Reward percent", reward_percent_tooltip: "If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.", short: "Nombre corto (max 32 caracteres)", symbol: "Simbolo", to: "Emitir a la cuenta", too_large: "Este oferta máximo es demasiado grande, por favor elija un número más pequeño", too_many_feed: "El número de productores de alimento excedió el máximo permitido (% (max) s)", transfer_restricted: "El emisor debe aprobar todas las transferencias", update_owner: "Proprietario actualizado", update_owner_text: "El propietario del activo puede cambiar el propietario a otra cuenta utilizando este formulario:", visible: "Ocultar activos desde la búsqueda y el mercados", white_list: "Requerir que los titulares sean incluidos en la lista blanca", witness_fed_asset: "Permite a los testigos de proveer feeds" }, vesting: { balance_number: "Saldo #%(id)s", explain: "Los saldos de consolidación no contienen los honorarios obtenidos a través del programa de referencia o desde trabajador, por ejemplo. Tienen un cierto período de consolidación y se desbloquean continuamente durante ese período hasta que todos los saldos estén disponibles.", no_balances: "Esta cuenta no tiene saldos de consolidación", title: "Saldos de consolidación" }, votes: { about: "De", active: "Activo (%(count)s)", active_short: "Activo", add_committee: "Agregar", add_committee_label: "Miembro del Comité", add_witness: "Agregar", add_witness_label: "Testigos", already: "La cuenta ya está en la lista", approve_worker: "Aprobar propuesta de trabajo", cast_votes_through_one_operation: "Cast your votes for witness, committee and workers and broadcast them together.", clear_proxy: "Eliminar proxy", cm_approved_by: "Los miembros del comité aprobados por %(account)s", cm_not_approved_by: "Los miembros del comité no aprobados por %(account)s", committee: "Nombre del miembro del comité", create_worker: "Crea un nuevo trabajador", creator: "Creador", daily: "diario", daily_pay: "Pago diario", end: "Fecha final", expired: "Vencido", funding: "Financiamento", go_proxy: "Ir a", hide_legacy_proposals: "Ocultar propuestas viejos", inactive: "Backup", info: "Información", join_committee: "Join committee", join_witnesses: "Join Witnesses", line: "Lìnea", max_pay: "Pago total máximo", missing: "Necesario", name: "Nombre", new: "Propuesto (%(count)s)", no_proxy: "Sin Apoderado", polls: "BSIPs/Polls (%(count)s)", proxy: "Convertir en Apoderado de sus Votos a", proxy_current: "Tu proxy actual es", proxy_known: "O elige una cuenta como su proxy", proxy_short: "Proxy", publish: "Publicar Cambios", recycled: "Reciclado", reject_worker: "Rechazar propuesta de trabajo", remove_committee: "Remover", remove_witness: "Remover", save_finish: "Haga clic en guardar para finalizar", set_proxy: "Establecer un proxy aquí", start: "Fecha de inicio", status: { neutral: "Neutral", rejected: "Rechazado", supported: "Soportado", title: "Estado" }, support: "Soporte", supported: "Soportado", threshold: "Votos necesarios para activar", toggle: "Alternar voto", total_budget: "Presupuesto diario", total_votes: "Votos", unclaimed: "Pago no reclamado", unused_budget: "Presupuesto diario del trabajador no utilizado", url: "Página Web", votes: "Votos", votes_against: "Votos en contra", w_approved_by: "Testigos aprobados por %(account)s", w_not_approved_by: "Testigos no aprobados por %(account)s", witness: "Nombre del testigo", worker_account: "Cuenta del trabajador", workers: "Presupuestos", workers_short: "Trabajadores" }, voting: "Votación", welcome: "Bienvenido a BitShares", whitelist: { add: "Añadir a la lista blanca", add_black: "Añadir a la lista negra", black: "Lista negra", black_by: "Incluido en la lista negra por", blacklist_authorities: "Autoridad de lista negra", empty: "%(account)s No ha incluido ninguna cuenta en la lista blanca.", empty_black: "%(account)s No ha incluido ninguna cuenta en la lista negra.", empty_black_by: "Ninguna cuenta ha sido incluida en la lista negra %(account)s.", empty_white_by: "ninguna cuenta ha sido incluida en la lista blanca %(account)s.", title: "Lista blanca", white_by: "Incluido en la lista blanca por", whitelist_authorities: "Autoridad de lista blanca", whitelist_market_fee_sharing: "Market fee sharing whitelist" } }, account_browsing_mode: { go_back: "Volver a mi cuenta", modal_description: "Estás cambiando una cuenta sobre la que no tienes autoridad activa. Puede navegar por esta cuenta, pero en modo de visualización solamente", modal_title: "Modo de solo visualización", never_show_again: "Nunca lo muestres otra vez", view_mode: "Modo de vista", you_are_in_browsing_mode: "Usted está en modo de visualización solamente de la cuenta actual. Haga clic aquí para volver a su cuenta." }, alert: { warning: "Aviso" }, app_init: { browser: "Navegador no soportado", browser_text: "El navegador que está utilizando no se ha probado completamente para admitir la billetera BitShares. Le recomendamos encarecidamente que haga una copia de seguridad de su monedero local e importarlo utilizando el navegador Chrome hasta que hayamos tenido más tiempo para probar completamente el navegador de su elección. Úselo bajo su propio riesgo.", check_latency: "Comprobando la latencia ...", check_latency_feedback: "Comprobando la latencia (%(pinged)s/%(totalToPing)s nodos) ...", check_latency_feedback_country: "Verificación de latencia en el mejor país (%(pinged)s/%(totalToPing)s nodos)", check_latency_feedback_last: "Comprobación de latencia para el último node conectado (%(pinged)s/%(totalToPing)s nodos)", check_latency_feedback_region: "Verificación de latencia en la mejor región (%(pinged)s/%(totalToPing)s nodos)", check_latency_feedback_rest: "comprobación de la frecuencia para los nodos restantes (%(pinged)s/%(totalToPing)s nodos)", check_latency_feedback_world: "Verificación de latencia en cada región (%(pinged)s/%(totalToPing)s nodos)", connected: "Conectado", connecting: "Conectando al servidor API: %(server)s", database: "Conexión establecida, inicializando bases de datos locales", not_connected: "No conectado", retry: "Reintentar", title: "Problemas de inicialización de la aplicación", understand: "entiendo", ws_status: "Estado de conexión de nodo completo" }, assets: { BTS: " BTS es el token principal de la cadena de bloques de BitShares" }, boolean: { false: "Falso", true: "Cierto" }, borrow: { adjust: "Actualizar posición", adjust_short: "ajustar", call_limit: "Mercado llamada a limite", close: "Cerrar la posición", coll_ratio: "Proporción", coll_ratio_target: "Proporción de objetivos", considered_on_revival: "Incluido", enable_target_collateral_ratio: "Utilice la ratio de colateral objetivo", errors: { below: "Su colateral está por debajo %(mr)s y no está permitido.", below_info: "¡Su posición está por debajo de la ratio de colateral requerida! Se permite aumentar la proporción de garantía, la deuda solo puede disminuirse.", below_ratio_mcr_update: "Su ratio de colateral está por debajo de su original. %(ocr)s. Solo se permite una mayor proporción en el margen llamado órdenes.", close: "Su proporciòn de colateral está por debajo %(mr)s lo que significa que esta posición está en peligro de ser llamada de margen si el precio baja.", collateral: "Insuficiente saldo colateral", increased_debt_on_margin_call: "Incrementó su deuda, lo que no está permitido al actualizar un margen llamado posición" }, maximize_debt_set_ratio_slider: "Debe establecer un ratio de colateral antes de poder maximizar la deuda", no_valid: "No hay feeds válidos para %(asset_symbol)s", pay_max_debt: "Pagar la deuda máxima", target_collateral_ratio: "Ratio de Colateral Objectivo", target_collateral_ratio_explanation: "When the position is being margin called, the corresponding order will be just big enough to bring the collateral ratio of the position greater or equal to the target collateral ratio", target_collateral_ratio_short: "TCR", title: "%(asset_symbol)s Margen", update: "Actualizar", use_max: "Usar Max" }, browser_notification_messages: { money_received_body: "Enviado %(amount)s %(symbol)s", money_received_title: "Transferido de %(from)s" }, cancel: "Cancelar", connection: { automatic_reconnect: "Despues de %(reconnect_in_seconds)s segundos un intento de reconexión se hará automáticamente.", manual_ping: "Ir a ping nodos", manual_reconnect: "Reconectarse ahora", out_of_sync: "Tu conexión no ha estado sincronizada para %(out_of_sync_seconds)s segundos.", title_out_of_sync: "Conexión fuera de sincronización", want_to_reconnect: "Si la conexión se puede recuperar, este mensaje desaparecerá automáticamente." }, counterpart: { formats: { date: { full: "%F %T %Z", market_history: "%e/%m %H:%M:%S", market_history_us: "%m/%e %H:%M:%S", short_custom: "%e %b '%y" } } }, dashboard: { featured_markets: "Mercados destacados", starred_markets: "Mercados favoritos", table_empty: "Ningún mercado encontrado", top_markets: "Mejores mercados" }, exchange: { add_quote: "Añadir", asks: "Vender ordenes", atr: "Average True Range", balance: "Su balance", base_supply: "oferta basica", bids: "Comprar ordenes", borrow: "Pedir prestado", borrow_short: "Pedir prestado", buy: "Comprar", buy_description: "Compra %(baseAsset)s %(baseName)s para %(quoteAsset)s %(quoteName)s", buy_min: "Compra al menos", buy_sell: "Formulario de Pedido", buysell_formatter: "{direction} {asset}", call: "Precio de Rescate (Precio de la llamada)", cancel_selected_orders: "Cancel selected order(s)", change: "cambio", chart_height: "Altura de la gráficos (píxeles)", chart_hide: "Ocultar gráficos", chart_modal: "Opciones de gráfico", chart_type: "Tipo de gráfico", checking_for_worth_less_settlement: "Verificando si puede obtener un mejor precio vendiendo al mercado, por favor espere ...", confirm_buy: "Tu pedido es %(diff)s veces más alto que la demanda más baja, ¿estás seguro?", confirm_no_orders_buy: "Está colocando una orden de compra en un mercado sin órdenes de venta abiertas. ¿Estás seguro de que deseas continuar? ", confirm_no_orders_sell: "Está colocando una orden de venta en un mercado sin órdenes de compra abiertas. ¿Estás seguro de que deseas continuar? ", confirm_sell: "Tu pedido es %(diff)s veces inferior a la oferta más alta, ¿estás seguro?", core_rate: "Tasa de Comisión", custom_quote: "Añadir una cotización personalizada", deposit: "Depositar", description: "Descripción", ema: "Media móvil exponencial", featured: "Mercados principales", feed_price: "Predo de Feed", filter: "Filtrar...", flip: "Dar la vuelta", global_settle: "Liquidación global", group_order_limit: "Grupo", hide: "Ocultar", highest_bid: "Puja más alta", history: "Trades del mercado", horizontal: "Horizontal", index: "Índice", invalid_amount: "Monto invalido", invalid_price: "Precio inválido", invert: "Invierta el precio", latest: "Ultimo Precio", limit: "Límite", lowest_ask: "Pedido más bajo", maintenance: "Precio de llamada de mantenimiento", market: "Mercado", market_depth: "Profundidad del mercado", market_frozen: "El propietario de %(asset)s ha deshabilitado el comercio en este mercado.", market_name: "Mis mercados", market_picker: { filter_by_issuer: "Filtrar por proveedor", find_by_asset: "Encontrar por activo", results: "Establecer un proxy aquí (%(total_assets)s)", search: "Nombre de activo", search_for_asset: "Buscar para activo", search_mode: "Modo", show_all: "Mostrar todo", sub_title: "Encuentra un activo para reemplazar", title: "Selector de mercado", use: "Utilizar" }, more: "busca mercados", move_down: "Mover hacia abajo", move_up: "Mover hacia arriba", my_asks: "Mis domandas", my_bids: "Mis ofertas", my_history: "Mis comercios", my_orders: "Mis ordenes abiertos", native: "Nativo", new: "Nuevo", no_asks: "No consultas", no_balance: "Saldo insuficiente", no_bids: "No ofertas", no_data: "No datos", no_orders: "No pedidos", order_book: "Libro de Pedidos", order_depth: "Profundidad de Mercado", order_grouping: "Agrupación de Ordenes %(orderlimit)s%", others: "Otros", overbought: "Sobrecomprado", oversold: "Sobrevendido", panels_mirror: "Paneles de espejo", period: "Periodo de tiempo (days)", price: "Precio", price_alert: { add_rule: "añadir regla", alert_when: "Alertarme cuando", higher_than: "Más alto que", lower_than: "Más bajo que", notification: { higher_than: "El precio de %(pair)s subo mas alta que %(expectedPrice)s y ahora es %(actualPrice)s", lower_than: "El precio de %(pair)s cae mas baja que %(expectedPrice)s y ahora es %(actualPrice)s" }, price: "Precio", title: "Alerta de Precio", use_button: 'Usa "añadir regla" boton para crear alerta de precio para ' }, price_history: "Gráfico de Precios", price_market: "Precio de Mercado", quantity: "Monto", quick_deposit: "Depositar %(asset)s", quick_deposit_bridge: "Use un puente para depositar activos externos utilizando una de las puertas de enlace existentes y cámbielo instantáneamente a %(target)s", quick_deposit_bridge_button: "Use un puente", quick_deposit_gateway: "Depositar real %(asset)s usando una gateway para obtener IOUs respaldado por la gateway respectiva", quick_deposit_gateway_button: "Use una Gateway", quick_deposit_tooltip: "Depositar %(asset)s", quote: "Divisa de cotización:", quote_selection: "Modificar la selección de cotización", quote_supply: "Fuente de cotización", receive: "Recibir", remove: "Quitar", rsi: "Índice de Fuerza Relativa", scaled: "Escamoso", search: "Busque más mercados aquí", sell: "Vender", sell_description: "Venda %(baseAsset)s %(baseName)s para %(quoteAsset)s %(quoteName)s", settings: { header: { chart_options: "Opciones de grafico", general: "General", order_options: "Opciones de pedido", panel_grouping: "Agrupacion de Paneles", title: "Personalizar" }, options: { grouping_1: "Grupo 1", grouping_2: "Grupo 2", grouping_standalone: "autónomo", hidden_chart: "Ocultar grafico", horizontal: "Horizontal", position_order_asset_opt1: "Pedido por encima del activo", position_order_asset_opt2: "Activo por encima de pedido", position_order_form_opt1: "Comprar - Vender", position_order_form_opt2: "Vender - Comprar", position_order_orders_opt1: "Comprar - Vender", position_order_orders_opt2: "Vender - Comprar", vertical: "Vertical" }, title: { chart_height: "Altura", chart_tools: "Ver herramientos", chart_type: "Tipo", chart_zoom: "Permitir el aumento", hide_function_buttons: "Ocultar botones de función", market_location: "Ubicación del mercado", market_trades: "Comercios de mercado", my_trades: "Mis intercambios", open_orders: "Pedidos Abiertos", order_book_grouping: "Agrupación de libro de pedidos", order_style: "Estilo", orderbook_auto_scroll: "Desplazamiento automático", position_order_asset: "Pedidos Verticales / Activos", position_order_form: "Comprar/Vender Activo", position_order_orders: "Comprar/Vender Pedidos", reduce_scrollbars: "Reducir las barras de scroll", reverse_order_book: "Libro de pedidos inversa", settlements: "Asentamientos", single_colum_order_form: "Formulario de pedido de una sola columna" }, tooltip: { chart_height: "Definir la altura de las tablas.", chart_reload: "Cambiar esta configuración volverá a cargar el gráfico", chart_tools: "Muestra / oculta la barra de herramientas superior e izquierda, así como el menú contextual. Las herramientas siempre están ocultas en minúscula pantalla.", chart_type: "Cambie entre la profundidad del mercado y los gráficos de precios, o desactive los gráficos", chart_zoom: "Permitir aumentar el grafico. El zoom siempre está deshabilitado en pantalla pequeña.", decrease_chart_height: "Disminuir la altura del cuadro.", hide_function_buttons: "Ocultar todos los botones que se pueden gestionar en el formulario de personalización.", increase_chart_height: " Aumentar la altura del cuadro", market_location: "En qué lado colocar el libro de órdenes vertical. Esto cambiará de lugar con el panel de mercado.", market_trades: "", my_trades: "", open_orders: "", order_book_grouping: "Agrupar las órdenes que están juntas por un porcentaje definido", order_style: "Use un libro de pedidos vertical para fijarlo al panel lateral", orderbook_auto_scroll: "Desplazar automáticamente el libro de órdenes para mantener el centro a medida que ingresan las nuevas órdenes", panel_grouping: "Definir grupo de paneles", position_order_asset: "Defina el orden vertical para el formulario de pedido vs libro de pedidos", position_order_form: "Definir el orden horizontal para el formulario de pedido", position_order_orders: "Definir el orden horizontal para el libro de pedidos", reduce_scrollbars: "Deshabilitar las barras de desplazamiento por defecto", reload: "Cambiar esta opción solo afectará después de recargar manualmente", reverse_order_book: "Libro de pedidos inversas para tener órdenes de compra en la parte superior", settlements: "", show_market_depth: "Mostrar profundidad del mercado", show_price_chart: "Mostrar tabla de precios", single_colum_order_form: "Hacer cumplir que el precio, la cantidad, el total, etc. están en una columna (no flotante)" } }, settle: "Precio de Liquidación", settle_better_marketprice: "Spanish: El precio de mercado está a favor.", settle_better_settleprice: "El precio de liquidación está a favor.", settle_delay: "This asset will settle in %(hours)s horas", settle_delay_globally_settled: "Este activo se liquidará al instante.", settle_globally_settled: "Resolver al instante", settle_globally_settled_tooltip: "Este activo se liquida globalmente. Puede liquidarlo instantáneamente para el precio de liquidación global (vea el encabezado de intercambio o los detalles del activo)", settle_offset: "Settlement price offset: %(offset)s%", settle_orders: "Establecer órdenes", settlement_hint: "Usted está tratando de resolver {long}. Precio actual de {market_link}", short: "Corto", show_all_orders: "Mostrar todos %(rowcount)s pedidos", show_all_trades: "Mostrar todos %(rowcount)s intercambios", show_asks: "Mostrar todas las domandas", show_bids: "Mostrar todas las ofertas", show_only_liquid: "Mostrar mercados liquidos solamente", show_only_star_formatter: "Mostrar {star_icon} solamente", sma: "Media móvil simple", spread: "Margen (spread)", squeeze: "Precio Llamada de margen", time: "Candelabros", to_market: "Ir al mercado", total: "Total", trading_pair: "Par de comercio", value: "Valor", vertical: "Vertical", vol_short: "Vol", volume: "Volumen", volume_24: "24 hora volumen", worth_less_settlement_warning: "El precio de mercado actual de {market_link} es más alto que el precio de liquidación", your_price: "Su precio de llamada", zoom: " Enfocar", zoom_all: "Todas" }, explorer: { account: { title: "Cuenta" }, accounts: { filter: "Cuentas de filtro", filter_contacts: "Contactos de filtro", title: "Cuentas" }, asset: { actions: "Acciones de activos", collateral: { bid: "Bid Colateral", bid_price: "Bid Precio", bid_text: "Desafortunadamente,% (asset)s está en Liquidación Global. Durante este tiempo, es posible ofertar por la garantía en el Fondo del Acuerdo y la deuda que cubre. Cuando la deuda pendiente total está cubierta por ofertas, y la garantía adicional de cada oferta más su participación del fondo de liquidación es mayor que la MCR, el activo se revive automáticamente y se crea una posición de margen para cada oferta.", remove_bid: "Se puede eliminar una oferta colocando una oferta de cero colateral." }, collateral_bid: { bid: "Bid Precio", collateral: "Colateral Adicional", debt: "Deuda cubierta", included: { no: "No", partial: "Partially", yes: "Yes" }, title: "Ofertas Colaterales" }, cumulative: "Cumulative", fee_pool: { claim_balance: "Balance de la cuota de la reclamación", claim_fees: "Reclamar tarifas", claim_pool_text: "El propietario del activo puede retirar fondos del conjunto de tarifas utilizando este formulario:", claim_text: "El emisor del activo puede reclamar cualquier comisiòn acumulada aquí.", core_exchange_rate: " Core Tasa de Intercambio (CER)", fund: "Financiar el fondo de cuotas", fund_text: "El conjunto de comisiones se usa para pagar tarifas en %(core)s convirtiendo la comisiòn en %(asset)s a %(core)s. Si la comisiòn de la piscina se queda sin fondos, las comisiones ya no se pueden pagar en %(asset)s y seran el predeterminada a %(core)s", pool_balance: "Balance del Fondo", pool_text: "El conjunto de tarifas se utiliza para pagar las tarifas en %(core)s por convirtiendo la cuota en %(asset)s a %(core)s. Si el conjunto de tarifas se queda sin fondos, es posible que ya no se paguen en %(asset)s y será por defecto a %(core)s.

    El tipo de cambio básico es el precio al que %(asset)s se convierten a %(core)s.", title: "Fondo de Comisiones", unclaimed_issuer_income: "Ingresos del emisor no reclamados" }, feed_producer: "Productor de feed", feed_producer_text: "Los productores de feeds aprobados pueden publicar un nuevo feed utilizando el siguiente formulario:", info: "Información del activo", invalid: "El nombre del activo %(name)s es invalido", margin_positions: { click_to_switch_to_cumulative: "Click to switch to cumulative sum of the columns.", ratio_danger: "Position is below MCR and will be margin called", ratio_warning: "Position is near MCR and in danger of being margin called", title: "posiciòn a margen" }, not_found: "El activo %(name)s no existe", permissions: { accounts_in_whitelist_market_fee_sharing: "Accounts included in Market fee sharing whitelist", blacklist_authorities: "Autoridades de la lista negra", blacklist_markets: "Mercados de la lista negra", max_market_fee: "Comisión de mercado máxima", max_supply: "Emisión máxima", title: "Permisos", whitelist_authorities: "Autoridades de lista blanca", whitelist_markets: "Mercados de la lista blanca" }, price_feed: { external_feed_price: "Precio de Feed (Mediana de feeds de testigos)", feed_lifetime: "Vida de Feed (horas)", feed_price: "Feed price", global_settlement_price: "Liquidación global sucede a precio", maintenance_collateral_ratio: "Relación colateral de mantenimiento (MCR)", maximum_short_squeeze_price: "Precio máximo de compresión corta (MSSP)", maximum_short_squeeze_ratio: "Maximo short de relaciòn squeeze (MSSR)", min_feeds: "Feeds minimo", settlement_price: "Precio de liquidación", title: "Precio de Feed" }, price_feed_data: { core_exchange_rate: "CER", feed_price: "Feed price", maintenance_collateral_ratio: "MCR", maximum_short_squeeze_ratio: "MSSR", published: "Publicado", publisher: "Editor", settlement_price: "Precio de liquidación", title: "Precio Feed Datos" }, settlement: { current_settled: "Suministro ya establecido", delay: "Retrasar", force_settlement: "Acuerdo de la fuerza", gs_auto_revive_price: "Auto Revive Precio (sin/con ofertas)", gs_collateral_valuation: "Valuación de Colateral (con ofertas)", gs_description: "Desafortunadamente, este activo está en liquidación global. Durante este tiempo no hay demora en las liquidaciones de activos, que serán cubiertas por los fondos de liquidación al precio fijo de liquidación.", gs_included_on_revival: "Las ofertas se incluirán en el avivamiento ordenado por su precio de oferta hasta que se cubra la totalidad de la deuda (la última oferta podría cubrirse parcialmente). Las ofertas incluidas se convertirán en posiciones de margen y recibirán la garantía residual de tal manera que la posición llegue a MCR desde el fondo de liquidación. Las ofertas no incluidas serán reembolsadas.", gs_or: "o", gs_place_bid: "haga clic aquí para hacer una oferta", gs_revert: "Revivir", gs_revive: "El activo se reactivará automáticamente si el precio de la reactivación automática (ofertas incluidas) es mayor que el precio del alimento o si toda la deuda se liquida a la fuerza", gs_see_actions: "ver acciones de activos", max_settle_volume: "Max. Volumen de liquidación cada periodo de mantenimiento.", offset: "offset incluido", price: "Precio", settle_remaining_volume: "Volumen fijable restante", settlement_funds: "Fondos de liquidación", settlement_funds_collateral_ratio: "Proporción de garantías del fondo de liquidación", settlement_price: "Precio acordado", title: "Asentamiento" }, summary: { asset_type: "Tipo de Activo", current_supply: "Current supply", issuer: "Emisor", market_fee: "Comisión de mercado", market_fee_referral_reward_percent: "Market fee referral reward", stealth_supply: "Suministro de sigilo" }, title: "Activo", whitelist: { blacklist_authorities: "autoridades de lista negra", blacklist_markets: "Lista negra de mercado", enable_flag: "El indicador de lista blanca debe estar habilitado para establecer autoridades de lista blanca", market_fee_enable_flag: "The market fee flag must be enabled in order to set whitelist", whitelist_authorities: "Autoridades de lista blanca", whitelist_market_fee_sharing: "Market fee sharing whitelist", whitelist_markets: "Lista blanca de mercado" } }, assets: { backing_asset: "Activo de respaldo", id: "ID", issuer: "Emisor", market: "SmartCoins", precision: "Precisión", prediction: "Activos del mercado de predicción", symbol: "Simbolo", title: "Activos", units: "Unidades", user: "Activos Emitidos por Usuarios" }, block: { account_upgrade: "Cuenta a suscribir", asset_issue: "Monto a emitir", asset_update: "Activo a actualizar", authorizing_account: "Cuenta autorizante", call_limit: "Limite de llamada", common_options: "Opciones comunes", count: "Nro de transacciones", date: "Fecha", fee_payer: "Cuenta a cargo de las comisiones", feed_price: "Precio de feed", go_to: "Ir al bloque", id: "ID de bloque", key: "Llave pública", lifetime: "Suscribir a membresía vitalicia", listed_account: "Cuenta listada", max_margin_period_sec: "Período de margen máximo (s)", new_listing: "Nuevo listado", new_options: "Nuevas opciones", new_producers: "Nuevos productores de feeds", next_secret: "Próximo hash secreto", op: "Operación", op_type: "Tipo de operación", previous: "Previo", previous_secret: "Secreto previo", settlement_price: "Precio de liquidación", short_limit: "Limite Corto", time: "Hora", title: "Bloque", transactions: "Nro de transacciones", trx: "Transacción", witness: "Testigo" }, blocks: { active_committee_members: "Mienbros del Comité activos", active_witnesses: "Testigos activos", avg_conf_time: "Tiempo de confirmación promedio", block_time: "Tiempo entre bloques", block_times: "Tiempo entre bloques", current_block: "Bloque actual", globals: "Parámetros globales", last_block: "Ultimo bloque", recent: "Bloques recientes", recently_missed_blocks: "Bloques perdidos recientemente", title: "Blockchain", transactions: "# de transacciones", trx: "Transacción", trx_per_block: "Trx/bloque", trx_per_sec: "Trx/segundo" }, committee_member: { title: "Miembro del Comité" }, committee_members: { active: "Total de miembros del Comité activos", title: "Miembros del Comité" }, fees: { fee: "Tarifa estándar", feeeq: "(equivalente)", feeltm: "Precio para socios de por vida", feeltmeq: "(equivalente)", type: "Tipo de comisiòn" }, proposals: { authority_depth_warning: "Es posible que esta propuesta no se apruebe porque este permiso supera la profundidad máxima de autoridad.", children_authority_depth_warning: "Es posible que esta propuesta no se apruebe porque un permiso excede la profundidad máxima de autoridad.", failed: "Fallado", failed_execute: "Aprobado, no se pudo ejecutar.", no_reason_available_switch_node: "Reason of failure is available with core release >=3.1.0, please switch your node.", pending: "Pendiente", pending_approval: "Aprobación pendiente.", pending_review: "Aprobado, tiempo de revisión.", review: "Revisión", title: "Propuestas" }, witnesses: { budget: "Presupuesto restante", card: "Ver tarjetas", current: "Testigo actual", filter_by_name: "Filtrar por nombre", last_confirmed: "Ultimo confirmado", missed: "Bloques perdidos", next_vote: "Próximo recuento de votos", participation: "Grado de participación", pay: "Pago por bloque", rank: "Puesto", table: "Ver tabla", title: "Testigos" }, workers: { create: "Crear una nueva propuesta de trabajador", create_text_1: "Para crear su nuevo trabajador, complete el siguiente formulario. El trabajador se creará utilizando su cuenta actualmente activa, que ya debe ser un miembro vitalicio.", create_text_2: "Considere cuidadosamente los parámetros que elige, ya que no se pueden cambiar una vez que haya publicado su trabajador.", daily_pay: "Pago diario (BTS)", date_text: "La fecha de inicio debe ser de al menos una semana en el futuro para que las personas tengan tiempo de descubrir, evaluar y votar a su trabajador.", name_text: "El nombre de su trabajador debe ser breve y descriptivo, algo como esto: 'Objetivo del trabajador - Nombre de la cuenta'", pay_text: "El pago diario define cuánto quiere que le paguen por día y se define en BTS. La mejor práctica actual es definir un salario en USD / CNY, y comprometerse a quemar cualquier superávit que reciba como resultado del aumento del precio de BTS. Mientras su trabajador esté activo y tenga suficientes votos para estar por encima del trabajador de reembolso, recibirá este salario diario.", period: "Duración del trabajador", title: "Presupuestos por Trabajos", url_text: "Debe proporcionar un sitio web, un documento de github o un documento de Google Docs que describan con más detalle el propósito del trabajador y cómo piensa utilizar el salario del trabajador..", vesting_pay: "Período de adjudicación salarial (days)", vesting_text: "El período de adjudicación define la cantidad de días que las ganancias de los trabajadores se acumularán antes de ser totalmente exigible.", website: "Website" } }, fees: { title: "Programa de comisiònes" }, footer: { advanced_settings: "Ajustes avanzados", backup: "Se requiere una copia de seguridad", block: "Bloque de cabecera", brainkey: "Clave de brainkey recomendada", connected: "Conectado", connection: "Sin conexión Blockchain", disconnected: "Desconectado", latency: "Estado latente", loading: "Cargando...", nosync: "Su nodo activo no está sincronizado", synced: "Sincronizado", title: "BitShares", unsynced: "Fuera de sincronización", update_available: "ACTUALIZACIÓN DISPONIBLE" }, gateway: { add_funds: "Agregue fondos de manera rápida y fácil a su cuenta de BitShares %(account)s. Este servicio es provisto por Openledger.", address: "Dirección", address_with_memo: '%(address)s con memo %(memo)s', agreement: { hint: "He leído y acepto", name: "《Acuerdo de servicio》", notice: "Por favor revise el acuerdo para continuar.", register: "De acuerdo" }, asset: "Activo", asset_search_deposit: "Buscar un activo para depositar", asset_search_withdraw: "Buscar un activo para retirar", asset_to_deposit: "Activo de depositar:", asset_to_receive: "Usted recibirá:", asset_to_withdraw: "activos para retirar:", asset_unavailable: "El porton para %(asset)s no esta en servicio", assets: { bit: "bit%(asset)s es un derivado que rastrea el valor real de %(backed)s. esto es 100%% descentralizado, sin confianza y respaldado por garantías en poder de blockchain en un contrato inteligente.", bitcny: "bitCNY se puede depositar o retirar 1:1 a Yuan real mediante un servicio de puerta de enlace como Magic Wallet. Para más información, consulte https://www.magicw.net/", bridge: "El activo %(asset)s es respaldado 1:1 por real %(backed)s y puede ser depositado or retiado usando el servico de porton proporcionado por CryptoBridge.", gdex: "El %(asset)s activo es respaldado 1:1 por real %(backed)s y puede ser depositado or retirado usando el servico de porton proporcionado por GDex.", open: "El %(asset)s activo es respaldado 1:1 por real %(backed)s y puede ser depositado or retirado usando el servico de porton proporcionado por OpenLedger.", rudex: "El %(asset)s activo es respaldado 1:1 por real %(backed)s y puede ser depositado or retirado usando el servico de porton proporcionado por Rudex.", trade: "El activo %(asset) està respaldado 1:1 da real %(backed)s y puede ser depositado o retirado utilizando el servicio de puerta de enlace proporcionado por Blocktrades.", win: "", xbtsx: "El activo %(asset) està respaldado 1:1 da real %(backed)s y puede ser depositado o retirado utilizando el servicio de puerta de enlace proporcionado por XBTS." }, balance: "Saldo actual", balance_asset: "Balance corriente %(asset)s ", bitkapital_receive: "Usted recibirá", bitkapital_text: "Elija un activo para depositar o retirar:", bitkapital_withdraw: "Estás retirando", bitspark: { support_block: 'Para problemas de DEPÓSITO Y RETIRADA utilizando "SERVICIO DE TRANSFERENCIA BitSpark ", comuníquese con BitSpark a:' }, bridge: "Puente", bridge_text: "Un puente le permite intercambiar un activo por otro, por ejemplo BTC a BTS.", calc: "Calculando", choose_deposit: "Seleccione la moneda que desea depositar", choose_withdraw: "Seleccione la moneda que desea retirar", citadel: { coming_soon: "Viene pronto", min_amount: "Monto minimo: %(minAmount)s %(symbol)s", min_amount_error: "Por favor ingresa numero >= minimo", support_block: "Para soporte, contáctenos citadel.li a:", under_construction: "En Construcción" }, contact_TRADE: "Contacta Blocktrades", convert: "Conversión interna", convert_coin: "Convertir a %(coin)s (%(symbol)s)", convert_now: "Convertir ahora", copy_address: "Copiar dirección", copy_memo: "Copiar memo", deposit: "Depositar", deposit_address: "Dirección de depósito", deposit_from_wallet: "Depósito desde cartera", deposit_history_status: { confirming: "deposito confirmando", fail: "fallar", success: "exito", transfering: "transfiriendo", waiting: "pendiente para deposito" }, deposit_inst: "Instrucciones de depósito", deposit_limit: "Límite de depósito", deposit_notice_delay: "(nueva dirección puede ser generada una vez por 5 minutos)", deposit_summary: "Resumen de depósitos", deposit_to: "Por favor envíe su %(asset)s a la dirección a continuación", deposit_warning: "El envío de cualquier otra moneda a la dirección del% (asset) s resultará en la pérdida de su depósito", deposit_warning_memo: "Deposito %(asset)s debe contener memo, de otra manera no será contado", fee: "Comisiòn del gateway ", fiat: "Fiat", fiat_text: "Los depósitos y retiros de Fiat son provistos por CCEDK. Para comenzar, debe completar el proceso de registro. Las siguientes conversiones están disponibles:", frozen: "La cuenta de usuario %(account)s fue congelada", gateway: "Gateway", gateway_text: "Elija si desea realizar un depósito o una retirada aquí", generate: "Generar", generate_new: "Obtener nueva dirección", generate_new_memo: "Obtener una nueva nota", iban: "IBAN", info: "Información", intermediate: "Cuenta intermedia", inventory: "Inventario", limit: "Limite: %(amount)s %(symbol)s", limit_withdraw_asset: "Min: %(min)s, Max: %(max)s", limit_withdraw_asset_max: "Retiro maximo: %(min)s %(coin)s", limit_withdraw_asset_min: "Retiro minimo: %(min)s %(coin)s", limit_withdraw_asset_none: "Ninguna", memo: "Memorándum", meta: { open_website: "Abrir sitio web" }, min_deposit_warning_amount: "Deposito minimo: %(minDeposit)s %(coin)s", min_deposit_warning_asset: "IMPORTANTE: Manda solamente %(coin)s a este dirrecion de deposito en el blockchain nativa a %(coin)s. Enviar menos que %(minDeposit)s %(coin)s o cualquier otra divisa a este dirrecion puede resultar en la perdida de su deposito.", over_limit: "Límite alcanzado", phase_out_warning: "Recomendamos usar los nuevos modales {deposit_modal_link} y {withdraw_modal_link} como este pagina será eliminada", please_generate_address: "Por favor, obtenga una nueva dirección", purchase: "Compra %(asset)s", purchase_1: "Compra rápida y fácil %(outputAsset)s usando %(inputAsset)s de una billetera externa. Este servicio es provisto por Blocktrades", purchase_notice: "%(inputAsset)s enviado a esta dirección aparecerá como %(outputAsset)s", purchase_notice_memo: "Memo required para un enrutamiento adecuado a su cuenta", receive_account: "Cuenta que recibe:", recent_deposit: "Depósitos recientes", recent_withdraw: "Retiros recientes", rudex: { coming_soon: "Próximamente", min_amount: "Monto minimo: %(minAmount)s %(symbol)s", min_amount_error: "Por favor ingrese número >= mínimo", support_block: "Para soporte, póngase en contacto con RuDEX en:", under_construction: "En Construcción" }, scan_qr: "Escanear QR", service: "Servicio de transferencia", status: "Estado", support_block: "Para soporte, póngase en contacto con OpenLedger en:", support_gdex: "For support, please contact GDEX", symbol: "Símbolo", time: "Time", title: "Depósito y retiro", transaction_history_info: " %(amount)s %(assetName)s con id de transaccion: %(txid)s ", unavailable: "El servicio de puerta de enlace para este activo está actualmente inactivo. Inténtalo de nuevo más tarde.", unavailable_CITADEL: "El puente de Citadel está caído o no responde", unavailable_OPEN: "OpenLedger Gateway está inactivo o no responde", unavailable_RUDEX: "RuDEX Gateway está inactivo o no responde", unavailable_TRADE: "El puente de Blocktrades está inactivo o no responde", unavailable_bridge: "El servicio de puente para este activo está actualmente inactivo. Inténtalo de nuevo más tarde.", use_copy_button: "POR FAVOR UTILICE EL BOTÓN DE COPIA PARA HACER UNA COPIA DE DIRECCIÓN O MEMO EN ESTA PÁGINA", user_unavailable: "La información del usuario no está disponible actualmente, inténtalo de nuevo más tarde", valid_address: "Por favor, introduza un valor valido %(coin_type)s direcciòn", website: "Visitar el website", withdraw: "Retiro", withdraw_coin: "Retiro %(coin)s (%(symbol)s)", withdraw_funds: "usted està retirando fondos de su cuenta de BitShares a su cuenta externa %(asset)s cuenta.", withdraw_history_status: { audited: "auditoria completada", auditing: "retirar auditoria", confirming: "confirmando", fail: "fallado", refused: "la auditoria falló", success: "exito", transfering: "transfiriendo" }, withdraw_inst: "Instrucciones de retiro", withdraw_now: "Retirar ahora", withdraw_placeholder: "Por favor introduzca su direcciòn de %(asset)s ", withdraw_summary: "Resumen de retiros", withdraw_to: "Haga clic en el botón de abajo para abrir un %(asset)s retiro", xbtsx: { coming_soon: "Viene pronto", min_amount: "Monto minimo: %(minAmount)s %(symbol)s", min_amount_error: "Por favor ingrese el número >= minimo", support_block: "Para soporte, contacte a XBTS en:", under_construction: "En construcción" }, your_account: "Tu cuenta" }, global: { cancel: "Cancelar", close: "Cerrar", confirm: "Confirmar", field_type: { account: "cuenta" }, help: "Ayudo", not_found: "Not found", return_to_top: "Regresa hacia arriba", scan_qr_code: "Escanar codigo de QR", set: "Establecer" }, header: { account: "Cuenta", account_notify: "La cuenta activa es ahora %(account)s", account_value: "Valor de la cuenta", accounts_manage: "Cuentas de administración", collateral_ratio: "Collateral ratio", create_account: "Crear Cuenta", create_asset: "Crear Activo", current: "Cuenta Actual", dashboard: "Tablero", "deposit-withdraw": "Depositar/Retirar", deposit_legacy: "o Deposito Viejo", exchange: "Intercambio", explorer: "Explorador", help: "Ayuda", lock: "Bloquear", lock_short: "cerrar sesión", locked_tip: "Billetera bloqueada. Click para desbloquear.", logout: "Salir", payments: "Enviar", payments_legacy: "O Enviar Legado ", settings: "Configuraciónes", showcases: "Destacar", title: "BitShares - Interfaz de Usiario", unlock: "Desbloquear", unlock_password: "Inicio de sesión en el Cloud Wallet", unlock_short: "Inicio de sesión", unlocked_tip: "Haga clic para cerrar sesión. Cerrar la ventana del navegador también lo desconectará.", update_asset: "Actualizar activo", withdraw_legacy: " o Retiro de Legado" }, htlc: { claim_period: "Seconds to claim", claim_period_due: "Claimable until", id: "HTLC id", preimage: "Preimage", preimage_explanation: "The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC", preimage_hash: "Preimage hash", preimage_hash_explanation: "The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: '(, ): '", redeemer: "Redeemer", seconds_to_add: "Add seconds to claim period", update_issuer: "Update issuer" }, icons: { adjust: "Ajustar la posición del margen", assets: "Activos", checkmark_circle: { approved: "Aprobado", operation_succeed: "Operacion exitosa", yes: "Si" }, chevron_down: { gateways: "Mostrar mas Puertas de acceso", other: "Mostrar mas artículos", transactions: "Mostrar más transacciones" }, clippy: { copy: "Copiar al clipboard", withdraw_full: "Retirar el saldo completo" }, clock: "Por favor revisa el reloj de tu computadora.", cog: "Ajustes", cogs: "Ajustes", connect: "Conectarse a este nodo API", connected: "El nodo API está conectado", cross_circle: { cancel_order: "Cancelar orden", close_position: "Eliminar posición", hide_asset: "Ocultar activo", hide_market: "Ocultar mercado", operation_failed: "Operacion fallado", remove: "Eliminar" }, dashboard: "Tablero", "debug-report": "Reporte su consola de registro de errores, o cree una captura de pantalla", deposit: { deposit: "Depositar", deposit_withdraw: "Depositar/Retirar" }, disconnected: "El nodo API está desconectado", dollar: { borrow: "Pedir prestado", buy: "Comprar" }, download: "Descarga la nueva versión de BitShares UI", excel: "Descarga archivo .csv", eye: "Ocultar Nodo", "eye-striked": "Mostrar Nodo", fees: "Cuotas", fi_star: { account: "Añadir / eliminar cuenta de favoritos", market: "Añadir / eliminar el mercado de favoritos", sort_accounts: "Ordenar por favoritos", symbol: "Añadir / eliminar símbolo de favoritos" }, filter: "Filtrar", folder: "Cuentas", hamburger: "Abrir menu", hamburger_x: "Cerrar menu", hourglass: "Balances concedidos", info_circle_o: " Información", key: "LLave", list: "Lista blanca", locked: { action: "Haz clic para desbloquear tu cuenta para realizar esta acción.", common: "Haga clic para desbloquear su cuenta", enable_auto_scroll: "Habilitar desplazamiento automático" }, manage_accounts: "Administrar Cuentas", minus_circle: { disapproved: "Desaprobado", no: "No", remove_contact: "Eliminar contacto de la lista", wrong_address: "No se puede generar la dirección" }, news: "Noticias", order_grouping: "Agrupación de pedidas activa", plus_circle: { add_contact: "Añadir contacto a la lista", show_asset: "Mostrar activo", show_market: "Mostrar mercado" }, power: "Iniciar sesión", question_circle: "Ayudo", reverse_orderbook: "Libro de pedidos inverso", server: "Explorar", settle: "Resolver", share: "Sobre", shuffle: "Cambiar par comercial", text: { membership_stats: "Estadísticas de membresía", signed_messages: "Mensajes firmados" }, thumb_tack: "Pin panel al lado", thumb_untack: "Deshacer panel", thumbs_up: "Votación", times: "Eliminar nodo de API", trade: { exchange: "Intercambiar", trade: "Comerciar" }, transfer: "Enviar", unlocked: { common: "Haga clic para bloquear su cuenta", disable_auto_scroll: "Desactivar desplazamiento automático" }, user: { account: "Cuenta", create_account: "Crear cuenta", following: "Estás siguiendo a este usuario" }, warning: "Permisiones", withdraw: "Retirar", zoom: "Buscar" }, incognito: { mode: "Privado/Incognito:", warning: "Si cierra su navegador sin hacer una copia de seguridad de su billetera, perderá esta cuenta de forma permanente." }, languages: { de: "Deutsch", en: "English", es: "Español", fr: "Français", it: "Italiano", ja: "日本語 (Japanese)", ko: "한국어 (Korean)", ru: "Русский (Russian)", tr: "Türkçe (Turkish)", zh: "简体中文 (Simplified Chinese)" }, login: { browseFile: "Navega por tus archivos", browseFileLabel: "Busque su archivo de copia de seguridad", dropFile: "Deja tu archivo de copia de seguridad en esta área o ", invalidFormat: "Formato inválido!", loginButton: "Iniciar sesión", selectDifferent: "Seleccionar archivo diferente", supportWarning: "¡Advertencia! Su navegador no admite algunas operaciones de archivos necesarias para restaurar la copia de seguridad, le recomendamos que use los navegadores Chrome o Firefox para restaurar su copia de seguridad.", title: "Seleccione el tipo de inicio de sesión", withoutBinFile: "o tengo el archivo .bin" }, markets: { base: "Activo base", core_rate: "Core rate", filter: "Filtrar", market_search: "Buscar Mercados", preferred: "Mis Mercados Favoritos", search: "Buscar", supply: "Suministro", title: "Mercados" }, migration: { announcement_1: "En un esfuerzo por proporcionar una mayor seguridad para el monedero basado en la web, lo estamos migrando, con efecto inmediato a la dirección a continuación. Por favor, asegúrese de actualizar los marcadores que pueda tener.", text_1: "Cartera local detecta", text_2: "Haga una copia de seguridad de su billetera ahora y restaure el archivo de respaldo a https://wallet.bitshares.org, cuál será su nueva dirección para la billetera web. Gracias por su apoyo continuo.", text_3: "Por favor utiliza %(wallet_url)s a partir de ahora, sus credenciales existentes le permitirán iniciar sesión allí también.", title: "Aviso" }, modal: { buy: { asset: "Activo", bridge: "Puente", title: "Comprar" }, cancel: "cancelar", close: "cerrar", committee: { confirm: "CONFIRM", create_committee: "Become a committee member", from: "From", text: "After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
    • Transaction fees
    • Parameters of BitAssets (e.g. market fees)
    • Blockchain parameters (e.g. block size & interval)
    • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
    • Other governance matters
    Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.", url: "URL", web_example: "Enter link to your committee proposal post" }, confirmation: { accept: "Si", cancel: "No", title: "La dirección que ingresó no parece válida, ¿está seguro de que desea realizar el retiro?" }, convert: { amount: "Cantidad a convertir", submit: "Ok" }, deposit: { address_generation_error: "No se puede generar la dirección", amount: "Cantidad a depositar", asset: "Activo", bts_transfer_description: "Es fácil recibir BTS desde cualquier lugar. Siempre que se envíe BTS a su nombre de cuenta, aparecerá en su billetera. Este código QR también contiene su nombre de cuenta.", cancel: "Cancelar", close: "Cerrar", header: "Depositar a %(account_name)s", header_short: "Depositar", no_assets: "No depositable assets available", submit: "Depositar" }, deposit_withdraw: { disabled: "%(gateway)s servicio de porton es discapacitado", gateway: "Gateway", no_gateway_available: "No servico de porton disponible", select_gateway: "Por favor seleccione un operador de puerta de enlace", wallet_error: "Billetera de la puerta de enlace" }, issue: { amount: "Cantidad a emitir", submit: "Emitir activo", to: "Emitido a" }, ok: "OK", proposals: { actions: { approve: "Aprobar propuesta", delete: "Rechazar permanentemente la propuesta.", reject: "Rechazar propuesta" }, approval_add: "Aprobación para agregar", approval_remove: "Aprobación para remover", key_approval_add: "aprobación llave de añadir", key_approval_remove: "aprobación llave de eliminar", pay_with: "Pague con la cuenta" }, qrcode: { input_message: "Por favor ingrese una contraseña utilizada para encriptar el código QR.
    Una contraseña vacía mostrará un código QR no encriptado. ", label: "QRcode", title: "Llave privada codigo QR" }, report: { button: "Informe", copyLog: "Copiar registro", copyScreenshot: "Haga clic derecho en Vista previa de la imagen -> Copiar", copySuccess: "Copia terminada", explanatory_text_1: "Este informe recopila las últimas entradas en el registro de la consola y toma una captura de pantalla de la vista actual antes de que se abra el modal. Haga clic en cualquiera de las entradas para ver los detalles.", explanatory_text_2: "Por favor, informe el problema que ha encontrado a GitHub:", explanatory_text_3: "Puede copiar y pegar (CTRL + V) la captura de pantalla y las entradas del registro directamente en el área de texto del contenido del problema, pegando la captura de pantalla también funciona en el chat de telegram.", explanatory_text_4: "Si su problema afecta la seguridad del usuario, podría ser elegible para una recompensa. En ese caso no lo denuncie públicamente, sino a través de:", hideLog: "Ocultar Registro", hideScreenshot: "Ocultar Captura de Pantalla (Screenshot)", lastLogEntries: "últimas 20 entradas de registro (Log)", screenshot: "Captura de pantalla (Screenshot)", showLog: "Mostrar registro (Log)", takeScreenshot: "Mostrar captura de pantalla (Screenshot)", title: "Informe de error" }, reserve: { amount: "Cantidad de quemar", from: "Cuenta desde la cual quemar", submit: "Quemar", title: "Quemar (reservar) activos", warning_message: "Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!" }, save: "ahorrar", send: { header: 'Envia desde %(fromName)s', header_propose: 'Proponer envío desde %(fromName)s' }, settle: { amount: "Monto a liquidar", delay: "Estimated delay: %(amount)s hours", max_volume: "Max. settlement volume: %(amount)s %(asset)s", remaining_volume: "Remaining settleable volume: %(amount)s %(asset)s", submit: "Liquidar activos", title: "Solicitar la liquidación de %(asset)s" }, withdraw: { address: "Retirar a la dirección", address_not_valid: "Invalid address", amount: "Cantidad a retirar", available: "Disponible: ", bitshares_account: " Enviar a %(wallet_name)s Cuenta ", cancel: "Cancelar", cannot_cover: "Fondos Insufficientes!", estimated_value: "Valor Estimado", fee: "Cuota", gateway_fee: "Cuota de Gateway", header: "Retirar (beta)", memo: "Memo", no_assets: "No withdrawable assets available", no_estimate: "No hay presupuesto disponible para este objeto.", no_gateways: "Lo sentimos, pero no hay puertas de enlace disponibles para manejar este retiro", quantity: "Cantidad", submit: "Retirar", withdraw: "Retirar" }, witness: { confirm: "CONFIRM", create_witness: "Become a witness member", enter_public_signing_key: "Enter your public signing key", invalid_key: "Public Key is invalid", public_signing_key: "Public Signing Key", text: "After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
    • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
    • participation in block production and rolling releases of the testnet
    • provision of a public node for the community
    • publication of price feeds for the BitAssets
    Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.", url: "URL", web_example: "Enter link to your witness proposal post", witness_account: "Witness Account" } }, news: { author: "Autor", errors: { fetch: "Oops... Algo salió mal al buscar las noticias." }, news: "Noticias", subject: "Tema" }, notifications: { account_create_failure: "Error al crear la cuenta: %(account_name)s - %(error_msg)s", account_permissions_update_warning: "Configurar sus permisos de propietario de esta manera hará que su cuenta permanezca inutilizable. Asegúrese de saber lo que está haciendo antes de modificar las autoridades de la cuenta!", account_wallet_create_failure: "Error al crear la cartera: %(error_msg)s", asset_issue_failure: "Error al emitir el activo, probablemente debido a que se emitió una cantidad no válida", backup_file_save_unsupported: "No se admite guardar archivos", balance_claim_error: "Error al reclamar saldo: %(error_msg)s", exchange_enter_valid_values: "Por favor, introduzca una cantidad válida y el precio", exchange_insufficient_funds_for_fees: "Fondos insuficientes para pagar las tarifas", exchange_insufficient_funds_to_place_order: "Fondos insuficientes para realizar el pedido, necesita al menos %(amount)s $(symbol)s", exchange_unknown_error_place_order: "Error desconocido. No se pudo realizar el pedido de %(amount)s %(symbol)s", exchange_unknown_error_place_scaled_order: " Error desconocido. No se pudo realizar el pedido a escala", import_keys_already_imported: "Esta billetera ya ha sido importada.", import_keys_error: "Cuenta %(account_name)s tuvo un error de importación de clave privada: %(error_msg)s", import_keys_error_unknown: "Error de importación de clave: %(error_msg)s", invalid_password: "Contraseña invalida", password_change_failure: "No se puede cambiar la contraseña: %(error_msg)s", password_change_success: "contraseña cambiada", wallet_unlock_different_block_chain: "Esta billetera estaba destinada a una block-chain diferente; esperando %(expectedWalletId)s, pero recibido %(actualWalletId)s", worker_create_failure: "Error al crear trabajador: %(error_msg)s" }, openledger: { deposit_amount: "Monto de Deposito", deposit_details: "Detalles", deposit_none: "No hay depositos", header_fiat: "Fiat", header_transaction_history: "Historia de la transacciones", loading: "Cargando...", refresh_transaction_history: "Refrescar", retry: "Reintentar", show_transaction_history: "Mostrar historial de transacciones", status: "Estado", withdraw_amount: "Monto de Retiro", withdraw_none: "No hay retiros" }, operation: { annual_upgrade_account: "{account} fue actualizado a miembro anual", asset_claim_pool: "{account} reclamado {amount} de activo {asset}'s cuota de piscina", asset_create: "{account} creado el activo {asset}", asset_fund_fee_pool: "{account} fundado {asset} grupo de tarifas con {amount}", asset_global_settle: "{account} solicitó la liquidación global de {asset} a {price}", asset_issue: "{account} emitido {amount} a {to}", asset_reserve: "{account} reservado {amount}", asset_settle: "{account} solicitó la liquidación de {amount}", asset_settle_cancel: "{account} liquidación cancelada de {amount}", asset_settle_instant: "{account} resuelto {amount} al instante a precio instantly at {price}", asset_update: "{account} actualizado el activo {asset}", asset_update_feed_producers: "{account} actualizado los productores para el activo {asset}", asset_update_issuer: "{from_account} transferido {asset} a {to_account}", balance_claim: "{account} reclamó un saldo de {amount}", bid_collateral: "{bid_account} oferta {collateral} para {debt} ", blacklisted_by: "{lister} puso en la lista negra la cuenta {listee}", call_order_update: "{account} cambiado {debtSymbol} deuda por {debt} y colateral por {collateral}", committee_member_update_global_parameters: "{account} actualizado los parámetros del comité global", fill_order_buy: "{account} comprò {amount} a {price}", fill_order_sell: "{account} vendido {amount} a {price}", htlc_create: "{from} locked {amount} for {to} to redeem until {lock_period}", htlc_extend: "{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}", htlc_redeem: "{redeemer} request to redeem from HTLC {htlc_id}", htlc_redeemed: "{to} redeemed {amount} from HTLC {htlc_id} of {from}", htlc_refund: "{to} got refund of HTLC {htlc_id}", lifetime_upgrade_account: "{account} se actualizó a miembro por vida", limit_order_buy: "{account} colocado un orden de compra de {amount} a {price}", limit_order_cancel: "{account} orden cancelada #%(order)s", limit_order_sell: "{account} colocado un orden de venta de {amount} a {price}", no_recent: "Sin transacciones recientes", override_transfer: "{issuer} transferido {amount} da {from} a {to}", pending: "%(blocks)s bloques pendientes", proposal_create: "{account} transacción propuesta creada", proposal_delete: "{account} transacción propuesta eliminada", proposal_update: "{account} transacción propuesta creada", publish_feed: "{account} publicò precio de suministro de {price}", reg_account: "{registrar} Cuenta registrada {new_account}", set_proxy: "{account} set {proxy} como su proxy de voto", transfer: "{from} enviado {amount} a {to}", transfer_account: "{account} propiedad transferida a {to}", unlisted_by: "{lister} delistada la cuenta {listee}", update_account: "{account} actualizado sus datos de cuenta", vesting_balance_withdraw: "{account} retiro del saldo de adquisición de {amount}", whitelisted_by: "{lister} puso en la lista blanca de la cuenta {listee}", witness_create: "{account} se actualizó para convertirse en un testigo", witness_pay: "Retiró el pago de testigos a la cuenta", witness_receive: "Recibido testigo de testigo", witness_update: "{account} actualizar su información de testigo", worker_create: "{account} creó una propuesta de trabajador con pago diario de {pay}" }, page404: { asset_not_found_subtitle: "Ese activo no existe", home: "Pagina principal", market_not_found_subtitle: "Ese mercado no existe", page_not_found_subtitle: "Esta página no existe", page_not_found_title: "404 Pagina no encontrada" }, pagination: { newer: "Más reciente", older: "Anterior" }, proposal: { action: "Acciones", add: "Add", add_vote: "Add vote for", approve: "Aprobar", approvers: "Approver(s)", asset_create: "Crea el activo %(asset)s usando la cuenta {account}", asset_issue: "Emitir {amount} a {to} utilizando {account}", asset_reserve: "Quemar (reserve) {amount} utilizando {account}", asset_settle: "Solicitar un acuerdo de", asset_update: "Actualiza el activo {asset} usando la cuenta {account}", call_order_update: "Cambia {account} {debtSymbol} deuda de {debt} y colateral por {collateral}", changes_to_active: "Changes to active", changes_to_memo: "Changes to memo", changes_to_owner: "Changes to owner", committee_member_update_global_parameters: "Actualizar los parámetros globales del comité por {account}", danger_operation: "Dangerous operation", delete: "Rechazar permanentemente", expires: "Vence", feed_producer: "Actualice los productores para el activo {asset} usando la cuenta {account}", limit_order_buy: "Haga un pedido para comprar {amount} a {price} fpor {account}", limit_order_create: "Poner orden para comprar %(buy_amount)s por %(sell_amount)s por %(account)s", limit_order_sell: "Haga un pedido para vender {amount} a {price} por {account}", override_transfer: "Transferir {amount} da {from} a {to}por autoridad de{issuer}", permission_changes: "Permission changes", proposals: "Propuestas", reject: "Rechazar", remove: "Remove", remove_vote: "Remove vote for", set_threshold: "Set threshold to %(threshold)s", status: "Estado", transfer: "Transferir {amount} da {from} a {to}", update: { active_approvals_to_add: "Aprobaciones activas para agregar", active_approvals_to_remove: "Aprobaciones activas para eliminar", key_approvals_to_add: "Aprobaciones clave para agregar", key_approvals_to_remove: "Aprobaciones clave para eliminar", owner_approvals_to_add: "Aprobaciones del propietario para agregar", owner_approvals_to_remove: "Aprobaciones del propietario para eliminar" }, update_account: "Actualizar los datos de la cuenta para {account}", updated: { active_approvals_to_add: "Aprobación activa(s) añadido", active_approvals_to_remove: "Aprobación activa(s) eliminado", key_approvals_to_add: "Aprobación(es) de llave añadido", key_approvals_to_remove: "Aprobación(es) de llave eliminado", owner_approvals_to_add: "Aprobación(es) de dueño añadido", owner_approvals_to_remove: "Aprobación(es) de dueño eliminado" }, vesting_balance_withdraw: "retirar {amount} desde la consolidación del saldo de {account}", votes: "Votes" }, proposal_create: { expiration_time: "Tiempo de expiración", fee_paying_account: "Cuenta de pago gratis", id: "Propuesta objeto id ", proposed_operations: "Operaciones propuestas", review_period: "Comienza el período de revisión" }, proposal_delete: { using_owner_authority: "Usando la autoridad del propietario" }, propose: "Proponer", qr_address_scanner: { address_found: "Dirección encontrada", amount: "Importe", retry: "Reintentar", use_address: "Usar dirección" }, refcode: { claim: "Reclamar", claim_refcode: "Reclamar código de referencia", enter_refcode: "Ingrese el código de referencia", refcode_optional: "código de referencia (opcional)" }, registration: { accountConfirmation: "He escrito o almacenado mi nombre de usuario y contraseña.", accountDescription: "Guarde su contraseña en un lugar seguro. No la comparta con terceros ni la envíe en línea.", accountLoginByValue: "Nombre de cuenta + Contraseña", accountModelTitle: 'Por Usuario de Cuenta y Contraseña', accountNote: "Si olvida su contraseña, no podrá acceder a su cuenta ni a sus fondos. No podemos restablecer o restaurar su contraseña! Memoriza o escribe tu nombre de usuario y contraseña!", attention: "Atención", backUpRestoreKey: "Copia de seguridad y restaurar cuenta", checkboxRecover: "Entiendo que nadie puede recuperar mi contraseña o archivo .bin si lo olvido o lo pierdo.", checkboxRemember: "He recordado o almacenado mi contraseña y guardé el archivo .bin descargado de forma segura.", checkboxUploaded: "Entiendo que el archivo .bin debe cargarse durante el proceso de inicio de sesión y sin el archivo .bin perderé el acceso a mis fondos.", continue: "Continuar", copyPassword: "Copia tu contraseña para guardar.", createAccountTitle: "Crear cuenta por archivo bin", createByPassword: "Crear cuenta por nombre y contraseña", downloadFile: "Descargar archivo", loginByKey: "Iniciar sesión por", passwordPlaceholder: "Minimo de 7 caracteres", recommended: "recomendar", securityAccountModel: "Medio", securityKey: "Seguridad", securityWalletModel: "Alta", select: "Elige", title: "Registro", walletDescription: "Se creará automáticamente un archivo bin. Por favor descárguelo y manténgalo en un lugar seguro. Deberá cargar este archivo para iniciar sesión en su cuenta en el futuro..", walletLoginByValue: "Archivo bin + contraseña", walletModelTitle: "Por bin-archivo", walletNote: "Tenga en cuenta que BitShares no almacena las contraseñas de los usuarios y no pudo recuperar las cuentas de los usuarios después de la pérdida de la contraseña.", whyBinFile: "¿Por qué necesito un archivo .bin?" }, scaled_orders: { action: { buy: "Comprar", sell: "Vender", title: "Acción" }, distribution: { flat: "Plano", title: "Distribución" }, fee: "Distribución", market_fee: "Cuota de mercado", order_count: "Orden de pedido", order_s: "Pedido(s)", please_log_in: " Necesitas iniciar sesión antes de usar pedidos a escala.", preview_table: { price: "Precio" }, price_lower: "Precio más bajo", price_upper: "Precio superior", quantity: "Cantidad", title: "Órdenes escaladas", total: "Total" }, settings: { access: "Acceso", access_text: "", accounts: "Cuentas", accounts_text: "Su lista de cuentas.", activate: "Activar", active_node: "Nodo activo", add_api: "Añadir nodo", add_ws: "Agregar nueva API websocket", always_confirm: "Siempre pedir confirmación", apiServer: "Conexión API", api_closest: "Elija el más cercano automáticamente", automatic: "Automatically select node (%(totalNodes)s available)", automatic_short: "Automatic Switching", available_nodes: "Nodos disponibles", backup: "Backup", backup_backup: "Restaurar desde un archivo de copia de seguridad (.bin)", backup_backup_short: "Restore from a backup", backup_brainkey: "Restaurar usando una llave cerebral de billetera local", backup_favorites: "Restaurar favoritos usando un archivo json", backup_favorites_error: "No se pudo analizar JSON.", backup_favorites_finish: "Importar favoritos", backup_favorites_success: "Restaurado con éxito los favoritos del mercado", backup_favoritesbtn: "Favoritos de respaldo", backup_favoritestext: "Haga una copia de seguridad de sus favoritos para restaurarlos más tarde después de las actualizaciones.", backup_key: "Importar una clave privada", backup_legacy: "Importar un BTS 0.9.3c archivo clave de exportación(.json)", backup_text: "Crea copias de seguridad aquí.", backupcreate_backup: "Crear una copia de seguridad local de la billetera", backupcreate_brainkey: "Crear una copia de seguridad de brainkey", backupcreate_favorites: "Crear favoritos copia de seguridad", browser_notifications: "Notificaciones del navegador", browser_notifications_additional_transfer_to_me: "Notificar sobre transferencias a mi cuenta", browser_notifications_allow: "Permitir notificaciones", browser_notifications_disabled_by_browser_notify: "Su navegador ha desactivado las notificaciones. Haga clic para saber cómo habilitar las notificaciones del navegador", cloud_login: "Inicio de sesión en el Cloud Wallet", confirmMarketOrder: "Pedir confirmación en órdenes de mercado", confirm_no: "Nunca", confirm_remove: "Estás seguro de que desea eliminar %(name)s de tus nodos disponibles?", confirm_yes: "Siempre", connection_error: "No se puede conectar al nodo API %(url)s, Volviendo a los nodos de trabajo conocidos. El error fue: %(error)s", darkTheme: "Tema oscuro", delete_select: "Seleccione la billetera local para eliminar", disabled: "Discapacitado", enable_wallet: "Habilitar billetera local", faucet_address: "Dirección de Faucet", faucet_address_text: "La dirección del faucet se usa para pagar la tarifa de registro para nuevos usuarios.", general: "General", general_text: "Ajusta la configuración básica.", global_settings: "Configuración Global Predeterminada", hidden_nodes: "Nodos ocultos", hide: "Ocultar", high_latency: "Alta latencia", inverseMarket: "Invertir orientación del Mercado", left: "Izquierda", lightTheme: "Thema Light", local_wallet: "Acceso local a la billetera", locale: "Cambiar Idioma", lookup_text: "Haga clic en el botón a continuación para verificar los saldos no reclamados desde BTS 1.0", low_latency: "Baja latencia", medium_latency: "Latencia media", midnightTheme: "Medianoche (Midnight)", my_nodes: "Personal", no: "No", no_accounts: "Esta billetera local no contiene ninguna cuenta.", node_already_exists: "Nodo con dicha URL ya existe", node_down: "Inalcanzable (abajo)", node_up: "Disponible", olDarkTheme: "Openledger oscuro", orderbook_autoscroll: "Libro de pedidos automático de desplazamiento", orderbook_grouping: "Libro de Pedidos Agrupacion", orderbook_reverse: "Libro de Pedidos Inverso", password: "Contraseña", passwordLogin: "Modo de acceso", password_text: "cambia tu contraseña.", personal_active: "Su único nodo personal está activo, para eliminarlo o modificarlo, primero debe conectarse a un nodo diferente", ping: "Ping Nodos", pinging: "Pinging ...", placeholder_select: "Seleccionar opción", remove: "retirar", remove_api: "Eliminar nodo", remove_ws: "Remover API websocket", reset: "Restablecer ajustes", reset_text: "Restaure la configuración a sus valores predeterminados originales", reset_text_description: "Esto restablecerá todas sus configuraciones %(generalName)s, de %(accessName)s y de %(faucetName)s", restore: "Restaurar/Importar", restore_brainkey_text: "Para restaurar desde una llave maestra, deberás crear una nueva billetera local. Proporcione una contraseña y un nombre para su nueva billetera local a continuación, luego ingrese su llave maestra.", restore_default_success: "La configuración se ha restablecido con éxito", restore_key_count: "# de llaves", restore_text: "Restaurar desde una copia de seguridad o importar claves.", right: "Derecho", scrollbars_hide: "Reducir las barras de desplazamiento", show: "Mostrar", showAssetPercent: "Mostrar porcentajes de activos en la página de la cuenta", showSettles: "Mostrar órdenes de liquidación en el gráfico de profundidad", skipped: "Ignorado", switch: "Cambiar Nodo", testnet_nodes: " Red de prueba (Testnet)", testnet_nodes_disclaimer: "La disponibilidad del testnet no está garantizada. Establezca una conexión conectada manualmente a uno de los nodos a continuación:", themes: "Tema", unit: "Unidad preferida para esta cuenta", valid_node_url: "La URL del nodo debe comenzar con ws:// or wss://", viewOnlyMode: "View only mode", view_keys: "Ver claves", wallet: "Billetera local", walletLockTimeout: "Tiempo de bloqueo automático de Wallet (seconds, 0 to disable)", walletLockTimeoutTooltip: "Haga clic para ajustar el tiempo antes de que la cartera se cierre automáticamente.", wallet_required: "Se requiere billetera local", wallet_required_text: "Para restaurar una copia de seguridad, primero deberá cambiar a una billetera local, haga clic en el botón de abajo", wallet_text: "Controle los detalles de su billetera local.", wallets: "Billeteras", yes: "Si" }, showcases: { barter: { account: "Cuenta", action: "Peer 1 %(peer_left)s ofertas para enviar %(assets_left)s a Peer 2 %(peer_right)s y recibe%(assets_right)s en cambio.", add_escrow: "Añadir depósito", add_escrow_tooltip: "Agrega o elimina un depósito en garantía a este trueque. Este depósito tendrá que aprobar la propuesta resultante también. La custodia puede servir solo como testigo, o también puede ser el custodio de los fondos de Peer 1.", balance_warning: "Advertencia de balance", balance_warning_line: "quiere enviar un total de %(asset_amount)s %(asset_symbol)s, pero solo tiene %(asset_balance)s %(asset_symbol)s ", balance_warning_tooltip: "%(peer)s no tiene fondos suficientes para ejecutar las transferencias cuando la propuesta se aprueba y ejecuta. Esto no es un problema al crear la propuesta, pero los saldos deben coincidir cuando se ejecutan", bartering_asset: "Trueque de activos", description: "Le permite sugerir un intercambio de activos con otra cuenta, esto sucede fuera del libro de órdenes y puede incluir un depósito en garantía.", error_fill_in_escrow_name: "Por favor complete el nombre de cuenta del depósito", error_fill_in_peer_left_name: "Por favor ingrese el nombre de cuenta de Peer 1", error_fill_in_peer_right_name: "Por favor ingrese el nombre de cuenta de Peer 2", error_fill_in_valid_asset_amount: " Por favor, rellene las cantidades válidas para los bienes de trueque", error_same_name: "Peer 1 y Peer 2 deben ser cuentas diferentes", error_same_name_escrow: " El depósito no puede ser Peer 1 o Peer 2.", escrow_account: " Cuenta de garantía", escrow_as_custodian: "Un depósito en garantía %(escrow)s se utiliza como custodio que tiene los fondos de Peer 1 y que tiene que aprobar el trueque antes de que pueda ejecutarse.", escrow_as_witness: " Un depósito en garantía %(escrow)s se utiliza como testigo que tiene que aprobar el trueque antes de que pueda ejecutarse.", escrow_payment: " Pago por servicios de custodia.", escrow_payment_tooltip: " Ser un depósito de garantía requiere la confianza de ambos compañeros y debe considerarse un servicio pagado. El depósito en garantía se pagará desde la cuenta de Peer 1 a través de una transferencia adicional en la propuesta, que aumenta la tarifa general para el Peer 1. Establezca este valor en cero para eliminarlo, el valor predeterminado es igual al cargo por transacción inducido para el depósito en garantía.", fee_due_now: " Tasa debida ahora", fee_due_now_tooltip: "La tarifa de transacción indicada se pagará al crear esta propuesta de trueque para transferir fondos al depósito en garantía", fee_when_proposal_executes: "Cuota cuando se ejecuta la propuesta", fee_when_proposal_executes_tooltip: " Cuando se ejecute la propuesta de este trueque, la cuenta mencionada deberá pagar la tarifa de transacción indicada para las operaciones de transferencia subyacentes.", new_barter: " Proponer un nuevo trueque.", new_barter_tooltip: " Este panel te permite crear un nuevo trueque. Utiliza la autonomía de una transacción para intercambiar de forma segura los activos entre dos cuentas (a través de operaciones de transferencia). La transacción está envuelta en una propuesta y necesita la aprobación de ambas partes (llamadas Peer 1 y Peer 2 a continuación) para ejecutarse, y opcionalmente de un depósito en garantía.", not_complete: "Por favor complete todos los campos para ver una descripción de la acción aquí", peer_left: "Peer 1", peer_right: "Peer 2", proposal_fee: " Cuota de propuesta", proposal_fee_tooltip: " La tarifa de transacción indicada se pagará para crear la propuesta para realizar este trueque.", propose_tooltip: "Esto crea una propuesta que debe ser aprobada por usted y por todas las demás partes involucradas. Después de transmitir la propuesta, vaya a encontrar la pestaña Propuesta en su Tablero, apruebe la propuesta y notifique a las otras partes involucradas.", remove_escrow: "Quitar el depósito", send_to_escrow: " Utilice la custodia como custodio de los fondos de Peer 1", send_to_escrow_tooltip: "Al habilitar esto, se enviarán los fondos seleccionados al depósito en garantía, y luego se creará una propuesta de trueque entre el depósito en garantía y el par 2.", title: "Permuta", total_fees: "Tarifas totales: %(fee)s %(asset)s", total_fees_tooltip: " La cuenta que se indica como Peer 1 tendrá que pagar la tarifa de transacción indicada en total para todo el trueque" }, borrow: { borrow_tooltip: " También puede encontrar esta función en su Tablero de mandos en la pestaña Posiciones de margen, o haciendo clic en Pedir prestado en el intercambio", choose: "Elija el SmartCoin para el que desea crear una posición", description: "Pedir prestado un BitAsset de la cadena de bloques de BitShares block por el bloqueo de la garantía (e.g. bitUSD, bitCNY, etc.)", do_it: "¡Vamos a hacerlo!", get_started: " ¡Empezar!", navigate_with_keys: "El mecanismo de la generación de SmartCoin se explicará en los siguientes pasos. También puede utilizar las teclas de flecha para navegar", next: "Siguiente", now_ready: " Finalice la creación de su propia posición de deuda garantizada", previous: " Anterior", steps_benefits: { text: " La creación de una posición de deuda garantizada le permite proporcionar liquidez para su SmartCoin (MPA) deseada, sin renunciar a la propiedad de su garantía, siempre y cuando se asegure la garantía suficiente para garantizar el valor de SmartCoin. Por un lado, vender el SmartCoin recién generado en el mercado abierto creará un apalancamiento en su posición (es decir, lo vende a corto, y tendrá que volver a comprarlo para cerrar la posición). Por otro lado, los titulares de SmartCoin se benefician de SmartCoin, que es significativamente menos volátil, y además pueden solicitar una liquidación de la fuerza para obtener el valor correspondiente en su garantía sin necesidad de mercados.", text_legend: "Liquidación forzosa: los titulares de un SmartCoin pueden solicitar una liquidación forzosa. El SmartCoin se utiliza para pagar enérgicamente la deuda de las posiciones con menos garantías, mientras que el anterior titular de SmartCoin recibe un aval como si lo hubiera vendido por el precio de liquidación forzada. Cualquier garantía sobrante se devuelve al titular de la posición. Este mecanismo impone un retraso obligatorio después de ser activado para evitar el abuso (24 horas). Precio de liquidación forzada: el precio al que se producirá un precio de liquidación forzada. Se calcula a partir del precio de la alimentación agregando una compensación de liquidación forzada para desincentivar las liquidaciones forzadas. Todas las liquidaciones se convierten en activos de respaldo subyacentes (por ejemplo, BTS en el caso de bitUSD).", title: "Beneficios", title_within: " ¿Cuales son los beneficios?" }, steps_concept: { text: "Una posición de deuda garantizada le permite a cada usuario de la cadena de bloques de BitShares generar SmartCoins (MPA) al proporcionar garantía. La garantía se bloquea hasta que devuelva los SmartCoins que haya generado. De hecho, está tomando prestado el SmartCoin de la cadena de bloques de BitShares.", text_legend: "Ejemplo bitUSD: Proporcione BTS como garantía para tomar prestado bitUSD", title: "Concepto", title_within: " ¿Qué es una posición de deuda garantizada?" }, steps_costs: { text: " Un texto más largo Un texto más largo Un texto más largo Un texto más largo Un texto más largo Un texto más largo Un texto más largo Un texto más largo Un texto más largo", title: "Asentamiento", title_within: "" }, steps_introduction: { text: "Use esta aplicación de usuario nativa de la cadena de bloques de BitShares para administrar el depósito de garantías y la generación de SmartCoins.", title_within: "Este es el lugar para generar SmartCoins (Market Pegged Assets, MPA's)" }, steps_risks: { text: "Mientras supervise su posición y se asegure de que la relación de garantía (CR) se mantenga por encima de la relación de garantía de mantenimiento (MCR), su posición no será liquidada. Si el valor de la garantía disminuye y su posición se acerca a MCR, puede cerrar más garantías o pagar parte de la deuda para aumentar el CR. Si no se mantiene por encima de MCR, se producirá una liquidación forzada de su posición (Margin Call). Esto significa que su garantía se vende automáticamente en el mercado respectivo para reducir su deuda, con una multa del 10% para garantizar que se llene el pedido (la multa viene dada por la Relación Máxima de Apretón Corto (MSSR)). Cualquier garantía sobrante le será devuelta una vez que se haya pagado la deuda completa. Puede optar por permitir solo la venta parcial de su posición configurando la Proporción de garantías objetivo (TCR). Si su posición no puede ser forzada a liquidarse debido a las condiciones extremas del mercado y el CR cae por debajo del MSSR, el SmartCoin (MPA) entra automáticamente en un estado de Liquidación Global (GS) y pierde su posición completa al instante.", text_legend: "Proporción de garantías objetivo (TCR): si su posición se liquida, el sistema automáticamente pone una orden en el mercado, comprando nuevamente la deuda total. Si se establece la Relación de garantía objetivo (TCR), la orden solo venderá la deuda que sea necesaria, de modo que la Relación de garantía (CR) de su posición sea la Relación de garantía (TCR). Relación máxima de compresión corta (MSSR, por sus siglas en inglés): cuando su posición se liquida por la fuerza, se vende por debajo del precio actual del alimento para garantizar que se llene la orden. El MSSR define cuánto por debajo del precio del alimento. Liquidación global: Ya no se puede generar un SmartCoin liquidado globalmente al abrir un CDP de posición de deuda garantizada. En cambio, los titulares de SmartCoin pueden liquidarlo instantáneamente por un precio de liquidación global fijo.", title: " Los riesgos", title_within: "¿Cuáles son los riesgos involucrados en los préstamos?" }, steps_setup: { text: "Usted decide la cantidad de garantía que desea proporcionar y cuál debería ser la proporción de garantía (CR). La relación de garantía de mantenimiento (mínimo) (MCR) refleja el valor más bajo posible en la escala. Usted gasta la SmartCoin (MPA) como lo desea, y cuando ya no necesita la liquidez, la vuelve a comprar y cierra la posición mediante el pago de su deuda.", text_legend: "Colateral Ratio (CR): el CR define la cantidad de porcentaje del valor de SmartCoin generado que está cubierto por la garantía. Relación de garantía de mantenimiento (MCR): para garantizar que SmartCoin tenga suficiente garantía y para tener en cuenta la volatilidad, la MCR se aplica al crear la posición.", title: "Preparar", title_within: " ¿Como funciona?" }, title: "Posición de la deuda colateralizada", title_long: "Crear una posición de deuda garantizada" }, direct_debit: { amount_to_withdraw: "Cantidad a cobrar", authorized_account: "Tenedor", authorizing_account: "Paga", claim: "Reclamación", claim_funds: "Reclamar fondos", create: " Crear", create_new_mandate: "Crear autorización", current_period_expires: "Finaliza el periodo actual", delete: "Cancelar", description: "Configure una autorización de débito directo para pagos recurrentes. La autorización le permite a otra cuenta transferir fondos de su cuenta, con un límite en la cantidad por intervalos de tiempo definidos.", expires: "Vence", first_period_not_started: " ¡El primer período no ha comenzado!", limit: " límite", limit_per_period: "Importe máximo por periodo", num_of_periods: "Numero de periodos", period: " Especificar periodo", start_date: " El primer período comienza el", title: "Débito directo", tooltip: { authorized_account: "La cuenta que es elegible para cobrar de su cuenta.", limit_per_period: "El beneficiario puede cobrar una cantidad máxima del activo especificado (hasta) por período. El beneficiario solo puede cobrar una vez por período, incluso si no se cobra por completo.", num_of_periods: "Después de la hora de inicio, esta cantidad de períodos están disponibles de forma consecutiva.", period: "Un período dura el intervalo de tiempo indicado, por ejemplo, 2 semanas.", start_time: " La hora de inicio del primer período debe estar en el futuro cuando se emita." }, update: " Actualizar", update_mandate: "Actualizar la autorización existente" }, htlc: { actions: "Actions", amount: "Amount", create_htlc: "Create HTLC", custom: "Custom", description: "A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.", enter_secret_preimage: "Enter secret preimage", expiration: "Expiration", expiration_date: "Expiration date", expiration_period: { one_day: "One day", one_week: "One week", two_days: "Two days" }, expires: "Expires", extend: "Extend", extend_htlc: "Extend HTLC", first_stage: "1st stage", from: "From", hash: "Hash", preimage: "Preimage", preimage_has_been_created: "A random preimage has been created and filled in automatically below", recipient: "Recipient", redeem: "Redeem", redeem_htlc: "Redeem HTLC", second_stage: "2nd stage", sender: "Sender", size: "Size", title: "Hashed Time-Lock Contracts", to: "To", tooltip: { enter_preimage: "Enter the secret preimage that you have obtained from the sender", new_random: "Roll the dice and create a new random string.", preimage_button: "Please click to enter secret preimage", preimage_hash: "The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.", preimage_input: "Field requires a secret preimage", preimage_random: "The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.", preimage_size: "The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size." } }, paper_wallet: { description: "Cree un PDF con las claves de su cuenta impresas (texto plano y código de barras). Si la cartera está desbloqueada, también se agregan las claves privadas.", title: "Billetera de papel" }, timed_transfer: { description: "Iniciar una transferencia que se ejecutará a una hora especificada.", title: "Transferencia temporizada" }, voting: { description: "Vote por productores de bloques, miembros de comités y propuestas de trabajadores para influir en las decisiones estratégicas y el avance de la Blockchain de BitShares.", title: "Votación" } }, sync_fail: { sub_text_1: "Verifique que el reloj de su computadora sea correcto.", sub_text_2: "Una vez que haya sincronizado su reloj, por favor actualiza esta página.

    Si su reloj ya es correcto, el API del servidor que está utilizando podría no estar sincronizado. En ese caso, intente con un servidor diferente de la lista a continuación.", title: "Error al sincronizar con el API del servidor " }, tooltip: { add_memo_field: "Añadir campo de texto memo", borrow: "pedir prestado %(asset)s desde la red. Esto crea un contrato inteligente que bloquea su colateral hasta que modifique la posición o se requiera una llamada a mergen.", borrow_disabled: "%(asset)s Está en liquidación global. Las posiciones de margen no se pueden crear hasta que se revive. Vea la página de detalles de activos para más información.", bridge: "Los puentes permiten el depósito de cualquier activo externo y el comercio instantáneo en el activo de puerta de enlace deseado", bridge_TRADE: "BlockTrades es un puente que soporta el comercio instantáneo de activos. Los detalles y los términos se pueden encontrar en https://blocktrades.us", buy_min: "Recibirá como minimo esta cantidad. Si hay pedidos que coinciden con un precio más barato del cual usted especificó, recibirá mas de esta cantidad.", call_limit: "Este es el precio de llamada (call price) de la posición en el mercado colateralizada a margen .", call_price: "Este es el precio de llamada (price call) de la posición. Si el precio dado vas por debajo del precio de llamada, la posición será llamada a margen.", close_position: "Haga clic aquí para cerrar su posición. Necesitarás tener por lo menos %(amount)s %(asset)s para hacerlo.", coll_ratio: "El 'collateral ratio' de la posición es COLLATERAL * FEED PRICE / DEBT.", copy_password: "Haga clic aquí para copiar la contraseña en su portapapeles", copy_tip: "Haga clic aquí para copiar el texto a su portapapeles", cr_danger: "Esta posición está siendo llamada a margen. Considere de agregar colateral para llevar la proporción de colateral arriba de %(mr)s o cerrar la posición.", cr_warning: "Esta posición tiene un bajo nivel de colateral, y será una llamada a margen si el índice de colateral cae por debajo de %(mr)s. Considera de añadir colateral o cerrar la posición.", debug_report: " Reporte un error o comportamiento inesperado que haya encontrado. Haga clic para ver el registro de la consola del navegador, cree una captura de pantalla e instrucciones sobre cómo informar mejor su problema.", deposit_tip: "para completar el depósito, vaya a su billetera externa %(asset)s y haz una transferencia a la dirección listada en esta página. Recibirá el depósito tan pronto como haya sido confirmado. Si se muestra una nota , es esencial que usted tiene que incluir esta nota en su transferencia.", disconnected: "No estás conectado a la API de un nodo , intenta volver a cargar o establecer un nuevo punto de acceso en la Configuración", feed_price: "This is the current external feed price", filter_ops: "Use esta lista para filtrar su historial por tipo de operación.", follow_user: "Usted está siguiendo a este usuario", follow_user_add: "Haga clic para seguir a este usuario", gateway: "Gateways back desposits by 100% real assets", generate: "La contraseña generada fue creada por su navegador, localmente.

    Nadie más que tú tiene acceso a ella.

    Pégalo a continuación y guarda una copia en un lugar seguro ", global_settle: "Este activo se liquida globalmente. Resolverlo le permitirá convertir sus propiedades de %(asset)s a %(backingAsset)s Este activo se liquida globalmente. Resolverlo le permitirá convertir sus propiedades de", global_settle_price: "Este es el precio al que se ejecutarán las órdenes de liquidación. Este activo se liquida globalmente, por lo que las órdenes de liquidación se ejecutarán instantáneamente", hide_asset: "Haga clic aquí para ocultar este activo de esta lista.", lack_funds: "No hay fondos suficientes para realizar la operación.", latest_price: "Este es el utlimo precio en el mercado.", legacy_explanation: "Oculta las propuestas que son duplicados, spam o que se han iniciado pero no están activas durante más de 2 meses.", login: "Esta %(wallet_name)s billetera de BitShares no ofrece un inicio de sesión tradicional sino que simplemente bloquea o desbloquea una billetera que es solo almacenada localmente en su navegador.

    Cada vez que cierre la billetera, esta se bloqueará y se cerrerá efectivamente la sesión.", "login-tooltip": { incorrectPassword: { begin: "Ingrese otra contraseña o intente ", end: " iniciar sesión.", model: "Billetera local" }, withoutBinFileBlock: { begin: "Si no tienes .bin-file intente ", brainkey: "Brainkey", end: " para iniciar sesión.", middle: " o utilize ", model: "Billetera de nubes" } }, "login-tooltips": { incorrectPassword: { begin: "Ingrese otra contraseña o intente ", end: " para iniciar sesión.", model: "Billetera local" }, withoutBinFileBlock: { begin: "Si no tienes .bin-file intente ", brainkey: "Brainkey", end: " para iniciar sesión.", middle: " o utilize ", model: "Billetera de nubes" } }, login_required: "Por favor ingrese a la cuenta seleccionada para realizar esta acción", margin_price: "Este es el precio máximo que una posición a margen puede pagar. Es tambien llamado precio Squeeze.", market_fee: "El proprietario de %(asset)s cobra una comisiòn de mercado de %(percent)s%% para pedidos de compra. Esta comisìòn se deducirá de la cantidad que reciba cuando su pedido se ejecuta, no se paga al hacer un pedido.", memo_tip: " Puede incluir un mensaje opcional en el campo memo. Esto le permite escribir notas personales y también es utilizado a menudo por los intercambios para identificar depósitos.", no_groups_available: "No groupings available using this API server", no_price: "No hay un precio reciente disponible para este activo que pueda usarse para estimar su valor.", nodes_popup: "Haga clic aquí para abrir la ventana emergente de configuración de acceso que le permite cambiar los nodos si es necesario", over_limit: "El puente no tiene suficiente del activo deseado para esta orden de compra", own_account: "Tienes llaves para esta cuenta", propose_scam: "¡Esta propuesta fue creada por un estafador conocido, no la aprueba!", propose_tip: "Proponer otro usuario para iniciar una transacción", propose_unhide: "Do not uncheck this unless you know what you are doing", propose_unknown: "Esta propuesta fue creada por o se dirige a una cuenta desconocida (no en contactos o lista blanca). Tenga cuidado con los intentos de estafa y revise cuidadosamente las operaciones contenidas.", proxy_remove: "Tiene un conjunto de proxy, para eliminarlo, simplemente borre este campo de entrada", proxy_search: "Busque una cuenta que se utilizará como su proxy para votar", registration: { accountModel: "La billetera en la nube le permite iniciar sesión en su billetera desde cualquier lugar con solo su nombre de cuenta y contraseña, pero su contraseña es vulnerable a ataques de fuerza bruta, lo que significa que es importante usar una contraseña muy larga, ¡idealmente más de 20 caracteres!", accountName: "El nombre de la cuenta debe contener de 4 a 63 caracteres y debe constar de letras latinas, guiones, dígitos.", password: "La contraseña debe contener al menos 8 caracteres. Sería mejor usar una contraseña complicada que contenga una combinación de números, caracteres especiales y letras.", walletModel: "La billetera local tiene la mejor seguridad, pero está restringida a su navegador y computadora actuales. Para migrar la billetera a otro navegador o computadora, puede usar el archivo de respaldo o brainkey.", whyBinFile: "Archivo .bin: es un archivo de copia de seguridad. El archivo está cifrado con su contraseña y contiene todas las claves privadas de sus cuentas. Este archivo debe ser cargado durante el proceso de inicio de sesión." }, required_input: "Campo requiere un valido %(type)s", scam_account: "Se sospecha de cuenta estafador", self_help: "Dependiendo del panel visible actualmente, esto abre una guía de ayuda con explicaciones sobre lo que ve actualmente o la sección de ayuda general de la billetera", settle: "El settling te permitirá de convertir tus propriedades de %(asset)s en %(backingAsset)s después de un retraso de %(settleDelay)s horas, a un precio igual al precio dado en ese momento.", settle_price: "Este es el precio al que se ejecutarán los pedidos colocados.", show_asset: "Haga clic aquí para mostrar este activo en la lista principal.", show_block: "Haga clic aquí para mostrar el bloque #%(block)s donde ocurrió esta transacción.", sign_owner: "si eseres el proprietario de esta cuenta, por favor verifique que la transacción ha sido firmada correctamente. Esto es necesario solamente si estás usando la cuenta del proprietario y esta cuenta no ésta incluida en los permisos activos.", sync_no: "El nodo actual no está sincronizado con la cadena de bloques, intente cambiar a otro", sync_yes: "El nodo actual está sincronizado con la cadena de bloques", target_collateral_ratio: "Establecer una relación de garantía objetivo puede ayudar a no vender toda la posición a la vez.

    Vende tan poco estableciendo el objetivo debajo de MCR (ex. 1.5)

    Venda poco pero vuelva a disminuir las posibles llamadas de margen al establecerlo más alto que MCR (ex. 3)", transfer_actions: " Haga clic aquí para hacer una transferencia, o para depositar / retirar aquellos activos que lo soportan.", unlock_account_name: "Haz clic para editar el nombre de la cuenta, por ejemplo, cuando su cuenta está configurada como permiso de otra cuenta.", update_position: "Haga clic aquí para actualizar su posición. En cualquier momento puede cambiar los neveles de deuda y/o el colateral de su posición.", withdraw_address: "Si aún no tienes una %(asset)s dirección, busca un proveedor de billetera y crea uno para completar el retiro del saldo.", withdraw_full: "Haga clic para retirar el saldo completo" }, transaction: { amount_sell: "Monto a vender", asset_claim_fees: "reclamo de honorarios de activos de %(balance_amount)s desde %(asset)s Cargo de la piscina", asset_reserve: "cantidad de activos quemados", at: "a", balance_id: " ID de saldo", balance_owner: "Llave de propietario de saldo (owner key)", bidder: " Licitador", blinding_factor: "Factor cegador", bond_accept_offer: "Ha aceptado la oferta de bonos de", bond_cancel_offer: "Ha cancelado la oferta de bonos", bond_claim_collateral: "Ha solicitado el colateral de", bond_create_offer: "Ha creado la oferta de bonos", bond_pay_collateral: "Pagado el colateral de", borrow_amount: "Deuda", borrower: "Prestatario", broadcast_fail: "Fallo al transmitir la transacción: %(message)s", broadcast_success: "La transacción ha sido transmitida", broadcasting: "Transmitiendo la transacción..", broadcasting_short: "Transmitiendo..", burn_asset: "Incinerado", by: "por", claimed: "Total solicitado", coll_maint: "Relación colateral de mantenimiento", coll_of: "con un colateral de", coll_ratio: "Relación colateral inicial", collateral: "Collateral", collateral_target: "Target Collateral", committee_member_create: "Miembro del Comité creado", confirm: "Por favor confirme la transacción", create_key: "Llave pública creada", csv: "Exportar a .csv", csv_tip: "Descargar el historial como separados por comas file .csv ", cumulative_borrow_amount: "Cumulative Debt", custom: "Ha creado una operación personalizada", delta_collateral: "Cambio de collateral", delta_debt: "Cambio de deuda", deposit_to: "Depositado a la cuenta", expiration: "Vencimiento", feeGroups: { account: "Cuenta-específica", asset: "Específico del activo", business: "Administracion de Negocios", general: "General", market: "Específico del mercado" }, feeTypes: { _none: "Gratis", basic_fee: "Comisiòn básica", fee: "Cuota de transacción regular", fee_per_day: "Price per day", fee_per_kb: "Price per KByte Transaction Size", long_symbol: " Símbolos mas largos", membership_annual_fee: "Membresía anual", membership_lifetime_fee: "Membresía de por vida", premium_fee: "Comisiòn por nombres premium", price_per_kbyte: "Precio por KByte Tamaño de la transacción", price_per_output: "Price per recipient", symbol3: "Simbolos with 3 Caracteres", symbol4: "Simbolos with 4 Caracteres" }, feed_price: "Precio del feed", feed_producer: "Se ha convertido en productor de feeds para el activo", file_write: "Ha escrito un archivo", fill_or: "Orden rápida (Fill or kill)", for: "para", from: "de", fund_pool: "Pool de comisiones para %(asset)s financiado con", funding_account: "Cuenta de fondos", global_parameters_update: "Actualizar parámetros globales", inputs: "Entradas", market_fee: "Cuota de mercado", max_market_fee: "Cuota máxima de mercado", min_receive: "Monto mínimo a recibir", new_url: "Pagina", obtain: "para obtener", order_id: "ID de la Orden", outputs: "Salidas", paid: "pagado", publisher: "Editor (Publisher)", received: "ha recibido", seller: "Vendedor", sent: "ha enviado", settlement_date: "Fecha de liquidación", to: "a", transaction_confirmed: "Transacción confirmada", trxTypes: { account_create: "Crear cuenta", account_transfer: "Transferir Cuenta", account_update: "Actualizar cuenta", account_upgrade: "Actualizar tipo de suscripción de la Cuenta", account_whitelist: "Lista blanca", all: "Mostrar todo", assert: "Afirmar operación", asset_bid_collateral: "Colateral de oferta", asset_claim_fee_pool: "Balance de la cuota de la reclamación", asset_claim_fees: "Reclamar comisiones de activos", asset_claim_pool: "Reclamar conjunto de honorarios de activos", asset_create: "Crear activo", asset_fund_fee_pool: "Financiar Fondo de Comisiones de un activo", asset_global_settle: "Liquidación global de Activos", asset_issue: "Emitir activo", asset_publish_feed: "Publicar feed", asset_reserve: "Incinerar activo", asset_settle: "Liquidación de Activos", asset_settle_cancel: "Cancel asset settlement", asset_update: "Actualizar activo", asset_update_bitasset: "Actualizar SmartCoin", asset_update_feed_producers: "Actualizar productores de feed de activo", asset_update_issuer: "Actualizar el emisor del activo", balance_claim: "Solicitar balance", bid_collateral: "Oferta colateral", blind_transfer: "Transferencia cegada", call_order_update: "Actualizar margen", committee_member_create: "Crear miembro del Comité", committee_member_update: "Actualizaziòn miembro del comité de ", committee_member_update_global_parameters: "Actualización global de parámetros", custom: "Personalizado", execute_bid: "Ejecutar puja", fba_distribute: "Distribución de activos respaldados por honorarios", fill_order: "Completar orden", htlc_create: "HTLC create", htlc_extend: "HTLC extend", htlc_redeem: "HTLC redeem", htlc_redeemed: "HTLC redeemed", htlc_refund: "HTLC refund", limit_order_cancel: "Cancelar orden", limit_order_create: "Publicar orden", override_transfer: "Anular transferencia", proposal_create: "Crear propuesta", proposal_delete: "Eliminar propuesta", proposal_update: "Actualizar propuesta", transfer: "Transferencia", transfer_from_blind: "Transferencia desde cuenta cegada", transfer_to_blind: "Transferencia a la cuenta cegada", vesting_balance_create: "Crear fondo de consolidación", vesting_balance_withdraw: "Retirar fondos consolidados", withdraw_permission_claim: "Solicitar permisos de retiro", withdraw_permission_create: "Crear permisos de retiro", withdraw_permission_delete: "Eliminar permisos de retiro", withdraw_permission_update: "Actualizar permisos de retiro", witness_create: "Crear Testigo", witness_update: "Actualizar Testigo", witness_withdraw_pay: "Retirar pago del Testigo", worker_create: "Crear presupuesto de trabajo" }, vesting_balance_create: "ha creado el fondo de consolidación de", waiting: "esperando confirmación..", whitelist_states: { black_listed: "En la lista negra", no_listing: "No estante en la lista", white_and_black_listed: "Incluido en la lista blanca y en la lista negra", white_listed: "En la lista blanca" }, withdraw_permission_claim: "Ha reclamado permisos de retiro para la cuenta", withdraw_permission_create: "Ha otorgado permisos de retiro para la cuenta", withdraw_permission_delete: "Ha eliminado los permisos de retiro para la cuenta", withdraw_permission_update: "Ha actualizado los permisos de retiro para la cuenta" }, transfer: { again: "HACER OTRA TRANSFERENCIA", amount: "Monto", available: "Disponible", back: "VOLVER", balances: "Balances", broadcast: "Su transferencia ha sido transmitida a la red", broadcasting: "Transmitiendo...", by: "Por", cancel: "Cancelar", close: "Cerrar", confirm: "CONFIRMAR", copy_address: "Copiar dirección", copy_memo: "Copiar Memo", errors: { balance: "El balance final debe ser mayor a 0", insufficient: "Saldo insuficiente", memo_error: "El error de análisis de la nota de transferencia, por favor intente de nuevo más tarde.", memo_length_error: "La duración de la nota de transferencia excede, por favor verifique", minimum_amount: "Cantidad mínima de retiro: %(amount)s %(symbol)s", noFeeBalance: "Su saldo es insuficiente para pagar tarifas usando este activo, elija otro activo para pagar sus tarifas con", noFunds: "No fondos", noPoolBalance: "Ese activo tiene un saldo de comisión de tarifas insuficiente para pagar las tarifas con. Por favor, informe al propietario del activo o seleccione otro activo para pagar las tarifas.", pos: "El monto debe ser positivo", precision: "Valor mínimo de precisión de retirada: %(precision)s", req: "Campo requerido", valid: "Por favor ingresar un número positivo válido" }, explict_price: "Precio explícito:", fee: "Comisión", final: "Balance final", free: "Free", from: "Desde", header: "Detalles de transferencia", header_subheader: "Las transferencias se utilizan para enviar fondos a otros titulares de cuentas BitShares", header_subheader_propose: "Proponer enviar fondos desde uno %(wallet_name)s cuenta a una otra. El cuenta COMPRAR es la cuenta proponiendo la transacción.", memo: "Memo/Memorándum", memo_unlock: "Desbloquee su billetera/cuenta para ver esta nota", optional: "Opcional", pay_from: "Pagar Desde", phase_out_warning: "Recomendamos usar el nuevo {modal_link} modal ya que esta página será eliminada", see: "VER MIS TRANSFERENCIAS", send: "Enviar", to: "A", warn_name_unable_read_memo: "El remitente propuesto no podrá leer esta nota!" }, trx_error: { expire: "Su transacción ha expirado sin confirmación, intente de nuevo más tarde." }, utility: { asset_input_placeholder: "Ingresa simbolo de activo", asset_select_placeholder: "Selecione activo", total_x_assets: "Total de %(count)s activos", total_x_items: "Total de %(count)s articulos", total_x_markets: "Total de %(count)s mercados", total_x_operations: "Total de %(count)s operaciones" }, validation: { messages: { balance: "Saldo insuficiente. Disponible sólo: %(balance)s %(symbol)s", email: "El campo debe ser email", emailNamed: "%(name)s debería ser un correo electrónico", float: "El campo debe ser flotante.", floatNamed: "%(name)s debe ser flotante", integer: " El campo debe ser entero", integerNamed: "%(name)s debe ser entero", max: "El campo debe ser menor que %(max)s", maxNamed: "%(name)s debe ser menor que %(max)s", min: "El campo debe ser superior a %(min)s", minNamed: "%(name)s debería ser más alto que %(min)s", number: "El campo debe ser numero", numberNamed: "%(name)s deberia ser numero", oneOf: " El campo debe ser uno de: %(list)s", oneOfNamed: "%(name)s debe ser uno de %(list)s", range: "El campo debe estar en el rango de %(min)s a %(max)s", rangeNamed: "%(name)s debe estar en el rango de %(min)s a %(max)s", required: "El campo es obligatorio", requiredNamed: "%(name)s es requerido", test: "", types: { array: "El campo debe ser array", arrayNamed: "%(name)s debe ser una matriz", boolean: "El campo debe ser booleano.", booleanNamed: "%(name)s debería ser booleano", date: "El campo debe ser fecha", dateNamed: "%(name)s debe ser fecha", enum: "El campo debe ser uno de %(list)s", enumNamed: "%(name)s debe ser uno de %(list)s", hex: " El campo debe ser hexadecimal.", hexNamed: "%(name)s debería ser hexadecimal", method: "El campo debe ser método", methodNamed: "%(name)s debe ser metodo", object: "El campo debe ser objeto.", objectNamed: "%(name)s debe ser objeto", regexp: "El campo debe ser regexp", regexpNamed: "%(name)s debe ser regexp", string: "El campo debe ser cadena", stringNamed: "%(name)s debe ser una cuerda" }, url: "El campo debe ser url", urlNamed: "%(name)s debe ser url" } }, voting: { description: "The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).", title: "Voting" }, walkthrough: { buy_form: "Coloque las órdenes de compra usando este formulario.", buy_orders: "Ver todas las órdenes de compra para este mercado.", chart_tool_duration: "Agrupe datos comerciales usando diferentes intervalos.", chart_tool_indicators: "Agregue indicadores técnicos al gráfico de precios para identificar oportunidades comerciales.", chart_tool_zoom: "Ajuste el gráfico de precios para mostrar más o menos historial de precios.", collapsed_items: "Ver una o varias secciones del mercado ampliando los cajones.", create_cloud_wallet: "Acceda a la billetera en la nube usando un nombre de cuenta y contraseña.", create_local_wallet: "Cree una billetera local y descargue las llaves privadas que le pertenecen.", depth_chart: "Use un gráfico de profundidad de mercado para mostrar la oferta y la demanda a diferentes precios.", done_label: "Hecho", favourite_button: "Marque este par como favorito en su lista de mercados.", find_markets_tab: "Esta pestaña le permite buscar y agregar mercados adicionales a la pestaña mis mercados.", language_flag: "Elija entre 9 idiomas diferentes para usar en el DEX.", my_markets: "Esta pestaña enumera los mercados de uso común.", next_label: "Siguiente", panel_hide: "Puedes ocultar el panel para tener más espacio.", personalize: "Cambia el diseño por defecto en la configuración de personalización", prev_label: "Volver", price_alerts: "Configurar alertas para recibir notificaciones si el precio fluctúa.", price_chart: "Ver la acción del precio de un activo usando el gráfico de precios.", restore_account: "Restaure una billetera usando su archivo de respaldo.", sell_form: "Coloque las órdenes de venta usando este formulario.", sell_orders: "Ver todas las órdenes de venta para este mercado.", skip_label: "Ignorar", switch_button: "Cambia los pares de trading usando este botón.", vertical_lock: "Deshabilitar el desplazamiento automático para desplazarse por el libro de pedidos", vertical_order: "Ver todos los pedidos para este mercado, incluyendo el spread y el último precio de pedido" }, wallet: { accept: "Aceptar", account_public: "Nombre de la cuenta (Public)", active_wallet: "Billetera Activa", all_set: "¡Estás listo!", ask_to_select_wallet: "Por favor seleccione un archivo clave", back: "Atrás", backup_brainkey: "Apoyo (Backup) Brainkey", backup_explain: "Al hacer clic en el siguiente botón, se generará un archivo de respaldo con una estenciòn .bin . Este archivo está encriptado con su contraseña de billetera y contiene todas las claves privadas para sus cuentas. Se puede usar para restaurar tu billetera o moverla a una computadora / navegador diferente.", backup_login: "Apoyo (Backup) & iniciar sesion", backup_new_account: "Felicidades, acaba de crear una nueva cuenta en los BitShares blockchain! Se recomienda encarecidamente que haga una copia de seguridad de su cartera ahora. Sin un respaldo que no hay manera de restaurar su cuenta si algo le sucede a su computadora.", backup_types: "backup types", backup_warning: "Parece que sus archivos de clave privada no están respaldados. Por razones de seguridad, recomendamos a los usuarios que no inicien sesión sin hacer una copia de seguridad de sus claves privadas.", balance_claim_lookup: "Búsquedas de saldos", balance_claims: "Balances Solicitados", brainkey: "Brainkey", brainkey_backed_up: "Esta brainkey fue respaldada por última vez", brainkey_not_backed_up: "Esta llave maestra nunca se ha respaldado", brainkey_not_verified: "Esta Brainkey no está verificada", brainkey_reset_success: "Restablecer secuencia Para regenerar sus claves privadas desde la llave de la billetera del cerebro, actualice su navegador y luego desbloquee la billetera..", brainkey_seq_reset: "Restablecer secuencia de tecla cerebro", brainkey_seq_reset_button: "Restablecer ahora", brainkey_seq_reset_text: "Úselo para restablecer el contador de secuencia usado para derivar claves privadas de la llave maestra de la billetera.
    Puede usarse para forzar la regeneración de claves privadas de la llave de su billetera..", brainkey_w1: "ADVERTENCIA: Para completar su copia de seguridad, imprima esto o escríbalo.", brainkey_w2: "Cualquiera con acceso a su llave de recuperación", brainkey_w3: "tendrá acceso a los fondos de esta billetera.", bts_09_export: "BTS 0.9.3c Exportar el file de la llave (.json)", cancel: "Cancelar", change: "Cambia a %(name)s", change_backup: "Ahora que ha cambiado su contraseña, le recomendamos hacer una nueva copia de seguridad.", change_password: "Cambiar contraseña (Password)", change_success: "Contraseña cambiada correctamente!", change_wallet: "Cambiar Billetera", claim_balance: "Solicitar Balance", claim_balances: "Solicitar Balances", claim_later: "Una vez que haya importado las claves, puede reclamar estos saldos en una cuenta de su elección.", confirm: " Contraseña de billetera (confirmar)", confirm_error: "La confirmación no coincide con la contraseña", confirm_password: "Confirmar contraseña", congrat: "Felicidades, estás listo!", console: "Consola de Administración de la Billetera", create: "Crear", create_a: "Crea una nueva cuenta de blockchain", create_account_password_text: "Las claves para esta nueva cuenta se derivarán usando su contraseña. No hay nada almacenado en el navegador o en un servidor central, por lo que deberá asegurarse de recordar esta contraseña. Almacénelo con un administrador de contraseñas o escríbalo manualmente.", create_account_text: "El nombre de la cuenta que elija debe ser único, ya que se registrará públicamente en la cadena de bloques y será su identificador para cualquier transacción que realice.", create_backup: "Crear Backup", create_backup_of: "Crear Backup ahora", create_importkeys_text: "Para importar claves, primero necesita crear una billetera local para contener las llaves. Complete el cuadro de diálogo siguiente para crear una nueva billetera local. ", create_password: "Crea una nueva cuenta usando una contraseña", create_success: "Su billetera local ha sido creada", create_text: "El %(wallet_name)s monedero local BitShares se almacena en su navegador, no se almacena en la nube. Una billetera puede contener varias cuentas y se puede transferir fácilmente entre navegadores y computadoras utilizando un archivo de copia de seguridad.", create_w_a: "Crea una billetera local que contenga una cuenta", create_wallet: "Crear Billetera", create_wallet_backup: "Crear una nueva billetera desde la copia de seguridad", current_pass: "Contraseña actual", custom_brainkey: "Brainkey Personalizada (avanzado)", delete_confirm_line1: "Está usted ABSOLUTAMENTE seguro?", delete_confirm_line2: "Problemas inesperados van a ocurrir si usted no lee esto!", delete_confirm_line3: "Esta acción NO PUEDE ser revertida.", delete_confirm_line4: "Si, eliminar billetera %(name)s", delete_wallet: "Eliminar Billetera", delete_wallet_name: "Eliminar Billetera (%(name)s)", different_file_type: "¿Tienes un tipo de archivo diferente?", done: "Hecho", dont_ask_for_backup: "No me pidas que backup otra vez", download: "Descargar", enter_password: "Ingresar Password", existing_password: "Password Existente", first_account_paid: "Como esta es su primera cuenta, un faucet pagará la tarifa de registro por usted.", generated: "Contraseña generada", go_get_started: "Empezando", has_wallet: "Cuando cree su primera cuenta de BitShares, también se creará automáticamente una billetera local BitShares y se almacenará en su navegador. Esta billetera local está encriptada con su contraseña, y contendrá cualquier clave privada que pertenezca a sus cuentas. ¡Es importante que se tome el tiempo para hacer una copia de seguridad de esta billetera una vez creada!", import_20_notice1: "Importar su BACKUP BTS 2.0+ primero", import_20_notice2: "(si lo tiene)", import_backup: "Importar Backup", import_backup_choose: "Seleccione su archivo de copia de seguridad en el cuadro de diálogo a continuación. Esto es completamente seguro ya que el archivo no se carga en ninguna parte y nunca abandona su navegador.", import_balance: "Importar balance(s)", import_bts: "Importar a BTS 0.9.3c exportar llave", import_bts1: "Importar desde BitShares 0.9.3c", import_key_success: "Exitosamente importados %(count)s keys.", import_keys: "Importar Llaves", import_keys_tool: "Herramienta clave de importación", import_pass_match: "La contraseña coincide. Descifrando la copia de seguridad ahora...", import_password: "Ingrese la contraseña del archivo de importación", import_private_key: "Importar llave privada", invalid_format: "Formato no Válido", key_file: "Archivo de clave", key_file_bin: "Archivo de clave (.bin)", last_backup: "Ultimo backup", link_account: "Cuenta", link_deposit: "Depósitos", link_transfer: "Transferencias", loading_balances: "Cargando solicitud de balances", local_switch: "Se detectó una billetera local que coincide con la contraseña dada, cambiando al modo de billetera local", login_type: "Selección de tipo de ingreso", must_be_ltm: "La cuenta de pago debe ser un miembro de por vida para realizar esa operación.", name: "Nombre de la Billetera", need_backup: "Esta Billetera necesita un backup", never_backed_up: "Todavía no ha realizado un backup de esta Billetera", new_confirm: "Confirmar nueva contraseña", new_password: "Nueva contraseña", new_wallet: "Nueva Billetera", new_wallet_name: "Nuevo nombre de Billetera", no_accounts: "Sin Cuentas", no_balance: "Sin solicitudes de balance", no_wallet: "Aún no tienes una billetera local", noneed_backup: "No es necesario un backup", not_first_account: "Como ya tiene una cuenta, deberá pagar esta nueva cuenta usted mismo. Para hacerlo, su cuenta debe tener membresía de por vida, que puede comprarse en la página de la cuenta.", ok_done: "OK, llévame al tablero", pass_incorrect: "Contraseña incorrecta", pass_length: "La contraseña debe contener al menos% (minLength) s caracteres. Lo ideal sería usar 20 o más, y una combinación de números, caracteres especiales y letras.", password: "Contraseña", password_crucial: "En caso de que aún no lo haya hecho, es crucial que se tome el tiempo de escribir su contraseña ahora, ya sea en papel, un administrador de contraseñas o en otro lugar. Si pierde u olvida esta contraseña, se perderá su cuenta, no podemos ayudarlo a recuperarla .", password_lose_warning: "IMPORTANTE: Si olvida su contraseña, no podrá acceder a su cuenta. ¡No podemos restablecer ni restaurar su contraseña! ¡Asegúrate de memorizar o escribir tu contraseña!", password_model: "Billetera de Nbes", password_model_1: "Il portafoglio cloud utilizza una password in combinazione con il nome dell'account per generare al volo le tue chiavi private. Ti limita ad accedere solo con un account alla volta, in cambio di facilità d'uso e convenienza.", password_model_2: "La billetera en la nube le permite acceder a su billetera desde cualquier lugar utilizando solo el nombre de cuenta y la contraseña, pero su contraseña es vulnerable a los ataques de fuerza bruta, lo que significa que es importante usar una contraseña muy larga. , ¡idealmente más de 20 personajes!", password_model_3: "
  • Cuenta única
  • Easy login
  • Seguridad moderada
  • ", password_show: "muéstrame la contraseña", paste_private: "Pegar claves privadas aquí (Wallet Import Format - WIF)", pwd4brainkey: "Ingrese el password para ver su brainkey", read_more: "Read more about %(wallet)s and %(backup)s.", ready_to_restore: "Lista para Restaurar", reenter_brainkey: "Re-Ingrese Brainkey", remember_me: "Recuérdame", remember_me_explanation: 'Desactiva "Recordarme" para deshabilitar recordar el nombre de tu cuenta y otras configuraciones personales.', reset: "Resetear", restore: "Restaurar cartera local desde la copia de seguridad", restore_backup: "Restaurar Backup", restore_it_here: "Restore it here", restore_key_file: "Restore key file..", restore_success: "Billetera (%(name)s) restaurada exitosamente", restore_wallet_of: "Restaurar (%(name)s Wallet)", select_wallet: "Seleccionar archivo de clave", setup_wallet: "Configurar su Billetera", show_brainkey: "Mostrar Brainkey", step_1: "Crea una billetera", step_2: "Crear una copia de seguridad", step_3: "Empezando", submit: "Enviar", switch_model_password: "Cambiar a la billetera en la nube", switch_model_wallet: "Cambiar a la billetera local", tips_account: "Mira tu nueva cuenta", tips_dashboard: "Mira tu tablero", tips_deposit: "Hacer un depósito", tips_explore: "Ahora que ha creado con éxito una cuenta y ha descargado la copia de seguridad, es hora de comenzar. Haga clic en uno de los enlaces a continuación para comenzar a explorar.", tips_explore_pass: "Ahora que ha creado con éxito una cuenta y ha hecho una copia de seguridad de su contraseña, es hora de comenzar. Haga clic en uno de los enlaces a continuación para comenzar a explorar.", tips_header: "También puede encontrar estos mismos enlaces en el menú superior y en el menú desplegable junto al nombre de su cuenta.", tips_login: "IMPORTANTE: No hay funcionalidad de inicio de sesión / cierre de sesión aquí, simplemente desbloquea su billetera cuando desea realizar una transacción.", tips_settings: "Cambiar la configuración", tips_transfer: "Haz una transferencia", title: "Billetera", totals: "Activos totales", unclaimed: "Sin Solicitar", unclaimed_vesting: "Sin Solicitar (consolidando)", understand_1: "Entiendo que nadie puede recuperar mi contraseña si la pierdo o la olvido", understand_2: "He anotado o almacenado mi contraseña", understand_3: " Entiendo que perderé el acceso a mis fondos si pierdo mi contraseña", use_different: "Use different file", use_password: "Usa una billetera en la nube", use_wallet: "Usa una billetera local", using: "Using:", verified: "Verificado", verify: "Verificar", verify_prior_backup: "Verificar Backup Previo", wallet_browser: "Su navegador web es su billetera", wallet_created: "Billetera Creada", wallet_crucial: "Su billetera local es solo almacenada en tu navegador,¡Así que es crucial que cree una copia de seguridad que le permita recuperar su billetera si se pierden los datos en su navegador! Nadie más puede restaurar su cuenta si pierde su copia de seguridad.", wallet_exist: "Esta Billetera ya existe, elija un nuevo nombre", wallet_exist_with_name: "La Billetera (%(name)s) ya existe, por favor elija otro nombre", wallet_lose_warning: "IMPORTANTE: Si pierde su billetera local o su contraseña, no podrá volver a acceder a ninguno de sus fondos. ¡Asegúrese de guardar la copia de seguridad en un lugar seguro y memorice o escriba su contraseña!", wallet_model: "Billetera local", wallet_model_1: "La billetera local almacena la billetera en su navegador. Se encripta con una contraseña que usted elija, y se puede respaldar usando una llave maestra o un archivo binario encriptado que contiene todas las claves privadas. La billetera local te permite usar varias cuentas al mismo tiempo.", wallet_model_2: "La billetera local tiene la mejor seguridad, pero está restringida a su navegador y computadora actuales. Para migrar la billetera a otro navegador o computadora, puede usar el archivo de copia de seguridad o Brainkey.", wallet_model_3: "
  • Multiples cuentas
  • Se requiere una copia de seguridad del archivo Wallet
  • Alta seguridad
  • ", wallet_move: "Este archivo de respaldo también se puede usar para mover su billetera local a diferentes computadoras o navegadores diferentes. ¡Para restaurar su billetera local usando esta copia de seguridad , también necesitará su contraseña ", wallet_password: "Inicie sesión en cualquier lugar con su contraseña", wallet_types: "wallet types" } } } , function(e) { e.exports = { account: { accounts: "Comptes", activity: "Activity", advanced: "Advanced", as_collateral: "Collateral", asset: "Actif", asset_details: "Asset details", average_price: "Average price", bittrex_scam: "This account is not the real Bittrex account, please send to this account: bittrex-deposit.", bts_market: "Market", collaterals: "Margin Positions", confirm_asset_modal: { are_you_sure: "Are you sure you want to save all changes to these tabs?", header: "Confirm multiple changes" }, connections: { black: "Blacklisté par", known: "Connu par" }, contacts: "Contacts", create_account: "Create account", create_new: "Create A New Account", deactivate_suspicious_proposals: "Deactivate suspicious proposals", deposit: "Deposit BTS", deposit_address: "Your deposit address is your account name", deposit_withdraw: "Deposit/Withdraw", download_history: "Download History", eq_value: "Estimated", eq_value_header: "Value ({asset})", errors: { invalid: "Compte non valable", memo_missing: "You do not have control of the memo key for this account. In order to use a memo, please set the account memo key to a key you control using the Permissions page.", not_found: "Le compte %(name)s n'existe pas, veuillez vérifier le nom", not_yours: "Pas votre compte", unknown: "Compte inconnu" }, estimate_value: "Estimated Account value", existing_accounts: "Existing Accounts", existing_user: "Existing user", export_modal: { coinbase_report: "CoinTracking.info Report", description: "Enter your desired elastic search instance and click the report type", full_report: "Full Report", title: "History Export", use_custom: "Use custom wrapper" }, filter_orders: "Filter", follow: "Ajouter le contact", group_by_asset: "Group by asset", hidden_accounts_row: "Hidden Accounts", hide_hidden: "Active", hide_ignored: "Hide hidden accounts", history: "Historique", history_error: "Failed to download the account history, please try again", home: "Home", hour_24: "24hrs", hour_24_short: "24hrs", id: "Account ID", identicon: "Identicon", ignore: "Hide", in_open: "This is the amount of %(asset)s you have in open orders.", in_open_value: "This is the estimated value of the %(asset)s you have in open orders.", intro_text_1: "Your Decentralized Platform", intro_text_2: "The DEX is inherently decentralized, enabling you to trade the BitShares core token (BTS) and a range of trustless price-stable, market-pegged assets such as bitUSD, bitCNY, bitBTC, bitGold and more. These assets can all be traded with zero counter-party risk, putting you in total control of your funds.", intro_text_3: "The DEX also enables creation of user-issued assets (UIAs), which can be traded against any other UIAs or trustless assets on the platform. One well-known issuer on The DEX is OpenLedger, offering a host of assets including BTC, ETH, STEEM, DASH, LTC, DOGE, and many more", intro_text_4: "This gives cryptocurrency traders a unique blend of traditional and decentralized trading, all in a familiar exchange interface. Happy trading!", intro_text_title: "Welcome to BitShares", login_with: "Login with", market_actions: "Market actions", market_value: "Valeur", member: { annual: "Abonné annuel", available: "Available to claim", balance_type: "Type", basic: "Membre basique", cashback: "Gagné", claim: "Claim now", coindays: "coin days", earned: "Coin days earned", expires: "expires", fee_allocation: "Fee Allocation", fees_cashback: "Fee statistics", fees_paid: "Frais payé", join: "Inscription", lifetime: "Membre à vie", lifetime_referrer: "Lifetime Referrer", membership: "Membership", membership_expiration: "Membership Expiration", network_percentage: "Pourcentage de frais pour le reseau", referral_link: "Your referral link", referral_text: "Give this to link to people you want to refer to BitShares", referrals: "Recrutements", referrer: "Affiliate Referrer", registrar: "Registrar", remaining: "Days left of vesting period", required: "Coin days required", rewards: "Gains totaux", stats: "Stats membre", subscribe: "Buy Annual Subscription", suspected_scammer: "Suspected Scammer", unknown: "Inconnu", upgrade_lifetime: "Buy Lifetime Subscription", vested: "Bloqué" }, mine: "My account", more: "voir plus", name: "Nom du compte", name_input: { name_is_taken: "Account name is already taken.", not_found: "Account not found.", premium_name_faucet: "This is a premium name which is not supported by this faucet. Please enter a regular name containing least one dash, a number or no vowels.", premium_name_warning: "This is a premium name which is more expensive than a name containing a dash (-) or a number." }, new_user: "New user?", no_orders: "No open orders", no_price: "--", open_orders: "Open Orders", optional: { formatter: "Optionally, {restore_link} or create an account using the {restore_form}.", restore_form: "advanced form", restore_link: "restore your account" }, options: { memo_key: "Memo Key", num_committee: "Desired Committee Members", num_witnesses: "Desired Witnesses" }, orders: "Ordres", other_scam: "This account is not known to be an official account, please verify the destination before transferring", overview: "Sommaire", password_login: "Login with password", pay: "Payer", pay_from: "Pay with account", payees: "Payees", percent: "Percent of total supply", perm: { account_name_or_key: "Account name or key", acct_or_key: " Account/Key", action: "Action", active: "Permissions actifs", add: "Rajouter une permission", add_permission_label: "Enter account name/key and weight", brain: "Brainkey position", cancel: "Annuler", confirm_add: "Rajouter", create_paperwallet: "Create Paper Wallet", create_paperwallet_private_hint: "Unlock/Login before creating the paper wallet to include private keys", from: "Imported from account", key: "Cléf/Nom", key_viewer: "Private key viewer", memo_key: "Cléf mémo", memo_public_key: "Memo Public Key", memo_warning: "WARNING: If you replace the memo key you will be unable to read old memos when logging in with your password, and unless you import the new memo private key into your old wallet that wallet will be unable to decode new memos", new_active: "New active key", new_memo: "New memo key", new_owner: "New owner key", owner: "Permissions des proprietaires", password_model: "Account model", password_model_1: "If you want to be able to login from anywhere using only your password, you can use this page to add new keys to your permissions. If you also want to remove the original keys, you can do so in the active/owner permissions tabs.", password_model_2: "Add password generated keys", private: "Private key (WIF - Wallet Import Format)", public: "Public key", publish: "Publier les changements", remove_proxy: "Remove proxy", remove_text: "Remove", reset: "Annuler les changements", save: "Save Changes", save_all: "Save All Changes", show: "Show", sign_owner: "Sign as owner", threshold: "Limite", type: "Type", use_text: "Use", valid_pub: "Valid Public Key", warning1: "Active permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s", warning2: "Owner permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s", warning3: "Account is already in the list", warning4: "Key is already in the list", weight: "Poids" }, permissions: "Permissions", please_create_account: "Please create an account", polo_scam: "This account is not the real Poloniex account, please send to this account: poloniexwallet.", portfolio: "Portfolio", propose_from: "Propose From", qty: "Qty", quote: "Quote", recent: "Activité recent", reset_orders: "Reset", restore: "Restore", search: "Search for an account", see_open: "See open orders", select_placeholder: "Selectionnez un compte..", settle: "Settle", show_hidden: "Hidden", show_ignored: "Show hidden accounts", show_visual: "Visual", signedmessages: { automaticcreation: "Signed message will be created automatically", copysuccessful: "Signed message copied to clipboard", copyunsuccessful: "Failed to copy message", entermessage: "Enter message here", errorverifying: "An error occured while verifying the message", invalidformat: "Signed message format can't be recognized", invalidkey: "Private key could not be obtained, is the public key valid?", invalidsignature: "The content of the message could not be validated against the signature", invaliduser: "Account of the message sender is invalid", keymismatch: "Given public key of the sender doesn't to the one stored in the senders account", menuitem: "Signed Messages", sign: "Sign", signing: "Signing, please wait ...", signmessage: "Sign Message", title: "Signed Messages", verify: "Verify", verifying: "Verifying, please wait ...", verifymessage: "Verify Message", verifyonchange: "Verify while typing" }, start_typing_to_search: "Start typing to search for accounts", submit_orders: "Submit", total: "Total ({asset})", total_estimate: "This is the estimated value of all your assets, including any hidden assets, open orders, debt and collateral. The estimate is done using only live blockchain data and may not be perfectly accurate.", total_value: "Total value", trade: "Trade", transactions: { fee: "Fee", id: "ID", info: "Info", time: "Time", type: "Type" }, transfer_actions: "Transfer actions", unfollow: "Retirer", unignore: "Unhide", upgrade: "Mettre à niveau", user_issued_assets: { add_feed: "Add new feed producer", advanced: "Advanced features", approx_fee: "Approximate fee", backing: "Short backing asset", base: "Base asset amount", base_name: "Base asset", bitasset_opts: "SmartCoin options", cer_warning_1: "Warning", cer_warning_2: "Make sure your core exchange rate is higher than the market price, otherwise people will buy your token from the market and drain your fee pool via implicit arbitrage. The core exchange rate should be updated regularly to reflect market pricing of your asset.", charge_market_fee: "Enable market fee", committee_fed_asset: "Allow committee members to provide feeds", condition: "Condition (max 60 characters)", conflict_feed: "Cannot allow witnesses and committee members to provide feeds simultaneously", core_exchange_rate: "Core exchange rate", current_issuer: "Current owner account", decimals: "Number of decimal points", description: "Description", details: "Details", disable_confidential: "Disable confidential transactions", disable_force_settle: "Disable force settling", error_invalid: "That asset may not be used", error_precision: "That asset does not have the same precision as %(asset)s", error_too_deep: "May not create a bitasset backed by a bitasset backed by a bitasset", exists: "That asset already exists", expiry: "Market resolution date", feed_lifetime_sec: "Feed lifetime in minutes", feed_not_allowed_1: "Cannot set feed producers on a witness- or committee-fed asset", feed_not_allowed_2: "Please disable the flags called 'Allow witnesses to provide feeds' and 'Allow committee members to provide feeds' in order to allow manual definition of feed producers", feed_producers: "Feed producers", flags: "Flags", force_settlement_delay_sec: "Delay for forced settlements (minutes)", force_settlement_offset_percent: "Percent offset of forced settlements", global_settle: "Allow issuer to force a global settling", id: "ID", invalid_backing_asset_change: "You can't change the backing asset of an asset that has a non-zero current supply", invalid_market_pair: "Preferred market pairing can not be the same market", invalid_permissions_change: "You can't enable a permission for an asset that has a non-zero current supply", issued_assets: "Issued Assets", market: "Preferred market pairing", market_fee: "Market fee", max_market_fee: "Max market fee", max_positive: "Max supply should be a positive number", max_supply: "Maximum supply", maximum_force_settlement_volume: "Max force settle volume (percent of total supply per hour)", minimum_feeds: "Minimum number of feeds", mpa: "SmartCoin", name: "Asset Name", need_asset: "At least one of the two assets must be %(name)s", new_issuer: "New owner account", optional: "Optional settings", override_authority: "Issuer may transfer asset back to himself", perm_warning: "WARNING: Permissions may only be disabled, once disabled they may not be reactivated!!", pm: "Binary prediction market", precision: "Precision", precision_warning: "Warning: The number of decimals may not be changed after creation", primary: "Primary settings", quote: "Quote asset amount", quote_name: "Quote asset", reward_percent: "Reward percent", reward_percent_tooltip: "If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.", short: "Short name (max 32 characters)", symbol: "Symbol", to: "Issue to account", too_large: "That max supply is too big, please choose a smaller number", too_many_feed: "Number of feed producers exceeded the max allowed (%(max)s).", transfer_restricted: "Issuer must approve all transfers", update_owner: "Update owner", update_owner_text: "The asset owner may change the owner to another account using this form:", visible: "Hide asset from search and markets", white_list: "Require holders to be white-listed", witness_fed_asset: "Allow witnesses to provide feeds" }, vesting: { balance_number: "Balance #%(id)s", explain: "Vesting balances contain any fees earned through the referral program or from worker pay, for example. They have a certain vesting period and are continually unlocked during that vesting period until all of the balances are available", no_balances: "This account has no vesting balances", title: "Vesting balances" }, votes: { about: "About", active: "Active (%(count)s)", active_short: "Active", add_committee: "Add", add_committee_label: "Committee Member", add_witness: "Add", add_witness_label: "Witness", already: "Account is already in the list", approve_worker: "Approve", cast_votes_through_one_operation: "Cast your votes for witness, committee and workers and broadcast them together.", clear_proxy: "Remove proxy", cm_approved_by: "Committee members approved by %(account)s", cm_not_approved_by: "Committee members not approved by %(account)s", committee: "Committee member name", create_worker: "Create a new worker", creator: "Creator", daily: "daily", daily_pay: "Daily Pay", end: "End date", expired: "Expired", funding: "Funding", go_proxy: "Go to", hide_legacy_proposals: "Hide Legacy Proposals", inactive: "Inactive", info: "Info", join_committee: "Join committee", join_witnesses: "Join Witnesses", line: "Line", max_pay: "Maximum total pay", missing: "Needed", name: "Nom", new: "Proposed (%(count)s)", no_proxy: "No Proxy", polls: "BSIPs/Polls (%(count)s)", proxy: "Proxy Voting Account", proxy_current: "Your current proxy is", proxy_known: "Or choose an account as your proxy", proxy_short: "Proxy", publish: "Publish Changes", recycled: "Recycled", reject_worker: "Reject", remove_committee: "Remove", remove_witness: "Remove", save_finish: "Click save to finish", set_proxy: "Set a proxy here", start: "Start date", status: { neutral: "Neutral", rejected: "Rejected", supported: "Supported", title: "Status" }, support: "Support", supported: "Supported", threshold: "Votes required to activate", toggle: "Toggle vote", total_budget: "Daily budget", total_votes: "Votes", unclaimed: "Unclaimed pay", unused_budget: "Unused daily worker budget", url: "Webpage", votes: "Votes", votes_against: "Votes against", w_approved_by: "Witnesses approved by %(account)s", w_not_approved_by: "Witnesses not approved by %(account)s", witness: "Witness name", worker_account: "Worker account", workers: "Ouvriers", workers_short: "Workers" }, voting: "Votes", welcome: "Welcome to BitShares", whitelist: { add: "Add to whitelist", add_black: "Add to blacklist", black: "Blacklist", black_by: "Blacklisted by", blacklist_authorities: "Blacklist authority", empty: "%(account)s has not whitelisted any accounts.", empty_black: "%(account)s has not blacklisted any accounts.", empty_black_by: "No accounts have blacklisted %(account)s.", empty_white_by: "No accounts have whitelisted %(account)s.", title: "Whitelist", white_by: "Whitelisted by", whitelist_authorities: "Whitelist authority", whitelist_market_fee_sharing: "Market fee sharing whitelist" } }, account_browsing_mode: { go_back: "Go back to my account", modal_description: "You're switching an account which you don't have active authority over. You can browse this account, but in view only mode", modal_title: "View Only Mode", never_show_again: "Never show again", view_mode: "View Mode", you_are_in_browsing_mode: "You're in view only mode of the current account. Click here to get back to your account." }, alert: { warning: "Warning" }, app_init: { browser: "Unsupported browser", browser_text: "The Browser you are using has not been fully tested to support the BitShares Wallet. We highly recommend that you backup your local wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.", check_latency: "Running latency checks...", check_latency_feedback: "Running latency checks (%(pinged)s/%(totalToPing)s nodes) ...", check_latency_feedback_country: "Latency check in best country (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_last: "Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_region: "Latency check in best region (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_rest: "Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_world: "Latency check in each region (%(pinged)s/%(totalToPing)s nodes)", connected: "Connected", connecting: "Connecting to API server: %(server)s", database: "Connection established, initializing local databases", not_connected: "Not connected", retry: "Retry", title: "Application initialization issues", understand: "I understand", ws_status: "Full node connection status" }, assets: { BTS: "BTS is the core token of the BitShares Blockchain" }, boolean: { false: "False", true: "True" }, borrow: { adjust: "Update position", adjust_short: "Adjust", call_limit: "Market Call Limit", close: "Close position", coll_ratio: "Ratio", coll_ratio_target: "Target Ratio", considered_on_revival: "Included", enable_target_collateral_ratio: "Use Target Collateral Ratio", errors: { below: "Your collateral ratio is below %(mr)s which is not allowed.", below_info: "Your position is below the required maintenance collateral ratio! Increasing collateral ratio is allowed, debt can only be decreased.", below_ratio_mcr_update: "Your collateral ratio is blow your original %(ocr)s. Only increased ratio is allowed on margin called orders", close: "Your collateral ratio is close to %(mr)s which means this position is in danger of being margin called if the price drops.", collateral: "Insufficient collateral balance", increased_debt_on_margin_call: "You increased your debt, which is not allowed when updating a margin called position" }, maximize_debt_set_ratio_slider: "You must set a collateral ratio before being able to maximize debt", no_valid: "No valid feeds for %(asset_symbol)s", pay_max_debt: "Pay Max Debt", target_collateral_ratio: "Target Collateral Ratio", target_collateral_ratio_explanation: "When the position is being margin called, the corresponding order will be just big enough to bring the collateral ratio of the position greater or equal to the target collateral ratio", target_collateral_ratio_short: "TCR", title: "%(asset_symbol)s Margin", update: "Update", use_max: "Use Max" }, browser_notification_messages: { money_received_body: "Vous a envoyé %(amount)s %(symbol)s", money_received_title: "Transfert à partir de %(from)s" }, cancel: "Cancel", connection: { automatic_reconnect: " After %(reconnect_in_seconds)s seconds a reconnection attempt will be made automatically.", manual_ping: "Go to ping nodes", manual_reconnect: "Reconnect now", out_of_sync: "Your connection has been out of sync for %(out_of_sync_seconds)s seconds.", title_out_of_sync: "Connection out of sync", want_to_reconnect: "If the connection can be recovered this message will disappear automatically." }, counterpart: { formats: { date: { full: "%F %T %Z", market_history: "%e/%m %H:%M:%S", market_history_us: "%m/%e %H:%M:%S", short_custom: "%e %b '%y" } } }, dashboard: { featured_markets: "Featured Markets", starred_markets: "Starred Markets", table_empty: "No market matched", top_markets: "Top Markets" }, exchange: { add_quote: "Add", asks: "Sell orders", atr: "Average True Range", balance: "Solde", base_supply: "Base supply", bids: "Buy orders", borrow: "Borrow", borrow_short: "Borrow", buy: "Acheter", buy_description: "Buy %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", buy_min: "Acheter au moins", buy_sell: "Order Form", buysell_formatter: "{direction} {asset}", call: "Prix de flux", cancel_selected_orders: "Cancel selected order(s)", change: "Change", chart_height: "Chart height (pixels)", chart_hide: "Hide Charts", chart_modal: "Chart options", chart_type: "Chart type", checking_for_worth_less_settlement: "Checking if you can get a better price by selling to market, please wait..", confirm_buy: "Your order is %(diff)s times higher than the lowest ask, are you sure?", confirm_no_orders_buy: "You are placing a buy order in a market with no open sell orders. Are you certain you wish to proceed?", confirm_no_orders_sell: "You are placing a sell order in a market with no open buy orders. Are you certain you wish to proceed?", confirm_sell: "Your order is %(diff)s times lower than the highest bid, are you sure?", core_rate: "Fee Rate", custom_quote: "Add a custom quote", deposit: "Deposit", description: "Description", ema: "Exponential Moving Average", featured: "Top Markets", feed_price: "Feed Price", filter: "Filter...", flip: "Flip", global_settle: "Global Settlement", group_order_limit: "Groupe", hide: "Hide", highest_bid: "Demande le plus haut", history: "Market trades", horizontal: "Horizontal", index: "Index", invalid_amount: "Invalid amount", invalid_price: "Invalid price", invert: "Invert the price", latest: "Dernier Prix", limit: "Limit", lowest_ask: "Offre le plus bas", maintenance: "Maintenance Call Price", market: "Market", market_depth: "Market Depth", market_frozen: "The owner of %(asset)s has disabled trading in this market.", market_name: "My Markets", market_picker: { filter_by_issuer: "Filter by issuer", find_by_asset: "Find by asset", results: "Results (%(total_assets)s)", search: "Asset name", search_for_asset: "Search for asset", search_mode: "Mode", show_all: "Show All", sub_title: "Find an asset to replace", title: "Market Picker", use: "Use" }, more: "Find markets", move_down: "Move down", move_up: "Move up", my_asks: "My asks", my_bids: "My bids", my_history: "My trades", my_orders: "My open orders", native: "Native", new: "New", no_asks: "No asks", no_balance: "Insufficient balance", no_bids: "No bids", no_data: "No data", no_orders: "No orders", order_book: "Order Book", order_depth: "Carnet d'ordres", order_grouping: "Order Grouping %(orderlimit)s%", others: "Others", overbought: "Overbought", oversold: "Oversold", panels_mirror: "Mirror Panels", period: "Time period (days)", price: "Prix", price_alert: { add_rule: "add rule", alert_when: "Alert me when", higher_than: "Higher Than", lower_than: "Lower Than", notification: { higher_than: "The price of %(pair)s rose higher than %(expectedPrice)s and now is %(actualPrice)s", lower_than: "The price of %(pair)s fell lower than %(expectedPrice)s and now is %(actualPrice)s" }, price: "Price", title: "Price Alert", use_button: 'Use "add rule" button to create price alert for ' }, price_history: "Historique du prix", price_market: "Market Price", quantity: "Quantité", quick_deposit: "Deposit %(asset)s", quick_deposit_bridge: "Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s", quick_deposit_bridge_button: "Use a Bridge", quick_deposit_gateway: "Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway", quick_deposit_gateway_button: "Use a Gateway", quick_deposit_tooltip: "Deposit %(asset)s", quote: "Quote currency:", quote_selection: "Modify quote selection", quote_supply: "Quote supply", receive: "Receive", remove: "Remove", rsi: "Relative Strength Index", scaled: "Scaled", search: "Search for more markets here", sell: "Vendre", sell_description: "Sell %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", settings: { header: "Personalize", options: { grouping_1: "Group 1", grouping_2: "Group 2", grouping_standalone: "Standalone", hidden_chart: "Hide chart", horizontal: "Horizontal", position_order_asset_opt1: "Orders above Asset", position_order_asset_opt2: "Asset above Order", position_order_form_opt1: "Buy - Sell", position_order_form_opt2: "Sell - Buy", position_order_orders_opt1: "Buy - Sell", position_order_orders_opt2: "Sell - Buy", vertical: "Vertical" }, title: { chart_height: "Height", chart_tools: "View Tools", chart_type: "Type", chart_zoom: "Allow Zoom", hide_function_buttons: "Hide function buttons", market_location: "Market location", market_trades: "Market Trades", my_trades: "My Trades", open_orders: "Open Orders", order_book_grouping: "Order Book Grouping", order_style: "Style", orderbook_auto_scroll: "Auto scroll", position_order_asset: "Vertical Orders / Asset", position_order_form: "Buy/Sell Asset", position_order_orders: "Buy/Sell Orders", reduce_scrollbars: "Reduce Scroll Bars", reverse_order_book: "Reverse Order Book", settlements: "Settlements", single_colum_order_form: "Single Column Order Form" }, tooltip: { chart_height: "Define the height of the charts", chart_reload: "Changing this setting will reload the chart", chart_tools: "Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.", chart_type: "Switch between market depth and price charts, or disable charts", chart_zoom: "Allow chart zooming. Zooming is always disabled in tiny screen.", decrease_chart_height: "Decrease the height of the chart", hide_function_buttons: "Hide all buttons that can be managed within the personalize form", increase_chart_height: "Increase the height of the chart", market_location: "Which side to pin the vertical order book on. This will switch place with market panel", market_trades: "", my_trades: "", open_orders: "", order_book_grouping: "Group orders which are close together by a defined percentage", order_style: "Use vertical order book to pin it to the side panel", orderbook_auto_scroll: "Auto scroll the order book to keep center as new orders come in. Disable to allow scrolling", panel_grouping: "Define panel grouping", position_order_asset: "Define the vertical order for the order form vs order book", position_order_form: "Define the horizontal order for the order form", position_order_orders: "Define the horizontal order for the order book", reduce_scrollbars: "Disable scroll bars by default", reload: "Changing this option will only affect after manually reloading", reverse_order_book: "Reverse order book to have buy orders on top", settlements: "", show_market_depth: "Show market depth", show_price_chart: "Show price chart", single_colum_order_form: "Enforce that Price, Quantity, Total, etc. are in one column (not floating)" } }, settle: "Settlement", settle_better_marketprice: "Market price is in favour", settle_better_settleprice: "Settlement price is in favour", settle_delay: "This asset will settle in %(hours)s hours", settle_delay_globally_settled: "This asset will settle instantly", settle_globally_settled: "Settle instantly", settle_globally_settled_tooltip: "This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)", settle_offset: "Settlement price offset: %(offset)s%", settle_orders: "Settle orders", settlement_hint: "You are attempting to settle {long}. Here is a price break down of {market_link}:", short: "Short", show_all_orders: "Show all %(rowcount)s orders", show_all_trades: "Show all %(rowcount)s trades", show_asks: "Show all asks", show_bids: "Show all bids", show_only_liquid: "Show liquid markets only", show_only_star_formatter: "Show {star_icon} only", sma: "Simple Moving Average", spread: "Spread", squeeze: "Margin Call Price", time: "Candlesticks", to_market: "Go to market", total: "Total", trading_pair: "Trading pair", value: "Valeur", vertical: "Vertical", vol_short: "Vol", volume: "Volume", volume_24: "24hr Volume", worth_less_settlement_warning: "Warning! You can get a better price by selling to {market_link}.", your_price: "Your Call Price", zoom: "Zoom", zoom_all: "All" }, explorer: { account: { title: "Compte" }, accounts: { filter: "Filtrer les comptes", filter_contacts: "Filtrer les contacts", title: "Comptes" }, asset: { actions: "Asset actions", collateral: { bid: "Bid Collateral", bid_price: "Bid price", bid_text: "Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.", remove_bid: "A bid can be removed by placing a zero collateral bid." }, collateral_bid: { bid: "Bid Price", collateral: "Additional Collateral", debt: "Debt Covered", included: { no: "No", partial: "Partially", yes: "Yes" }, title: "Collateral Bids" }, cumulative: "Cumulative", fee_pool: { claim_balance: "Claim fee pool balance", claim_fees: "Claim fees", claim_pool_text: "The asset owner may withdraw funds from the fee pool using this form:", claim_text: "The asset issuer may claim any accumulated fees here.", core_exchange_rate: "Core exchange rate (CER)", fund: "Fund the fee pool", fund_text: "The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s", pool_balance: "Pool balance", pool_text: "The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s.

    The core exchange rate is the price at which %(asset)s are converted to %(core)s.", title: "Fee Pool", unclaimed_issuer_income: "Unclaimed issuer income" }, feed_producer: "Feed producer", feed_producer_text: "Approved feed producers may publish a new feed using the form below:", info: "Asset info", invalid: "The asset name %(name)s is invalid", margin_positions: { click_to_switch_to_cumulative: "Click to switch to cumulative sum of the columns.", ratio_danger: "Position is below MCR and will be margin called", ratio_warning: "Position is near MCR and in danger of being margin called", title: "Margin positions" }, not_found: "L'actif %(name)s n'existe pas", permissions: { accounts_in_whitelist_market_fee_sharing: "Accounts included in Market fee sharing whitelist", blacklist_authorities: "Blacklist authorities", blacklist_markets: "Blacklist markets", max_market_fee: "Max market fee", max_supply: "Max supply", title: "Permissions", whitelist_authorities: "Whitelist authorities", whitelist_markets: "Whitelist markets" }, price_feed: { external_feed_price: "Feed price (median of witness feeds)", feed_lifetime: "Feed lifetime (hours)", feed_price: "Feed price", global_settlement_price: "Global settlement happens at price", maintenance_collateral_ratio: "Maintenance collateral ratio (MCR)", maximum_short_squeeze_price: "Maximum short squeeze price (MSSP)", maximum_short_squeeze_ratio: "Maximum short squeeze ratio (MSSR)", min_feeds: "Minimum feeds", settlement_price: "", title: "Price Feed" }, price_feed_data: { core_exchange_rate: "CER", feed_price: "Feed price", maintenance_collateral_ratio: "MCR", maximum_short_squeeze_ratio: "MSSR", published: "Published", publisher: "Publisher", settlement_price: "", title: "Price Feed Data" }, settlement: { current_settled: "Already settled supply", delay: "Delay", force_settlement: "Force Settlement", gs_auto_revive_price: "Auto Revive Price (without/with bids)", gs_collateral_valuation: "Collateral Valuation (with bids)", gs_description: "Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.", gs_included_on_revival: "Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.", gs_or: "or", gs_place_bid: "click here to place a bid", gs_revert: "Reviving", gs_revive: "Asset will be revived automatically if auto revive price (bids included) is greater than feed price or all debt is force settled", gs_see_actions: "see Asset actions", max_settle_volume: "Max. settlement volume each maintenance period", offset: "offset included", price: "Price", settle_remaining_volume: "Remaining settleable volume", settlement_funds: "Settlement Funds", settlement_funds_collateral_ratio: "Settlement Fund Collateral Ratio", settlement_price: "", title: "Settlement" }, summary: { asset_type: "Asset type", current_supply: "Current supply", issuer: "Issuer", market_fee: "Market fee", market_fee_referral_reward_percent: "Market fee referral reward", stealth_supply: "Stealth supply" }, title: "Actif", whitelist: { blacklist_authorities: "Blacklist authorities", blacklist_markets: "Market blacklist", enable_flag: "The whitelist flag must be enabled in order to set whitelist authorities", market_fee_enable_flag: "The market fee flag must be enabled in order to set whitelist", whitelist_authorities: "Whitelist authorities", whitelist_market_fee_sharing: "Market fee sharing whitelist", whitelist_markets: "Market whitelist" } }, assets: { backing_asset: "Backing asset", id: "ID", issuer: "Créateur", market: "SmartCoins", precision: "Précision", prediction: "Prediction market assets", symbol: "Symbol", title: "Actifs", units: "Units", user: "Actifs des utilisateurs" }, block: { account_upgrade: "Compte à mettre à niveau", asset_issue: "Montant à créer", asset_update: "Actif à mettre à jour", authorizing_account: "Compte donnant l'autorisation", call_limit: "Limite de couverture", common_options: "Options", count: "Nombre de transactions", date: "Date", fee_payer: "Compte payant le frai", feed_price: "Feed price", go_to: "Go to block", id: "ID du bloc", key: "Cléf public", lifetime: "Devenir membre à vie", listed_account: "Compte etant autorisé", max_margin_period_sec: "Periode max de marge (s)", new_listing: "Nouvel autorisation", new_options: "Nouvelles options", new_producers: "Nouveaux fornisseurs de flux", next_secret: "Prochain hash secret", op: "Operation", op_type: "Type d'operation", previous: "Précédent", previous_secret: "Précédent secret", settlement_price: "Prix de règlement", short_limit: "Limite de short", time: "Time", title: "Bloc", transactions: "Nombre de transactions", trx: "Transaction", witness: "Témoin" }, blocks: { active_committee_members: "Active committee members", active_witnesses: "Active Witnesses", avg_conf_time: "Average confirmation time", block_time: "Block time", block_times: "Block times", current_block: "Current Block", globals: "Parametres globaux", last_block: "Last block", recent: "Blocs recent", recently_missed_blocks: "Recently missed blocks", title: "Blockchain", transactions: "# of transactions", trx: "Transaction", trx_per_block: "Trx/block", trx_per_sec: "Trx/s" }, committee_member: { title: "CommitteeMember" }, committee_members: { active: "Total number of active committee members", title: "Délégués" }, fees: { fee: "Standard Fee", feeeq: "(equivalent)", feeltm: "Lifetime Member Fee", feeltmeq: "(equivalent)", type: "Fee Type" }, proposals: { authority_depth_warning: "This proposal may not get approved because this permission exceeds the maximum authority depth.", children_authority_depth_warning: "This proposal may not get approved because a permission exceeds the maximum authority depth.", failed: "Failed", failed_execute: "Approved, failed to execute.", no_reason_available_switch_node: "Reason of failure is available with core release >=3.1.0, please switch your node.", pending: "Pending", pending_approval: "Pending approval.", pending_review: "Approved, review time.", review: "Review", title: "Propositions" }, witnesses: { budget: "Remaining budget", card: "Card view", current: "Current witness", filter_by_name: "Filter By Name", last_confirmed: "Last confirmed", missed: "Blocks missed", next_vote: "Next vote update", participation: "Participation rate", pay: "Pay-per-block", rank: "Rank", table: "Table view", title: "Témoins" }, workers: { create: "Create a new worker proposal", create_text_1: "In order to create your new worker, please fill in the form below. The worker will be created using your currently active account, which must already be a lifetime member.", create_text_2: "Consider carefully the parameters you choose as they can not be changed once you've published your worker.", daily_pay: "Daily pay (BTS)", date_text: "The start date should be at least a week into the future in order to allow people the time to discover, evaluate and vote for your worker.", name_text: "The name of your worker should be short and descriptive, something like this: 'Worker Purpose - Account Name'", pay_text: "The daily pay defines how much you want to be paid per day and is defined in BTS. The current best practice is to define a salary in USD/CNY, and commit to burning whatever surplus you receive as a result of the BTS price increasing. As long as your worker is active and has sufficient votes to be above the refund worker, you will receive this daily salary.", period: "Worker duration", title: "Ouvriers", url_text: "You should supply a website, github document or google doc that describes in more detail the purpose of the worker and how you intend to use the worker pay.", vesting_pay: "Salary vesting period (days)", vesting_text: "The vesting period defines the number of days that worker earnings will vest before being fully claimable.", website: "Website" } }, fees: { title: "Fee Schedule" }, footer: { advanced_settings: "Advanced settings", backup: "A Backup is Required", block: "Bloc courant", brainkey: "Backup brainkey recommended", connected: "Connected", connection: "No Blockchain connection", disconnected: "Disconnected", latency: "Latency", loading: "Loading...", nosync: "Your active node is out of sync", synced: "Synced", title: "BitShares", unsynced: "Out of sync", update_available: "UPDATE AVAILABLE" }, gateway: { add_funds: "Quickly and easily add funds to your BitShares account %(account)s. This service is provided by Openledger.", address: "Address", address_with_memo: '%(address)s with memo %(memo)s', agreement: { hint: "I have read and agreed to", name: "《Service Agreement》", notice: "Please check the agreement to continue", register: "Agree" }, asset: "Asset", asset_search_deposit: "Search for an asset to deposit", asset_search_withdraw: "Search for an asset to withdraw", asset_to_deposit: "Asset to deposit:", asset_to_receive: "You will receive:", asset_to_withdraw: "Asset to withdraw:", asset_unavailable: "The gateway for %(asset)s is not in service", assets: { bit: "bit%(asset)s is a derivative that tracks the real value of %(backed)s. It is 100%% decentralized, trustless and backed by collateral held by the blockchain in a smart contract.", bitcny: "bitCNY can be deposited or withdrawn 1:1 to real Yuan using a gateway service such as Magic Wallet. For more info, see https://www.magicw.net/", bridge: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by CryptoBridge.", gdex: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by GDex.", open: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Openledger.", rudex: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Rudex.", trade: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Blocktrades.", win: "", xbtsx: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by XBTS." }, balance: "Balance", balance_asset: "Current %(asset)s balance", bitkapital_receive: "You will receive", bitkapital_text: "Choose an asset to deposit or withdraw:", bitkapital_withdraw: "You are withdrawing", bitspark: { support_block: 'For DEPOSIT AND WITHDRAWAL issues using "BitSpark TRANSFER SERVICE", please contact BitSpark at:' }, bridge: "Bridge", bridge_text: "A bridge lets you exchange an asset into another one, for example BTC to BTS.", calc: "Calculating", choose_deposit: "Please select the coin you would like to deposit", choose_withdraw: "Please select the coin you would like to withdraw", citadel: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact citadel.li at:", under_construction: "Under Construction" }, contact_TRADE: "Contact Blocktrades", convert: "Internal conversion", convert_coin: "Convert to %(coin)s (%(symbol)s)", convert_now: "Convert now", copy_address: "Copy address", copy_memo: "Copy memo", deposit: "Deposit", deposit_address: "Deposit address", deposit_from_wallet: "Deposit from wallet", deposit_history_status: { confirming: "deposit confirming", fail: "fail", success: "success", transfering: "transfering", waiting: "waiting for deposit" }, deposit_inst: "Deposit instructions", deposit_limit: "Deposit limit", deposit_notice_delay: "(new address can be generated once per 5 minutes)", deposit_summary: "Deposit summary", deposit_to: "Deposit To", deposit_warning: "Sending any other currency to the %(asset)s address will result in the loss of your deposit", deposit_warning_memo: "Deposit %(asset)s must contains memo, otherwise it won't be credited", fee: "Gateway fee", fiat: "Fiat", fiat_text: "Note: Fiat gateways are closed till further notice. Sorry for the inconvenience! Please follow our latest news and updates here blog.openledger.info", frozen: "The user account %(account)s was frozen", gateway: "Gateway", gateway_text: "Choose whether you want to make a deposit or withdrawal here", generate: "Generate", generate_new: "Get new address", generate_new_memo: "Get new memo", iban: "IBAN", info: "Info", intermediate: "Intermediate account", inventory: "Inventory", limit: "Limit: %(amount)s %(symbol)s", limit_withdraw_asset: "Min: %(min)s, Max: %(max)s", limit_withdraw_asset_max: "Maximum withdraw: %(min)s %(coin)s", limit_withdraw_asset_min: "Minimum withdraw: %(min)s %(coin)s", limit_withdraw_asset_none: "None", memo: "Memo", meta: { open_website: "Open Website" }, min_deposit_warning_amount: "Minimum Deposit: %(minDeposit)s %(coin)s", min_deposit_warning_asset: "IMPORTANT: Send only %(coin)s to this deposit address on the blockchain native to %(coin)s. Sending less than %(minDeposit)s %(coin)s or any other currency to this address may result in the loss of your deposit.", over_limit: "Limit Reached", phase_out_warning: "We recommend using the new {deposit_modal_link} and {withdraw_modal_link} modals as this page will be phased out", please_generate_address: "Please, get new address ", purchase: "Purchase %(asset)s", purchase_1: "Quickly and easily purchase %(outputAsset)s using %(inputAsset)s from an external wallet. This service is provided by Blocktrades", purchase_notice: "%(inputAsset)s sent to this address will show up as %(outputAsset)s", purchase_notice_memo: "Memo required for proper routing to your account", receive_account: "Receiving account:", recent_deposit: "Recent deposits", recent_withdraw: "Recent withdrawals", rudex: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact RuDEX at:", under_construction: "Under Construction" }, scan_qr: "Scan QR", service: "Transfer Service", status: "Status", support_block: 'For DEPOSIT AND WITHDRAWAL issues using "OpenLedger TRANSFER SERVICE", please contact Openledger at:', support_gdex: "For support, please contact GDEX", symbol: "Symbol", time: "Time", title: "Deposit & Withdraw", transaction_history_info: " %(amount)s %(assetName)s with trancation id: %(txid)s ", unavailable: "The gateway service for this asset is currently down, please try again later", unavailable_CITADEL: "The Citadel Bridge is down or not responding", unavailable_OPEN: "The OpenLedger Gateway is down or not responding", unavailable_RUDEX: "The RuDEX Gateway is down or not responding", unavailable_TRADE: "The Blocktrades Bridge is down or not responding", unavailable_bridge: "The bridge service for this asset is currently down, please try again later", use_copy_button: "PLEASE USE COPY BUTTON TO MAKE COPY OF ADDRESS OR MEMO ON THIS PAGE", user_unavailable: "User informaction is current unavailable, please try again later", valid_address: "Please enter a valid %(coin_type)s address", website: "Visit the website", withdraw: "Withdraw", withdraw_coin: "Withdraw %(coin)s (%(symbol)s)", withdraw_funds: "You are going to withdraw funds from your BitShares account to your external %(asset)s account.", withdraw_history_status: { audited: "auditting completed", auditing: "withdraw auditing", confirming: "confirming", fail: "fail", refused: "auditting failed", success: "success", transfering: "transfering" }, withdraw_inst: "Withdrawal instructions", withdraw_now: "Withdraw now", withdraw_placeholder: "Please enter your %(asset)s address", withdraw_summary: "Withdrawal summary", withdraw_to: "Click the button below to open a %(asset)s withdrawal", xbtsx: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact XBTS at:", under_construction: "Under Construction" }, your_account: "Your account" }, global: { cancel: "Cancel", close: "Close", confirm: "Confirm", field_type: { account: "account" }, help: "Help", not_found: "Not found", return_to_top: "Return to top", scan_qr_code: "Scan QR code", set: "Set" }, header: { account: "Account", account_notify: "The active account is now %(account)s", account_value: "Valeur de compte", accounts_manage: "Gérer les comptes", collateral_ratio: "Collateral ratio", create_account: "Créér un compte", create_asset: "Créér un actif", current: "Mon Compte", dashboard: "Accueil", "deposit-withdraw": "Deposit/Withdraw", deposit_legacy: "or Legacy Deposit", exchange: "Échange", explorer: "Explorer", help: "Help", lock: "Vérouiller", lock_short: "Log out", locked_tip: "
    Click to login.

    Closing the browser window will also log you out.", logout: "Déconnexion", payments: "Paiments", payments_legacy: "Send (legacy)", settings: "Options", showcases: "Spotlight", title: "BitShares", unlock: "Dévérouiller", unlock_password: "Log in using a password", unlock_short: "Login", unlocked_tip: "
    Click to log out.

    Closing the browser window will also log you out.", update_asset: "Update Asset", withdraw_legacy: "or Legacy Withdraw" }, htlc: { claim_period: "Seconds to claim", claim_period_due: "Claimable until", id: "HTLC id", preimage: "Preimage", preimage_explanation: "The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC", preimage_hash: "Preimage hash", preimage_hash_explanation: "The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: '(, ): '", redeemer: "Redeemer", seconds_to_add: "Add seconds to claim period", update_issuer: "Update issuer" }, icons: { adjust: "Adjust margin position", assets: "Assets", checkmark_circle: { approved: "Approved", operation_succeed: "Operation succeed", yes: "Yes" }, chevron_down: { gateways: "Show more gateways", other: "Show more items", transactions: "Show more transactions" }, clippy: { copy: "Copy to clipboard", withdraw_full: "Withdraw the full balance" }, clock: "Please check your computer's clock", cog: "Settings", cogs: "Settings", connect: "Connect to this API Node", connected: "API Node is connected", cross_circle: { cancel_order: "Cancel order", close_position: "Close position", hide_asset: "Hide asset", hide_market: "Hide market", operation_failed: "Operation failed", remove: "Remove" }, dashboard: "Dashboard", "debug-report": "Report your error log console, or create a screenshot", deposit: { deposit: "Deposit", deposit_withdraw: "Deposit/Withdraw" }, disconnected: "API Node is disconnected", dollar: { borrow: "Borrow", buy: "Buy" }, download: "Download new version of BitShares UI", excel: "Download .csv file", eye: "Hide Node", "eye-striked": "Show Node", fees: "Fees", fi_star: { account: "Add/remove account from favorites", market: "Add/remove market from favorites", sort_accounts: "Sort by favorites", symbol: "Add/remove symbol from favorites" }, filter: "Filter", folder: "Accounts", hamburger: "Open menu", hamburger_x: "Close menu", hourglass: "Vesting balances", info_circle_o: "Info", key: "Key", list: "Whitelist", locked: { action: "Click to unlock your account to perform this action", common: "Click to unlock your account", enable_auto_scroll: "Enable auto scroll" }, manage_accounts: "Manage Accounts", minus_circle: { disapproved: "Disapproved", no: "No", remove_contact: "Remove contact from the list", wrong_address: "Unable to generate address" }, news: "News", order_grouping: "Order Grouping Active", plus_circle: { add_contact: "Add contact to the list", show_asset: "Show asset", show_market: "Show market" }, power: "Login", question_circle: "Help", reverse_orderbook: "Reverse orderbook", server: "Explore", settle: "Settle", share: "About", shuffle: "Switch trading pair", text: { membership_stats: "Membership stats", signed_messages: "Signed messages" }, thumb_tack: "Pin panel to the side", thumb_untack: "Unpin panel", thumbs_up: "Voting", times: "Remove API Node", trade: { exchange: "Exchange", trade: "Trade" }, transfer: "Send", unlocked: { common: "Click to lock your account", disable_auto_scroll: "Disable auto scroll" }, user: { account: "Account", create_account: "Create account", following: "You are following this user" }, warning: "Permissions", withdraw: "Withdraw", zoom: "Search" }, incognito: { mode: "Private/Incognito:", warning: "If you close your browser without backing up your wallet, you will lose this account permanently." }, languages: { de: "Deutsch", en: "English", es: "Español", fr: "Français", it: "Italiano", ja: "日本語", ko: "한국어", ru: "Русский", tr: "Türkçe", zh: "简体中文" }, login: { browseFile: "browse your files", browseFileLabel: "Browse your backup file", dropFile: "Drop your backup file in this area or ", invalidFormat: "Invalid format!", loginButton: "Login", selectDifferent: "Select different file", supportWarning: "Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup.", title: "Select Login Type", withoutBinFile: "I don't have .bin-file" }, markets: { base: "Base asset", core_rate: "Taux de base", filter: "Filtrer", market_search: "Market Search", preferred: "My Favorite Markets", search: "Chercher", supply: "Réserve", title: "Markets" }, migration: { announcement_1: "In an effort to provide enhanced security for the web-based wallet, we are migrating it, effective immediately to the address below. Please be sure to update any bookmarks you may have.", text_1: "Local wallet detected", text_2: "Please backup your wallet now and restore the backup file to https://wallet.bitshares.org, which will be your new address for the web wallet. Thanks for your continued support.", text_3: "Please use https://wallet.bitshares.org from now on, your existing credentials will let you login there as well.", title: "Notice" }, modal: { buy: { asset: "Asset", bridge: "Bridge", title: "Buy" }, cancel: "cancel", close: "close", committee: { confirm: "CONFIRM", create_committee: "Become a committee member", from: "From", text: "After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
    • Transaction fees
    • Parameters of BitAssets (e.g. market fees)
    • Blockchain parameters (e.g. block size & interval)
    • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
    • Other governance matters
    Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.", url: "URL", web_example: "Enter link to your committee proposal post" }, confirmation: { accept: "Yes", cancel: "No", title: "The address you entered does not appear valid, are you sure you want to make the withdrawal?" }, convert: { amount: "Amount to Convert", submit: "Ok" }, deposit: { address_generation_error: "Unable to generate address", amount: "Amount to Deposit", asset: "Asset", bts_transfer_description: "It's easy to receive BTS from anywhere. As long as BTS is sent to your account name it will show up in your wallet. This QR code also contains your account name.", cancel: "Cancel", close: "Close", header: "Deposit to %(account_name)s", header_short: "Deposit", no_assets: "No depositable assets available", submit: "Deposit" }, deposit_withdraw: { disabled: "%(gateway)s gateway service disabled", gateway: "Gateway", no_gateway_available: "No gateway available", select_gateway: "Please select a gateway operator", wallet_error: "Gateway wallet disabled" }, issue: { amount: "Amount to Issue", submit: "Issue Asset", to: "Issue To" }, ok: "OK", proposals: { actions: { approve: "Approve proposal", delete: "Permanently reject proposal", reject: "Reject proposal" }, approval_add: "Approval to add", approval_remove: "Approval to remove", key_approval_add: "Key approval to add", key_approval_remove: "Key approval to remove", pay_with: "Pay with account" }, qrcode: { input_message: "Please enter a password used to encrypt the QR code.
    An empty password will show an unencrypted QR code.", label: "qrcode", title: "Private key QR code" }, report: { button: "Report", copyLog: "Copy Log", copyScreenshot: "Right click in Image Preview -> Copy", copySuccess: "Copy ended", explanatory_text_1: "This report collects the last entries in the console log and takes a screenshot of the current view before the modal is opened. Click on either entry to see the details.", explanatory_text_2: "Please report the issue you have found to GitHub:", explanatory_text_3: "You can copy and paste (CTRL+V) the screenshot as well as the log entries directly into the issue content text area, pasting the screenshot also works in telegram chat.", explanatory_text_4: "If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:", hideLog: "Hide Log", hideScreenshot: "Hide screenshot", lastLogEntries: "Last 20 log entries", screenshot: "Screenshot", showLog: "Show Log", takeScreenshot: "Show screenshot", title: "Error report" }, reserve: { amount: "Amount to burn", from: "Account to burn from", submit: "Burn", title: "Burn (reserve) asset", warning_message: "Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!" }, save: "save", send: { header: 'Send from %(fromName)s', header_propose: 'Propose Send from %(fromName)s' }, settle: { amount: "Amount to settle", delay: "Estimated delay: %(amount)s hours", max_volume: "Max. settlement volume: %(amount)s %(asset)s", remaining_volume: "Remaining settleable volume: %(amount)s %(asset)s", submit: "Settle asset", title: "Request settlement of %(asset)s" }, withdraw: { address: "Withdraw to Address", address_not_valid: "Invalid address", amount: "Amount to Withdraw", available: "Available: ", bitshares_account: "Send to Bitshares Account", cancel: "Cancel", cannot_cover: "Insufficient funds!", estimated_value: "Estimated Value", fee: "Fee", gateway_fee: "Gateway Fee", header: "Withdraw (beta)", memo: "Memo", no_assets: "No withdrawable assets available", no_estimate: "No estimate available for this object", no_gateways: "Sorry, but there are no gateways available to handle this withdrawal", quantity: "Quantity", submit: "Withdraw", withdraw: "Withdraw" }, witness: { confirm: "CONFIRM", create_witness: "Become a witness member", enter_public_signing_key: "Enter your public signing key", invalid_key: "Public Key is invalid", public_signing_key: "Public Signing Key", text: "After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
    • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
    • participation in block production and rolling releases of the testnet
    • provision of a public node for the community
    • publication of price feeds for the BitAssets
    Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.", url: "URL", web_example: "Enter link to your witness proposal post", witness_account: "Witness Account" } }, news: { author: "Author", errors: { fetch: "Ops... Something went wrong fetching the news" }, news: "News", subject: "Subject" }, notifications: { account_create_failure: "Failed to create account: %(account_name)s - %(error_msg)s", account_permissions_update_warning: "Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you're doing before modifying account authorities!", account_wallet_create_failure: "Failed to create wallet: %(error_msg)s", asset_issue_failure: "Failed to issue the asset, probably due to an invalid amount being issued", backup_file_save_unsupported: "File saving is not supported", balance_claim_error: "Error claiming balance: %(error_msg)s", exchange_enter_valid_values: "Please enter a valid amount and price", exchange_insufficient_funds_for_fees: "Insufficient funds to pay fees", exchange_insufficient_funds_to_place_order: "Insufficient funds to place order, you need at least %(amount)s $(symbol)s", exchange_unknown_error_place_order: "Unknown error. Failed to place order for %(amount)s %(symbol)s", exchange_unknown_error_place_scaled_order: "Unknown error. Failed to place Scaled Order", import_keys_already_imported: "This wallet has already been imported", import_keys_error: "Account %(account_name)s had a private key import error: %(error_msg)s", import_keys_error_unknown: "Key import error: %(error_msg)s", invalid_password: "Invalid Password", password_change_failure: "Unable to change password: %(error_msg)s", password_change_success: "Password changed", wallet_unlock_different_block_chain: "This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s", worker_create_failure: "Failed to create worker: %(error_msg)s" }, openledger: { deposit_amount: "Deposit Amount", deposit_details: "Details", deposit_none: "No deposits", header_fiat: "Fiat", header_transaction_history: "Transaction history", loading: "Loading...", refresh_transaction_history: "Refresh", retry: "Retry", show_transaction_history: "Show transaction history", status: "Status", withdraw_amount: "Withdrawal Amount", withdraw_none: "No withdrawals" }, operation: { annual_upgrade_account: "{account} a été converti en membre annuel", asset_claim_pool: "{account} claimed {amount} from asset {asset}'s fee pool", asset_create: "{account} a crée l'actif {asset}", asset_fund_fee_pool: "{account} funded {asset} fee pool with {amount}", asset_global_settle: "{account} requested global settlement of {asset} at {price}", asset_issue: "{account} à assigné {amount} à {to}", asset_reserve: "{account} a détruit {amount}", asset_settle: "{account} requested settlement of {amount}", asset_settle_cancel: "{account} cancelled settlement of {amount}", asset_settle_instant: "{account} settled {amount} instantly at {price}", asset_update: "{account} a mis à jour l'actif {asset}", asset_update_feed_producers: "{account} updated the feed producers for the asset {asset}", asset_update_issuer: "{from_account} transferred {asset} to {to_account}", balance_claim: "{account} a recuperé un solde de {amount}", bid_collateral: "{bid_account} bid {collateral} for {debt}", blacklisted_by: "{lister} a blacklisté {listee}", call_order_update: "{account} a modifié sa debt de {debtSymbol} par {debt} et le collateral par {collateral}", committee_member_update_global_parameters: "{account} updated the global committee parameters", fill_order_buy: "{account} bought {amount} at {price}", fill_order_sell: "{account} sold {amount} at {price}", htlc_create: "{from} locked {amount} for {to} to redeem until {lock_period}", htlc_extend: "{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}", htlc_redeem: "{redeemer} request to redeem from HTLC {htlc_id}", htlc_redeemed: "{to} redeemed {amount} from HTLC {htlc_id} of {from}", htlc_refund: "{to} got refund of HTLC {htlc_id}", lifetime_upgrade_account: "{account} a été converti en membre à vie", limit_order_buy: "{account} a placé un ordre pour acheter {amount} au prix de {price}", limit_order_cancel: "{account} cancelled order #%(order)s", limit_order_sell: "{account} a placé un ordre pour vendre {amount} au prix de {price}", no_recent: "Aucune transaction récente", override_transfer: "{issuer} transferred {amount} from {from} to {to}", pending: "pending %(blocks)s blocks", proposal_create: "{account} a créé une transaction proposée", proposal_delete: "{account} a supprimé une transaction proposée", proposal_update: "{account} a mis à jour une transaction proposée", publish_feed: "{account} a publié un nouveau flux de {price}", reg_account: "{registrar} a créé le compte {new_account}", set_proxy: "{account} a choisi {proxy} pour son nouveau proxy", transfer: "{from} a envoyé {amount} à {to}", transfer_account: "{account} ownership transferred to {to}", unlisted_by: "{lister} a délisté le compte {listee}", update_account: "{account} a mis à jour les donnéees de son compte", vesting_balance_withdraw: "{account} a retiré {amount} d'un solde bloqué", whitelisted_by: "{lister} a whitelisté {listee}", witness_create: "{account} was upgraded to become a witness", witness_pay: "Withdrew witness pay to account", witness_receive: "Received witness from witness", witness_update: "{account} update its witness info", worker_create: "{account} created a worker proposal with daily pay of {pay}" }, page404: { asset_not_found_subtitle: "That asset does not exist", home: "Accueil", market_not_found_subtitle: "That market does not exist", page_not_found_subtitle: "Cette page n'existe pas", page_not_found_title: "404 Page non trouvée" }, pagination: { newer: "Newer", older: "Older" }, proposal: { action: "Actions", add: "Add", add_vote: "Add vote for", approve: "Approve", approvers: "Approver(s)", asset_create: "Create the asset %(asset)s using the account {account}", asset_issue: "Issue {amount} to {to} using {account}", asset_reserve: "Burn (reserve) {amount} using {account}", asset_settle: "Request a settlement of", asset_update: "Update the asset {asset} using the account {account}", call_order_update: "Change {account} {debtSymbol} debt by {debt} and collateral by {collateral}", changes_to_active: "Changes to active", changes_to_memo: "Changes to memo", changes_to_owner: "Changes to owner", committee_member_update_global_parameters: "Update committee global parameters by {account}", danger_operation: "Dangerous operation", delete: "Permanently reject", expires: "Expires", feed_producer: "Update the feed producers for the asset {asset} using the account {account}", limit_order_buy: "Place an order to buy {amount} at {price} for {account}", limit_order_create: "Place order to buy %(buy_amount)s for %(sell_amount)s for %(account)s", limit_order_sell: "Place an order to sell {amount} at {price} for {account}", override_transfer: "Transfer {amount} from {from} to {to} by authority of {issuer}", permission_changes: "Permission changes", proposals: "Proposals", reject: "Reject", remove: "Remove", remove_vote: "Remove vote for", set_threshold: "Set threshold to %(threshold)s", status: "Status", transfer: "Transfer {amount} from {from} to {to}", update: { active_approvals_to_add: "Active approvals to add", active_approvals_to_remove: "Active approvals to remove", key_approvals_to_add: "Key approvals to add", key_approvals_to_remove: "Key approvals to remove", owner_approvals_to_add: "Owner approvals to add", owner_approvals_to_remove: "Owner approvals to remove" }, update_account: "Update account data for {account}", updated: { active_approvals_to_add: "Active approval(s) added", active_approvals_to_remove: "Active approval(s) removed", key_approvals_to_add: "Key approval(s) added", key_approvals_to_remove: "Key approval(s) removed", owner_approvals_to_add: "Owner approval(s) added", owner_approvals_to_remove: "Owner approval(s) removed" }, vesting_balance_withdraw: "Withdraw {amount} from vesting balance of {account}", votes: "Votes" }, proposal_create: { expiration_time: "Expiration time", fee_paying_account: "Fee paying account", id: "Proposal object id", proposed_operations: "Proposed operations", review_period: "Review period begin" }, proposal_delete: { using_owner_authority: "Using owner authority" }, propose: "Propose", qr_address_scanner: { address_found: "Adresse trouvée", amount: "Montant", retry: "Réessayer", use_address: "Utiliser l'adresse" }, refcode: { claim: "Claim", claim_refcode: "Claim Referral Code", enter_refcode: "Enter referral code", refcode_optional: "Referral Code (optional)" }, registration: { accountConfirmation: "I have written down or otherwise stored my username and password.", accountDescription: "Please keep your password in a safe place. Don’t share it with any third-parties or send it online.", accountLoginByValue: "Account name + Password", accountModelTitle: 'By Account Name and Password', accountNote: "If you forget your pass phrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!", attention: "Attention", backUpRestoreKey: "Back up and restore Account", checkboxRecover: "I understand that no one can recover my password or .bin file if I forget or lose it.", checkboxRemember: "I have remembered or otherwise stored my password and I safely kept downloaded .bin file.", checkboxUploaded: "I understand that .bin file must be uploaded during the login process and without .bin file I will lose access to my funds.", continue: "Continue", copyPassword: "Copy your password to save.", createAccountTitle: "Create Account by Bin-file", createByPassword: "Create Account by Name and Password", downloadFile: "Download file", loginByKey: "Login by", passwordPlaceholder: "Minimum 7 characters", recommended: "recommended", securityAccountModel: "Medium", securityKey: "Security", securityWalletModel: "High", select: "Select", title: "Registration", walletDescription: "A bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to upload this file to login to your account in the future.", walletLoginByValue: "Bin-file + Password", walletModelTitle: "By bin-file", walletNote: "Please keep in mind, that BitShares doesn't store users passwords and couldn't recover users accounts after password loss.", whyBinFile: "Why do I need a .bin file?" }, scaled_orders: { action: { buy: "Buy", sell: "Sell", title: "Action" }, distribution: { flat: "Flat", title: "Distribution" }, fee: "Fee", market_fee: "Market Fee", order_count: "Order Count", order_s: "Order(s)", please_log_in: "You need to login before use Scaled Orders", preview_table: { price: "Price" }, price_lower: "Price Lower", price_upper: "Price Upper", quantity: "Quantity", title: "Scaled Order", total: "Total" }, settings: { access: "Nodes", access_text: "", accounts: "Accounts", accounts_text: "Your accounts list.", activate: "Activate", active_node: "Active Node", add_api: "Add Node", add_ws: "Add Node", always_confirm: "Toujours demander une confirmation", apiServer: "Full node API server", api_closest: "Choose closest automatically", automatic: "Automatically select node (%(totalNodes)s available)", automatic_short: "Automatic Switching", available_nodes: "Available", backup: "Backup", backup_backup: "Restore from a backup file (.bin)", backup_backup_short: "Restore from a backup", backup_brainkey: "Restore using a local wallet brainkey", backup_favorites: "Restore favorites using a json file", backup_favorites_error: "Could not parse JSON.", backup_favorites_finish: "Import favorites", backup_favorites_success: "Successfully restored market favorites", backup_favoritesbtn: "Backup favorites", backup_favoritestext: "Back up your favorites to restore them later after updates.", backup_key: "Import a private key", backup_legacy: "Import a BTS 0.9.3c key export file (.json)", backup_text: "Create backups here.", backupcreate_backup: "Create local wallet backup", backupcreate_brainkey: "Create brainkey backup", backupcreate_favorites: "Create favorites backup", browser_notifications: "Notifications de navigateurs", browser_notifications_additional_transfer_to_me: "Notifier les transferts sur mon compte", browser_notifications_allow: "Activer les notifications", browser_notifications_disabled_by_browser_notify: "Your browser disabled notifications. Click to learn how enable browser notifications", cloud_login: "Cloud Wallet Login", confirmMarketOrder: "Demander une confirmation pour des ordres du marché", confirm_no: "Jamais", confirm_remove: "Are you sure you want to remove %(name)s from your available nodes?", confirm_yes: "Toujours", connection_error: "Unable to connect to API node %(url)s, falling back to known working nodes", darkTheme: "Dark", delete_select: "Select local wallet to delete", disabled: "Disabled", enable_wallet: "Enable wallet model", faucet_address: "Faucet", faucet_address_text: "The faucet address is used to pay the registration fee for new users.", general: "General", general_text: "Adjust the basic settings.", global_settings: "Default Global Settings", hidden_nodes: "Hidden", hide: "Hide", high_latency: "High latency", inverseMarket: "Orientation préféré pour les marchés", left: "Left", lightTheme: "Light", local_wallet: "Local Wallet Login", locale: "Changer de langue", lookup_text: "Click the button below to check for unclaimed balances from BTS 1.0", low_latency: "Low latency", medium_latency: "Medium latency", midnightTheme: "Midnight", my_nodes: "Personal", no: "No", no_accounts: "This local wallet does not contain any accounts.", node_already_exists: "Node with such URL already exists", node_down: "Unreachable", node_up: "Available", olDarkTheme: "Openledger dark", orderbook_autoscroll: "Order Book Autoscroll", orderbook_grouping: "Order Book Grouping", orderbook_reverse: "Order Book Reversed", password: "Password", passwordLogin: "Login using the account model", password_text: "Change your password.", personal_active: "Your only personal node is active, to remove or modify it you must first connect to a different node", ping: "Ping Nodes", pinging: "Pinging ...", placeholder_select: "Select option", remove: "Remove", remove_api: "Remove Node", remove_ws: "Remove Node", reset: "Reset settings", reset_text: "Restore settings to their original defaults.", reset_text_description: "This will reset all your %(generalName)s, %(accessName)s and %(faucetName)s Settings", restore: "Restore/Import", restore_brainkey_text: "In order to restore from a brainkey, you will need to create a new local wallet. Please provide a password and name for your new local wallet below, then enter your brainkey.", restore_default_success: "Settings have been reset successfully", restore_key_count: "# of keys", restore_text: "Restore from a backup or import keys.", right: "Right", scrollbars_hide: "Reduce scroll bars", show: "Show", showAssetPercent: "Show asset percentages on the account page", showSettles: "Show settle orders in depth chart", skipped: "Skipped", switch: "Switch Node", testnet_nodes: "Testnet", testnet_nodes_disclaimer: "Availability of the testnet is not guaranteed. Establish a connection by connected manually to one of the nodes below:", themes: "Theme", unit: "Unité de valeur préféré", valid_node_url: "Node URL must begin with ws:// or wss://", viewOnlyMode: "View only mode", view_keys: "View keys", wallet: "Local Wallet", walletLockTimeout: "Wallet auto-lock time (seconds, 0 to disable)", walletLockTimeoutTooltip: "Click to adjust the time before the wallet auto-locks", wallet_required: "Wallet model required", wallet_required_text: "In order to restore a backup you will need to switch to the wallet model first, do so by clicking the button below", wallet_text: "Control the details of your local wallet.", wallets: "Wallets", yes: "Yes" }, showcases: { barter: { account: "Account", action: "Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ", add_escrow: "Add escrow", add_escrow_tooltip: "Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1's funds.", balance_warning: "Balance Warning", balance_warning_line: "wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s", balance_warning_tooltip: "%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed", bartering_asset: "Bartering asset", description: "Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.", error_fill_in_escrow_name: "Please fill in the account name of the escrow", error_fill_in_peer_left_name: "Please fill in the account name of Peer 1", error_fill_in_peer_right_name: "Please fill in the account name of Peer 2", error_fill_in_valid_asset_amount: "Please fill in valid amounts for the bartering assets", error_same_name: "Peer 1 and Peer 2 must be different accounts", error_same_name_escrow: "The escrow can not be Peer 1 or Peer 2", escrow_account: "Escrowing account", escrow_as_custodian: "An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.", escrow_as_witness: "An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.", escrow_payment: "Payment for escrow services", escrow_payment_tooltip: "Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1's account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.", fee_due_now: "Fee due now", fee_due_now_tooltip: "The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow", fee_when_proposal_executes: "Fee when proposal executes", fee_when_proposal_executes_tooltip: "When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations", new_barter: "Propose a new barter", new_barter_tooltip: "This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow", not_complete: "Please fill out all fields to see a description of the action here", peer_left: "Peer 1", peer_right: "Peer 2", proposal_fee: "Proposal fee", proposal_fee_tooltip: "The indicated transaction fee will be paid to create the proposal to realize this barter", propose_tooltip: "This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Dashboard, approve the proposal and notify the other involved parties.", remove_escrow: "Remove escrow", send_to_escrow: "Use escrow as custodian for Peer 1's funds", send_to_escrow_tooltip: "Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2", title: "Barter", total_fees: "Total fees: %(fee)s %(asset)s", total_fees_tooltip: "The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter" }, borrow: { borrow_tooltip: "You can also find this feature in your Dashboard under the tab Margin Positions, or by clicking Borrow in the Exchange", choose: "Choose the SmartCoin you want to create a position for", description: "Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)", do_it: "Let's do it", get_started: "Get started", navigate_with_keys: "The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate", next: "Next", now_ready: "Finalize the creation of your own Collateralized Debt Position", previous: "Previous", steps_benefits: { text: "Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.", text_legend: "Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).", title: "Benefits", title_within: "What are the benefits?" }, steps_concept: { text: "A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.", text_legend: "Example bitUSD: Provide BTS as collateral to borrow bitUSD", title: "Concept", title_within: "What is a Collateralized Debt Position?" }, steps_costs: { text: "Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ", title: "Settlement", title_within: "" }, steps_introduction: { text: "Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.", title_within: "This is the place to generate SmartCoins (Market Pegged Assets, MPAs)" }, steps_risks: { text: "As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.", text_legend: "Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.", title: "Risks", title_within: "What are the risks involved in borrowing?" }, steps_setup: { text: "You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.", text_legend: "Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.", title: "Setup", title_within: "How does it work?" }, title: "Collaterized Debt Position", title_long: "Create a Collateralized Debt Position" }, direct_debit: { amount_to_withdraw: "Amount to collect", authorized_account: "Payee", authorizing_account: "Payer", claim: "Claim", claim_funds: "Claim funds", create: "Create", create_new_mandate: "Create authorization", current_period_expires: "Current period ends", delete: "Delete", description: "Setup a direct debit mandate for recurring payments. The mandate allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.", expires: "Expires", first_period_not_started: "First period has not started!", limit: "limit", limit_per_period: "Maximum amount per period", num_of_periods: "Number of periods", period: "Specify period", start_date: "First period starts on", title: "Direct debit", tooltip: { authorized_account: "The account that is eligible to collect from your account.", limit_per_period: "The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.", num_of_periods: "After the start time this amount of periods are available consecutively.", period: "One period lasts the indicated time interval, e.g. 2 weeks.", start_time: "The start time of the first period must be in the future when broadcasting." }, update: "Update", update_mandate: "Update existing authorization" }, htlc: { actions: "Actions", amount: "Amount", create_htlc: "Create HTLC", custom: "Custom", description: "A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.", enter_secret_preimage: "Enter secret preimage", expiration: "Expiration", expiration_date: "Expiration date", expiration_period: { one_day: "One day", one_week: "One week", two_days: "Two days" }, expires: "Expires", extend: "Extend", extend_htlc: "Extend HTLC", first_stage: "1st stage", from: "From", hash: "Hash", preimage: "Preimage", preimage_has_been_created: "A random preimage has been created and filled in automatically below", recipient: "Recipient", redeem: "Redeem", redeem_htlc: "Redeem HTLC", second_stage: "2nd stage", sender: "Sender", size: "Size", title: "Hashed Time-Lock Contracts", to: "To", tooltip: { enter_preimage: "Enter the secret preimage that you have obtained from the sender", new_random: "Roll the dice and create a new random string.", preimage_button: "Please click to enter secret preimage", preimage_hash: "The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.", preimage_input: "Field requires a secret preimage", preimage_random: "The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.", preimage_size: "The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size." } }, paper_wallet: { description: "Create a PDF with your account's keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.", title: "Paper Wallet" }, timed_transfer: { description: "Initiate a transfer that will execute at a specified time.", title: "Timed transfer" }, voting: { description: "Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.", title: "Voting" } }, sync_fail: { sub_text_1: "Please verify that your computer clock is correct.", sub_text_2: "Once you've synchronized your clock, please refresh this page.

    If your clock is already correct, the API server you're using could be out of sync. In that case, please try a different server from the list below.", title: "Failed to sync with the API server" }, tooltip: { add_memo_field: "Add memo text field", borrow: "Borrow %(asset)s from the network. This creates a smart contract that locks your collateral until you either modify the position or a margin call is required.", borrow_disabled: "%(asset)s is in global settlement. Margin positions can't be created until it is revived. See asset details page for more information", bridge: "Bridges allow deposit of any external assets and instant trade into the desired gateway asset", bridge_TRADE: "BlockTrades is a bridge which supports instant trade of assets. Details and terms can be found on https://blocktrades.us", buy_min: "You will receive at minimum this amount. If there are matching orders with a cheaper price than you specified, you will receive more than this amount.", call_limit: "This is the call price of the least collateralized margin position in the market.", call_price: "This is the call price of the position. If the feed price goes below the call price, the position will be margin called.", close_position: "Click here to close your position. You will need to have at least %(amount)s %(asset)s in order to do so.", coll_ratio: "The collateral ratio of the position is COLLATERAL * FEED PRICE / DEBT.", copy_password: "Click here to copy the password to your clipboard", copy_tip: "Click here to copy the text to your clipboard", cr_danger: "This position is currently being margin called. Consider adding collateral to bring the collateral ratio above %(mr)s or closing the position.", cr_warning: "This position has a low level of collateral, and will get margin called if the collateral ratio drops below %(mr)s. Consider adding collateral or closing the position.", debug_report: "Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.", deposit_tip: "To complete the deposit, go to your external %(asset)s wallet and make a transfer to the address listed on this page. You will receive the deposit as soon as it has been confirmed. If a memo is shown , it is essential that you include this memo in your transfer.", disconnected: "You are not connected to an API node, try reloading or setting a new access point in the Settings", feed_price: "This is the current external feed price", filter_ops: "Use this list to filter your history by operation type.", follow_user: "You are following this user", follow_user_add: "Click to Follow this user", gateway: "Gateways provide IOUs on the BitShares Blockchain that are backed by the real asset", generate: "The generated password was created by your browser, locally.

    No one but you has access to it.

    Paste it below and save a copy in a safe place", global_settle: "This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).", global_settle_price: "This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly", hide_asset: "Click here to hide this asset from this list.", lack_funds: "There is not enough funds to perform the operation", latest_price: "This is the latest price seen in this market.", legacy_explanation: "Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.", login: "This BitShares wallet does not offer a traditional login but instead simply locks or unlocks a wallet that is only stored locally in your browser.

    Whenever you close the wallet it will be locked and you will effectively be logged out.", "login-tooltip": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, "login-tooltips": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, login_required: "Please login to the selected account to perform this action", margin_price: "This is the maximum price that a margin called position can be made to pay. It also called the Squeeze Price.", market_fee: "The owner of %(asset)s charges a market fee of %(percent)s for buy orders. This fee will be subtracted from the amount you receive when your order fills, it is not paid when placing an order.", memo_tip: "You may include an optional message in the memo field. This allows you to write personal notes and is also often used by exchanges to identify deposits.", no_groups_available: "No groupings available using this API server", no_price: "There's no recent price available for this asset that can be used to estimate its value.", nodes_popup: "Click here to open the access settings popup that allows you to switch nodes if necessary", over_limit: "The bridge does not have enough of the desired asset for this buy order", own_account: "You hold keys for this account", propose_scam: "This proposal was created by a known scammer or from someone that you blacklisted! Approval not possible.", propose_tip: "Propose another user to initiate a transaction", propose_unhide: "Do not uncheck this unless you know what you are doing", propose_unknown: "This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.", proxy_remove: "You have a proxy set, to remove it simply clear this input field", proxy_search: "", registration: { accountModel: "The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!", accountName: "Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.", password: "Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.", walletModel: "The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", whyBinFile: ".bin file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be uploaded during the login process." }, required_input: "Field requires a valid %(type)s", scam_account: "Account is suspected scammer", self_help: "Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet", settle: "Settling will let you convert your holdings of %(asset)s to %(backingAsset)s after a delay of %(settleDelay)s hours, at a price equal to the feed price at that time.", settle_price: "This is the price at which settle orders will execute.", show_asset: "Click here to show this asset in the main list.", show_block: "Click here to show block #%(block)s where this transaction occured.", sign_owner: "If you are the owner of this account, please check this to make sure the transaction gets signed properly. This is only necessary if you are using the owner account and that account is not included in the active permissions.", sync_no: "The current node is out of sync with the blockchain, try switching to another one", sync_yes: "The current node is in sync with the blockchain", target_collateral_ratio: "Setting a target collateral ratio can help with not selling all of the posision at once.

    Sell as little by setting target below MCR (ex. 1.5)

    Sell as little but decrease possible margin calls again by setting it higher than MCR (ex. 3)", transfer_actions: "Click here to make a transfer, or to deposit/withdraw those assets that support it.", unlock_account_name: "Click to edit the account name, e.g. when your account is set as permission of another account.", update_position: "Click here to update your position. You may at any time change the debt and/or collateral levels of your position.", withdraw_address: "If you don't already have a %(asset)s address, please find a wallet provider and create one in order to complete the withdrawal.", withdraw_full: "Click to withdraw the full balance" }, transaction: { amount_sell: "Montant à vendre", asset_claim_fees: "claimed asset fees of %(balance_amount)s from %(asset)s fee pool", asset_reserve: "burned asset amount", at: "à", balance_id: "ID du solde", balance_owner: "Clèf du solde", bidder: "Bidder", blinding_factor: "Blinding factor", bond_accept_offer: "A accepté l'offre d'obligation pour", bond_cancel_offer: "A annulé l'offre d'obligation", bond_claim_collateral: "A récuperé un collateral de", bond_create_offer: "A créé une offre d'obligation", bond_pay_collateral: "A payé un collateral de", borrow_amount: "Debt", borrower: "Borrower", broadcast_fail: "La diffusion de la transaction a échoué: %(message)s", broadcast_success: "La transaction a été diffusée", broadcasting: "Diffusion de la transaction en cours..", broadcasting_short: "Diffusion en cours..", burn_asset: "A détruit", by: "par", claimed: "Total recuperé", coll_maint: "Ratio de Collateral de maintenance", coll_of: "avec collateral de", coll_ratio: "Ratio de collateral initiale", collateral: "Collateral", collateral_target: "Target Collateral", committee_member_create: "A créé le délégué", confirm: "Veuillez confirmer la transaction", create_key: "A créé une cléf public", csv: "Export to .csv", csv_tip: "Download history as comma separated .csv file", cumulative_borrow_amount: "Cumulative Debt", custom: "A créé une operation spéciale", delta_collateral: "Collateral change", delta_debt: "Debt change", deposit_to: "Versé sur le compte", expiration: "Expiration", feeGroups: { account: "Account-Specific", asset: "Asset-Specific", business: "Business Administration", general: "General", market: "Market-Specific" }, feeTypes: { _none: "Free of Charge", basic_fee: "Basic Fee", fee: "Regular Transaction Fee", fee_per_day: "Price per day", fee_per_kb: "Price per KByte Transaction Size", long_symbol: "Longer Symbols", membership_annual_fee: "Annual Membership", membership_lifetime_fee: "Lifetime Membership", premium_fee: "Fee for Premium Names", price_per_kbyte: "Price per KByte Transaction Size", price_per_output: "Price per recipient", symbol3: "Symbols with 3 Characters", symbol4: "Symbols with 4 Characters" }, feed_price: "Feed price", feed_producer: "Est devenu un fornisseur de flux pour l'actif", file_write: "A écrit un fichier", fill_or: "Fill or kill", for: "pour", from: "de", fund_pool: "A financé un pot de frais avec", funding_account: "Funding account", global_parameters_update: "A mis à jour les parametres globaux", inputs: "Inputs", market_fee: "Market fee", max_market_fee: "Maximum market fee", min_receive: "Montant minimum à recevoir", new_url: "Website", obtain: "pour obtenir", order_id: "ID de l'ordre", outputs: "Outputs", paid: "A payé", publisher: "Publisher", received: "A reçu", seller: "Vendeur", sent: "A envoyé", settlement_date: "Settlement date", to: "à", transaction_confirmed: "Transaction confirmed", trxTypes: { account_create: "Création de compte", account_transfer: "Transfert de compte", account_update: "Mise à jour de compte", account_upgrade: "Mise à niveau de compte", account_whitelist: "Whiteliste de compte", all: "Show all", assert: "Assert operation", asset_bid_collateral: "Bid collateral", asset_claim_fee_pool: "Claim fee pool balance", asset_claim_fees: "Claim asset fees", asset_claim_pool: "Claim asset fee pool", asset_create: "Creation d'actif", asset_fund_fee_pool: "Financement de pot de frais", asset_global_settle: "Couvrement global d'actif", asset_issue: "Assigner un actif", asset_publish_feed: "Publication de flux", asset_reserve: "Destruction d'actif", asset_settle: "Couvrement d'actif", asset_settle_cancel: "Cancel asset settlement", asset_update: "Mise à jour d'actif", asset_update_bitasset: "Mise à jour d'actif de marché", asset_update_feed_producers: "Mise à jour des flux", asset_update_issuer: "Update asset issuer", balance_claim: "Récuperation de solde", bid_collateral: "Collateral bid", blind_transfer: "Blinded transfer", call_order_update: "Mise à jour d'ordre à découvert", committee_member_create: "Création de délégué", committee_member_update: "Update committee member", committee_member_update_global_parameters: "Mise à jour des parametres globaux", custom: "Spécial", execute_bid: "Execute bid", fba_distribute: "Fee backed asset distribution", fill_order: "Execution d'ordre", htlc_create: "HTLC create", htlc_extend: "HTLC extend", htlc_redeem: "HTLC redeem", htlc_redeemed: "HTLC redeemed", htlc_refund: "HTLC refund", limit_order_cancel: "Annulation d'ordre à limite", limit_order_create: "Ordre à limite", override_transfer: "Forcing de transfert", proposal_create: "Création d'une proposition", proposal_delete: "Suppresion d'une proposition", proposal_update: "Mise à jour d'une proposition", transfer: "Transfert", transfer_from_blind: "Transfer from blinded account", transfer_to_blind: "Transfer to blinded account", vesting_balance_create: "Création de solde bloqué", vesting_balance_withdraw: "Retrait de solde bloqué", withdraw_permission_claim: "Prise de permissions de retrait", withdraw_permission_create: "Accord de permission de retrait", withdraw_permission_delete: "Suppresion des permissions de retrait", withdraw_permission_update: "Mise à jour de permission de retrait", witness_create: "Création de témoin", witness_update: "Update witness", witness_withdraw_pay: "Retrait de salaire de témoin", worker_create: "Création d'ouvrier" }, vesting_balance_create: "a créé un solde bloqué pour", waiting: "Waiting for confirmation..", whitelist_states: { black_listed: "Blacklisted", no_listing: "Unlisted", white_and_black_listed: "Whitelisted and blacklisted", white_listed: "Whitelisted" }, withdraw_permission_claim: "A pris les permissions de retrait du compte", withdraw_permission_create: "A donné une permission de retrait du compte", withdraw_permission_delete: "A supprimé les permissions de retrait du compte", withdraw_permission_update: "A mis à jour les permissions de retrait du compte" }, transfer: { again: "FAIRE UN AUTRE TRANSFERT", amount: "Montant", available: "Disponible", back: "REVENIR", balances: "Soldes", broadcast: "Votre transfert a bien été diffusé au reseau", broadcasting: "Broadcasting...", by: "By", cancel: "Cancel", close: "Fermer", confirm: "CONFIRMER", copy_address: "Copy Address", copy_memo: "Copy Memo", errors: { balance: "Le solde final doit être superieur à 0", insufficient: "Insufficient Balance", memo_error: "The transfer memo parsing error, please try again later.", memo_length_error: "The transfer memo length exceed, please check", minimum_amount: "Minimum withdraw amount: %(amount)s %(symbol)s", noFeeBalance: "Your balance is insufficient to pay fees using this asset, please choose another asset to pay your fees with", noFunds: "No funds", noPoolBalance: "That asset has an insufficient fee pool balance to pay the fees with. Please inform the asset owner or select another asset for paying fees.", pos: "Le montant doit étre positif", precision: "Minimum withdraw precision value: %(precision)s", req: "Champ obligatoire", valid: "Veuillez rentrer un chiffre positif" }, explict_price: "Explict price:", fee: "Frais", final: "Soldes finaux", free: "Free", from: "De", header: "Transfer details", header_subheader: "Transfers are used for sending funds to other BitShares Account Holders", header_subheader_propose: "Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.", memo: "Message", memo_unlock: "Unlock your wallet/account in order to see this memo", optional: "Optional", pay_from: "Pay From", phase_out_warning: "We recommend using the new {modal_link} modal as this page will be phased out", see: "VOIRE MES TRANSFERTS", send: "Envoyer", to: "À", warn_name_unable_read_memo: "Proposed sender will be unable to read this memo!" }, trx_error: { expire: "Your transaction has expired without being confirmed, please try again later." }, utility: { asset_input_placeholder: "Enter asset symbol", asset_select_placeholder: "Select asset", total_x_assets: "Total of %(count)s assets", total_x_items: "Total of %(count)s items", total_x_markets: "Total of %(count)s markets", total_x_operations: "Total of %(count)s operations" }, validation: { messages: { balance: "Insufficient balance. Available only: %(balance)s %(symbol)s", email: "The field should be email", emailNamed: "%(name)s should be email", float: "The field should be float", floatNamed: "%(name)s should be float", integer: "The field should be integer", integerNamed: "%(name)s should be integer", max: "The field should be less than %(max)s", maxNamed: "%(name)s should be less than %(max)s", min: "The field should higher than %(min)s", minNamed: "%(name)s should be higher than %(min)s", number: "The field should be number", numberNamed: "%(name)s should be number", oneOf: "The field should be one of: %(list)s", oneOfNamed: "%(name)s should be one of: %(list)s", range: "The field should be in range from %(min)s to %(max)s", rangeNamed: "%(name)s should in range from %(min)s to %(max)s", required: "The field is required", requiredNamed: "%(name)s is required", test: "", types: { array: "The field should be array", arrayNamed: "%(name)s should be array", boolean: "The field should be boolean", booleanNamed: "%(name)s should be boolean", date: "The field should be date", dateNamed: "%(name)s should be date", enum: "The field should be one of %(list)s", enumNamed: "%(name)s should be one of %(list)s", hex: "The field should be hex", hexNamed: "%(name)s should be hex", method: "The field should be method", methodNamed: "%(name)s should be method", object: "The field should be object", objectNamed: "%(name)s should be object", regexp: "The field should be regexp", regexpNamed: "%(name)s should be regexp", string: "The field should be string", stringNamed: "%(name)s should be string" }, url: "The field should be url", urlNamed: "%(name)s should be url" } }, voting: { description: "The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).", title: "Voting" }, walkthrough: { buy_form: "Placez les ordres d'achat en utilisant ce formulaire.", buy_orders: "Voir toutes les commandes d'achat pour ce marché.", chart_tool_duration: "Groupe de données commerciales en utilisant différents intervalles.", chart_tool_indicators: "Ajoutez des indicateurs techniques au tableau des prix pour identifier les opportunités de trading.", chart_tool_zoom: "Ajustez le graphique des prix pour afficher plus ou moins d'historique des prix.", collapsed_items: "View one or several sections of the market by expanding the drawers", create_cloud_wallet: "Accédez au portefeuille de cloud en utilisant un nom de compte et un mot de passe.", create_local_wallet: "Créez un portefeuille local et téléchargez les clés privées qui lui appartiennent.", depth_chart: "Utilisez un tableau de profondeur du marché pour montrer l'offre et la demande à différents prix.", done_label: "Fait", favourite_button: "Marquez cette paire comme favorite dans votre liste de marchés.", find_markets_tab: "Cet onglet vous permet de rechercher et d'ajouter des marchés supplémentaires à l'onglet Mes marchés.", language_flag: "Choisissez parmi 9 langues différentes à utiliser dans le DEX.", my_markets: "This tab lists commonly used markets.", next_label: "Suivant", panel_hide: "You can hide the panel to have more room", personalize: "Change the default layout in the personalize settings", prev_label: "Retour", price_alerts: "Set alerts to get notifications if the price fluctuates", price_chart: "Voir l'action des prix d'un actif en utilisant le tableau des prix.", restore_account: "Restaurez un portefeuille en utilisant votre fichier de sauvegarde.", sell_form: "Placez les ordres de vente en utilisant ce formulaire.", sell_orders: "Voir toutes les commandes de vente pour ce marché.", skip_label: "Skip", switch_button: "Changez les paires de négociation en utilisant ce bouton.", vertical_lock: "Disable auto scroll to scroll through the order book", vertical_order: "View all orders for this market, including spread and latest order price" }, wallet: { accept: "Accept", account_public: "Account Name (Public)", active_wallet: "Active Local Wallet", all_set: "You're all set!", ask_to_select_wallet: "Please select a key file", back: "Back", backup_brainkey: "Backup Brainkey", backup_explain: "Clicking on the button below will generate a backup file with a .bin extension. This file is encrypted with your wallet password, and contains all the private keys for your accounts. It can be used to restore your wallet, or move it to a different computer/browser.", backup_login: "Backup & login", backup_new_account: "Congratulations, you've just created a new account on the BitShares blockchain! It is strongly recommended that you make a backup of your wallet now. Without a backup there is no way to restore your account if something happens to your computer.", backup_types: "backup types", backup_warning: "It appears that your private key files are not backed up. For security reasons we recommend users do not log in without backing up their private keys.", balance_claim_lookup: "Lookup balances", balance_claims: "Balance Claims", brainkey: "Brainkey", brainkey_backed_up: "This brainkey was last backed up", brainkey_not_backed_up: "This brainkey has never been backed up", brainkey_not_verified: "This Brainkey is not verified", brainkey_reset_success: "Sequence reset. In order to regenerate your private keys from the wallet brain key, refresh your browser then unlock the wallet.", brainkey_seq_reset: "Reset brainkey sequence", brainkey_seq_reset_button: "Reset now", brainkey_seq_reset_text: "Use this to reset the sequence counter used to derive private keys from the wallet brainkey.
    It can be used to force a regeneration of private keys from your wallet brain key.", brainkey_w1: "To complete your backup, print this out, or write it down.", brainkey_w2: "Anyone with access to your recovery key will", brainkey_w3: "have access to funds within this local wallet.", bts_09_export: "BTS 0.9.3c key export file (.json)", cancel: "Cancel", change: "Change to %(name)s", change_backup: "Now that you've changed your password, we highly recommend making a new backup.", change_password: "Change Password", change_success: "Password successfully changed!", change_wallet: "Change Local Wallet", claim_balance: "Claim Balance", claim_balances: "Claim Balances", claim_later: "Once you've imported the keys, you can claim these balances to an account of your choosing.", confirm: "Confirmer le mot de passe", confirm_error: "The confirmation does not match the password", confirm_password: "Confirm Password", congrat: "Congratulations, you're ready!", console: "Local Wallet Management Console", create: "Create", create_a: "Create a new blockchain account", create_account_password_text: "The keys for this new account will be derived using your password. Nothing is stored in the browser or in a central server, so you will need to ensure you remember this password!!", create_account_text: "The account name you choose needs to be unique, as it will be registered publicly on the blockchain and will be your identifer for any transactions you make.", create_backup: "Create Backup", create_backup_of: "Create backup now", create_importkeys_text: "In order to import keys, you first need to create a local wallet to contain the keys. Complete the dialog below to create a new local wallet.", create_password: "Create a new account using a password", create_success: "Your local wallet has been created", create_text: "The BitShares local wallet is stored in your browser, it is not stored in the cloud. A wallet can contain multiple accounts and can be easily transferred between browsers and computers using a backup file.", create_w_a: "Create a local wallet containing an account", create_wallet: "Create new local wallet", create_wallet_backup: "Create new wallet from backup", current_pass: "Current password", custom_brainkey: "Use a custom brainkey (advanced)", delete_confirm_line1: "Are you ABSOLUTELY sure?", delete_confirm_line2: "Unexpected bad things will happen if you don’t read this!", delete_confirm_line3: "This action CANNOT be undone, and if you do not have a backup this local wallet will be gone.", delete_confirm_line4: "Yes, delete wallet %(name)s", delete_wallet: "Delete Local Wallet", delete_wallet_name: "Delete Local Wallet (%(name)s)", different_file_type: "Have a different file type?", done: "Done", dont_ask_for_backup: "Don't ask me to back up again", download: "Download", enter_password: "Password", existing_password: "Existing Password", first_account_paid: "Since this is your first account, a faucet will pay the registration fee for you.", generated: "Generated password", go_get_started: "Getting Started", has_wallet: "When you create your first BitShares account, a BitShares local wallet will be automatically created as well and stored in your browser. This local wallet is encrypted with your password, and will contain any private keys belonging to your accounts. It is important that you take the time to backup this wallet once created!", import_20_notice1: "Import your BTS 2.0+ BACKUP first", import_20_notice2: "(if you have one)", import_backup: "Import BitShares 2.0 backup (.bin file)", import_backup_choose: "Please select your backup file in the dialog below. This is completely safe as the file is not uploaded anywhere and never leaves your browser.", import_balance: "Import balance(s)", import_bts: "Import a BTS 0.9.3c key export", import_bts1: "Import from BitShares 0.9.3c", import_key_success: "Successfully imported %(count)s keys.", import_keys: "Import Keys", import_keys_tool: "Key Import Tool", import_pass_match: "Password matches. Decrypting the backup now...", import_password: "Enter import file password", import_private_key: "Import a private key", invalid_format: "Invalid Format", key_file: "Key file", key_file_bin: "Key file (.bin)", last_backup: "Last backup", link_account: "Account", link_deposit: "Deposits", link_transfer: "Transfers", loading_balances: "Looking for unclaimed balances", local_switch: "Local wallet detected matching the given password, switching to local wallet mode", login_type: "Login type selection", must_be_ltm: "The fee paying account must be a lifetime member to perform that operation.", name: "Local Wallet Name", need_backup: "This local wallet needs a backup", never_backed_up: "This local wallet has never been backed up, you should create a backup now!", new_confirm: "Confirm new password", new_password: "New password", new_wallet: "New Local Wallet", new_wallet_name: "New Local Wallet Name", no_accounts: "No accounts found", no_balance: "No unclaimed balances found", no_wallet: "You do not have a local wallet yet?", noneed_backup: "No backup is needed", not_first_account: "Since you already have an account, you will need to pay for this new account yourself. In order to do so, your account needs to have lifetime membership, which can be bought in the account page.", ok_done: "OK, take me to the dashboard", pass_incorrect: "Incorrect password", pass_length: "The password must contain at least %(minLength)s characters. Ideally you should use 20 or more, and a combination of numbers, special characters and letters.", password: "Mot de passe", password_crucial: "It is crucial that you take the time to write down your password now, whether it be on paper, a password manager, or somewhere else. If you lose or forget this password your account will be lost, we cannot help you get it back.", password_lose_warning: "IMPORTANT: If you forget your pass phrase you will be unable to access your account, we cannot reset or restore your password! Make sure you memorize or write down your password!", password_model: "Account model", password_model_1: "The account model uses a password in combination with your account name to generate your private key on the fly.", password_model_2: "This lets you login to your wallet from anywhere using only your account name and password, but it is vulnerable to brute-force attacks which means it is important to use a very long password!", password_model_3: "
  • Single account
  • Easy login
  • Moderate security
  • ", password_show: "Show me my password", paste_private: "Paste private keys here (Wallet Import Format - WIF)", pwd4brainkey: "Enter your password to show your brainkey", read_more: "Read more about %(wallet)s and %(backup)s.", ready_to_restore: "Ready to Restore", reenter_brainkey: "Re-Enter Brainkey", remember_me: "Remember me", remember_me_explanation: "Turn 'Remember Me' off to disable remembering your account name and other personal settings.", reset: "Reset", restore: "Restore Local Wallet from Backup", restore_backup: "Restore Backup", restore_it_here: "Restore it here", restore_key_file: "Restore key file..", restore_success: "Successfully restored (%(name)s) wallet", restore_wallet_of: "Restore (%(name)s Wallet)", select_wallet: "Select key file", setup_wallet: "Setup your local wallet", show_brainkey: "Show Brainkey", step_1: "Create a wallet", step_2: "Create a backup", step_3: "Getting Started", submit: "Submit", switch_model_password: "Switch to account model", switch_model_wallet: "Switch to wallet model", tips_account: "See your new account", tips_dashboard: "See your dashboard", tips_deposit: "Make a deposit", tips_explore: "Now that you've successfully created an account and downloaded the backup, it's time to get started. Click on one of the links below to start exploring.", tips_explore_pass: "Now that you've successfully created an account and backed up your password, it's time to get started. Click on one of the links on the left to start exploring.", tips_header: "You can also find these same links in the top menu, and in the drop-down menu next to your account name.", tips_login: "IMPORTANT: There is no login/logout functionality here, you merely unlock your wallet when you wish to make a transaction.", tips_settings: "Change the settings", tips_transfer: "Make a transfer", title: "Portefeuille", totals: "Asset Totals", unclaimed: "Unclaimed balances belonging to these keys", unclaimed_vesting: "Unclaimed (vesting)", understand_1: "I understand that no one can recover my password if I lose or forget it", understand_2: "I have written down or otherwise stored my password", understand_3: " I understand that I will lose access to my funds if I lose my password", use_different: "Use different file", use_password: "Use the account model", use_wallet: "Use the wallet model", using: "Using:", verified: "Verified", verify: "I've written it down", verify_prior_backup: "Verify Prior Backup", wallet_browser: "Your Web Browser is your Wallet", wallet_created: "Local Wallet Created", wallet_crucial: "Your local wallet is only stored in your browser, so it is crucial that you create a backup that will enable you to recover your wallet if the data in your browser is lost! No one else can restore your account if you lose your backup.", wallet_exist: "A local wallet called that already exists, please choose a new name", wallet_exist_with_name: "A local wallet called (%(name)s) already exists, please change the name", wallet_lose_warning: "IMPORTANT: If you lose your local wallet or your pass phrase you will be unable to access any of your funds again. Make sure you store the backup somewhere safe, and memorize or write down your password!", wallet_model: "Wallet model", wallet_model_1: "The wallet model stores the wallet in your browser. It is encrypted with a password that you choose, and can be backed up using either a brainkey or an encrypted binary file that contains all the private keys.", wallet_model_2: "The wallet model has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", wallet_model_3: "
  • Multiple accounts
  • Wallet file backup required
  • High security
  • ", wallet_move: "This backup file can also be used to move your local wallet to different computers or different browsers. In order to restore your local wallet using this backup you will also need your password!", wallet_password: "Login anywhere using your password", wallet_types: "wallet types" } } } , function(e) { e.exports = { account: { accounts: "Account", activity: "Attività", advanced: "Avanzate", as_collateral: "Garanzia", asset: "Asset", asset_details: "Dettagli asset", average_price: "Average price", bittrex_scam: "Questo non è il vero account Bittrex, per favore invia al seguente account: bittrex-deposit.", bts_market: "Mercato", collaterals: "Posizioni con margine", confirm_asset_modal: { are_you_sure: "Are you sure you want to save all changes to these tabs?", header: "Confirm multiple changes" }, connections: { black: "In blacklist da", known: "Conosciuto da" }, contacts: "Contatti", create_account: "Crea un account", create_new: "Crea un nuovo account", deactivate_suspicious_proposals: "Deactivate suspicious proposals", deposit: "Deposita BTS", deposit_address: "Il tuo indirizzo di deposito è il nome del tuo account", deposit_withdraw: "Deposita/Preleva", download_history: "Download History", eq_value: "Valore stimato", eq_value_header: "Valore ({asset})", errors: { invalid: "Nome account invalido", memo_missing: "You do not have control of the memo key for this account. In order to use a memo, please set the account memo key to a key you control using the Permissions page.", not_found: "L'account %(name)s non esiste; sei sicuro di averlo digitato correttamente?", not_yours: "Non il tuo account", unknown: "Account sconosciuto" }, estimate_value: "Valore stimato dell'Account", existing_accounts: "Account esistenti", existing_user: "Utente esistente", export_modal: { coinbase_report: "CoinTracking.info Report", description: "Enter your desired elastic search instance and click the report type", full_report: "Full Report", title: "History Export", use_custom: "Use custom wrapper" }, filter_orders: "Filter", follow: "Aggiungi contatto", group_by_asset: "Group by asset", hidden_accounts_row: "Hidden Accounts", hide_hidden: "Attivi", hide_ignored: "Nascondi account nascosti", history: "Storico", history_error: "Failed to download the account history, please try again", home: "Home", hour_24: "Variazione in 24h", hour_24_short: "24h", id: "ID Account", identicon: "Identicon", ignore: "Nascondi", in_open: "Questa è la quantità di %(asset)s che hai in ordini correntemente aperti.", in_open_value: "Questo è il valore stimato di %(asset)s che hai in ordini correntemente aperti.", intro_text_1: "Il tuo Platform decentralizzato", intro_text_2: "Il DEX è inerentemente decentralizzato, permettendoti la compravendita del token BitShares (BTS) e una varietà di asset trustless stabili nel prezzo e ancorati al mercato come bitUSD, bitCNY, bitBTC, bitGold e altri. È possibile fare trading di questi asset con zero rischio di controparte, permettendoti di mantenere il pieno controllo sui tuoi fondi.", intro_text_3: "Il DEX permette anche la creazione di asset generati dagli utenti (user-issued assets, UIA), con cui si può fare trading con altri UIA o altri asset trustless sulla piattaforma. Un distributore molto noto sul DEX è OpenLedger, che offre una gamma di asset che include BTC, ETH, STEEM, DASH, LTC, DOGE e molti altri", intro_text_4: "Ciò garantisce ai trader di criptovalute un unico mix di trading tradizionale e decentralizzato, il tutto con la familiare interfaccia di un exchange. Buon trading!", intro_text_title: "Benvenuto su BitShares", login_with: "Login with", market_actions: "Operazioni di mercato", market_value: "Valore di mercato", member: { annual: "Abbonato annuale", available: "Pronto per la riscossione", balance_type: "Type", basic: "Membro Basic", cashback: "Saldo del bilancio vesting", claim: "Riscuoti ora", coindays: "coin days", earned: "Coin days raggiunti", expires: "scade", fee_allocation: "Allocazione commissioni", fees_cashback: "Commissioni e cashback", fees_paid: "Commissioni membership a vita pagate", join: "Iscritto il", lifetime: "Membro a vita", lifetime_referrer: "Lifetime Referrer", membership: "Membership", membership_expiration: "Scadenza Membership", network_percentage: "Rete", referral_link: "Il tuo referral link", referral_text: "Comunica questo link alle persone a cui vuoi segnalare BitShares", referrals: "Referral", referrer: "Affiliate Referrer", registrar: "Registrar", remaining: "Giorni rimanenti del periodo di vesting", required: "Coin days richiesti", rewards: "Cashback Rewards", stats: "Membership", subscribe: "Compra iscrizione annuale", suspected_scammer: "Suspected Scammer", unknown: "Membro sconosciuto", upgrade_lifetime: "Compra iscrizione a vita", vested: "Vested" }, mine: "Il mio account", more: "mostra altro", name: "Nome account", name_input: { name_is_taken: "Questo nome account è già stato preso.", not_found: "Account non trovato.", premium_name_faucet: "Questo è un nome premium che non è supportato da questo faucet. Per favore inserisci un nome regolare che contiene almeno un trattino, un numero o nessuna vocale.", premium_name_warning: "Questo è un nome premium che costa di più di un nome contenente un trattino (-) o un numero." }, new_user: "Nuovo utente?", no_orders: "Nessun ordine aperto", no_price: "Valore sconosciuto", open_orders: "Ordini aperti", optional: { formatter: "Optionally, {restore_link} or create an account using the {restore_form}.", restore_form: "advanced form", restore_link: "restore your account" }, options: { memo_key: "Chiave Memo", num_committee: "Numero desiderato di membri del comitato", num_witnesses: "Numero desiderato di witness" }, orders: "Ordini", other_scam: "Questo account non è noto come ufficiale, per favore verifica la destinazione prima di effettuare il trasferimento", overview: "Panoramica", password_login: "Login con password", pay: "Invia a", pay_from: "Paga con l'account", payees: "Beneficiari", percent: "Percentuale della disponibilità totale", perm: { account_name_or_key: "Nome account o chiave", acct_or_key: "Account / Chiave / Indirizzo", action: "Azione", active: "Permessi attivi", add: "Aggiungi permesso", add_permission_label: "Inserisci nome/chiave dell'account e peso", brain: "Posizione brainkey", cancel: "Annulla", confirm_add: "Aggiungi", create_paperwallet: "Create Paper Wallet", create_paperwallet_private_hint: "Unlock/Login before creating the paper wallet to include private keys", from: "Importato dall'account", key: "Chiave/Nome", key_viewer: "Visualizzatore chiave privata", memo_key: "Chiave memo", memo_public_key: "Chiave pubblica memo", memo_warning: "ATTENZIONE: Se sostituisci la chiave dei memo, non sarai in grado di leggere i vecchi memo quando fai il login con la tua password, e a meno che tu non importi la nuova chiave privata dei memo nel tuo vecchio portafoglio, quel portafoglio non potrà decodificare i nuovi memo", new_active: "Nuova chiave attiva", new_memo: "Nuova chiave memo", new_owner: "Nuova chiave proprietario", owner: "Permessi proprietario", password_model: "Modalità account", password_model_1: "Se vuoi essere in grado di effettuare il login dovunque tramite password e nome account, puoi usare questa pagina per aggiungere nuove chiavi ai tuoi permessi. Se vuoi anche rimuovere le chiavi originali, puoi farlo nella schede permessi attivi/proprietario.", password_model_2: "Aggiungi chiavi generate tramite password", private: "Chiave privata (WIF - Wallet Import Format)", public: "Chiave pubblica", publish: "Pubblica modifiche", remove_proxy: "Remove proxy", remove_text: "Rimuovi", reset: "Azzera modifiche", save: "Save Changes", save_all: "Save All Changes", show: "mostra", sign_owner: "Firma come proprietario", threshold: "Soglia", type: "Tipo", use_text: "Usa", valid_pub: "Chiave Pubblica Valida", warning1: "Il peso totale %(weights_total)s dei permessi attivi dovrebbe essere uguale o maggiore della soglia %(threshold)s", warning2: "Il peso totale %(weights_total)s dei permessi del proprietario dovrebbe essere uguale o maggiore della soglia %(threshold)s", warning3: "L'account è già nella lista", warning4: "La chiave è già nella lista", weight: "Peso" }, permissions: "Permessi", please_create_account: "Per favore crea un account", polo_scam: "Questo non è il vero account Poloniex, per favore invia al seguente account: poloniexwallet.", portfolio: "Il mio Portfolio", propose_from: "Proponi da", qty: "Qtà", quote: "Quote", recent: "Attività recente", reset_orders: "Reset", restore: "Ripristina", search: "Search for an account", see_open: "Mostra ordini aperti", select_placeholder: "Seleziona Account...", settle: "Settle", show_hidden: "Nascosti", show_ignored: "Mostra account nascosti", show_visual: "Visual", signedmessages: { automaticcreation: "Signed message will be created automatically", copysuccessful: "Signed message copied to clipboard", copyunsuccessful: "Failed to copy message", entermessage: "Enter message here", errorverifying: "An error occured while verifying the message", invalidformat: "Signed message format can't be recognized", invalidkey: "Private key could not be obtained, is the public key valid?", invalidsignature: "The content of the message could not be validated against the signature", invaliduser: "Account of the message sender is invalid", keymismatch: "Given public key of the sender doesn't to the one stored in the senders account", menuitem: "Signed Messages", sign: "Sign", signing: "Signing, please wait ...", signmessage: "Sign Message", title: "Signed Messages", verify: "Verify", verifying: "Verifying, please wait ...", verifymessage: "Verify Message", verifyonchange: "Verify while typing" }, start_typing_to_search: "Start typing to search for accounts", submit_orders: "Submit", total: "Totale ({asset})", total_estimate: "Questa è una stima del valore di tutti i tuoi asset, inclusi asset nascosti, ordini aperti, debito e garanzia. La stima è ottenuta usando informazioni in tempo reale dalla blockchain, e potrebbe non essere del tutto accurata.", total_value: "Valore totale", trade: "Trading", transactions: { fee: "Fee", id: "ID", info: "Info", time: "Time", type: "Type" }, transfer_actions: "Trasferimenti", unfollow: "Rimuovere", unignore: "Mostra", upgrade: "Upgrade dell'account", user_issued_assets: { add_feed: "Add new feed producer", advanced: "Caratteristiche avanzate", approx_fee: "Commissione approssimativa", backing: "Asset di supporto short", base: "Quantità asset di base", base_name: "Asset di base", bitasset_opts: "Opzioni SmartCoin", cer_warning_1: "Avviso", cer_warning_2: "Assicurati che il tuo core exchange rate sia maggiore del prezzo di mercato, altrimenti le persone compreranno il tuo token dal mercato e prosciugheranno il tuo fee pool tramite arbitraggio implicito. Il core exchange rate dovrebbe essere aggiornato regolarmente per riflettere il prezzo di mercato del tuo asset.", charge_market_fee: "Abilita commissione di mercato", committee_fed_asset: "Permetti ai committee members di fornire feed", condition: "Condizione (massimo 60 caratteri)", conflict_feed: "Cannot allow witnesses and committee members to provide feeds simultaneously", core_exchange_rate: "Tasso di cambio centrale", current_issuer: "Account proprietario corrente", decimals: "Numero di decimali", description: "Descrizione", details: "Dettagli", disable_confidential: "Disabilita transazioni private", disable_force_settle: "Disabilita settling obbligato", error_invalid: "Quell'asset non può essere usato", error_precision: "Quell'asset non ha la stessa precisione di %(asset)s", error_too_deep: "May not create a bitasset backed by a bitasset backed by a bitasset", exists: "Questo asset esiste sempre", expiry: "Data risoluzione mercato", feed_lifetime_sec: "Feed lifetime in minuti", feed_not_allowed_1: "Cannot set feed producers on a witness- or committee-fed asset", feed_not_allowed_2: "Please disable the flags called 'Allow witnesses to provide feeds' and 'Allow committee members to provide feeds' in order to allow manual definition of feed producers", feed_producers: "Feed producers", flags: "Flag", force_settlement_delay_sec: "Ritardo per i settlement obbligati (minuti)", force_settlement_offset_percent: "Deviazione percentuale dei settlement obbligati", global_settle: "Consenti all'erogatore di obbligare un settling globale", id: "ID", invalid_backing_asset_change: "You can't change the backing asset of an asset that has a non-zero current supply", invalid_market_pair: "Preferred market pairing can not be the same market", invalid_permissions_change: "You can't enable a permission for an asset that has a non-zero current supply", issued_assets: "Asset emessi", market: "Coppia di mercato preferita", market_fee: "Commissione di mercato", max_market_fee: "Commissione di mercato massima", max_positive: "La disponibilità massima deve essere un numero positivo", max_supply: "Disponibilità massima", maximum_force_settlement_volume: "Massimo volume di settle obbligati (percentuale della disponibilità totale per ora)", minimum_feeds: "Minimo numero di feed", mpa: "SmartCoin", name: "Name Asset", need_asset: "Almeno uno dei due asset deve essere %(name)s", new_issuer: "Nuovo account proprietario", optional: "Impostazioni opzionali", override_authority: "L'erogatore può trasferire l'asset a se stesso", perm_warning: "ATTENZIONE: I permessi possono solo essere disattivati, e una volta disattivati non possono più essere attivati!!", pm: "Mercato di previsioni binarie", precision: "Precisione", precision_warning: "Attenzione: Il numero di decimali non può essere modificato dopo la creazione", primary: "Impostazioni principali", quote: "Quantità asset quotato", quote_name: "Asset quotato", reward_percent: "Reward percent", reward_percent_tooltip: "If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.", short: "Nome breve (massimo 32 caratteri)", symbol: "Simbolo", to: "Emetti nell'account", too_large: "La disponibilità massima è eccessiva, per favore scegli un numero più piccolo", too_many_feed: "Number of feed producers exceeded the max allowed (%(max)s).", transfer_restricted: "L'erogatore deve approvare tutti i trasferimenti", update_owner: "Aggiorna proprietario", update_owner_text: "The asset owner may change the owner to another account using this form:", visible: "Nascondi asset in ricerca e mercati", white_list: "Esigi che i possessori siano in white-list", witness_fed_asset: "Permetti alle witness di fornire feed" }, vesting: { balance_number: "Saldo #%(id)s", explain: "I saldi vesting contengono tutte le commissioni (fee) guadagnate tramite il programma di affiliazione (referral program) o, per esempio, il pagamento dei worker. Essi hanno un certo periodo di vesting, durante il quale vengono man mano sbloccati finché tutti i fondi sono disponibili.", no_balances: "Questo account non ha saldi vesting", title: "Saldi vesting" }, votes: { about: "Informazioni", active: "Worker attivi", active_short: "Attivo", add_committee: "Aggiungi", add_committee_label: "Membro del Comitato", add_witness: "Aggiungi", add_witness_label: "Witness", already: "L'account è già nella lista", approve_worker: "Approva", cast_votes_through_one_operation: "Cast your votes for witness, committee and workers and broadcast them together.", clear_proxy: "Rimuovi proxy", cm_approved_by: "Membri del comitato approvati da %(account)s", cm_not_approved_by: "Membri del comitato non approvati da %(account)s", committee: "Nome membro del comitato", create_worker: "Crea un nuovo worker", creator: "Creatore", daily: "al giorno", daily_pay: "Salario", end: "Data fine", expired: "Worker scaduti", funding: "Finanziamento", go_proxy: "Vai a", hide_legacy_proposals: "Hide Legacy Proposals", inactive: "Backup", info: "Informazioni", join_committee: "Join committee", join_witnesses: "Join Witnesses", line: "Linea", max_pay: "Salario totale massimo", missing: "Necessari", name: "Nome", new: "Worker proposti", no_proxy: "Nessun proxy", polls: "BSIPs/Polls (%(count)s)", proxy: "Inserisci manualmente un account come tuo proxy", proxy_current: "Il tuo proxy attuale è", proxy_known: "O scegli un account come tuo proxy", proxy_short: "Proxy", publish: "Pubblica modifiche", recycled: "Riciclato", reject_worker: "Respingi", remove_committee: "Rimuovi", remove_witness: "Rimuovi", save_finish: "Clicca Salva per completare", set_proxy: "Set a proxy here", start: "Data inizio", status: { neutral: "Neutrale", rejected: "Rifiutata", supported: "Supportata", title: "Stato" }, support: "Supporto", supported: "Supportato", threshold: "Voti necesssari per l'attivazione", toggle: "Cambia voto", total_budget: "Budget worker giornaliero totale disponibile", total_votes: "Voti netti", unclaimed: "Salario non riscosso", unused_budget: "Budget worker giornaliero inutilizzato", url: "Pagina web", votes: "Voti", votes_against: "Voti contro", w_approved_by: "Witness approvate da %(account)s", w_not_approved_by: "Witness non approvate da %(account)s", witness: "Nome witness", worker_account: "Account Worker", workers: "Budget Items", workers_short: "Worker" }, voting: "Voti", welcome: "Benvenuto su BitShares", whitelist: { add: "Aggiungi alla whitelist", add_black: "Aggiungi alla blacklist", black: "Blacklist", black_by: "Messo in blacklist da", blacklist_authorities: "Autorità blacklist", empty: "%(account)s non ha messo in whitelist alcun account.", empty_black: "%(account)s non ha messo in blacklist alcun account.", empty_black_by: "Nessun account ha messo %(account)s in blacklist.", empty_white_by: "Nessun account ha messo %(account)s in whitelist.", title: "Whitelist", white_by: "Messo in whitelist da", whitelist_authorities: "Autorità whitelist", whitelist_market_fee_sharing: "Market fee sharing whitelist" } }, account_browsing_mode: { go_back: "Go back to my account", modal_description: "You're switching an account which you don't have active authority over. You can browse this account, but in view only mode", modal_title: "View Only Mode", never_show_again: "Never show again", view_mode: "View Mode", you_are_in_browsing_mode: "You're in view only mode of the current account. Click here to get back to your account." }, alert: { warning: "Warning" }, app_init: { browser: "Browser non supportato", browser_text: "Il browser che stai usando non è stato pienamente testato per il supporto del portafoglio BitShares. Raccomandiamo caldamente di fare il backup del tuo portafoglio e importarlo usando il browser Chrome finché non avremo avuto il tempo di testare appieno il tuo browser. Usalo a tuo rischio.", check_latency: "Running latency checks...", check_latency_feedback: "Running latency checks (%(pinged)s/%(totalToPing)s nodes) ...", check_latency_feedback_country: "Latency check in best country (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_last: "Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_region: "Latency check in best region (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_rest: "Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)", check_latency_feedback_world: "Latency check in each region (%(pinged)s/%(totalToPing)s nodes)", connected: "Connesso", connecting: "Connecting to API server: %(server)s", database: "Connection established, initializing local databases", not_connected: "Non connesso", retry: "Riprova", title: "Problemi nell'inizializzazione dell'applicazione", understand: "Ho capito", ws_status: "Stato della connessione del full node" }, assets: { BTS: "BTS is the core token of the BitShares Blockchain" }, boolean: { false: "False", true: "True" }, borrow: { adjust: "Aggiorna posizione", adjust_short: "Aggiorna", call_limit: "Market Call Limit", close: "Chiudi posizione", coll_ratio: "Collateral ratio", coll_ratio_target: "Target Ratio", considered_on_revival: "Included", enable_target_collateral_ratio: "Use Target Collateral Ratio", errors: { below: "Il tuo collateral ratio è inferiore a %(mr)s, che non è consentito.", below_info: "Your position is below the required maintenance collateral ratio! Increasing collateral ratio is allowed, debt can only be decreased.", below_ratio_mcr_update: "Your collateral ratio is blow your original %(ocr)s. Only increased ratio is allowed on margin called orders", close: "Il tuo collateral ratio è vicino a %(mr)s che significa che questa posizione rischia di essere chiamata con margine se il prezzo scende.", collateral: "Saldo di garanzia insufficiente", increased_debt_on_margin_call: "You increased your debt, which is not allowed when updating a margin called position" }, maximize_debt_set_ratio_slider: "You must set a collateral ratio before being able to maximize debt", no_valid: "Nessun feed valido per %(asset_symbol)s", pay_max_debt: "Pay Max Debt", target_collateral_ratio: "Target Collateral Ratio", target_collateral_ratio_explanation: "When the position is being margin called, the corresponding order will be just big enough to bring the collateral ratio of the position greater or equal to the target collateral ratio", target_collateral_ratio_short: "TCR", title: "%(asset_symbol)s con margine", update: "Aggiorna", use_max: "Use Max" }, browser_notification_messages: { money_received_body: "Ti ho inviato %(amount)s %(symbol)s", money_received_title: "Trasferito da %(from)s" }, cancel: "Annulla", connection: { automatic_reconnect: " After %(reconnect_in_seconds)s seconds a reconnection attempt will be made automatically.", manual_ping: "Go to ping nodes", manual_reconnect: "Reconnect now", out_of_sync: "Your connection has been out of sync for %(out_of_sync_seconds)s seconds.", title_out_of_sync: "Connection out of sync", want_to_reconnect: "If the connection can be recovered this message will disappear automatically." }, counterpart: { formats: { date: { full: "%F %T %Z", market_history: "%e/%m %H:%M:%S", market_history_us: "%m/%e %H:%M:%S", short_custom: "%e %b '%y" } } }, dashboard: { featured_markets: "Featured Markets", starred_markets: "Starred Markets", table_empty: "No market matched", top_markets: "Top Markets" }, exchange: { add_quote: "Add", asks: "Ordini di vendita", atr: "Average True Range", balance: "Saldo", base_supply: "Disponibilità valuta di base", bids: "Ordini di acquisto", borrow: "Prendi in prestito", borrow_short: "Borrow", buy: "Compra", buy_description: "Buy %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", buy_min: "Compra almeno", buy_sell: "Order Form", buysell_formatter: "{direction} {asset}", call: "Call Price", cancel_selected_orders: "Cancel selected order(s)", change: "Variazione", chart_height: "Chart height (pixels)", chart_hide: "Hide Charts", chart_modal: "Chart options", chart_type: "Chart type", checking_for_worth_less_settlement: "Checking if you can get a better price by selling to market, please wait..", confirm_buy: "Il tuo ordine è %(diff)s volte più alto dell'offerta più bassa, sei sicuro?", confirm_no_orders_buy: "Stai facendo un ordine di acquisto in un mercato senza ordini di vendita attivi. Sei sicuro di voler continuare?", confirm_no_orders_sell: "Stai facendo un ordine di vendita in un mercato senza ordini di acquisto attivi. Sei sicuro di voler continuare?", confirm_sell: "Il tuo ordine è %(diff)s volte più basso della domanda più alta, sei sicuro?", core_rate: "Tasso di commissione", custom_quote: "Add a custom quote", deposit: "Deposit", description: "Description", ema: "Exponential Moving Average", featured: "Mercati top", feed_price: "Feed Price", filter: "Filter...", flip: "Flip", global_settle: "Global Settlement", group_order_limit: "Gruppo", hide: "Nascondi", highest_bid: "Domanda (bid) più alta", history: "Storico del mercato", horizontal: "Orizzontale", index: "Indice", invalid_amount: "Quantità non valida", invalid_price: "Prezzo non valido", invert: "Inverti il prezzo", latest: "Ultimo prezzo", limit: "Limit", lowest_ask: "Offerta (ask) più bassa", maintenance: "Prezzo Maintenance Call", market: "Mercato", market_depth: "Market Depth", market_frozen: "Il proprietario di %(asset)s ha disabilitato il trading in questo mercato.", market_name: "I miei mercati", market_picker: { filter_by_issuer: "Filter by issuer", find_by_asset: "Find by asset", results: "Results (%(total_assets)s)", search: "Asset name", search_for_asset: "Search for asset", search_mode: "Mode", show_all: "Show All", sub_title: "Find an asset to replace", title: "Market Picker", use: "Use" }, more: "Trova mercati", move_down: "Move down", move_up: "Move up", my_asks: "Le mie ask", my_bids: "Le mie bid", my_history: "Il mio storico transazioni", my_orders: "I miei ordini attivi", native: "Native", new: "Nuovo", no_asks: "No asks", no_balance: "Saldo insufficiente", no_bids: "No bids", no_data: "Nessun dato", no_orders: "No orders", order_book: "Order Book", order_depth: "Market Depth", order_grouping: "Order Grouping %(orderlimit)s%", others: "Altri", overbought: "Overbought", oversold: "Oversold", panels_mirror: "Mirror Panels", period: "Periodo (giorni)", price: "Prezzo", price_alert: { add_rule: "add rule", alert_when: "Alert me when", higher_than: "Higher Than", lower_than: "Lower Than", notification: { higher_than: "The price of %(pair)s rose higher than %(expectedPrice)s and now is %(actualPrice)s", lower_than: "The price of %(pair)s fell lower than %(expectedPrice)s and now is %(actualPrice)s" }, price: "Price", title: "Price Alert", use_button: 'Use "add rule" button to create price alert for ' }, price_history: "Grafico del prezzo", price_market: "Market Price", quantity: "Quantità", quick_deposit: "Deposit %(asset)s", quick_deposit_bridge: "Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s", quick_deposit_bridge_button: "Use a Bridge", quick_deposit_gateway: "Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway", quick_deposit_gateway_button: "Use a Gateway", quick_deposit_tooltip: "Deposit %(asset)s", quote: "Quote currency:", quote_selection: "Modify quote selection", quote_supply: "Disponibilità valuta quotata", receive: "Ricevi", remove: "Remove", rsi: "Relative Strength Index", scaled: "Scaled", search: "Cerca qui altri mercati", sell: "Vendi", sell_description: "Sell %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s", settings: { header: "Personalize", options: { grouping_1: "Group 1", grouping_2: "Group 2", grouping_standalone: "Standalone", hidden_chart: "Hide chart", horizontal: "Horizontal", position_order_asset_opt1: "Orders above Asset", position_order_asset_opt2: "Asset above Order", position_order_form_opt1: "Buy - Sell", position_order_form_opt2: "Sell - Buy", position_order_orders_opt1: "Buy - Sell", position_order_orders_opt2: "Sell - Buy", vertical: "Vertical" }, title: { chart_height: "Height", chart_tools: "View Tools", chart_type: "Type", chart_zoom: "Allow Zoom", hide_function_buttons: "Hide function buttons", market_location: "Market location", market_trades: "Market Trades", my_trades: "My Trades", open_orders: "Open Orders", order_book_grouping: "Order Book Grouping", order_style: "Style", orderbook_auto_scroll: "Auto scroll", position_order_asset: "Vertical Orders / Asset", position_order_form: "Buy/Sell Asset", position_order_orders: "Buy/Sell Orders", reduce_scrollbars: "Reduce Scroll Bars", reverse_order_book: "Reverse Order Book", settlements: "Settlements", single_colum_order_form: "Single Column Order Form" }, tooltip: { chart_height: "Define the height of the charts", chart_reload: "Changing this setting will reload the chart", chart_tools: "Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.", chart_type: "Switch between market depth and price charts, or disable charts", chart_zoom: "Allow chart zooming. Zooming is always disabled in tiny screen.", decrease_chart_height: "Decrease the height of the chart", hide_function_buttons: "Hide all buttons that can be managed within the personalize form", increase_chart_height: "Increase the height of the chart", market_location: "Which side to pin the vertical order book on. This will switch place with market panel", market_trades: "", my_trades: "", open_orders: "", order_book_grouping: "Group orders which are close together by a defined percentage", order_style: "Use vertical order book to pin it to the side panel", orderbook_auto_scroll: "Auto scroll the order book to keep center as new orders come in. Disable to allow scrolling", panel_grouping: "Define panel grouping", position_order_asset: "Define the vertical order for the order form vs order book", position_order_form: "Define the horizontal order for the order form", position_order_orders: "Define the horizontal order for the order book", reduce_scrollbars: "Disable scroll bars by default", reload: "Changing this option will only affect after manually reloading", reverse_order_book: "Reverse order book to have buy orders on top", settlements: "", show_market_depth: "Show market depth", show_price_chart: "Show price chart", single_colum_order_form: "Enforce that Price, Quantity, Total, etc. are in one column (not floating)" } }, settle: "Settlement", settle_better_marketprice: "Market price is in favour", settle_better_settleprice: "Settlement price is in favour", settle_delay: "This asset will settle in %(hours)s hours", settle_delay_globally_settled: "This asset will settle instantly", settle_globally_settled: "Settle instantly", settle_globally_settled_tooltip: "This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)", settle_offset: "Settlement price offset: %(offset)s%", settle_orders: "Ordini settle", settlement_hint: "You are attempting to settle {long}. Here is a price break down of {market_link}:", short: "Short", show_all_orders: "Show all %(rowcount)s orders", show_all_trades: "Show all %(rowcount)s trades", show_asks: "Mostra tutte le ask", show_bids: "Mostra tutte le bid", show_only_liquid: "Show liquid markets only", show_only_star_formatter: "Show {star_icon} only", sma: "Simple Moving Average", spread: "Spread", squeeze: "Prezzo Margin Call", time: "Candlestick", to_market: "Vai al mercato", total: "Totale", trading_pair: "Trading pair", value: "Valore", vertical: "Verticale", vol_short: "Vol", volume: "Volume", volume_24: "Volume 24h", worth_less_settlement_warning: "Warning! You can get a better price by selling to {market_link}.", your_price: "Il tuo Call Price", zoom: "Zoom", zoom_all: "Tutto" }, explorer: { account: { title: "Account" }, accounts: { filter: "Filtra account", filter_contacts: "Filtrare i contatti", title: "Account" }, asset: { actions: "Asset actions", collateral: { bid: "Bid Collateral", bid_price: "Bid price", bid_text: "Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.", remove_bid: "A bid can be removed by placing a zero collateral bid." }, collateral_bid: { bid: "Bid Price", collateral: "Additional Collateral", debt: "Debt Covered", included: { no: "No", partial: "Partially", yes: "Yes" }, title: "Collateral Bids" }, cumulative: "Cumulative", fee_pool: { claim_balance: "Claim fee pool balance", claim_fees: "Riscuoti commissioni", claim_pool_text: "The asset owner may withdraw funds from the fee pool using this form:", claim_text: "L'erogatore dell'asset può riscuotere qui eventuali commissioni accumulate.", core_exchange_rate: "Core exchange rate (CER)", fund: "Fund the fee pool", fund_text: "Il fee pool è usato per pagare le commissioni in %(core)s convertendo automaticamente le commissioni in %(asset)s a %(core)s. Se il fee pool esaurisce i fondi, le commissioni non possono più essere pagate in %(asset)s e saranno di default in %(core)s", pool_balance: "Saldo del pool", pool_text: "The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s.

    The core exchange rate is the price at which %(asset)s are converted to %(core)s.", title: "Fee Pool", unclaimed_issuer_income: "Reddito dell'erogatore non riscosso" }, feed_producer: "Feed producer", feed_producer_text: "Approved feed producers may publish a new feed using the form below:", info: "Asset info", invalid: "Il nome di asset %(name)s non è valido", margin_positions: { click_to_switch_to_cumulative: "Click to switch to cumulative sum of the columns.", ratio_danger: "Position is below MCR and will be margin called", ratio_warning: "Position is near MCR and in danger of being margin called", title: "Posizioni con margine" }, not_found: "L'asset %(name)s non esiste", permissions: { accounts_in_whitelist_market_fee_sharing: "Accounts included in Market fee sharing whitelist", blacklist_authorities: "Autorità blacklist", blacklist_markets: "Mercati in blacklist", max_market_fee: "Massima commissione di mercato", max_supply: "Massima disponibilità", title: "Permessi", whitelist_authorities: "Autorità whitelist", whitelist_markets: "Mercati in whitelist" }, price_feed: { external_feed_price: "Feed price (median of witness feeds)", feed_lifetime: "Feed lifetime (hours)", feed_price: "Feed price", global_settlement_price: "Global settlement happens at price", maintenance_collateral_ratio: "Rapporto di garanzia di mantenimento (MCR)", maximum_short_squeeze_price: "Maximum short squeeze price (MSSP)", maximum_short_squeeze_ratio: "Massimo short sqeeze ratio (MSSR)", min_feeds: "Minimum feeds", settlement_price: "", title: "Price Feed" }, price_feed_data: { core_exchange_rate: "CER", feed_price: "Feed price", maintenance_collateral_ratio: "MCR", maximum_short_squeeze_ratio: "MSSR", published: "Pubblicato", publisher: "Publisher", settlement_price: "", title: "Dati del Price Feed" }, settlement: { current_settled: "Already settled supply", delay: "Delay", force_settlement: "Force Settlement", gs_auto_revive_price: "Auto Revive Price (without/with bids)", gs_collateral_valuation: "Collateral Valuation (with bids)", gs_description: "Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.", gs_included_on_revival: "Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.", gs_or: "or", gs_place_bid: "click here to place a bid", gs_revert: "Reviving", gs_revive: "Asset will be revived automatically if auto revive price (bids included) is greater than feed price or all debt is force settled", gs_see_actions: "see Asset actions", max_settle_volume: "Max. settlement volume each maintenance period", offset: "offset included", price: "Price", settle_remaining_volume: "Remaining settleable volume", settlement_funds: "Settlement Funds", settlement_funds_collateral_ratio: "Settlement Fund Collateral Ratio", settlement_price: "", title: "Settlement" }, summary: { asset_type: "Tipo di asset", current_supply: "Disponibilità corrente", issuer: "Erogatore", market_fee: "Commissione di mercato", market_fee_referral_reward_percent: "Market fee referral reward", stealth_supply: "Disponibilità nascosta" }, title: "Asset", whitelist: { blacklist_authorities: "Autorita blacklist", blacklist_markets: "Blacklist mercato", enable_flag: "Il flag 'whitelist' deve essere abilitato per impostare le autorità whitelist", market_fee_enable_flag: "The market fee flag must be enabled in order to set whitelist", whitelist_authorities: "Autorità whitelist", whitelist_market_fee_sharing: "Market fee sharing whitelist", whitelist_markets: "Whitelist mercato" } }, assets: { backing_asset: "Backing asset", id: "ID", issuer: "Erogatore", market: "SmartCoin", precision: "Precisione", prediction: "Asset mercato di previsioni", symbol: "Simbolo", title: "Asset", units: "Unità", user: "Asset emessi dagli utenti (UIA)" }, block: { account_upgrade: "Account da iscrivere", asset_issue: "Quantità da emettere", asset_update: "Asset da aggiornare", authorizing_account: "Account autorizzante", call_limit: "Limite di Call", common_options: "Opzioni comuni", count: "Numero di transazioni", date: "Data", fee_payer: "Account che paga le commissioni", feed_price: "Feed price", go_to: "Vai al blocco", id: "ID blocco", key: "Chiave pubblica", lifetime: "Iscriviti come membro a vita", listed_account: "Account in lista", max_margin_period_sec: "Massimo periodo di margine (s)", new_listing: "Nuova voce", new_options: "Nuove opzioni", new_producers: "Nuovo produttore di feed", next_secret: "Hash segreto successivo", op: "Operazione", op_type: "Tipo di operazione", previous: "Precedente", previous_secret: "Segreto precedente", settlement_price: "", short_limit: "Limite di Short", time: "Ora", title: "Blocco", transactions: "Numero di transazioni", trx: "Transazione", witness: "Witness" }, blocks: { active_committee_members: "Membri del comitato attivi", active_witnesses: " Witness attive", avg_conf_time: "Tempo di conferma medio", block_time: "Tempo di blocco", block_times: "Tempi di blocco", current_block: "Blocco corrente", globals: "Parametri globali", last_block: "Ultimo blocco", recent: "Blocchi recenti", recently_missed_blocks: "Blocchi persi recentemente", title: "Blockchain", transactions: "# di transazioni", trx: "Transazioni", trx_per_block: "Trx/blocco", trx_per_sec: "Trx/s" }, committee_member: { title: "Membro del comitato" }, committee_members: { active: "Numero totale di membri del comitato attivi", title: "Membri del comitato" }, fees: { fee: "Commissione standard", feeeq: "(equivalente)", feeltm: "Commissione membro a vita/annuale", feeltmeq: "(equivalente)", type: "Tipo di commissione" }, proposals: { authority_depth_warning: "This proposal may not get approved because this permission exceeds the maximum authority depth.", children_authority_depth_warning: "This proposal may not get approved because a permission exceeds the maximum authority depth.", failed: "Failed", failed_execute: "Approved, failed to execute.", no_reason_available_switch_node: "Reason of failure is available with core release >=3.1.0, please switch your node.", pending: "Pending", pending_approval: "Pending approval.", pending_review: "Approved, review time.", review: "Review", title: "Transazioni proposte" }, witnesses: { budget: "Budget rimanente", card: "Visualizzazione a schede", current: "Witness attuale", filter_by_name: "Filtrer par nom", last_confirmed: "Ultimo confermato", missed: "Blocchi persi", next_vote: "Prossimo aggiornamento dei voti", participation: "Tasso di partecipazione", pay: "Paga-per-blocco", rank: "Posizione", table: "Visualizzazione a tabella", title: "Witness" }, workers: { create: "Crea una nuova worker proposal", create_text_1: "Per creare il nuovo worker, per favore riempi il seguente form. Il worker sarà creato usando il tuo account correntemente attivo, che deve già essere un membro a vita.", create_text_2: "Valuta attentamente i parametri che scegli, dal momento che non possono essere modificati una volta che hai pubblicato il tuo worker.", daily_pay: "Paga giornaliera (BTS)", date_text: "La data d'inizio dovrebbe essere almeno una settimana nel futuro, in modo da dare alle persone il tempo di scoprire, valutare e votare per il tuo worker.", name_text: "Il nome del tuo worker dovrebbe essere breve e descrittivo, tipo: 'Scopo del worker - Nome Account'", pay_text: "La paga giornaliera specifica quanto quanto vuoi essere pagato al giorno, ed è specificata in BTS. Attualmente, è buona norma definire il salario in USD/CNY, e impegnarsi a bruciare qualunque surplus che ottieni per via della crescita del prezzo di BTS. Finché il tuo worker è attivo e dispone di voti a sufficienza da stare sopra il Refund Worker, riceverai questa paga giornaliera.", period: "Durata worker", title: "Nome del worker", url_text: "Dovresti fornire un sito web, un documento github o Google doc che spieghi in dettaglio lo scopo del worker e come intendi utilizzare la paga del worker.", vesting_pay: "Periodo di vesting del salario (giorni)", vesting_text: "Il periodo di vesting definisce il numero di giorni che i guadagni del worker dovranno maturare (vest) prima di poter essere interamente riscossi.", website: "Sito web" } }, fees: { title: "Elenco commissioni" }, footer: { advanced_settings: "Advanced settings", backup: "È necessario un backup", block: "Head block", brainkey: "Raccomandato il backup della brainkey", connected: "Connected", connection: "Nessuna connessione alla Blockchain", disconnected: "Disconnesso", latency: "Latency", loading: "Caricamento...", nosync: "La blockchain non è sincronizzata, per favore attendi..", synced: "Sincronizzato", title: "BitShares", unsynced: "Fuori sincrono", update_available: "AGGIORNAMENTO DISPONIBILE" }, gateway: { add_funds: "Aggiungi fondi rapidamente e facilmente al tuo account BitShares %(account)s. Questo servizio è fornito da Openledger.", address: "Address", address_with_memo: '%(address)s con memo %(memo)s', agreement: { hint: "I have read and agreed to", name: "《Service Agreement》", notice: "Please check the agreement to continue", register: "Agree" }, asset: "Asset", asset_search_deposit: "Search for an asset to deposit", asset_search_withdraw: "Search for an asset to withdraw", asset_to_deposit: "Asset da depositare:", asset_to_receive: "Riceverai:", asset_to_withdraw: "Asset da prelevare:", asset_unavailable: "The gateway for %(asset)s is not in service", assets: { bit: "bit%(asset)s è un derivato che segue il valore reale di %(backed)s. È decentralizzato al 100%%, trustless e supportato da una garanzia trattenuta dalla blockchain in uno smart contract.", bitcny: "bitCNY v 1:1 verso veri Yuan usando un servizio di gateway come Magic Wallet. For more info, vedi https://www.magicw.net/", bridge: "The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by CryptoBridge.", gdex: "L'asset %(asset)s è garantito 1:1 da %(backed)s reali e può essere depositato o ritirato usando il servizio di gateway fornito da GDex.", open: "L'asset %(asset)s è garantito 1:1 da %(backed)s reali e può essere depositato o ritirato usando il servizio di gateway fornito da OpenLedger.", rudex: "L'asset %(asset)s è garantito 1:1 da %(backed)s reali e può essere depositato o ritirato usando il servizio di gateway fornito da Rudex.", trade: "L'asset %(asset)s è garantito 1:1 da %(backed)s reali e può essere depositato o ritirato usando il servizio di gateway fornito da Blocktrades.", win: "", xbtsx: "L'asset %(asset)s è garantito 1:1 da %(backed)s reali e può essere depositato o ritirato usando il servizio di gateway fornito da XBTS." }, balance: "Saldo attuale", balance_asset: "Saldo %(asset)s attuale", bitkapital_receive: "Riceverai", bitkapital_text: "Scegli un asset da depositare o prelevare:", bitkapital_withdraw: "Stai prelevando", bitspark: { support_block: 'For DEPOSIT AND WITHDRAWAL issues using "BitSpark TRANSFER SERVICE", please contact BitSpark at:' }, bridge: "Bridge", bridge_text: "Un bridge ti permette discambiare un asset verso un altro, ad esempio BTC in BTS.", calc: "Calcolo in corso", choose_deposit: "Per favore seleziona la valuta che vuoi depositare", choose_withdraw: "Per favore seleziona la valuta che vuoi prelevare", citadel: { coming_soon: "Prossimamente", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Per favore inserisci un numero >= minimo", support_block: "Per supporto, contatta citadel.li a:", under_construction: "Under Construction" }, contact_TRADE: "Contact Blocktrades", convert: "Quantità minima: %(minAmount)s %(symbol)s", convert_coin: "Converti in %(coin)s (%(symbol)s)", convert_now: "Converti adesso", copy_address: "Copy address", copy_memo: "Copy memo", deposit: "Deposito", deposit_address: "Deposit address", deposit_from_wallet: "Deposit from wallet", deposit_history_status: { confirming: "deposit confirming", fail: "fail", success: "success", transfering: "transfering", waiting: "waiting for deposit" }, deposit_inst: "Istruzioni per il deposito", deposit_limit: "Limite di deposito", deposit_notice_delay: "(new address can be generated once per 5 minutes)", deposit_summary: "Riepilogo deposito", deposit_to: "Per favore invia i tuoi %(asset)s all'indirizzo seguente", deposit_warning: "Sending any other currency to the %(asset)s address will result in the loss of your deposit", deposit_warning_memo: "Deposit %(asset)s must contains memo, otherwise it won't be credited", fee: "Commissione Gateway", fiat: "Fiat", fiat_text: "I depositi e i prelievi in valuta legale sono forniti da CCEDK. Per iniziare devi completare la procedura di registrazione. Sono disponibili le seguenti conversioni:", frozen: "The user account %(account)s was frozen", gateway: "Gateway", gateway_text: "Scegli qui se vuoi effettuare un deposito o un prelievo", generate: "Genera", generate_new: "Ottieni un nuovo indirizzo", generate_new_memo: "Get new memo", iban: "IBAN", info: "Info", intermediate: "Account intermedio", inventory: "Inventario", limit: "Limite: %(amount)s %(symbol)s", limit_withdraw_asset: "Min: %(min)s, Max: %(max)s", limit_withdraw_asset_max: "Maximum withdraw: %(min)s %(coin)s", limit_withdraw_asset_min: "Minimum withdraw: %(min)s %(coin)s", limit_withdraw_asset_none: "None", memo: "Memo", meta: { open_website: "Apri sito web" }, min_deposit_warning_amount: "Minimum Deposit: %(minDeposit)s %(coin)s", min_deposit_warning_asset: "IMPORTANT: Send only %(coin)s to this deposit address on the blockchain native to %(coin)s. Sending less than %(minDeposit)s %(coin)s or any other currency to this address may result in the loss of your deposit.", over_limit: "Limit Reached", phase_out_warning: "We recommend using the new {deposit_modal_link} and {withdraw_modal_link} modals as this page will be phased out", please_generate_address: "Please, get new address ", purchase: "Acquista %(asset)s", purchase_1: "Acquista %(outputAsset)s rapidamente e facilmente usando %(inputAsset)s da un portafoglio esterno. Questo servizio è fornito da Blocktrades", purchase_notice: "%(inputAsset)s sent to this address will show up as %(outputAsset)s", purchase_notice_memo: "Memo required for proper routing to your account", receive_account: "Account ricevente:", recent_deposit: "Depositi recenti", recent_withdraw: "Prelievi recenti", rudex: { coming_soon: "Prossimamente", min_amount: "Quantità minima: %(minAmount)s %(symbol)s", min_amount_error: "Per favore inserisci un numero >= minimo", support_block: "Per supporto, contatta RuDEX a:", under_construction: "Under Construction" }, scan_qr: "Scandisci QR", service: "Servizio di Trasferimento", status: "Status", support_block: "Per supporto, per favore contatta OpenLedger presso:", support_gdex: "For support, please contact GDEX", symbol: "Simbolo", time: "Time", title: "Deposito & Prelievo", transaction_history_info: " %(amount)s %(assetName)s with trancation id: %(txid)s ", unavailable: "Il servizio di gateway per questo asset non è al momento disponibile, riprova più tardi", unavailable_CITADEL: "The Citadel Bridge is down or not responding", unavailable_OPEN: "Il Gateway OpenLedger non è disponibile o non risponde", unavailable_RUDEX: "Il Gateway RuDEX non è disponibile o non risponde", unavailable_TRADE: "Il Bridge Blocktrades non è disponibile o non risponde", unavailable_bridge: "Il servizio di bridge per questo asset non è al momento disponibile, riprova più tardi", use_copy_button: "PLEASE USE COPY BUTTON TO MAKE COPY OF ADDRESS OR MEMO ON THIS PAGE", user_unavailable: "User informaction is current unavailable, please try again later", valid_address: "Per favore inserisci un indirizzo %(coin_type)s valido", website: "Visita il sito web", withdraw: "Prelievo", withdraw_coin: "Preleva %(coin)s (%(symbol)s)", withdraw_funds: "Stai per ritirare fondi dal tuo account BitShares verso il tuo conto %(asset)s esterno.", withdraw_history_status: { audited: "auditting completed", auditing: "withdraw auditing", confirming: "confirming", fail: "fail", refused: "auditting failed", success: "success", transfering: "transfering" }, withdraw_inst: "Istruzioni per il prelievo", withdraw_now: "Preleva adesso", withdraw_placeholder: "Per favore inserisci il tuo indirizzo %(asset)s", withdraw_summary: "Riepilogo prelievo", withdraw_to: "Clicca il pulsante sotto per iniziare un prelievo di %(asset)s", xbtsx: { coming_soon: "Coming soon", min_amount: "Minimum amount: %(minAmount)s %(symbol)s", min_amount_error: "Please enter number >= minimum", support_block: "For support, please contact XBTS at:", under_construction: "Under Construction" }, your_account: "Il tuo account" }, global: { cancel: "Cancel", close: "Close", confirm: "Confirm", field_type: { account: "account" }, help: "Help", not_found: "Not found", return_to_top: "Return to top", scan_qr_code: "Scan QR code", set: "Set" }, header: { account: "Account", account_notify: "L'account attivo è ora %(account)s", account_value: "Valore dell'Account", accounts_manage: "Gestisci account", collateral_ratio: "Collateral ratio", create_account: "Crea Account", create_asset: "Crea Asset", current: "Account corrente", dashboard: "Dashboard", "deposit-withdraw": "Deposit/Withdraw", deposit_legacy: "or Legacy Deposit", exchange: "Exchange", explorer: "Esplora", help: "Aiuto", lock: "Log out (blocca il portafoglio)", lock_short: "Log out", locked_tip: "
    Clicca per fare il login e sbloccare il tuo portafoglio.

    Chiudere la finestra del browser effettuerà automaticamente il log out.", logout: "Logout", payments: "Invia", payments_legacy: "Send (legacy)", settings: "Impostazioni", showcases: "Spotlight", title: "BitShares UI", unlock: "Log in (sblocca il portafoglio)", unlock_password: "Log in usando una password", unlock_short: "Login", unlocked_tip: "
    Clicca per fare il logout e bloccare il tuo portafoglio.

    Chiudere la finestra del browser effettuerà automaticamente il log out.", update_asset: "Aggiorna Asset", withdraw_legacy: "or Legacy Withdraw" }, htlc: { claim_period: "Seconds to claim", claim_period_due: "Claimable until", id: "HTLC id", preimage: "Preimage", preimage_explanation: "The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC", preimage_hash: "Preimage hash", preimage_hash_explanation: "The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: '(, ): '", redeemer: "Redeemer", seconds_to_add: "Add seconds to claim period", update_issuer: "Update issuer" }, icons: { adjust: "Adjust margin position", assets: "Assets", checkmark_circle: { approved: "Approved", operation_succeed: "Operation succeed", yes: "Yes" }, chevron_down: { gateways: "Show more gateways", other: "Show more items", transactions: "Show more transactions" }, clippy: { copy: "Copy to clipboard", withdraw_full: "Withdraw the full balance" }, clock: "Please check your computer's clock", cog: "Settings", cogs: "Settings", connect: "Connect to this API Node", connected: "API Node is connected", cross_circle: { cancel_order: "Cancel order", close_position: "Close position", hide_asset: "Hide asset", hide_market: "Hide market", operation_failed: "Operation failed", remove: "Remove" }, dashboard: "Dashboard", "debug-report": "Report your error log console, or create a screenshot", deposit: { deposit: "Deposit", deposit_withdraw: "Deposit/Withdraw" }, disconnected: "API Node is disconnected", dollar: { borrow: "Borrow", buy: "Buy" }, download: "Download new version of BitShares UI", excel: "Download .csv file", eye: "Hide Node", "eye-striked": "Show Node", fees: "Fees", fi_star: { account: "Add/remove account from favorites", market: "Add/remove market from favorites", sort_accounts: "Sort by favorites", symbol: "Add/remove symbol from favorites" }, filter: "Filter", folder: "Accounts", hamburger: "Open menu", hamburger_x: "Close menu", hourglass: "Vesting balances", info_circle_o: "Info", key: "Key", list: "Whitelist", locked: { action: "Click to unlock your account to perform this action", common: "Click to unlock your account", enable_auto_scroll: "Enable auto scroll" }, manage_accounts: "Manage Accounts", minus_circle: { disapproved: "Disapproved", no: "No", remove_contact: "Remove contact from the list", wrong_address: "Unable to generate address" }, news: "News", order_grouping: "Order Grouping Active", plus_circle: { add_contact: "Add contact to the list", show_asset: "Show asset", show_market: "Show market" }, power: "Login", question_circle: "Help", reverse_orderbook: "Reverse orderbook", server: "Explore", settle: "Settle", share: "About", shuffle: "Switch trading pair", text: { membership_stats: "Membership stats", signed_messages: "Signed messages" }, thumb_tack: "Pin panel to the side", thumb_untack: "Unpin panel", thumbs_up: "Voting", times: "Remove API Node", trade: { exchange: "Exchange", trade: "Trade" }, transfer: "Send", unlocked: { common: "Click to lock your account", disable_auto_scroll: "Disable auto scroll" }, user: { account: "Account", create_account: "Create account", following: "You are following this user" }, warning: "Permissions", withdraw: "Withdraw", zoom: "Search" }, incognito: { mode: "Private/Incognito:", warning: "If you close your browser without backing up your wallet, you will lose this account permanently." }, languages: { de: "Deutsch", en: "English", es: "Español", fr: "Français", it: "Italiano", ja: "日本語", ko: "한국어", ru: "Русский", tr: "Türkçe", zh: "简体中文" }, login: { browseFile: "browse your files", browseFileLabel: "Browse your backup file", dropFile: "Drop your backup file in this area or ", invalidFormat: "Invalid format!", loginButton: "Login", selectDifferent: "Select different file", supportWarning: "Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup.", title: "Select Login Type", withoutBinFile: "I don't have .bin-file" }, markets: { base: "Asset di base", core_rate: "Core rate", filter: "Filtra", market_search: "Cerca mercato", preferred: "Mercati preferiti", search: "Cerca", supply: "Disponibilità", title: "Mercati" }, migration: { announcement_1: "In an effort to provide enhanced security for the web-based wallet, we are migrating it, effective immediately to the address below. Please be sure to update any bookmarks you may have.", text_1: "Local wallet detected", text_2: "Please backup your wallet now and restore the backup file to https://wallet.bitshares.org, which will be your new address for the web wallet. Thanks for your continued support.", text_3: "Please use https://wallet.bitshares.org from now on, your existing credentials will let you login there as well.", title: "Notice" }, modal: { buy: { asset: "Asset", bridge: "Bridge", title: "Buy" }, cancel: "cancel", close: "close", committee: { confirm: "CONFIRM", create_committee: "Become a committee member", from: "From", text: "After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
    • Transaction fees
    • Parameters of BitAssets (e.g. market fees)
    • Blockchain parameters (e.g. block size & interval)
    • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
    • Other governance matters
    Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.", url: "URL", web_example: "Enter link to your committee proposal post" }, confirmation: { accept: "Sì", cancel: "No", title: "L'indirizzo che hai inserito non sembra valido, sei sicuro di voler continuare con il prelievo?" }, convert: { amount: "Quantità da convertire", submit: "Ok" }, deposit: { address_generation_error: "Unable to generate address", amount: "Quantità da depositare", asset: "Asset", bts_transfer_description: "It's easy to receive BTS from anywhere. As long as BTS is sent to your account name it will show up in your wallet. This QR code also contains your account name.", cancel: "Cancel", close: "Close", header: "Deposit to %(account_name)s", header_short: "Deposit", no_assets: "No depositable assets available", submit: "Deposita" }, deposit_withdraw: { disabled: "%(gateway)s gateway service disabled", gateway: "Gateway", no_gateway_available: "No gateway available", select_gateway: "Please select a gateway operator", wallet_error: "Gateway wallet disabled" }, issue: { amount: "Quantità da emettere", submit: "Emetti asset", to: "Emetti a" }, ok: "OK", proposals: { actions: { approve: "Approve proposal", delete: "Permanently reject proposal", reject: "Reject proposal" }, approval_add: "Approvazione da aggiungere", approval_remove: "Approvazione da rimuovere", key_approval_add: "Approvazione chiave da aggiungere", key_approval_remove: "Approvazione chiave da rimuovere", pay_with: "Paga con account" }, qrcode: { input_message: "Inserisci una password usata per crittografare il codice QR.
    Una password vuota mostrerà un codice QR in chiaro.", label: "qrcode", title: "Codice QR della chiave privata" }, report: { button: "Report", copyLog: "Copy Log", copyScreenshot: "Right click in Image Preview -> Copy", copySuccess: "Copy ended", explanatory_text_1: "This report collects the last entries in the console log and takes a screenshot of the current view before the modal is opened. Click on either entry to see the details.", explanatory_text_2: "Please report the issue you have found to GitHub:", explanatory_text_3: "You can copy and paste (CTRL+V) the screenshot as well as the log entries directly into the issue content text area, pasting the screenshot also works in telegram chat.", explanatory_text_4: "If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:", hideLog: "Hide Log", hideScreenshot: "Hide screenshot", lastLogEntries: "Last 20 log entries", screenshot: "Screenshot", showLog: "Show Log", takeScreenshot: "Show screenshot", title: "Error report" }, reserve: { amount: "Quantità da riservare", from: "Account da cui riservare", submit: "Riserva", title: "Riserva (brucia) asset", warning_message: "Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!" }, save: "save", send: { header: 'Send from %(fromName)s', header_propose: 'Propose Send from %(fromName)s' }, settle: { amount: "Quantità di cui fare settlement", delay: "Estimated delay: %(amount)s hours", max_volume: "Max. settlement volume: %(amount)s %(asset)s", remaining_volume: "Remaining settleable volume: %(amount)s %(asset)s", submit: "Fai il settlement", title: "Richiedi settlement di %(asset)s" }, withdraw: { address: "Preleva verso l'indirizzo", address_not_valid: "Invalid address", amount: "Quantità da prelevare", available: "Available: ", bitshares_account: "Send to Bitshares Account", cancel: "Cancel", cannot_cover: "Insufficient funds!", estimated_value: "Estimated Value", fee: "Fee", gateway_fee: "Gateway Fee", header: "Withdraw (beta)", memo: "Memo", no_assets: "No withdrawable assets available", no_estimate: "No estimate available for this object", no_gateways: "Sorry, but there are no gateways available to handle this withdrawal", quantity: "Quantity", submit: "Preleva", withdraw: "Withdraw" }, witness: { confirm: "CONFIRM", create_witness: "Become a witness member", enter_public_signing_key: "Enter your public signing key", invalid_key: "Public Key is invalid", public_signing_key: "Public Signing Key", text: "After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
    • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
    • participation in block production and rolling releases of the testnet
    • provision of a public node for the community
    • publication of price feeds for the BitAssets
    Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.", url: "URL", web_example: "Enter link to your witness proposal post", witness_account: "Witness Account" } }, news: { author: "Author", errors: { fetch: "Ops... Something went wrong fetching the news" }, news: "News", subject: "Subject" }, notifications: { account_create_failure: "Failed to create account: %(account_name)s - %(error_msg)s", account_permissions_update_warning: "Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you're doing before modifying account authorities!", account_wallet_create_failure: "Failed to create wallet: %(error_msg)s", asset_issue_failure: "Failed to issue the asset, probably due to an invalid amount being issued", backup_file_save_unsupported: "File saving is not supported", balance_claim_error: "Error claiming balance: %(error_msg)s", exchange_enter_valid_values: "Please enter a valid amount and price", exchange_insufficient_funds_for_fees: "Insufficient funds to pay fees", exchange_insufficient_funds_to_place_order: "Insufficient funds to place order, you need at least %(amount)s $(symbol)s", exchange_unknown_error_place_order: "Unknown error. Failed to place order for %(amount)s %(symbol)s", exchange_unknown_error_place_scaled_order: "Unknown error. Failed to place Scaled Order", import_keys_already_imported: "This wallet has already been imported", import_keys_error: "Account %(account_name)s had a private key import error: %(error_msg)s", import_keys_error_unknown: "Key import error: %(error_msg)s", invalid_password: "Invalid Password", password_change_failure: "Unable to change password: %(error_msg)s", password_change_success: "Password changed", wallet_unlock_different_block_chain: "This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s", worker_create_failure: "Failed to create worker: %(error_msg)s" }, openledger: { deposit_amount: "Deposit Amount", deposit_details: "Details", deposit_none: "No deposits", header_fiat: "Fiat", header_transaction_history: "Transaction history", loading: "Loading...", refresh_transaction_history: "Refresh", retry: "Retry", show_transaction_history: "Show transaction history", status: "Status", withdraw_amount: "Withdrawal Amount", withdraw_none: "No withdrawals" }, operation: { annual_upgrade_account: "{account} è stato promosso a membro annuale", asset_claim_pool: "{account} claimed {amount} from asset {asset}'s fee pool", asset_create: "{account} ha creato l'asset {asset}", asset_fund_fee_pool: "{account} ha finanziato il fee pool di {asset} con {amount}", asset_global_settle: "{account} ha richiesto il settlement globale di {asset} a {price}", asset_issue: "{account} ha emesso {amount} a {to}", asset_reserve: "{account} ha riservato (bruciato) {amount}", asset_settle: "{account} ha richiesto il settlement di {amount}", asset_settle_cancel: "{account} cancelled settlement of {amount}", asset_settle_instant: "{account} settled {amount} instantly at {price}", asset_update: "{account} ha aggiornato l'asset {asset}", asset_update_feed_producers: "{account} ha aggiornato i produttori di feed per l'asset {asset}", asset_update_issuer: "{from_account} transferred {asset} to {to_account}", balance_claim: "{account} ha riscosso un saldo di {amount}", bid_collateral: "{bid_account} bid {collateral} for {debt}", blacklisted_by: "{lister} ha messo in blacklist l'account {listee}", call_order_update: "{account} ha cambiato il debito {debtSymbol} di {debt} e la garanzia di {collateral}", committee_member_update_global_parameters: "{account} ha aggiornato i parametri globali del comitato", fill_order_buy: "{account} ha acquistato {amount} per {price}", fill_order_sell: "{account} ha venduto {amount} per {price}", htlc_create: "{from} locked {amount} for {to} to redeem until {lock_period}", htlc_extend: "{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}", htlc_redeem: "{redeemer} request to redeem from HTLC {htlc_id}", htlc_redeemed: "{to} redeemed {amount} from HTLC {htlc_id} of {from}", htlc_refund: "{to} got refund of HTLC {htlc_id}", lifetime_upgrade_account: "{account} è stato promosso a membro a vita", limit_order_buy: "{account} ha fatto un ordine per comprare {amount} a {price}", limit_order_cancel: "{account} ha annullato l'ordine #%(order)s", limit_order_sell: "{account} ha fatto un ordine per vendere {amount} a {price}", no_recent: "Nessuna transazione recente", override_transfer: "{issuer} ha trasferito {amount} da {from} a {to}", pending: "in attesa da %(blocks)s blocchi", proposal_create: "{account} ha creato una proposta di transazione", proposal_delete: "{account} ha rimosso una proposta di transazione", proposal_update: "{account} ha aggiornato una proposta di transazione", publish_feed: "{account} ha pubblicato un feed price di {price}", reg_account: "{registrar} ha registrato l'account {new_account}", set_proxy: "{account} ha scelto {proxy} come suo proxy di voto", transfer: "{from} ha inviato {amount} a {to}", transfer_account: "L'ownership di {account} è stata transferita a {to}", unlisted_by: "{lister} ha delistato l'account {listee}", update_account: "{account} ha aggiornato i dati del suo account", vesting_balance_withdraw: "{account} ha ritirato un saldo vesting di {amount}", whitelisted_by: "{lister} ha messo in whitelist l'account {listee}", witness_create: "{account} è stato promosso per diventare una witness", witness_pay: "Ha ritirato il salario di witness verso l'account", witness_receive: "Ha ricevuto la witness dalla witness", witness_update: "{account} ha aggiornato i suoi dati di witness", worker_create: "{account} ha creato una worker proposal con un salario giornaliero di {pay}" }, page404: { asset_not_found_subtitle: "That asset does not exist", home: "Zuhause", market_not_found_subtitle: "That market does not exist", page_not_found_subtitle: "Diese Seite existiert nicht", page_not_found_title: "404 Seite nicht gefunden" }, pagination: { newer: "Più recenti", older: "Più vecchi" }, proposal: { action: "Azioni", add: "Add", add_vote: "Add vote for", approve: "Approva", approvers: "Approver(s)", asset_create: "Crea l'asset %(asset)s usando l'account {account}", asset_issue: "Emetti {amount} a {to} usando {account}", asset_reserve: "Riserva (brucia) {amount} usando {account}", asset_settle: "Richiedi un settlement di", asset_update: "Aggiorna l'asset {asset} usando l'account {account}", call_order_update: "Cambia il debito {account} {debtSymbol} di {debt} e la garanzia di {collateral}", changes_to_active: "Changes to active", changes_to_memo: "Changes to memo", changes_to_owner: "Changes to owner", committee_member_update_global_parameters: "Aggiorna i parametri globali del comitato da {account}", danger_operation: "Dangerous operation", delete: "Permanently reject", expires: "Scade", feed_producer: "Aggiorna i produttori di feed per l'asset {asset} usando l'account {account}", limit_order_buy: "Ordina l'acquisto {amount} a {price} per {account}", limit_order_create: "Ordina l'acquisto di %(buy_amount)s per %(sell_amount)s per %(account)s", limit_order_sell: "Ordina la vendita di {amount} a {price} per {account}", override_transfer: "Trasferisci {amount} da {from} a {to} per autorità di {issuer}", permission_changes: "Permission changes", proposals: "Proposals", reject: "Respingi", remove: "Remove", remove_vote: "Remove vote for", set_threshold: "Set threshold to %(threshold)s", status: "Stato", transfer: "Trasferisci {amount} da {from} a {to}", update: { active_approvals_to_add: "Approvazioni attive da aggiungere", active_approvals_to_remove: "Approvazioni attive da rimuovere", key_approvals_to_add: "Approvazioni chiave da aggiungere", key_approvals_to_remove: "Approvazioni chiave da rimuovere", owner_approvals_to_add: "Approvazioni del proprietario da aggiungere", owner_approvals_to_remove: "Approvazioni del proprietario da rimuovere" }, update_account: "Aggiorna dati account per {account}", updated: { active_approvals_to_add: "Active approval(s) added", active_approvals_to_remove: "Active approval(s) removed", key_approvals_to_add: "Key approval(s) added", key_approvals_to_remove: "Key approval(s) removed", owner_approvals_to_add: "Owner approval(s) added", owner_approvals_to_remove: "Owner approval(s) removed" }, vesting_balance_withdraw: "Preleva {amount} dal saldo vesting di {account}", votes: "Votes" }, proposal_create: { expiration_time: "Data di scadenza", fee_paying_account: "Account che paga la commissione", id: "Object id proposta", proposed_operations: "Operazioni proposte", review_period: "Inizio periodo di revisione" }, proposal_delete: { using_owner_authority: "Using owner authority" }, propose: "Proponi", qr_address_scanner: { address_found: "Indirizzo trovato", amount: "Importo", retry: "Riprova", use_address: "Usa indirizzo" }, refcode: { claim: "Richesta", claim_refcode: "Richiedi Referral Code", enter_refcode: "Inserisci il Referral Code", refcode_optional: "Referral Code (facoltativo)" }, registration: { accountConfirmation: "I have written down or otherwise stored my username and password.", accountDescription: "Please keep your password in a safe place. Don’t share it with any third-parties or send it online.", accountLoginByValue: "Account name + Password", accountModelTitle: 'By Account Name and Password', accountNote: "If you forget your pass phrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!", attention: "Attention", backUpRestoreKey: "Back up and restore Account", checkboxRecover: "I understand that no one can recover my password or .bin file if I forget or lose it.", checkboxRemember: "I have remembered or otherwise stored my password and I safely kept downloaded .bin file.", checkboxUploaded: "I understand that .bin file must be uploaded during the login process and without .bin file I will lose access to my funds.", continue: "Continue", copyPassword: "Copy your password to save.", createAccountTitle: "Create Account by Bin-file", createByPassword: "Create Account by Name and Password", downloadFile: "Download file", loginByKey: "Login by", passwordPlaceholder: "Minimum 7 characters", recommended: "recommended", securityAccountModel: "Medium", securityKey: "Security", securityWalletModel: "High", select: "Select", title: "Registration", walletDescription: "A bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to upload this file to login to your account in the future.", walletLoginByValue: "Bin-file + Password", walletModelTitle: "By bin-file", walletNote: "Please keep in mind, that BitShares doesn't store users passwords and couldn't recover users accounts after password loss.", whyBinFile: "Why do I need a .bin file?" }, scaled_orders: { action: { buy: "Buy", sell: "Sell", title: "Action" }, distribution: { flat: "Flat", title: "Distribution" }, fee: "Fee", market_fee: "Market Fee", order_count: "Order Count", order_s: "Order(s)", please_log_in: "You need to login before use Scaled Orders", preview_table: { price: "Price" }, price_lower: "Price Lower", price_upper: "Price Upper", quantity: "Quantity", title: "Scaled Order", total: "Total" }, settings: { access: "Accesso", access_text: "", accounts: "Account", accounts_text: "La tua lista di account.", activate: "Attiva", active_node: "Nodo attivo", add_api: "Aggiungi Nodo", add_ws: "Aggiungi Nodo", always_confirm: "Chiedi sempre conferma", apiServer: "Full node API server", api_closest: "Scegli il più vicino automaticamente", automatic: "Automatically select node (%(totalNodes)s available)", automatic_short: "Automatic Switching", available_nodes: "Nodi disponibili", backup: "Backup", backup_backup: "Ripristina da un file di backup (.bin)", backup_backup_short: "Restore from a backup", backup_brainkey: "Ripristina utilizzando una brainkey del portafoglio", backup_favorites: "Restore favorites using a json file", backup_favorites_error: "Could not parse JSON.", backup_favorites_finish: "Import favorites", backup_favorites_success: "Successfully restored market favorites", backup_favoritesbtn: "Backup favorites", backup_favoritestext: "Back up your favorites to restore them later after updates.", backup_key: "Importa chiave privata", backup_legacy: "Importa un file di esportazione della chiave di BTS 0.9.3c (.json)", backup_text: "Crea qui i backup.", backupcreate_backup: "Crea backup del portafoglio", backupcreate_brainkey: "Crea backup della brainkey", backupcreate_favorites: "Create favorites backup", browser_notifications: "Notifiche del browser", browser_notifications_additional_transfer_to_me: "Notifica sui trasferimenti al mio account", browser_notifications_allow: "Attivare le notifiche", browser_notifications_disabled_by_browser_notify: "Your browser disabled notifications. Click to learn how enable browser notifications", cloud_login: "Login Portafoglio Cloud", confirmMarketOrder: "Chiedi conferma per gli ordini di mercato", confirm_no: "Mai", confirm_remove: "Sei sicuro di voler rimuovere %(name)s dalla lista dei nodi disponibili?", confirm_yes: "Sempre", connection_error: "Impossibile connettersi con il nodo API node %(url)s; ripiegando su nodi funzionanti noti", darkTheme: "Tema scuro", delete_select: "Seleziona portafoglio da rimuovere", disabled: "Disabled", enable_wallet: "Abilità modalità portafoglio", faucet_address: "Faucet", faucet_address_text: "L'indirizzo del faucet è usato per pagare la commissione di registrazione dei nuovi utenti.", general: "Generali", general_text: "Modifica le impostazioni di base.", global_settings: "Default Global Settings", hidden_nodes: "Nodi nascosti", hide: "Nascondi", high_latency: "Alta latenza", inverseMarket: "Preferenza orientazione del mercato", left: "Left", lightTheme: "Tema chiaro", local_wallet: "Login Portafoglio locale", locale: "Cambia lingua", lookup_text: "Clicca il pulsante sotto per verificare la presenza di saldi non riscossi da BTS 1.0", low_latency: "Bassa latenza", medium_latency: "Media latenza", midnightTheme: "Midnight", my_nodes: "Personal", no: "No", no_accounts: "Questo portafoglio non contiene alcun account.", node_already_exists: "Node with such URL already exists", node_down: "GIÙ", node_up: "SU", olDarkTheme: "Openledger scuro", orderbook_autoscroll: "Order Book Autoscroll", orderbook_grouping: "Order Book Grouping", orderbook_reverse: "Order Book Reversed", password: "Password", passwordLogin: "Fai il login usando il modalità account", password_text: "Cambia la tua password.", personal_active: "Your only personal node is active, to remove or modify it you must first connect to a different node", ping: "Ping Nodes", pinging: "Pinging ...", placeholder_select: "Select option", remove: "Rimuovi", remove_api: "Rimuovi Nodo", remove_ws: "Rimuovi Nodo", reset: "Impostazioni predefinite", reset_text: "Ripristina le impostazioni ai loro valori originali", reset_text_description: "Ciò ripristinerà tutte le impostazioni %(generalName)s, di %(accessName)s e di %(faucetName)s", restore: "Ripristina/Importa", restore_brainkey_text: "Per effettuare il ripristino da una brainkey, dovrai creare un nuovo portafoglio. Per favore fornisci sotto una password e il nome del tuo portafoglio, quindi inserisci una brainkey.", restore_default_success: "Le impostazioni sono state reimpostate con successo.", restore_key_count: "# di chiavi", restore_text: "Ripristina da un backup o importa le chiavi.", right: "Right", scrollbars_hide: "Reduce scroll bars", show: "mostra", showAssetPercent: "Mostra percentuali asset nella pagina Account", showSettles: "Mostra settlement nel depth chart", skipped: "Skipped", switch: "Switch Node", testnet_nodes: "Testnet", testnet_nodes_disclaimer: "Availability of the testnet is not guaranteed. Establish a connection by connected manually to one of the nodes below:", themes: "Tema", unit: "Unità preferite per l'account", valid_node_url: "L'URL del Nodo deve iniziare con ws:// oppure wss://", viewOnlyMode: "View only mode", view_keys: "Vedi chiavi", wallet: "Portafoglio", walletLockTimeout: "Tempo di autoblocco del portafoglio (in secondi, 0 per disabilitare)", walletLockTimeoutTooltip: "Click to adjust the time before the wallet auto-locks", wallet_required: "Modalità portafoglio richiesta", wallet_required_text: "Per ripristinare un backup devi prima passaere alla modalità portafoglio, cliccando il pulsante sotto", wallet_text: "Controlla i dettagli del tuo portafoglio.", wallets: "Portafogli", yes: "Sì" }, showcases: { barter: { account: "Account", action: "Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ", add_escrow: "Add escrow", add_escrow_tooltip: "Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1's funds.", balance_warning: "Balance Warning", balance_warning_line: "wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s", balance_warning_tooltip: "%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed", bartering_asset: "Bartering asset", description: "Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.", error_fill_in_escrow_name: "Please fill in the account name of the escrow", error_fill_in_peer_left_name: "Please fill in the account name of Peer 1", error_fill_in_peer_right_name: "Please fill in the account name of Peer 2", error_fill_in_valid_asset_amount: "Please fill in valid amounts for the bartering assets", error_same_name: "Peer 1 and Peer 2 must be different accounts", error_same_name_escrow: "The escrow can not be Peer 1 or Peer 2", escrow_account: "Escrowing account", escrow_as_custodian: "An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.", escrow_as_witness: "An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.", escrow_payment: "Payment for escrow services", escrow_payment_tooltip: "Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1's account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.", fee_due_now: "Fee due now", fee_due_now_tooltip: "The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow", fee_when_proposal_executes: "Fee when proposal executes", fee_when_proposal_executes_tooltip: "When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations", new_barter: "Propose a new barter", new_barter_tooltip: "This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow", not_complete: "Please fill out all fields to see a description of the action here", peer_left: "Peer 1", peer_right: "Peer 2", proposal_fee: "Proposal fee", proposal_fee_tooltip: "The indicated transaction fee will be paid to create the proposal to realize this barter", propose_tooltip: "This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Dashboard, approve the proposal and notify the other involved parties.", remove_escrow: "Remove escrow", send_to_escrow: "Use escrow as custodian for Peer 1's funds", send_to_escrow_tooltip: "Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2", title: "Barter", total_fees: "Total fees: %(fee)s %(asset)s", total_fees_tooltip: "The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter" }, borrow: { borrow_tooltip: "You can also find this feature in your Dashboard under the tab Margin Positions, or by clicking Borrow in the Exchange", choose: "Choose the SmartCoin you want to create a position for", description: "Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)", do_it: "Let's do it", get_started: "Get started", navigate_with_keys: "The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate", next: "Next", now_ready: "Finalize the creation of your own Collateralized Debt Position", previous: "Previous", steps_benefits: { text: "Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.", text_legend: "Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).", title: "Benefits", title_within: "What are the benefits?" }, steps_concept: { text: "A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.", text_legend: "Example bitUSD: Provide BTS as collateral to borrow bitUSD", title: "Concept", title_within: "What is a Collateralized Debt Position?" }, steps_costs: { text: "Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ", title: "Settlement", title_within: "" }, steps_introduction: { text: "Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.", title_within: "This is the place to generate SmartCoins (Market Pegged Assets, MPAs)" }, steps_risks: { text: "As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.", text_legend: "Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.", title: "Risks", title_within: "What are the risks involved in borrowing?" }, steps_setup: { text: "You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.", text_legend: "Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.", title: "Setup", title_within: "How does it work?" }, title: "Collaterized Debt Position", title_long: "Create a Collateralized Debt Position" }, direct_debit: { amount_to_withdraw: "Amount to collect", authorized_account: "Payee", authorizing_account: "Payer", claim: "Claim", claim_funds: "Claim funds", create: "Create", create_new_mandate: "Create authorization", current_period_expires: "Current period ends", delete: "Delete", description: "Setup a direct debit mandate for recurring payments. The mandate allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.", expires: "Expires", first_period_not_started: "First period has not started!", limit: "limit", limit_per_period: "Maximum amount per period", num_of_periods: "Number of periods", period: "Specify period", start_date: "First period starts on", title: "Direct debit", tooltip: { authorized_account: "The account that is eligible to collect from your account.", limit_per_period: "The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.", num_of_periods: "After the start time this amount of periods are available consecutively.", period: "One period lasts the indicated time interval, e.g. 2 weeks.", start_time: "The start time of the first period must be in the future when broadcasting." }, update: "Update", update_mandate: "Update existing authorization" }, htlc: { actions: "Actions", amount: "Amount", create_htlc: "Create HTLC", custom: "Custom", description: "A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.", enter_secret_preimage: "Enter secret preimage", expiration: "Expiration", expiration_date: "Expiration date", expiration_period: { one_day: "One day", one_week: "One week", two_days: "Two days" }, expires: "Expires", extend: "Extend", extend_htlc: "Extend HTLC", first_stage: "1st stage", from: "From", hash: "Hash", preimage: "Preimage", preimage_has_been_created: "A random preimage has been created and filled in automatically below", recipient: "Recipient", redeem: "Redeem", redeem_htlc: "Redeem HTLC", second_stage: "2nd stage", sender: "Sender", size: "Size", title: "Hashed Time-Lock Contracts", to: "To", tooltip: { enter_preimage: "Enter the secret preimage that you have obtained from the sender", new_random: "Roll the dice and create a new random string.", preimage_button: "Please click to enter secret preimage", preimage_hash: "The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.", preimage_input: "Field requires a secret preimage", preimage_random: "The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.", preimage_size: "The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size." } }, paper_wallet: { description: "Create a PDF with your account's keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.", title: "Paper Wallet" }, timed_transfer: { description: "Initiate a transfer that will execute at a specified time.", title: "Timed transfer" }, voting: { description: "Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.", title: "Voting" } }, sync_fail: { sub_text_1: "Per favore controlla che l'ora del tuo computer sia corretta.", sub_text_2: "Dopo aver sincronizzato l'ora, ricarica questa pagina.

    Se l'ora è già impostata correttamente, il server API che stai utilizzando potrebbe essere fuori sincrono. In questo caso, prova ad utilizzare un altro server dalla lista seguente.", title: "Sincronizzazione con il server API fallita" }, tooltip: { add_memo_field: "Aggiungi il campo di testo memo", borrow: "Prendi in prestito %(asset)s dalla rete. Ciò crea uno smart contract che blocca la tua garanzia finché o modifichi la tua posizione oppure è richiesta una chiamata a margine.", borrow_disabled: "%(asset)s is in global settlement. Margin positions can't be created until it is revived. See asset details page for more information", bridge: "Bridges allow deposit of any external assets and instant trade into the desired gateway asset", bridge_TRADE: "BlockTrades is a bridge which supports instant trade of assets. Details and terms can be found on https://blocktrades.us", buy_min: "Riceverai come minimo questa quantità. Se vi sono ordini corrispondenti con un prezzo inferiore rispetto a quello che hai specificato, riceverai più di questa quantità.", call_limit: "Questo è il prezzo di chiamata (call price) della posizione con margine nel mercato con la più bassa garanzia.", call_price: "Questo è il prezzo di chiamata della posizione. Se il prezzo di mercato scende sotto il prezzo di chiamata, la posizione sarà chiamata a margine.", close_position: "Clicca qui per chiudere la sua posizione. Sarà necessario che tu abbia almeno %(amount)s %(asset)s per eseguire questa operazione.", coll_ratio: "Il 'collateral ratio' della posizione è COLLATERAL * FEED PRICE / DEBT.", copy_password: "Clicca qui per copiare la password negli appunti", copy_tip: "Clicca per copiare il testo", cr_danger: "Questa posizione è chiamata a margine in questo momento. Considera la possibilità di aggiungere garanzia per portare il 'collateral ratio' sopra %(mr)s, oppure di chiudere la posizione.", cr_warning: "Questa posizione ha un basso livello di garanzia, e sarà chiamata a margine se il 'collateral ratio' scende sotto %(mr)s. Valuta se vuoi aggiungere ulteriore garanzia o chiudere la posizione.", debug_report: "Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.", deposit_tip: "Per completare il deposito, vai al tuo portafoglio %(asset)s ed effettua un trasferimento all'indirizzo mostrato in questa pagina. Riceverai il deposito non appena il trasferimento sarà confermato. Se viene mostrato un memo, è essenziale che tu lo includa nel tuo trasferimento.", disconnected: "Non sei connesso a un nodo API, prova a ricaricare o a scegliere un nuovo punto di accesso nelle Impostazioni", feed_price: "This is the current external feed price", filter_ops: "Usa questa lista per filtrare il tuo storico secondo il tipo di operazione.", follow_user: "You are following this user", follow_user_add: "Click to Follow this user", gateway: "Gateways provide IOUs on the BitShares Blockchain that are backed by the real asset", generate: "La password generata è stata creata localmente nel tuo browser.

    Nessuno oltre a te ha accesso ad essa.

    Incollala sotto e salvane una copia in un posto sicuro", global_settle: "This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).", global_settle_price: "This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly", hide_asset: "Clicca qui per nascondere quest'asset da questa lista.", lack_funds: "There is not enough funds to perform the operation", latest_price: "Questo è l'ultimo prezzo visto in questo mercato.", legacy_explanation: "Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.", login: "Questo portafoglio BitShares non offre un login tradizionale, invece semplicemente blocca o sblocca un portafoglio che è solo memorizzato localmente nel tuo browser.

    Ogni volta che chiudi il portafoglio, esso sarà bloccato e avrai di fatto effettuato il logout.", "login-tooltip": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, "login-tooltips": { incorrectPassword: { begin: "Enter another password or try ", end: " to login.", model: "Local wallet" }, withoutBinFileBlock: { begin: "If you haven’t .bin-file try ", brainkey: "Brainkey", end: " to login.", middle: " or use ", model: "Cloud wallet" } }, login_required: "Please login to the selected account to perform this action", margin_price: "Questo è il prezzo massimo che una posizione con margine può essere tenuta a pagare in caso di chiamata. È anche detto Squeeze Price.", market_fee: "Il proprietario di %(asset)s addebita una commissione di mercato del %(percent)s per gli ordini di acquisto. Questa commissione sarà dedotta dalla quantità che ricevi quando l'ordine è eseguito, e non è pagata quando l'ordine viene creato.", memo_tip: "Puoi includere qualsiasi messaggio nel campo 'memo'. Il memo è facoltativo, ma in genere richiesto per i trasferimenti verso un exchange.", no_groups_available: "No groupings available using this API server", no_price: "Non c'è nessun prezzo disponibile per questo asset che possa essere usato per stimarne il valore.", nodes_popup: "Click here to open the access settings popup that allows you to switch nodes if necessary", over_limit: "The bridge does not have enough of the desired asset for this buy order", own_account: "You hold keys for this account", propose_scam: "Questa proposta è stata creata da un noto ciarlatano, non approvarla!", propose_tip: "Propose another user to initiate a transaction", propose_unhide: "Do not uncheck this unless you know what you are doing", propose_unknown: "This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.", proxy_remove: "You have a proxy set, to remove it simply clear this input field", proxy_search: "", registration: { accountModel: "The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!", accountName: "Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.", password: "Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.", walletModel: "The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.", whyBinFile: ".bin file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be uploaded during the login process." }, required_input: "Field requires a valid %(type)s", scam_account: "Account is suspected scammer", self_help: "Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet", settle: "Il settling ti permetterà di convertire le tue disponibilità di %(asset)s in %(backingAsset)s dopo un'attesa di %(settleDelay)s ore, ad un prezzo uguale al prezzo di mercato in quel momento.", settle_price: "Questo è il prezzo a cui i settle order saranno eseguiti.", show_asset: "Clicca qui per mostrare quest'asset nella lista principale.", show_block: "Clicca qui per mostrare il blocco #%(block)s in cui questa transazione è avvenuta.", sign_owner: "Se sei il proprietario di questo account, per favore metti una spunta per assicurare che la transazione sia firmata correttamente. Ciò è necessario solo se stai usando l'account proprietario e tale account non è incluso tra i permessi attivi.", sync_no: "Il nodo corrente non è sincronizzato con la blockchain, prova a passare a un altro", sync_yes: "Il nodo corrente è sincronizzato con la blockchain", target_collateral_ratio: "Setting a target collateral ratio can help with not selling all of the posision at once.

    Sell as little by setting target below MCR (ex. 1.5)

    Sell as little but decrease possible margin calls again by setting it higher than MCR (ex. 3)", transfer_actions: "Clicca qui per effettuare un trasferimento, o per depositare/prelevare quegli asset che lo permettono.", unlock_account_name: "Click to edit the account name, e.g. when your account is set as permission of another account.", update_position: "Clicca qui per aggiornare la tua posizione. Puoi cambiare il debito e/o i livelli di garanzia della tua posizione in qualunque momento.", withdraw_address: "Se non sei già in possesso di un indirizzo %(asset)s, per favore creane uno per completare il prelievo.", withdraw_full: "Clicca per prelevare l'intero saldo" }, transaction: { amount_sell: "Quantità da vendere", asset_claim_fees: "ha riscosso %(balance_amount)s in commissioni dal fee pool di %(asset)s", asset_reserve: "quantità di asset riservata", at: "a", balance_id: "ID saldo", balance_owner: "Chiave di proprietario del saldo", bidder: "Bidder", blinding_factor: "Blinding factor", bond_accept_offer: "H accettato l'offerta di obbligazione di", bond_cancel_offer: "Ha annullato un'offerta di obbligazione", bond_claim_collateral: "Ha riscosso una garanzia di", bond_create_offer: "Ha creato un'offerta di obbligazione", bond_pay_collateral: "Ha pagato una garanzia di", borrow_amount: "Debito", borrower: "Debitore", broadcast_fail: "Il tentativo di trasmettere la transazione è fallito: %(message)s", broadcast_success: "La transazione è stata trasmessa", broadcasting: "Trasmissione transazione..", broadcasting_short: "Trasmissione in corso..", burn_asset: "Ha bruciato", by: "da", claimed: "Totale richiesto", coll_maint: "Rapporto di garanzia di mantenimento", coll_of: "con una garanzia di", coll_ratio: "Rapporto di garanzia iniziale", collateral: "Garanzia", collateral_target: "Target Collateral", committee_member_create: "Ha creato il membro del comitato", confirm: "Per favore conferma la transazione", create_key: "Creata una chiave pubblica", csv: "Esporta in .csv", csv_tip: "Scarica lo storico in un file separato da virgola (.csv)", cumulative_borrow_amount: "Cumulative Debt", custom: "Ha creato un'operazione personalizzata", delta_collateral: "Variazione garanzia", delta_debt: "Variazione debito", deposit_to: "Depositato nell'account", expiration: "Scadenza", feeGroups: { account: "Relative a un account", asset: "Relative a un asset", business: "Business Administration", general: "Generali", market: "Relative a un mercato" }, feeTypes: { _none: "Gratuita", basic_fee: "Tariffa di base", fee: "Commissione di transazione normale", fee_per_day: "Price per day", fee_per_kb: "Price per KByte Transaction Size", long_symbol: "Simboli più lunghi", membership_annual_fee: "Membership annuale", membership_lifetime_fee: "Membership a vita", premium_fee: "Tariffa per i nomi Premium", price_per_kbyte: "Prezzo per KByte della dimensione della transazione", price_per_output: "Price per recipient", symbol3: "Simboli con 3 caratteri", symbol4: "Simboli con 4 caratteri" }, feed_price: "Prezzo del feed", feed_producer: "È diventato un produttore di feed per l'asset", file_write: "Ha scritto un file", fill_or: "Esegui o annulla", for: "per", from: "da", fund_pool: "ha finanziato il fee pool di %(asset)s con", funding_account: "Account sorgente", global_parameters_update: "Parametri globali aggiornati", inputs: "Input", market_fee: "Commissione di mercato", max_market_fee: "Commissione di mercato massima", min_receive: "Minima quantità da ricevere", new_url: "Sito web", obtain: "per ottenere", order_id: "ID ordine", outputs: "Output", paid: "ha pagato", publisher: "Publisher", received: "ricevuto", seller: "Venditore", sent: "inviato", settlement_date: "Data settlement", to: "a", transaction_confirmed: "Transazione confermata", trxTypes: { account_create: "Crea account", account_transfer: "Trasferimento dell'account", account_update: "Aggiorna account", account_upgrade: "Upgrade dell'account", account_whitelist: "Whitelist account", all: "Mostra tutti", assert: "Assert operation", asset_bid_collateral: "Bid collateral", asset_claim_fee_pool: "Claim fee pool balance", asset_claim_fees: "Riscuoti le commissioni dell'asset", asset_claim_pool: "Claim asset fee pool", asset_create: "Crea asset", asset_fund_fee_pool: "Finanzia fee pool dell'asset", asset_global_settle: "Settlement dell'asset globale", asset_issue: "Emetti asset", asset_publish_feed: "Pubblica feed", asset_reserve: "Riserva asset", asset_settle: "Settlement dell'asset", asset_settle_cancel: "Cancel asset settlement", asset_update: "Aggiorna asset", asset_update_bitasset: "Aggiorna SmartCoin", asset_update_feed_producers: "Aggiorna produttori di feed per l'asset", asset_update_issuer: "Update asset issuer", balance_claim: "Riscuoti saldo", bid_collateral: "Collateral bid", blind_transfer: "Blinded transfer", call_order_update: "Aggiorna margine", committee_member_create: "Crea membro del comitato", committee_member_update: "Aggiorna membro del comitato", committee_member_update_global_parameters: "Aggiornamento parametri globali", custom: "Personalizzato", execute_bid: "Execute bid", fba_distribute: "Fee backed asset distribution", fill_order: "Completa ordine", htlc_create: "HTLC create", htlc_extend: "HTLC extend", htlc_redeem: "HTLC redeem", htlc_redeemed: "HTLC redeemed", htlc_refund: "HTLC refund", limit_order_cancel: "Annulla un ordine", limit_order_create: "Fai un ordine", override_transfer: "Override del trasferimento", proposal_create: "Crea proposta", proposal_delete: "Cancella proposta", proposal_update: "Aggiorna proposta", transfer: "Trasferimento", transfer_from_blind: "Trasferisci da blinded account", transfer_to_blind: "Trasferisci a blinded account", vesting_balance_create: "Crea un saldo vesting", vesting_balance_withdraw: "Preleva un saldo vesting", withdraw_permission_claim: "Richiedi permesso di prelievo", withdraw_permission_create: "Crea permesso di prelievo", withdraw_permission_delete: "Elimina permesso di prelievo", withdraw_permission_update: "Aggiorna permesso di prelievo", witness_create: "Crea witness", witness_update: "Aggiorna witness", witness_withdraw_pay: "Prelievo salario della witness", worker_create: "Crea worker" }, vesting_balance_create: "ha creato un saldo vesting di", waiting: "In attesa di conferma..", whitelist_states: { black_listed: "In blacklist", no_listing: "Non in lista", white_and_black_listed: "In whitelist e in blacklist", white_listed: "In whitelist" }, withdraw_permission_claim: "Ha richiesto il permesso di prelevare per l'account", withdraw_permission_create: "Ha dato il permesso di prelevare per l'account", withdraw_permission_delete: "Ha rimosso il permesso di prelevare per l'account", withdraw_permission_update: "Ha aggiornato il permesso di prelevare per l'account" }, transfer: { again: "EFFETTUA UN ALTRO TRASFERIMENTO", amount: "Quantità", available: "Disponibile", back: "INDIETRO", balances: "Saldi", broadcast: "Il tuo trasferimento è stato trasmesso sulla rete", broadcasting: "Trasmissione...", by: "By", cancel: "Cancel", close: "Chiudi", confirm: "CONFERMA", copy_address: "Copy Address", copy_memo: "Copy Memo", errors: { balance: "Il bilancio finale deve essere maggiore di 0", insufficient: "Fondi insufficienti", memo_error: "The transfer memo parsing error, please try again later.", memo_length_error: "The transfer memo length exceed, please check", minimum_amount: "Minimum withdraw amount: %(amount)s %(symbol)s", noFeeBalance: "Il tuo saldo è insufficiente per pagare le commissioni usando questo asset, per favre scegli un altro asset per pagare le commissioni", noFunds: "No funds", noPoolBalance: "Questo asset ha un saldo insuffciente nel fee pool per pagare le commissioni. Per favore informa il proprietario dell'asset o seleziona un altro asset per pagare le commissioni.", pos: "La quantità deve essere positiva", precision: "Minimum withdraw precision value: %(precision)s", req: "Campo richiesto", valid: "Per favore inserisci un numero positivo valido" }, explict_price: "Explict price:", fee: "Commissione", final: "Saldo finale", free: "Free", from: "Da", header: "Dettagli trasferimento", header_subheader: "Transfers are used for sending funds to other BitShares Account Holders", header_subheader_propose: "Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.", memo: "Memo / Messaggio", memo_unlock: "Sblocca il tuo portafoglio per visualizzare questo memo", optional: "Opzionale", pay_from: "Paga da", phase_out_warning: "We recommend using the new {modal_link} modal as this page will be phased out", see: "VEDI I MIEI TRASFERIMENTI", send: "Invia", to: "A", warn_name_unable_read_memo: "Attenzione: %(name)s non sarà in grado di leggere questo memo" }, trx_error: { expire: "La tua transazione è scaduta senza essere stata confermata; per favore riprova più tardi." }, utility: { asset_input_placeholder: "Enter asset symbol", asset_select_placeholder: "Select asset", total_x_assets: "Total of %(count)s assets", total_x_items: "Total of %(count)s items", total_x_markets: "Total of %(count)s markets", total_x_operations: "Total of %(count)s operations" }, validation: { messages: { balance: "Insufficient balance. Available only: %(balance)s %(symbol)s", email: "The field should be email", emailNamed: "%(name)s should be email", float: "The field should be float", floatNamed: "%(name)s should be float", integer: "The field should be integer", integerNamed: "%(name)s should be integer", max: "The field should be less than %(max)s", maxNamed: "%(name)s should be less than %(max)s", min: "The field should higher than %(min)s", minNamed: "%(name)s should be higher than %(min)s", number: "The field should be number", numberNamed: "%(name)s should be number", oneOf: "The field should be one of: %(list)s", oneOfNamed: "%(name)s should be one of: %(list)s", range: "The field should be in range from %(min)s to %(max)s", rangeNamed: "%(name)s should in range from %(min)s to %(max)s", required: "The field is required", requiredNamed: "%(name)s is required", test: "", types: { array: "The field should be array", arrayNamed: "%(name)s should be array", boolean: "The field should be boolean", booleanNamed: "%(name)s should be boolean", date: "The field should be date", dateNamed: "%(name)s should be date", enum: "The field should be one of %(list)s", enumNamed: "%(name)s should be one of %(list)s", hex: "The field should be hex", hexNamed: "%(name)s should be hex", method: "The field should be method", methodNamed: "%(name)s should be method", object: "The field should be object", objectNamed: "%(name)s should be object", regexp: "The field should be regexp", regexpNamed: "%(name)s should be regexp", string: "The field should be string", stringNamed: "%(name)s should be string" }, url: "The field should be url", urlNamed: "%(name)s should be url" } }, voting: { description: "The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).", title: "Voting" }, walkthrough: { buy_form: "Inserisci ordini di acquisto utilizzando questo modulo.", buy_orders: "Visualizza tutti gli ordini di acquisto per questo mercato.", chart_tool_duration: "Raggruppa i dati commerciali utilizzando intervalli diversi.", chart_tool_indicators: "Aggiungi indicatori tecnici al grafico dei prezzi per identificare le opportunità di trading.", chart_tool_zoom: "Regola il grafico dei prezzi per mostrare più o meno la cronologia dei prezzi.", collapsed_items: "View one or several sections of the market by expanding the drawers", create_cloud_wallet: "Accedi al portafoglio cloud utilizzando un nome account e una password.", create_local_wallet: "Crea un portafoglio locale e scarica tutte le chiavi private ad esso appartenenti.", depth_chart: "Utilizzare una tabella di profondità del mercato per mostrare l'offerta e la domanda a prezzi diversi.", done_label: "Fatto", favourite_button: "Segna questa coppia come preferita nella tua lista dei mercati.", find_markets_tab: "Questa scheda ti consente di cercare e aggiungere ulteriori mercati alla scheda I miei mercati.", language_flag: "Scegli tra 9 lingue diverse da utilizzare nel DEX.", my_markets: "This tab lists commonly used markets.", next_label: "Prossimo", panel_hide: "You can hide the panel to have more room", personalize: "Change the default layout in the personalize settings", prev_label: "Indietro", price_alerts: "Set alerts to get notifications if the price fluctuates", price_chart: "Visualizza l'azione del prezzo di una risorsa utilizzando la tabella dei prezzi.", restore_account: "Ripristina un portafoglio utilizzando il tuo file di backup.", sell_form: "Inserisci ordini di vendita utilizzando questo modulo.", sell_orders: "Visualizza tutti gli ordini di vendita per questo mercato.", skip_label: "Saltare", switch_button: "Cambia le coppie di trading usando questo pulsante.", vertical_lock: "Disable auto scroll to scroll through the order book", vertical_order: "View all orders for this market, including spread and latest order price" }, wallet: { accept: "Accetta", account_public: "Nome account (Pubblico)", active_wallet: "Portafoglio attivo", all_set: "Tutto fatto!", ask_to_select_wallet: "Please select a key file", back: "Back", backup_brainkey: "Backup della brainkey", backup_explain: "Cliccando il seguente tasto verrà generato un file di backup con estensione .bin. Questo file è crittografato con la password del tuo portafoglio, e contiene tutte le chiavi private per i tuoi account. Può essere usato per ripristinare il tuo portafoglio, o spostarlo su un altro computer/browser.", backup_login: "Backup & login", backup_new_account: "Congratulazioni, hai appena creato un nuovo account! È fortemente consigliato effettuare adesso il backup del tuo portafoglio. Senza un backup, non c'è nessun modo per recuperare il tuo portafoglio se succede qualcosa al tuo computer.", backup_types: "backup types", backup_warning: "It appears that your private key files are not backed up. For security reasons we recommend users do not log in without backing up their private keys.", balance_claim_lookup: "Cerca saldi", balance_claims: "Riscossione Saldi", brainkey: "Brainkey", brainkey_backed_up: "Il backup di questa brainkey è stato effettuato l'ultima volta", brainkey_not_backed_up: "Non è mai stato effettuato il backup di questa brainkey", brainkey_not_verified: "Questa brainkey non è verificata", brainkey_reset_success: "Numero di sequenza resettato. Per provocare l'aggiornamento delle tue chiavi private, ricarica il tuo browser, quindi sblocca il portafoglio.", brainkey_seq_reset: "Resetta il numero di sequenza della brainkey", brainkey_seq_reset_button: "Resetta ora", brainkey_seq_reset_text: "Usa questo per resettare il numero di sequenza usato per derivare le chiavi private dalla brainkey del portafoglio.
    Può essere usato per forzare l'aggiornamento delle chiavi private del portafoglio.", brainkey_w1: "Per completare il backup, stampa questo o prendine nota per iscritto.", brainkey_w2: "Chiunque abbia accesso alla tua chiave di recupero avrà", brainkey_w3: "accesso ai fondi in questo portafoglio.", bts_09_export: "File di esportazione chiavi BTS 0.9.3c (.json)", cancel: "Annulla", change: "Cambia a %(name)s", change_backup: "Adesso che hai cambiato la tua password, ti consigliamo fortemente di effettuare un nuovo backup.", change_password: "Cambia password", change_success: "Password cambiata con successo!", change_wallet: "Cambia portafoglio", claim_balance: "Riscuoti saldo", claim_balances: "Riscuoti saldi", claim_later: "Dopo aver importato le chiavi, puoi riscuotere questi saldi su un account di tua scelta.", confirm: "Password portafoglio (conferma)", confirm_error: "La conferma non corrisponde alla password", confirm_password: "Conferma password", congrat: "Congratulazioni, sei pronto!", console: "Console gestione portafoglio", create: "Crea", create_a: "Crea un nuovo account", create_account_password_text: "Le chiavi per questo nuovo account saranno derivate usando la tua password. Niente è memorizzato nel browser o in un server centrale, quindi devi assicurarti di non dimenticare questa password!! Conservala usando un password manager, o mettendola per iscritto manualmente.", create_account_text: "Il nome account che scegli deve essere unico, dal momento che sarà registrato pubblicamente sulla blockchain e sarà il tuo identificatore per ogni tua transazione.", create_backup: "Crea backup", create_backup_of: "Crea backup adesso", create_importkeys_text: "Per importare le chiavi, devi prima creare un portafoglio per contenerle. Completa la finestra di dialogo sotto per creare un nuovo portafoglio.", create_password: "Crea un nuovo account usando una password", create_success: "Il tuo portafoglio è stato creato", create_text: "Il portafoglio BitShares è memorizzato nel tuo browser, non nel cloud. Un portafoglio può contenere diversi account e può essere trasferito facilmente tra browser e computer diversi usando un file di backup.", create_w_a: "Crea un portafoglio e un account", create_wallet: "Crea nuovo portafoglio", create_wallet_backup: "Crea nuovo portafoglio da un backup", current_pass: "Password attuale", custom_brainkey: "Usa una brainkey personalizzata (avanzato)", delete_confirm_line1: "Sei ASSOLUTAMENTE sicuro?", delete_confirm_line2: "Terribili cose inaspettate accadranno se non leggi quanto segue!", delete_confirm_line3: "Questa azione NON PUÒ essere annullata, e se non hai un backup questo poprtafoglio sarà perso definitivamente.", delete_confirm_line4: "Sì, cancella il portafoglio %(name)s", delete_wallet: "Cancella portafoglio", delete_wallet_name: "Cancella portafoglio (%(name)s)", different_file_type: "Have a different file type?", done: "Fatto", dont_ask_for_backup: "Don't ask me to back up again", download: "Scarica", enter_password: "Inserisci password", existing_password: "Password esistente", first_account_paid: "Dal momento che questo è il tuo primo account, un faucet pagherà la tua tassa di registrazione.", generated: "Password generata", go_get_started: "Vedi i suggerimenti per iniziare", has_wallet: "Quando crei il tuo primo account BitShares, un portafoglio BitShares viene creato automaticamente e memorizzato nel tuo browser. Questo portafoglio è crittografato con la tua password, e contiene tutte le chiavi private che appartengono al tuo account. È molto importante che dedichi il tempo necessario per creare un backup di questo portafoglio, dopo la creazione!", import_20_notice1: "Importa prima il tuo BACKUP BTS 2.0+", import_20_notice2: "(se ne hai uno)", import_backup: "Importa backup BitShares 2.0 (file .bin)", import_backup_choose: "Seleziona il tuo file di backup nella fines