bitgo
Version:
BitGo JavaScript SDK
173 lines • 38 kB
JavaScript
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('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('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('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('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));
}
const GlobalCoinFactory = new sdk_core_1.CoinFactory();
registerCoinConstructors(GlobalCoinFactory);
exports.default = GlobalCoinFactory;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbkZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdjIvY29pbkZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILHNEQUErQztBQUMvQyx3REFBaUQ7QUFDakQsd0RBQW1EO0FBQ25ELHdEQUFpRDtBQUNqRCx3REFBbUQ7QUFDbkQsc0RBQStDO0FBQy9DLHNEQUErQztBQUMvQyw4Q0FBOEM7QUFDOUMsc0NBQW1DO0FBQ25DLG1DQWlIaUI7QUFFakIsU0FBUyx3QkFBd0IsQ0FBQyxpQkFBOEI7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsY0FBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLG9CQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsa0JBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLHFCQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFp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Q0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBRUgseUJBQVMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUU7UUFDeEUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztJQUVILHVCQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCx1QkFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUN2RSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0saUJBQWlCLEdBQWdCLElBQUksc0JBQVcsRUFBRSxDQUFDO0FBRXpELHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFNUMsa0JBQWUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBBZGFUb2tlbiB9IGZyb20gJ0BiaXRnby9zZGstY29pbi1hZGEnO1xuaW1wb3J0IHsgQWxnb1Rva2VuIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLWFsZ28nO1xuaW1wb3J0IHsgQmNoYSwgVGJjaGEgfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tYmNoYSc7XG5pbXBvcnQgeyBIYmFyVG9rZW4gfSBmcm9tICdAYml0Z28vc2RrLWNvaW4taGJhcic7XG5pbXBvcnQgeyBOZWFyLCBUTmVhciB9IGZyb20gJ0BiaXRnby9zZGstY29pbi1uZWFyJztcbmltcG9ydCB7IFNvbFRva2VuIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLXNvbCc7XG5pbXBvcnQgeyBUcnhUb2tlbiB9IGZyb20gJ0BiaXRnby9zZGstY29pbi10cngnO1xuaW1wb3J0IHsgQ29pbkZhY3RvcnkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7XG4gIEFkYSxcbiAgQWxnbyxcbiAgQXJiZXRoLFxuICBBcmJldGhUb2tlbixcbiAgQXRvbSxcbiAgQXZheEMsXG4gIEF2YXhDVG9rZW4sXG4gIEF2YXhQLFxuICBCY2gsXG4gIEJlcmEsXG4gIEJsZCxcbiAgQnNjLFxuICBCc2NUb2tlbixcbiAgQnN2LFxuICBCdGMsXG4gIEJ0ZyxcbiAgQ2VsbyxcbiAgQ2Vsb1Rva2VuLFxuICBDb3JldW0sXG4gIENzcHIsXG4gIERhc2gsXG4gIERvZ2UsXG4gIERvdCxcbiAgRW9zLFxuICBFb3NUb2tlbixcbiAgRXJjMjBUb2tlbixcbiAgRXRjLFxuICBFdGgsXG4gIEV0aDIsXG4gIEV0aHcsXG4gIEZpYXRFdXIsXG4gIEZpYXRHQlAsXG4gIEZpYXRVc2QsXG4gIEd0ZXRoLFxuICBIYXNoLFxuICBIYmFyLFxuICBIdGV0aCxcbiAgSW5qZWN0aXZlLFxuICBJc2xtLFxuICBMdGMsXG4gIE9mYyxcbiAgT2ZjVG9rZW4sXG4gIE9wZXRoLFxuICBPcGV0aFRva2VuLFxuICBPc21vLFxuICBQb2x5Z29uLFxuICBQb2x5Z29uVG9rZW4sXG4gIFJidGMsXG4gIFNlaSxcbiAgU29sLFxuICBTdGVsbGFyVG9rZW4sXG4gIFN0eCxcbiAgU3VpLFxuICBTdXNkLFxuICBUb24sXG4gIFRhZGEsXG4gIFRhbGdvLFxuICBUYXJiZXRoLFxuICBUYXRvbSxcbiAgVGF2YXhDLFxuICBUYXZheFAsXG4gIFRiY2gsXG4gIFRiZXJhLFxuICBUYmxkLFxuICBUYnNjLFxuICBUYnN2LFxuICBUYnRjLFxuICBUY2VsbyxcbiAgVGNvcmV1bSxcbiAgVGNzcHIsXG4gIFRkYXNoLFxuICBUZG9nZSxcbiAgVGRvdCxcbiAgVGVvcyxcbiAgVGV0YyxcbiAgVGV0aCxcbiAgVGV0aDIsXG4gIFRmaWF0RXVyLFxuICBUZmlhdEdCUCxcbiAgVGZpYXRVc2QsXG4gIFRoYXNoLFxuICBUaGJhcixcbiAgVGlhLFxuICBUaW5qZWN0aXZlLFxuICBUaXNsbSxcbiAgVGx0YyxcbiAgVG9zbW8sXG4gIFRvcGV0aCxcbiAgVHBvbHlnb24sXG4gIFRyYnRjLFxuICBUcngsXG4gIFRzZWksXG4gIFRzb2wsXG4gIFRzdHgsXG4gIFRzdWksXG4gIFRzdXNkLFxuICBUdGlhLFxuICBUdG9uLFxuICBUdHJ4LFxuICBUeGxtLFxuICBUeHJwLFxuICBUeHR6LFxuICBUemVjLFxuICBUemV0YSxcbiAgVHprZXRoLFxuICBYbG0sXG4gIFhycCxcbiAgWHR6LFxuICBaZWMsXG4gIFpldGEsXG4gIFprZXRoLFxuICBaa2V0aFRva2VuLFxufSBmcm9tICcuL2NvaW5zJztcblxuZnVuY3Rpb24gcmVnaXN0ZXJDb2luQ29uc3RydWN0b3JzKGdsb2JhbENvaW5GYWN0b3J5OiBDb2luRmFjdG9yeSk6IHZvaWQge1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYWRhJywgQWRhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2FsZ28nLCBBbGdvLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2FyYmV0aCcsIEFyYmV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdhdG9tJywgQXRvbS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdhdmF4YycsIEF2YXhDLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2F2YXhwJywgQXZheFAuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYmNoJywgQmNoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2JjaGEnLCBCY2hhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2JlcmEnLCBCZXJhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2JsZCcsIEJsZC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdic2MnLCBCc2MuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignYnN2JywgQnN2LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2J0YycsIEJ0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdidGcnLCBCdGcuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignY2VsbycsIENlbG8uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignY29yZXVtJywgQ29yZXVtLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2NzcHInLCBDc3ByLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2Rhc2gnLCBEYXNoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2RvZ2UnLCBEb2dlLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2RvdCcsIERvdC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdlb3MnLCBFb3MuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignZXRjJywgRXRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2V0aCcsIEV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdldGgyJywgRXRoMi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdldGh3JywgRXRody5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdmaWF0ZXVyJywgRmlhdEV1ci5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdmaWF0Z2JwJywgRmlhdEdCUC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdmaWF0dXNkJywgRmlhdFVzZC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdndGV0aCcsIEd0ZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2hhc2gnLCBIYXNoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2hiYXInLCBIYmFyLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2h0ZXRoJywgSHRldGguY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcignbHRjJywgTHRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ2luamVjdGl2ZScsIEluamVjdGl2ZS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdpc2xtJywgSXNsbS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCduZWFyJywgTmVhci5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdvZmMnLCBPZmMuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignb3BldGgnLCBPcGV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdvc21vJywgT3Ntby5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdwb2x5Z29uJywgUG9seWdvbi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdyYnRjJywgUmJ0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdzZWknLCBTZWkuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignc29sJywgU29sLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3N0eCcsIFN0eC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCdzdWknLCBTdWkuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3Rlcignc3VzZCcsIFN1c2QuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGlhJywgVGlhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RvbicsIFRvbi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YWxnbycsIFRhbGdvLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RhcmJldGgnLCBUYXJiZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RhZGEnLCBUYWRhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RhdG9tJywgVGF0b20uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGF2YXhjJywgVGF2YXhDLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RhdmF4cCcsIFRhdmF4UC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YmNoJywgVGJjaC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0YmNoYScsIFRiY2hhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RiZXJhJywgVGJlcmEuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJsZCcsIFRibGQuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJzYycsIFRic2MuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJzdicsIFRic3YuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGJ0YycsIFRidGMuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGNlbG8nLCBUY2Vsby5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0Y29yZXVtJywgVGNvcmV1bS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0Y3NwcicsIFRjc3ByLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RkYXNoJywgVGRhc2guY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGRvZ2UnLCBUZG9nZS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZG90JywgVGRvdC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZW9zJywgVGVvcy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZXRjJywgVGV0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZXRoJywgVGV0aC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZXRoMicsIFRldGgyLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RmaWF0ZXVyJywgVGZpYXRFdXIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGZpYXRnYnAnLCBUZmlhdEdCUC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0ZmlhdHVzZCcsIFRmaWF0VXNkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RoYXNoJywgVGhhc2guY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndGhiYXInLCBUaGJhci5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0aW5qZWN0aXZlJywgVGluamVjdGl2ZS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0aXNsbScsIFRpc2xtLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RsdGMnLCBUbHRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RuZWFyJywgVE5lYXIuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndG9wZXRoJywgVG9wZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3Rvc21vJywgVG9zbW8uY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndHBvbHlnb24nLCBUcG9seWdvbi5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0cmJ0YycsIFRyYnRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3RyeCcsIFRyeC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c2VpJywgVHNlaS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c29sJywgVHNvbC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3R4JywgVHN0eC5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3VpJywgVHN1aS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd0c3VzZCcsIFRzdXNkLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0aWEnLCBUdGlhLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0b24nLCBUdG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R0cngnLCBUdHJ4LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4bG0nLCBUeGxtLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4cnAnLCBUeHJwLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R4dHonLCBUeHR6LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R6ZWMnLCBUemVjLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3R6ZXRhJywgVHpldGEuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigndHprZXRoJywgVHprZXRoLmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3hsbScsIFhsbS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd4cnAnLCBYcnAuY3JlYXRlSW5zdGFuY2UpO1xuICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcigneHR6JywgWHR6LmNyZWF0ZUluc3RhbmNlKTtcbiAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIoJ3plYycsIFplYy5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd6ZXRhJywgWmV0YS5jcmVhdGVJbnN0YW5jZSk7XG4gIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKCd6a2V0aCcsIFprZXRoLmNyZWF0ZUluc3RhbmNlKTtcblxuICBFcmMyMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIFN0ZWxsYXJUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IG9mY1Rva2VuIG9mIFsuLi50b2tlbnMuYml0Y29pbi5vZmMudG9rZW5zLCAuLi50b2tlbnMudGVzdG5ldC5vZmMudG9rZW5zXSkge1xuICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBPZmNUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKG9mY1Rva2VuKTtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihvZmNUb2tlbi50eXBlLCB0b2tlbkNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIENlbG9Ub2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBCc2NUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBFb3NUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBBbGdvVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgQXZheENUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBQb2x5Z29uVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgQXJiZXRoVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG5cbiAgT3BldGhUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBaa2V0aFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIFNvbFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIGdsb2JhbENvaW5GYWN0b3J5LnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIEhiYXJUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBUcnhUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBnbG9iYWxDb2luRmFjdG9yeS5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcblxuICBBZGFUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+XG4gICAgZ2xvYmFsQ29pbkZhY3RvcnkucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKVxuICApO1xufVxuXG5jb25zdCBHbG9iYWxDb2luRmFjdG9yeTogQ29pbkZhY3RvcnkgPSBuZXcgQ29pbkZhY3RvcnkoKTtcblxucmVnaXN0ZXJDb2luQ29uc3RydWN0b3JzKEdsb2JhbENvaW5GYWN0b3J5KTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsQ29pbkZhY3Rvcnk7XG4iXX0=
;