UNPKG

@ninerealms/midgard-client

Version:
116 lines 26.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.poolStatsLegacyMany = exports.poolStatsLegacy = exports.poolStatsMany = exports.poolStats = exports.rawToV2PoolStats = exports.poolMany = exports.pool = exports.pools = exports.rawToV2Pool = void 0; const utils_1 = require("./utils"); const rawToV2Pool = (res) => ({ ...res, volume24h: utils_1.toBigNumber(res.volume24h), assetDepth: utils_1.toBigNumber(res.assetDepth), runeDepth: utils_1.toBigNumber(res.runeDepth), assetPrice: utils_1.toBigNumber(res.assetPrice), assetPriceUSD: utils_1.toBigNumber(res.assetPriceUSD), poolAPY: utils_1.toBigNumber(res.poolAPY), liquidityUnits: utils_1.toBigNumber(res.liquidityUnits), synthUnits: utils_1.toBigNumber(res.synthUnits), synthSupply: utils_1.toBigNumber(res.synthSupply), }); exports.rawToV2Pool = rawToV2Pool; const pools = async (options) => (utils_1.fetch({ path: '/v2/pools', body: options, }).then(res => res.map(exports.rawToV2Pool))); exports.pools = pools; const pool = async (asset) => (utils_1.fetch({ path: `/v2/pool/${asset}`, }).then(exports.rawToV2Pool)); exports.pool = pool; const poolMany = async (assets) => (Promise.all(assets.map(exports.pool))); exports.poolMany = poolMany; const rawToV2PoolStats = (res) => ({ ...res, assetPrice: utils_1.toBigNumber(res.assetPrice), assetPriceUSD: utils_1.toBigNumber(res.assetPriceUSD), assetDepth: utils_1.toBigNumber(res.assetDepth), runeDepth: utils_1.toBigNumber(res.runeDepth), synthUnits: utils_1.toBigNumber(res.synthUnits), synthSupply: utils_1.toBigNumber(res.synthSupply), liquidityUnits: utils_1.toBigNumber(res.liquidityUnits), units: utils_1.toBigNumber(res.units), toAssetVolume: utils_1.toBigNumber(res.toAssetVolume), toRuneVolume: utils_1.toBigNumber(res.toRuneVolume), swapVolume: utils_1.toBigNumber(res.swapVolume), toAssetCount: utils_1.toBigNumber(res.toAssetCount), toRuneCount: utils_1.toBigNumber(res.toRuneCount), swapCount: utils_1.toBigNumber(res.swapCount), uniqueSwapperCount: utils_1.toBigNumber(res.uniqueSwapperCount), toAssetAverageSlip: utils_1.toBigNumber(res.toAssetAverageSlip), toRuneAverageSlip: utils_1.toBigNumber(res.toRuneAverageSlip), averageSlip: utils_1.toBigNumber(res.averageSlip), toAssetFees: utils_1.toBigNumber(res.toAssetFees), toRuneFees: utils_1.toBigNumber(res.toRuneFees), totalFees: utils_1.toBigNumber(res.totalFees), poolAPY: utils_1.toBigNumber(res.poolAPY), addAssetLiquidityVolume: utils_1.toBigNumber(res.addAssetLiquidityVolume), addRuneLiquidityVolume: utils_1.toBigNumber(res.addRuneLiquidityVolume), addLiquidityVolume: utils_1.toBigNumber(res.addLiquidityVolume), addliquidityCount: utils_1.toBigNumber(res.addliquidityCount), withdrawAssetVolume: utils_1.toBigNumber(res.withdrawAssetVolume), withdrawRuneVolume: utils_1.toBigNumber(res.withdrawRuneVolume), imperminantLossProtectionPaid: utils_1.toBigNumber(res.imperminantLossProtectionPaid), withdrawVolume: utils_1.toBigNumber(res.withdrawVolume), withdrawCount: utils_1.toBigNumber(res.withdrawCount), uniqueMemberCount: utils_1.toBigNumber(res.uniqueMemberCount), }); exports.rawToV2PoolStats = rawToV2PoolStats; const poolStats = async (options) => (utils_1.fetch({ path: `/v2/pool/${options.asset}/stats`, body: options.period ? { period: options.period, } : null, }).then(exports.rawToV2PoolStats)); exports.poolStats = poolStats; const poolStatsMany = async (options) => (Promise.all(options.map(exports.poolStats))); exports.poolStatsMany = poolStatsMany; const rawToV2PoolStatsLegacy = (res) => ({ ...res, price: utils_1.toBigNumber(res.price), assetDepth: utils_1.toBigNumber(res.assetDepth), runeDepth: utils_1.toBigNumber(res.runeDepth), poolDepth: utils_1.toBigNumber(res.poolDepth), poolUnits: utils_1.toBigNumber(res.poolUnits), buyVolume: utils_1.toBigNumber(res.buyVolume), sellVolume: utils_1.toBigNumber(res.sellVolume), poolVolume: utils_1.toBigNumber(res.poolVolume), volume24h: utils_1.toBigNumber(res.volume24h), buyAssetCount: utils_1.toBigNumber(res.buyAssetCount), sellAssetCount: utils_1.toBigNumber(res.sellAssetCount), swappingTxCount: utils_1.toBigNumber(res.swappingTxCount), swappersCount: utils_1.toBigNumber(res.swappersCount), buyTxAverage: utils_1.toBigNumber(res.buyTxAverage), sellTxAverage: utils_1.toBigNumber(res.sellTxAverage), poolTxAverage: utils_1.toBigNumber(res.poolTxAverage), buySlipAverage: utils_1.toBigNumber(res.buySlipAverage), sellSlipAverage: utils_1.toBigNumber(res.sellSlipAverage), poolSlipAverage: utils_1.toBigNumber(res.poolSlipAverage), buyFeesTotal: utils_1.toBigNumber(res.buyFeesTotal), sellFeesTotal: utils_1.toBigNumber(res.sellFeesTotal), poolFeesTotal: utils_1.toBigNumber(res.poolFeesTotal), buyFeeAverage: utils_1.toBigNumber(res.buyFeeAverage), sellFeeAverage: utils_1.toBigNumber(res.sellFeeAverage), poolFeeAverage: utils_1.toBigNumber(res.poolFeeAverage), poolAPY: utils_1.toBigNumber(res.poolAPY), assetStakedTotal: utils_1.toBigNumber(res.assetStakedTotal), runeStakedTotal: utils_1.toBigNumber(res.runeStakedTotal), poolStakedTotal: utils_1.toBigNumber(res.poolStakedTotal), stakeTxCount: utils_1.toBigNumber(res.stakeTxCount), withdrawTxCount: utils_1.toBigNumber(res.withdrawTxCount), stakingTxCount: utils_1.toBigNumber(res.stakingTxCount), stakersCount: utils_1.toBigNumber(res.stakersCount), }); const poolStatsLegacy = async (asset) => (utils_1.fetch({ path: `/v2/pool/${asset}/stats/legacy`, }).then(rawToV2PoolStatsLegacy)); exports.poolStatsLegacy = poolStatsLegacy; const poolStatsLegacyMany = async (asset) => (Promise.all(asset.map(exports.poolStatsLegacy))); exports.poolStatsLegacyMany = poolStatsLegacyMany; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBS2lCO0FBa0NWLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBbUIsRUFBVSxFQUFFLENBQUMsQ0FBQztJQUMzRCxHQUFHLEdBQUc7SUFDTixTQUFTLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDdkMsU0FBUyxFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUNyQyxVQUFVLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLGFBQWEsRUFBRSxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDN0MsT0FBTyxFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxjQUFjLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0lBQy9DLFVBQVUsRUFBRSxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDdkMsV0FBVyxFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztDQUMxQyxDQUFDLENBQUE7QUFYVyxRQUFBLFdBQVcsZUFXdEI7QUFFSyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQ3hCLE9BQStCLEVBQ1osRUFBRSxDQUFDLENBQ3RCLGFBQUssQ0FBbUI7SUFDdEIsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLE9BQWlCO0NBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1CQUFXLENBQUMsQ0FBQyxDQUNyQyxDQUFBO0FBUFksUUFBQSxLQUFLLFNBT2pCO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEtB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QUFDLGNBQWMsQ0FBQztJQUMvQyxPQUFPLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQ2pDLGdCQUFnQixFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELGVBQWUsRUFBRSxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7SUFDakQsZUFBZSxFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUNqRCxZQUFZLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQzNDLGVBQWUsRUFBRSxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7SUFDakQsY0FBYyxFQUFFLG1CQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUMvQyxZQUFZLEVBQUUsbUJBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0NBQzVDLENBQUMsQ0FBQTtBQUVLLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQThCLEVBQUUsQ0FBQyxDQUNsRixhQUFLLENBQTRCO0lBQy9CLElBQUksRUFBRSxZQUFZLEtBQUssZUFBZTtDQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQ2hDLENBQUE7QUFKWSxRQUFBLGVBQWUsbUJBSTNCO0FBRU0sTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsS0FBZSxFQUFnQyxFQUFFLENBQUMsQ0FDMUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLHVCQUFlLENBQUMsQ0FBQyxDQUN4QyxDQUFBO0FBRlksUUFBQSxtQkFBbUIsdUJBRS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnXG5pbXBvcnQge1xuICBJbnRlcnZhbEtleSxcbiAgZmV0Y2gsXG4gIHRvQmlnTnVtYmVyLFxuICBTdGF0dXMsXG59IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFYyUG9vbHNSZXF1ZXN0T3B0aW9ucyB7XG4gIHN0YXR1cz86IFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWMlBvb2xSZXNwb25zZSB7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIHZvbHVtZTI0aDogc3RyaW5nO1xuICBhc3NldERlcHRoOiBzdHJpbmc7XG4gIHJ1bmVEZXB0aDogc3RyaW5nO1xuICBhc3NldFByaWNlOiBzdHJpbmc7XG4gIGFzc2V0UHJpY2VVU0Q6IHN0cmluZztcbiAgcG9vbEFQWTogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgbGlxdWlkaXR5VW5pdHM6IHN0cmluZztcbiAgc3ludGhVbml0czogc3RyaW5nO1xuICBzeW50aFN1cHBseTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFYyUG9vbCB7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIHZvbHVtZTI0aDogQmlnTnVtYmVyO1xuICBhc3NldERlcHRoOiBCaWdOdW1iZXI7XG4gIHJ1bmVEZXB0aDogQmlnTnVtYmVyO1xuICBhc3NldFByaWNlOiBCaWdOdW1iZXI7XG4gIGFzc2V0UHJpY2VVU0Q6IEJpZ051bWJlcjtcbiAgcG9vbEFQWTogQmlnTnVtYmVyO1xuICBzdGF0dXM6IHN0cmluZztcbiAgbGlxdWlkaXR5VW5pdHM6IEJpZ051bWJlcjtcbiAgc3ludGhVbml0czogQmlnTnVtYmVyO1xuICBzeW50aFN1cHBseTogQmlnTnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgcmF3VG9WMlBvb2wgPSAocmVzOiBWMlBvb2xSZXNwb25zZSk6IFYyUG9vbCA9PiAoe1xuICAuLi5yZXMsXG4gIHZvbHVtZTI0aDogdG9CaWdOdW1iZXIocmVzLnZvbHVtZTI0aCksXG4gIGFzc2V0RGVwdGg6IHRvQmlnTnVtYmVyKHJlcy5hc3NldERlcHRoKSxcbiAgcnVuZURlcHRoOiB0b0JpZ051bWJlcihyZXMucnVuZURlcHRoKSxcbiAgYXNzZXRQcmljZTogdG9CaWdOdW1iZXIocmVzLmFzc2V0UHJpY2UpLFxuICBhc3NldFByaWNlVVNEOiB0b0JpZ051bWJlcihyZXMuYXNzZXRQcmljZVVTRCksXG4gIHBvb2xBUFk6IHRvQmlnTnVtYmVyKHJlcy5wb29sQVBZKSxcbiAgbGlxdWlkaXR5VW5pdHM6IHRvQmlnTnVtYmVyKHJlcy5saXF1aWRpdHlVbml0cyksXG4gIHN5bnRoVW5pdHM6IHRvQmlnTnVtYmVyKHJlcy5zeW50aFVuaXRzKSxcbiAgc3ludGhTdXBwbHk6IHRvQmlnTnVtYmVyKHJlcy5zeW50aFN1cHBseSksXG59KVxuXG5leHBvcnQgY29uc3QgcG9vbHMgPSBhc3luYyAoXG4gIG9wdGlvbnM/OiBWMlBvb2xzUmVxdWVzdE9wdGlvbnMsXG4pOiBQcm9taXNlPFYyUG9vbFtdPiA9PiAoXG4gIGZldGNoPFYyUG9vbFJlc3BvbnNlW10+KHtcbiAgICBwYXRoOiAnL3YyL3Bvb2xzJyxcbiAgICBib2R5OiBvcHRpb25zIGFzIG9iamVjdCxcbiAgfSkudGhlbihyZXMgPT4gcmVzLm1hcChyYXdUb1YyUG9vbCkpXG4pXG5cbmV4cG9ydCBjb25zdCBwb29sID0gYXN5bmMgKGFzc2V0OiBzdHJpbmcpOiBQcm9taXNlPFYyUG9vbD4gPT4gKFxuICBmZXRjaDxWMlBvb2xSZXNwb25zZT4oe1xuICAgIHBhdGg6IGAvdjIvcG9vbC8ke2Fzc2V0fWAsXG4gIH0pLnRoZW4ocmF3VG9WMlBvb2wpXG4pXG5cbmV4cG9ydCBjb25zdCBwb29sTWFueSA9IGFzeW5jIChhc3NldHM6IHN0cmluZ1tdKTogUHJvbWlzZTxWMlBvb2xbXT4gPT4gKFxuICBQcm9taXNlLmFsbChhc3NldHMubWFwKHBvb2wpKVxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIFYyUG9vbFN0YXRzUmVzcG9uc2Uge1xuICBhc3NldDogc3RyaW5nO1xuICBzdGF0dXM6IFN0YXR1cztcbiAgYXNzZXRQcmljZTogc3RyaW5nO1xuICBhc3NldFByaWNlVVNEOiBzdHJpbmc7XG4gIGFzc2V0RGVwdGg6IHN0cmluZztcbiAgcnVuZURlcHRoOiBzdHJpbmc7XG4gIHN5bnRoVW5pdHM6IHN0cmluZztcbiAgc3ludGhTdXBwbHk6IHN0cmluZztcbiAgbGlxdWlkaXR5VW5pdHM6IHN0cmluZztcbiAgdW5pdHM6IHN0cmluZztcbiAgdG9Bc3NldFZvbHVtZTogc3RyaW5nO1xuICB0b1J1bmVWb2x1bWU6IHN0cmluZztcbiAgc3dhcFZvbHVtZTogc3RyaW5nO1xuICB0b0Fzc2V0Q291bnQ6IHN0cmluZztcbiAgdG9SdW5lQ291bnQ6IHN0cmluZztcbiAgc3dhcENvdW50OiBzdHJpbmc7XG4gIHVuaXF1ZVN3YXBwZXJDb3VudDogc3RyaW5nO1xuICB0b0Fzc2V0QXZlcmFnZVNsaXA6IHN0cmluZztcbiAgdG9SdW5lQXZlcmFnZVNsaXA6IHN0cmluZztcbiAgYXZlcmFnZVNsaXA6IHN0cmluZztcbiAgdG9Bc3NldEZlZXM6IHN0cmluZztcbiAgdG9SdW5lRmVlczogc3RyaW5nO1xuICB0b3RhbEZlZXM6IHN0cmluZztcbiAgcG9vbEFQWTogc3RyaW5nO1xuICBhZGRBc3NldExpcXVpZGl0eVZvbHVtZTogc3RyaW5nO1xuICBhZGRSdW5lTGlxdWlkaXR5Vm9sdW1lOiBzdHJpbmc7XG4gIGFkZExpcXVpZGl0eVZvbHVtZTogc3RyaW5nO1xuICBhZGRsaXF1aWRpdHlDb3VudDogc3RyaW5nO1xuICB3aXRoZHJhd0Fzc2V0Vm9sdW1lOiBzdHJpbmc7XG4gIHdpdGhkcmF3UnVuZVZvbHVtZTogc3RyaW5nO1xuICBpbXBlcm1pbmFudExvc3NQcm90ZWN0aW9uUGFpZDogc3RyaW5nO1xuICB3aXRoZHJhd1ZvbHVtZTogc3RyaW5nO1xuICB3aXRoZHJhd0NvdW50OiBzdHJpbmc7XG4gIHVuaXF1ZU1lbWJlckNvdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVjJQb29sU3RhdHMge1xuICBhc3NldDogc3RyaW5nO1xuICBzdGF0dXM6IFN0YXR1cztcbiAgYXNzZXRQcmljZTogQmlnTnVtYmVyO1xuICBhc3NldFByaWNlVVNEOiBCaWdOdW1iZXI7XG4gIGFzc2V0RGVwdGg6IEJpZ051bWJlcjtcbiAgcnVuZURlcHRoOiBCaWdOdW1iZXI7XG4gIHN5bnRoVW5pdHM6IEJpZ051bWJlcjtcbiAgc3ludGhTdXBwbHk6IEJpZ051bWJlcjtcbiAgbGlxdWlkaXR5VW5pdHM6IEJpZ051bWJlcjtcbiAgdW5pdHM6IEJpZ051bWJlcjtcbiAgdG9Bc3NldFZvbHVtZTogQmlnTnVtYmVyO1xuICB0b1J1bmVWb2x1bWU6IEJpZ051bWJlcjtcbiAgc3dhcFZvbHVtZTogQmlnTnVtYmVyO1xuICB0b0Fzc2V0Q291bnQ6IEJpZ051bWJlcjtcbiAgdG9SdW5lQ291bnQ6IEJpZ051bWJlcjtcbiAgc3dhcENvdW50OiBCaWdOdW1iZXI7XG4gIHVuaXF1ZVN3YXBwZXJDb3VudDogQmlnTnVtYmVyO1xuICB0b0Fzc2V0QXZlcmFnZVNsaXA6IEJpZ051bWJlcjtcbiAgdG9SdW5lQXZlcmFnZVNsaXA6IEJpZ051bWJlcjtcbiAgYXZlcmFnZVNsaXA6IEJpZ051bWJlcjtcbiAgdG9Bc3NldEZlZXM6IEJpZ051bWJlcjtcbiAgdG9SdW5lRmVlczogQmlnTnVtYmVyO1xuICB0b3RhbEZlZXM6IEJpZ051bWJlcjtcbiAgcG9vbEFQWTogQmlnTnVtYmVyO1xuICBhZGRBc3NldExpcXVpZGl0eVZvbHVtZTogQmlnTnVtYmVyO1xuICBhZGRSdW5lTGlxdWlkaXR5Vm9sdW1lOiBCaWdOdW1iZXI7XG4gIGFkZExpcXVpZGl0eVZvbHVtZTogQmlnTnVtYmVyO1xuICBhZGRsaXF1aWRpdHlDb3VudDogQmlnTnVtYmVyO1xuICB3aXRoZHJhd0Fzc2V0Vm9sdW1lOiBCaWdOdW1iZXI7XG4gIHdpdGhkcmF3UnVuZVZvbHVtZTogQmlnTnVtYmVyO1xuICBpbXBlcm1pbmFudExvc3NQcm90ZWN0aW9uUGFpZDogQmlnTnVtYmVyO1xuICB3aXRoZHJhd1ZvbHVtZTogQmlnTnVtYmVyO1xuICB3aXRoZHJhd0NvdW50OiBCaWdOdW1iZXI7XG4gIHVuaXF1ZU1lbWJlckNvdW50OiBCaWdOdW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCByYXdUb1YyUG9vbFN0YXRzID0gKHJlczogVjJQb29sU3RhdHNSZXNwb25zZSk6IFYyUG9vbFN0YXRzID0+ICh7XG4gIC4uLnJlcyxcbiAgYXNzZXRQcmljZTogdG9CaWdOdW1iZXIocmVzLmFzc2V0UHJpY2UpLFxuICBhc3NldFByaWNlVVNEOiB0b0JpZ051bWJlcihyZXMuYXNzZXRQcmljZVVTRCksXG4gIGFzc2V0RGVwdGg6IHRvQmlnTnVtYmVyKHJlcy5hc3NldERlcHRoKSxcbiAgcnVuZURlcHRoOiB0b0JpZ051bWJlcihyZXMucnVuZURlcHRoKSxcbiAgc3ludGhVbml0czogdG9CaWdOdW1iZXIocmVzLnN5bnRoVW5pdHMpLFxuICBzeW50aFN1cHBseTogdG9CaWdOdW1iZXIocmVzLnN5bnRoU3VwcGx5KSxcbiAgbGlxdWlkaXR5VW5pdHM6IHRvQmlnTnVtYmVyKHJlcy5saXF1aWRpdHlVbml0cyksXG4gIHVuaXRzOiB0b0JpZ051bWJlcihyZXMudW5pdHMpLFxuICB0b0Fzc2V0Vm9sdW1lOiB0b0JpZ051bWJlcihyZXMudG9Bc3NldFZvbHVtZSksXG4gIHRvUnVuZVZvbHVtZTogdG9CaWdOdW1iZXIocmVzLnRvUnVuZVZvbHVtZSksXG4gIHN3YXBWb2x1bWU6IHRvQmlnTnVtYmVyKHJlcy5zd2FwVm9sdW1lKSxcbiAgdG9Bc3NldENvdW50OiB0b0JpZ051bWJlcihyZXMudG9Bc3NldENvdW50KSxcbiAgdG9SdW5lQ291bnQ6IHRvQmlnTnVtYmVyKHJlcy50b1J1bmVDb3VudCksXG4gIHN3YXBDb3VudDogdG9CaWdOdW1iZXIocmVzLnN3YXBDb3VudCksXG4gIHVuaXF1ZVN3YXBwZXJDb3VudDogdG9CaWdOdW1iZXIocmVzLnVuaXF1ZVN3YXBwZXJDb3VudCksXG4gIHRvQXNzZXRBdmVyYWdlU2xpcDogdG9CaWdOdW1iZXIocmVzLnRvQXNzZXRBdmVyYWdlU2xpcCksXG4gIHRvUnVuZUF2ZXJhZ2VTbGlwOiB0b0JpZ051bWJlcihyZXMudG9SdW5lQXZlcmFnZVNsaXApLFxuICBhdmVyYWdlU2xpcDogdG9CaWdOdW1iZXIocmVzLmF2ZXJhZ2VTbGlwKSxcbiAgdG9Bc3NldEZlZXM6IHRvQmlnTnVtYmVyKHJlcy50b0Fzc2V0RmVlcyksXG4gIHRvUnVuZUZlZXM6IHRvQmlnTnVtYmVyKHJlcy50b1J1bmVGZWVzKSxcbiAgdG90YWxGZWVzOiB0b0JpZ051bWJlcihyZXMudG90YWxGZWVzKSxcbiAgcG9vbEFQWTogdG9CaWdOdW1iZXIocmVzLnBvb2xBUFkpLFxuICBhZGRBc3NldExpcXVpZGl0eVZvbHVtZTogdG9CaWdOdW1iZXIocmVzLmFkZEFzc2V0TGlxdWlkaXR5Vm9sdW1lKSxcbiAgYWRkUnVuZUxpcXVpZGl0eVZvbHVtZTogdG9CaWdOdW1iZXIocmVzLmFkZFJ1bmVMaXF1aWRpdHlWb2x1bWUpLFxuICBhZGRMaXF1aWRpdHlWb2x1bWU6IHRvQmlnTnVtYmVyKHJlcy5hZGRMaXF1aWRpdHlWb2x1bWUpLFxuICBhZGRsaXF1aWRpdHlDb3VudDogdG9CaWdOdW1iZXIocmVzLmFkZGxpcXVpZGl0eUNvdW50KSxcbiAgd2l0aGRyYXdBc3NldFZvbHVtZTogdG9CaWdOdW1iZXIocmVzLndpdGhkcmF3QXNzZXRWb2x1bWUpLFxuICB3aXRoZHJhd1J1bmVWb2x1bWU6IHRvQmlnTnVtYmVyKHJlcy53aXRoZHJhd1J1bmVWb2x1bWUpLFxuICBpbXBlcm1pbmFudExvc3NQcm90ZWN0aW9uUGFpZDogdG9CaWdOdW1iZXIocmVzLmltcGVybWluYW50TG9zc1Byb3RlY3Rpb25QYWlkKSxcbiAgd2l0aGRyYXdWb2x1bWU6IHRvQmlnTnVtYmVyKHJlcy53aXRoZHJhd1ZvbHVtZSksXG4gIHdpdGhkcmF3Q291bnQ6IHRvQmlnTnVtYmVyKHJlcy53aXRoZHJhd0NvdW50KSxcbiAgdW5pcXVlTWVtYmVyQ291bnQ6IHRvQmlnTnVtYmVyKHJlcy51bmlxdWVNZW1iZXJDb3VudCksXG59KVxuXG5leHBvcnQgaW50ZXJmYWNlIFYyUG9vbFN0YXRzT3B0aW9ucyB7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIHBlcmlvZD86IEludGVydmFsS2V5O1xufVxuXG5leHBvcnQgY29uc3QgcG9vbFN0YXRzID0gYXN5bmMgKFxuICBvcHRpb25zOiBWMlBvb2xTdGF0c09wdGlvbnMsXG4pOiBQcm9taXNlPFYyUG9vbFN0YXRzPiA9PiAoXG4gIGZldGNoPFYyUG9vbFN0YXRzUmVzcG9uc2U+KHtcbiAgICBwYXRoOiBgL3YyL3Bvb2wvJHtvcHRpb25zLmFzc2V0fS9zdGF0c2AsXG4gICAgYm9keTogb3B0aW9ucy5wZXJpb2QgPyB7XG4gICAgICBwZXJpb2Q6IG9wdGlvbnMucGVyaW9kLFxuICAgIH0gOiBudWxsLFxuICB9KS50aGVuKHJhd1RvVjJQb29sU3RhdHMpXG4pXG5cbmV4cG9ydCBjb25zdCBwb29sU3RhdHNNYW55ID0gYXN5bmMgKFxuICBvcHRpb25zOiBWMlBvb2xTdGF0c09wdGlvbnNbXSxcbik6IFByb21pc2U8VjJQb29sU3RhdHNbXT4gPT4gKFxuICBQcm9taXNlLmFsbChvcHRpb25zLm1hcChwb29sU3RhdHMpKVxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIFYyUG9vbFN0YXRzTGVnYWN5UmVzcG9uc2Uge1xuICBhc3NldDogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgcHJpY2U6IHN0cmluZztcbiAgYXNzZXREZXB0aDogc3RyaW5nO1xuICBydW5lRGVwdGg6IHN0cmluZztcbiAgcG9vbERlcHRoOiBzdHJpbmc7XG4gIHBvb2xVbml0czogc3RyaW5nO1xuICBidXlWb2x1bWU6IHN0cmluZztcbiAgc2VsbFZvbHVtZTogc3RyaW5nO1xuICBwb29sVm9sdW1lOiBzdHJpbmc7XG4gIHZvbHVtZTI0aDogc3RyaW5nO1xuICBidXlBc3NldENvdW50OiBzdHJpbmc7XG4gIHNlbGxBc3NldENvdW50OiBzdHJpbmc7XG4gIHN3YXBwaW5nVHhDb3VudDogc3RyaW5nO1xuICBzd2FwcGVyc0NvdW50OiBzdHJpbmc7XG4gIGJ1eVR4QXZlcmFnZTogc3RyaW5nO1xuICBzZWxsVHhBdmVyYWdlOiBzdHJpbmc7XG4gIHBvb2xUeEF2ZXJhZ2U6IHN0cmluZztcbiAgYnV5U2xpcEF2ZXJhZ2U6IHN0cmluZztcbiAgc2VsbFNsaXBBdmVyYWdlOiBzdHJpbmc7XG4gIHBvb2xTbGlwQXZlcmFnZTogc3RyaW5nO1xuICBidXlGZWVzVG90YWw6IHN0cmluZztcbiAgc2VsbEZlZXNUb3RhbDogc3RyaW5nO1xuICBwb29sRmVlc1RvdGFsOiBzdHJpbmc7XG4gIGJ1eUZlZUF2ZXJhZ2U6IHN0cmluZztcbiAgc2VsbEZlZUF2ZXJhZ2U6IHN0cmluZztcbiAgcG9vbEZlZUF2ZXJhZ2U6IHN0cmluZztcbiAgcG9vbEFQWTogc3RyaW5nO1xuICBhc3NldFN0YWtlZFRvdGFsOiBzdHJpbmc7XG4gIHJ1bmVTdGFrZWRUb3RhbDogc3RyaW5nO1xuICBwb29sU3Rha2VkVG90YWw6IHN0cmluZztcbiAgc3Rha2VUeENvdW50OiBzdHJpbmc7XG4gIHdpdGhkcmF3VHhDb3VudDogc3RyaW5nO1xuICBzdGFraW5nVHhDb3VudDogc3RyaW5nO1xuICBzdGFrZXJzQ291bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWMlBvb2xTdGF0c0xlZ2FjeSB7XG4gIGFzc2V0OiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBwcmljZTogQmlnTnVtYmVyO1xuICBhc3NldERlcHRoOiBCaWdOdW1iZXI7XG4gIHJ1bmVEZXB0aDogQmlnTnVtYmVyO1xuICBwb29sRGVwdGg6IEJpZ051bWJlcjtcbiAgcG9vbFVuaXRzOiBCaWdOdW1iZXI7XG4gIGJ1eVZvbHVtZTogQmlnTnVtYmVyO1xuICBzZWxsVm9sdW1lOiBCaWdOdW1iZXI7XG4gIHBvb2xWb2x1bWU6IEJpZ051bWJlcjtcbiAgdm9sdW1lMjRoOiBCaWdOdW1iZXI7XG4gIGJ1eUFzc2V0Q291bnQ6IEJpZ051bWJlcjtcbiAgc2VsbEFzc2V0Q291bnQ6IEJpZ051bWJlcjtcbiAgc3dhcHBpbmdUeENvdW50OiBCaWdOdW1iZXI7XG4gIHN3YXBwZXJzQ291bnQ6IEJpZ051bWJlcjtcbiAgYnV5VHhBdmVyYWdlOiBCaWdOdW1iZXI7XG4gIHNlbGxUeEF2ZXJhZ2U6IEJpZ051bWJlcjtcbiAgcG9vbFR4QXZlcmFnZTogQmlnTnVtYmVyO1xuICBidXlTbGlwQXZlcmFnZTogQmlnTnVtYmVyO1xuICBzZWxsU2xpcEF2ZXJhZ2U6IEJpZ051bWJlcjtcbiAgcG9vbFNsaXBBdmVyYWdlOiBCaWdOdW1iZXI7XG4gIGJ1eUZlZXNUb3RhbDogQmlnTnVtYmVyO1xuICBzZWxsRmVlc1RvdGFsOiBCaWdOdW1iZXI7XG4gIHBvb2xGZWVzVG90YWw6IEJpZ051bWJlcjtcbiAgYnV5RmVlQXZlcmFnZTogQmlnTnVtYmVyO1xuICBzZWxsRmVlQXZlcmFnZTogQmlnTnVtYmVyO1xuICBwb29sRmVlQXZlcmFnZTogQmlnTnVtYmVyO1xuICBwb29sQVBZOiBCaWdOdW1iZXI7XG4gIGFzc2V0U3Rha2VkVG90YWw6IEJpZ051bWJlcjtcbiAgcnVuZVN0YWtlZFRvdGFsOiBCaWdOdW1iZXI7XG4gIHBvb2xTdGFrZWRUb3RhbDogQmlnTnVtYmVyO1xuICBzdGFrZVR4Q291bnQ6IEJpZ051bWJlcjtcbiAgd2l0aGRyYXdUeENvdW50OiBCaWdOdW1iZXI7XG4gIHN0YWtpbmdUeENvdW50OiBCaWdOdW1iZXI7XG4gIHN0YWtlcnNDb3VudDogQmlnTnVtYmVyO1xufVxuXG5jb25zdCByYXdUb1YyUG9vbFN0YXRzTGVnYWN5ID0gKHJlczogVjJQb29sU3RhdHNMZWdhY3lSZXNwb25zZSk6IFYyUG9vbFN0YXRzTGVnYWN5ID0+ICh7XG4gIC4uLnJlcyxcbiAgcHJpY2U6IHRvQmlnTnVtYmVyKHJlcy5wcmljZSksXG4gIGFzc2V0RGVwdGg6IHRvQmlnTnVtYmVyKHJlcy5hc3NldERlcHRoKSxcbiAgcnVuZURlcHRoOiB0b0JpZ051bWJlcihyZXMucnVuZURlcHRoKSxcbiAgcG9vbERlcHRoOiB0b0JpZ051bWJlcihyZXMucG9vbERlcHRoKSxcbiAgcG9vbFVuaXRzOiB0b0JpZ051bWJlcihyZXMucG9vbFVuaXRzKSxcbiAgYnV5Vm9sdW1lOiB0b0JpZ051bWJlcihyZXMuYnV5Vm9sdW1lKSxcbiAgc2VsbFZvbHVtZTogdG9CaWdOdW1iZXIocmVzLnNlbGxWb2x1bWUpLFxuICBwb29sVm9sdW1lOiB0b0JpZ051bWJlcihyZXMucG9vbFZvbHVtZSksXG4gIHZvbHVtZTI0aDogdG9CaWdOdW1iZXIocmVzLnZvbHVtZTI0aCksXG4gIGJ1eUFzc2V0Q291bnQ6IHRvQmlnTnVtYmVyKHJlcy5idXlBc3NldENvdW50KSxcbiAgc2VsbEFzc2V0Q291bnQ6IHRvQmlnTnVtYmVyKHJlcy5zZWxsQXNzZXRDb3VudCksXG4gIHN3YXBwaW5nVHhDb3VudDogdG9CaWdOdW1iZXIocmVzLnN3YXBwaW5nVHhDb3VudCksXG4gIHN3YXBwZXJzQ291bnQ6IHRvQmlnTnVtYmVyKHJlcy5zd2FwcGVyc0NvdW50KSxcbiAgYnV5VHhBdmVyYWdlOiB0b0JpZ051bWJlcihyZXMuYnV5VHhBdmVyYWdlKSxcbiAgc2VsbFR4QXZlcmFnZTogdG9CaWdOdW1iZXIocmVzLnNlbGxUeEF2ZXJhZ2UpLFxuICBwb29sVHhBdmVyYWdlOiB0b0JpZ051bWJlcihyZXMucG9vbFR4QXZlcmFnZSksXG4gIGJ1eVNsaXBBdmVyYWdlOiB0b0JpZ051bWJlcihyZXMuYnV5U2xpcEF2ZXJhZ2UpLFxuICBzZWxsU2xpcEF2ZXJhZ2U6IHRvQmlnTnVtYmVyKHJlcy5zZWxsU2xpcEF2ZXJhZ2UpLFxuICBwb29sU2xpcEF2ZXJhZ2U6IHRvQmlnTnVtYmVyKHJlcy5wb29sU2xpcEF2ZXJhZ2UpLFxuICBidXlGZWVzVG90YWw6IHRvQmlnTnVtYmVyKHJlcy5idXlGZWVzVG90YWwpLFxuICBzZWxsRmVlc1RvdGFsOiB0b0JpZ051bWJlcihyZXMuc2VsbEZlZXNUb3RhbCksXG4gIHBvb2xGZWVzVG90YWw6IHRvQmlnTnVtYmVyKHJlcy5wb29sRmVlc1RvdGFsKSxcbiAgYnV5RmVlQXZlcmFnZTogdG9CaWdOdW1iZXIocmVzLmJ1eUZlZUF2ZXJhZ2UpLFxuICBzZWxsRmVlQXZlcmFnZTogdG9CaWdOdW1iZXIocmVzLnNlbGxGZWVBdmVyYWdlKSxcbiAgcG9vbEZlZUF2ZXJhZ2U6IHRvQmlnTnVtYmVyKHJlcy5wb29sRmVlQXZlcmFnZSksXG4gIHBvb2xBUFk6IHRvQmlnTnVtYmVyKHJlcy5wb29sQVBZKSxcbiAgYXNzZXRTdGFrZWRUb3RhbDogdG9CaWdOdW1iZXIocmVzLmFzc2V0U3Rha2VkVG90YWwpLFxuICBydW5lU3Rha2VkVG90YWw6IHRvQmlnTnVtYmVyKHJlcy5ydW5lU3Rha2VkVG90YWwpLFxuICBwb29sU3Rha2VkVG90YWw6IHRvQmlnTnVtYmVyKHJlcy5wb29sU3Rha2VkVG90YWwpLFxuICBzdGFrZVR4Q291bnQ6IHRvQmlnTnVtYmVyKHJlcy5zdGFrZVR4Q291bnQpLFxuICB3aXRoZHJhd1R4Q291bnQ6IHRvQmlnTnVtYmVyKHJlcy53aXRoZHJhd1R4Q291bnQpLFxuICBzdGFraW5nVHhDb3VudDogdG9CaWdOdW1iZXIocmVzLnN0YWtpbmdUeENvdW50KSxcbiAgc3Rha2Vyc0NvdW50OiB0b0JpZ051bWJlcihyZXMuc3Rha2Vyc0NvdW50KSxcbn0pXG5cbmV4cG9ydCBjb25zdCBwb29sU3RhdHNMZWdhY3kgPSBhc3luYyAoYXNzZXQ6IHN0cmluZyk6IFByb21pc2U8VjJQb29sU3RhdHNMZWdhY3k+ID0+IChcbiAgZmV0Y2g8VjJQb29sU3RhdHNMZWdhY3lSZXNwb25zZT4oe1xuICAgIHBhdGg6IGAvdjIvcG9vbC8ke2Fzc2V0fS9zdGF0cy9sZWdhY3lgLFxuICB9KS50aGVuKHJhd1RvVjJQb29sU3RhdHNMZWdhY3kpXG4pXG5cbmV4cG9ydCBjb25zdCBwb29sU3RhdHNMZWdhY3lNYW55ID0gYXN5bmMgKGFzc2V0OiBzdHJpbmdbXSk6IFByb21pc2U8VjJQb29sU3RhdHNMZWdhY3lbXT4gPT4gKFxuICBQcm9taXNlLmFsbChhc3NldC5tYXAocG9vbFN0YXRzTGVnYWN5KSlcbilcbiJdfQ==