UNPKG

bitgo

Version:
180 lines • 40.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @prettier */ const sdk_coin_ada_1 = require("@bitgo/sdk-coin-ada"); const sdk_coin_algo_1 = require("@bitgo/sdk-coin-algo"); const sdk_coin_bcha_1 = require("@bitgo/sdk-coin-bcha"); const sdk_coin_hbar_1 = require("@bitgo/sdk-coin-hbar"); const sdk_coin_near_1 = require("@bitgo/sdk-coin-near"); const sdk_coin_sol_1 = require("@bitgo/sdk-coin-sol"); const sdk_coin_trx_1 = require("@bitgo/sdk-coin-trx"); const sdk_core_1 = require("@bitgo/sdk-core"); const config_1 = require("../config"); const coins_1 = require("./coins"); function registerCoinConstructors(globalCoinFactory) { globalCoinFactory.register('ada', coins_1.Ada.createInstance); globalCoinFactory.register('algo', coins_1.Algo.createInstance); globalCoinFactory.register('arbeth', coins_1.Arbeth.createInstance); globalCoinFactory.register('atom', coins_1.Atom.createInstance); globalCoinFactory.register('avaxc', coins_1.AvaxC.createInstance); globalCoinFactory.register('avaxp', coins_1.AvaxP.createInstance); globalCoinFactory.register('bch', coins_1.Bch.createInstance); globalCoinFactory.register('bcha', sdk_coin_bcha_1.Bcha.createInstance); globalCoinFactory.register('bera', coins_1.Bera.createInstance); globalCoinFactory.register('bld', coins_1.Bld.createInstance); globalCoinFactory.register('bsc', coins_1.Bsc.createInstance); globalCoinFactory.register('bsv', coins_1.Bsv.createInstance); globalCoinFactory.register('btc', coins_1.Btc.createInstance); globalCoinFactory.register('btg', coins_1.Btg.createInstance); globalCoinFactory.register('celo', coins_1.Celo.createInstance); globalCoinFactory.register('coreum', coins_1.Coreum.createInstance); globalCoinFactory.register('cspr', coins_1.Cspr.createInstance); globalCoinFactory.register('dash', coins_1.Dash.createInstance); globalCoinFactory.register('doge', coins_1.Doge.createInstance); globalCoinFactory.register('dot', coins_1.Dot.createInstance); globalCoinFactory.register('eos', coins_1.Eos.createInstance); globalCoinFactory.register('etc', coins_1.Etc.createInstance); globalCoinFactory.register('eth', coins_1.Eth.createInstance); globalCoinFactory.register('eth2', coins_1.Eth2.createInstance); globalCoinFactory.register('ethw', coins_1.Ethw.createInstance); globalCoinFactory.register('baseeth', coins_1.EthLikeCoin.createInstance); globalCoinFactory.register('tbaseeth', coins_1.TethLikeCoin.createInstance); globalCoinFactory.register('fiateur', coins_1.FiatEur.createInstance); globalCoinFactory.register('fiatgbp', coins_1.FiatGBP.createInstance); globalCoinFactory.register('fiatusd', coins_1.FiatUsd.createInstance); globalCoinFactory.register('gteth', coins_1.Gteth.createInstance); globalCoinFactory.register('hash', coins_1.Hash.createInstance); globalCoinFactory.register('hbar', coins_1.Hbar.createInstance); globalCoinFactory.register('hteth', coins_1.Hteth.createInstance); globalCoinFactory.register('lnbtc', coins_1.Lnbtc.createInstance); globalCoinFactory.register('ltc', coins_1.Ltc.createInstance); globalCoinFactory.register('injective', coins_1.Injective.createInstance); globalCoinFactory.register('islm', coins_1.Islm.createInstance); globalCoinFactory.register('near', sdk_coin_near_1.Near.createInstance); globalCoinFactory.register('ofc', coins_1.Ofc.createInstance); globalCoinFactory.register('opeth', coins_1.Opeth.createInstance); globalCoinFactory.register('osmo', coins_1.Osmo.createInstance); globalCoinFactory.register('polygon', coins_1.Polygon.createInstance); globalCoinFactory.register('rbtc', coins_1.Rbtc.createInstance); globalCoinFactory.register('sei', coins_1.Sei.createInstance); globalCoinFactory.register('sol', coins_1.Sol.createInstance); globalCoinFactory.register('stx', coins_1.Stx.createInstance); globalCoinFactory.register('sui', coins_1.Sui.createInstance); globalCoinFactory.register('susd', coins_1.Susd.createInstance); globalCoinFactory.register('tia', coins_1.Tia.createInstance); globalCoinFactory.register('ton', coins_1.Ton.createInstance); globalCoinFactory.register('talgo', coins_1.Talgo.createInstance); globalCoinFactory.register('tarbeth', coins_1.Tarbeth.createInstance); globalCoinFactory.register('tada', coins_1.Tada.createInstance); globalCoinFactory.register('tatom', coins_1.Tatom.createInstance); globalCoinFactory.register('tavaxc', coins_1.TavaxC.createInstance); globalCoinFactory.register('tavaxp', coins_1.TavaxP.createInstance); globalCoinFactory.register('tbch', coins_1.Tbch.createInstance); globalCoinFactory.register('tbcha', sdk_coin_bcha_1.Tbcha.createInstance); globalCoinFactory.register('tbera', coins_1.Tbera.createInstance); globalCoinFactory.register('tbld', coins_1.Tbld.createInstance); globalCoinFactory.register('tbsc', coins_1.Tbsc.createInstance); globalCoinFactory.register('tbsv', coins_1.Tbsv.createInstance); globalCoinFactory.register('tbtc', coins_1.Tbtc.createInstance); globalCoinFactory.register('tbtcsig', coins_1.Tbtcsig.createInstance); globalCoinFactory.register('tbtcbgsig', coins_1.Tbtcbgsig.createInstance); globalCoinFactory.register('tcelo', coins_1.Tcelo.createInstance); globalCoinFactory.register('tcoreum', coins_1.Tcoreum.createInstance); globalCoinFactory.register('tcspr', coins_1.Tcspr.createInstance); globalCoinFactory.register('tdash', coins_1.Tdash.createInstance); globalCoinFactory.register('tdoge', coins_1.Tdoge.createInstance); globalCoinFactory.register('tdot', coins_1.Tdot.createInstance); globalCoinFactory.register('teos', coins_1.Teos.createInstance); globalCoinFactory.register('tetc', coins_1.Tetc.createInstance); globalCoinFactory.register('teth', coins_1.Teth.createInstance); globalCoinFactory.register('teth2', coins_1.Teth2.createInstance); globalCoinFactory.register('tfiateur', coins_1.TfiatEur.createInstance); globalCoinFactory.register('tfiatgbp', coins_1.TfiatGBP.createInstance); globalCoinFactory.register('tfiatusd', coins_1.TfiatUsd.createInstance); globalCoinFactory.register('thash', coins_1.Thash.createInstance); globalCoinFactory.register('thbar', coins_1.Thbar.createInstance); globalCoinFactory.register('tinjective', coins_1.Tinjective.createInstance); globalCoinFactory.register('tislm', coins_1.Tislm.createInstance); globalCoinFactory.register('tlnbtc', coins_1.Tlnbtc.createInstance); globalCoinFactory.register('tltc', coins_1.Tltc.createInstance); globalCoinFactory.register('tnear', sdk_coin_near_1.TNear.createInstance); globalCoinFactory.register('topeth', coins_1.Topeth.createInstance); globalCoinFactory.register('tosmo', coins_1.Tosmo.createInstance); globalCoinFactory.register('tpolygon', coins_1.Tpolygon.createInstance); globalCoinFactory.register('trbtc', coins_1.Trbtc.createInstance); globalCoinFactory.register('trx', coins_1.Trx.createInstance); globalCoinFactory.register('tsei', coins_1.Tsei.createInstance); globalCoinFactory.register('tsol', coins_1.Tsol.createInstance); globalCoinFactory.register('tstx', coins_1.Tstx.createInstance); globalCoinFactory.register('tsui', coins_1.Tsui.createInstance); globalCoinFactory.register('tsusd', coins_1.Tsusd.createInstance); globalCoinFactory.register('ttia', coins_1.Ttia.createInstance); globalCoinFactory.register('tton', coins_1.Tton.createInstance); globalCoinFactory.register('ttrx', coins_1.Ttrx.createInstance); globalCoinFactory.register('txlm', coins_1.Txlm.createInstance); globalCoinFactory.register('txrp', coins_1.Txrp.createInstance); globalCoinFactory.register('txtz', coins_1.Txtz.createInstance); globalCoinFactory.register('tzec', coins_1.Tzec.createInstance); globalCoinFactory.register('tzeta', coins_1.Tzeta.createInstance); globalCoinFactory.register('tzketh', coins_1.Tzketh.createInstance); globalCoinFactory.register('xlm', coins_1.Xlm.createInstance); globalCoinFactory.register('xrp', coins_1.Xrp.createInstance); globalCoinFactory.register('xtz', coins_1.Xtz.createInstance); globalCoinFactory.register('zec', coins_1.Zec.createInstance); globalCoinFactory.register('zeta', coins_1.Zeta.createInstance); globalCoinFactory.register('zketh', coins_1.Zketh.createInstance); coins_1.Erc20Token.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.StellarToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); for (const ofcToken of [...config_1.tokens.bitcoin.ofc.tokens, ...config_1.tokens.testnet.ofc.tokens]) { const tokenConstructor = coins_1.OfcToken.createTokenConstructor(ofcToken); globalCoinFactory.register(ofcToken.type, tokenConstructor); } coins_1.CeloToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.BscToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.EosToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); sdk_coin_algo_1.AlgoToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.AvaxCToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.PolygonToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.ArbethToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.OpethToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); coins_1.ZkethToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); sdk_coin_sol_1.SolToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); sdk_coin_hbar_1.HbarToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); sdk_coin_trx_1.TrxToken.createTokenConstructors().forEach(({ name, coinConstructor }) => { globalCoinFactory.register(name, coinConstructor); }); sdk_coin_ada_1.AdaToken.createTokenConstructors().forEach(({ name, coinConstructor }) => globalCoinFactory.register(name, coinConstructor)); coins_1.SuiToken.createTokenConstructors().forEach(({ name, coinConstructor }) => globalCoinFactory.register(name, coinConstructor)); } const GlobalCoinFactory = new sdk_core_1.CoinFactory(); registerCoinConstructors(GlobalCoinFactory); exports.default = GlobalCoinFactory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbkZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdjIvY29pbkZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILHNEQUErQztBQUMvQyx3REFBaUQ7QUFDakQsd0RBQW1EO0FBQ25ELHdEQUFpRDtBQUNqRCx3REFBbUQ7QUFDbkQsc0RBQStDO0FBQy9DLHNEQUErQztBQUMvQyw4Q0FBOEM7QUFDOUMsc0NBQW1DO0FBQ25DLG1DQXdIaUI7QUFFakIsU0FBUyx3QkFBd0IsQ0FBQyxpQkFBOEI7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsY0FBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsbUJBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLG9CQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxpQkFBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxpQkFBaUIsQ0FBQyxRQUFRLENB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QUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsY0FBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FB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RUYsZ0JBQVEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FDdkUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGlCQUFpQixHQUFnQixJQUFJLHNCQUFXLEVBQUUsQ0FBQztBQUV6RCx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTVDLGtCQUFlLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQWRhVG9rZW4gfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tYWRhJztcbmltcG9ydCB7IEFsZ29Ub2tlbiB9IGZyb20gJ0BiaXRnby9zZGstY29pbi1hbGdvJztcbmltcG9ydCB7IEJjaGEsIFRiY2hhIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLWJjaGEnO1xuaW1wb3J0IHsgSGJhclRva2VuIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLWhiYXInO1xuaW1wb3J0IHsgTmVhciwgVE5lYXIgfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tbmVhcic7XG5pbXBvcnQgeyBTb2xUb2tlbiB9IGZyb20gJ0BiaXRnby9zZGstY29pbi1zb2wnO1xuaW1wb3J0IHsgVHJ4VG9rZW4gfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tdHJ4JztcbmltcG9ydCB7IENvaW5GYWN0b3J5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IHRva2VucyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBZGEsXG4gIEFsZ28sXG4gIEFyYmV0aCxcbiAgQXJiZXRoVG9rZW4sXG4gIEF0b20sXG4gIEF2YXhDLFxuICBBdmF4Q1Rva2VuLFxuICBBdmF4UCxcbiAgQmNoLFxuICBCZXJhLFxuICBCbGQsXG4gIEJzYyxcbiAgQnNjVG9rZW4sXG4gIEJzdixcbiAgQnRjLFxuICBCdGcsXG4gIENlbG8sXG4gIENlbG9Ub2tlbixcbiAgQ29yZXVtLFxuICBDc3ByLFxuICBEYXNoLFxuICBEb2dlLFxuICBEb3QsXG4gIEVvcyxcbiAgRW9zVG9rZW4sXG4gIEVyYzIwVG9rZW4sXG4gIEV0YyxcbiAgRXRoLFxuICBFdGgyLFxuICBFdGh3LFxuICBFdGhMaWtlQ29pbixcbiAgVGV0aExpa2VDb2luLFxuICBGaWF0RXVyLFxuICBGaWF0R0JQLFxuICBGaWF0VXNkLFxuICBHdGV0aCxcbiAgSGFzaCxcbiAgSGJhcixcbiAgSHRldGgsXG4gIEluamVjdGl2ZSxcbiAgSXNsbSxcbiAgTG5idGMsXG4gIEx0YyxcbiAgT2ZjLFxuICBPZmNUb2tlbixcbiAgT3BldGgsXG4gIE9wZXRoVG9rZW4sXG4gIE9zbW8sXG4gIFBvbHlnb24sXG4gIFBvbHlnb25Ub2tlbixcbiAgUmJ0YyxcbiAgU2VpLFxuICBTb2wsXG4gIFN0ZWxsYXJUb2tlbixcbiAgU3R4LFxuICBTdWksXG4gIFN1aVRva2VuLFxuICBTdXNkLFxuICBUb24sXG4gIFRhZGEsXG4gIFRhbGdvLFxuICBUYXJiZXRoLFxuICBUYXRvbSxcbiAgVGF2YXhDLFxuICBUYXZheFAsXG4gIFRiY2gsXG4gIFRiZXJhLFxuICBUYmxkLFxuICBUYnNjLFxuICBUYnN2LFxuICBUYnRjLFxuICBUYnRjc2lnLFxuICBUYnRjYmdzaWcsXG4gIFRjZWxvLFxuICBUY29yZXVtLFxuICBUY3NwcixcbiAgVGRhc2gsXG4gIFRkb2dlLFxuICBUZG90LFxuICBUZW9zLFxuICBUZXRjLFxuICBUZXRoLFxuICBUZXRoMixcbiAgVGZpYXRFdXIsXG4gIFRmaWF0R0JQLFxuICBUZmlhdFVzZCxcbiAgVGhhc2gsXG4gIFRoYmFyLFxuICBUaWEsXG4gIFRpbmplY3RpdmUsXG4gIFRpc2xtLFxuICBUbG5idGMsXG4gIFRsdGMsXG4gIFRvc21vLFxuICBUb3BldGgsXG4gIFRwb2x5Z29uLFxuICBUcmJ0YyxcbiAgVHJ4LFxuICBUc2VpLFxuICBUc29sLFxuICBUc3R4LFxuICBUc3VpLFxuICBUc3VzZCxcbiAgVHRpYSxcbiAgVHRvbixcbiAgVHRyeCxcbiAgVHhsbSxcbiAgVHhycCxcbiAgVHh0eixcbiAgVHplYyxcbiAgVHpldGEsXG4gIFR6a2V0aCxcbiAgWGxtLFxuICBYcnAsXG4gIFh0eixcbiAgWmVjLFxuICBaZXRhLFxuICBaa2V0aCxcbiAgWmtldGhUb2tlbixcbn0gZnJvbSAnLi9jb2lucyc7XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyQ29pbkNvbnN0cnVjdG9ycyhnbG9iYWxDb2luRmFjdG9yeTogQ29pbkZhY3RvcnkpOiB2b2lkIHtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2FkYScsIEFkYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdhbGdvJywgQWxnby5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdhcmJldGgnLCBBcmJldGguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYXRvbScsIEF0b20uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYXZheGMnLCBBdmF4Qy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdhdmF4cCcsIEF2YXhQLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2JjaCcsIEJjaC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdiY2hhJywgQmNoYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdiZXJhJywgQmVyYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdibGQnLCBCbGQuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYnNjJywgQnNjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2JzdicsIEJzdi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdidGMnLCBCdGMuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYnRnJywgQnRnLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2NlbG8nLCBDZWxvLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2NvcmV1bScsIENvcmV1bS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdjc3ByJywgQ3Nwci5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdkYXNoJywgRGFzaC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdkb2dlJywgRG9nZS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdkb3QnLCBEb3QuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignZW9zJywgRW9zLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2V0YycsIEV0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdldGgnLCBFdGguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignZXRoMicsIEV0aDIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignZXRodycsIEV0aHcuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYmFzZWV0aCcsIEV0aExpa2VDb2luLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RiYXNlZXRoJywgVGV0aExpa2VDb2luLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2ZpYXRldXInLCBGaWF0RXVyLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2ZpYXRnYnAnLCBGaWF0R0JQLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2ZpYXR1c2QnLCBGaWF0VXNkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2d0ZXRoJywgR3RldGguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignaGFzaCcsIEhhc2guY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignaGJhcicsIEhiYXIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignaHRldGgnLCBIdGV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdsbmJ0YycsIExuYnRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2x0YycsIEx0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdpbmplY3RpdmUnLCBJbmplY3RpdmUuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignaXNsbScsIElzbG0uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignbmVhcicsIE5lYXIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignb2ZjJywgT2ZjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ29wZXRoJywgT3BldGguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignb3NtbycsIE9zbW8uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigncG9seWdvbicsIFBvbHlnb24uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigncmJ0YycsIFJidGMuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignc2VpJywgU2VpLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3NvbCcsIFNvbC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdzdHgnLCBTdHguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignc3VpJywgU3VpLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3N1c2QnLCBTdXNkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RpYScsIFRpYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0b24nLCBUb24uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGFsZ28nLCBUYWxnby5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YXJiZXRoJywgVGFyYmV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YWRhJywgVGFkYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YXRvbScsIFRhdG9tLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RhdmF4YycsIFRhdmF4Qy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YXZheHAnLCBUYXZheFAuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJjaCcsIFRiY2guY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJjaGEnLCBUYmNoYS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YmVyYScsIFRiZXJhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RibGQnLCBUYmxkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Ric2MnLCBUYnNjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Ric3YnLCBUYnN2LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RidGMnLCBUYnRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RidGNzaWcnLCBUYnRjc2lnLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RidGNiZ3NpZycsIFRidGNiZ3NpZy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0Y2VsbycsIFRjZWxvLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rjb3JldW0nLCBUY29yZXVtLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rjc3ByJywgVGNzcHIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGRhc2gnLCBUZGFzaC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZG9nZScsIFRkb2dlLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rkb3QnLCBUZG90LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rlb3MnLCBUZW9zLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RldGMnLCBUZXRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RldGgnLCBUZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RldGgyJywgVGV0aDIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGZpYXRldXInLCBUZmlhdEV1ci5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZmlhdGdicCcsIFRmaWF0R0JQLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RmaWF0dXNkJywgVGZpYXRVc2QuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGhhc2gnLCBUaGFzaC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0aGJhcicsIFRoYmFyLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RpbmplY3RpdmUnLCBUaW5qZWN0aXZlLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rpc2xtJywgVGlzbG0uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGxuYnRjJywgVGxuYnRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RsdGMnLCBUbHRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RuZWFyJywgVE5lYXIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndG9wZXRoJywgVG9wZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rvc21vJywgVG9zbW8uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndHBvbHlnb24nLCBUcG9seWdvbi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0cmJ0YycsIFRyYnRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RyeCcsIFRyeC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c2VpJywgVHNlaS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c29sJywgVHNvbC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3R4JywgVHN0eC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3VpJywgVHN1aS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3VzZCcsIFRzdXNkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0aWEnLCBUdGlhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0b24nLCBUdG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0cngnLCBUdHJ4LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4bG0nLCBUeGxtLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4cnAnLCBUeHJwLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4dHonLCBUeHR6LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R6ZWMnLCBUemVjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R6ZXRhJywgVHpldGEuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndHprZXRoJywgVHprZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3hsbScsIFhsbS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd4cnAnLCBYcnAuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigneHR6JywgWHR6LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3plYycsIFplYy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd6ZXRhJywgWmV0YS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd6a2V0aCcsIFprZXRoLmNyZWF0ZUluc3RhbmNlKTtcblxuICBFcmMyMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIFN0ZWxsYXJUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IG9mY1Rva2VuIG9mIFsuLi50b2tlbnMuYml0Y29pbi5vZmMudG9rZW5zLCAuLi50b2tlbnMudGVzdG5ldC5vZmMudG9rZW5zXSkge1xuICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBPZmNUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKG9mY1Rva2VuKTtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihvZmNUb2tlbi50eXBlLCB0b2tlbkNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIENlbG9Ub2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBCc2NUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBFb3NUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBBbGdvVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgQXZheENUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBQb2x5Z29uVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgQXJiZXRoVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgT3BldGhUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBaa2V0aFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIFNvbFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIEhiYXJUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBUcnhUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBBZGFUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKVxuICApO1xuXG4gIFN1aVRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT5cbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpXG4gICk7XG59XG5cbmNvbnN0IEdsb2JhbENvaW5GYWN0b3J5OiBDb2luRmFjdG9yeSA9IG5ldyBDb2luRmFjdG9yeSgpO1xuXG5yZWdpc3RlckNvaW5Db25zdHJ1Y3RvcnMoR2xvYmFsQ29pbkZhY3RvcnkpO1xuXG5leHBvcnQgZGVmYXVsdCBHbG9iYWxDb2luRmFjdG9yeTtcbiJdfQ==