diff --git a/.gitignore b/.gitignore index 44ceaf4d..03a9d01b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,15 @@ +.env #Buidler files cache artifacts -types node_modules dist/ build/ .vscode .idea +types coverage .coverage_artifacts .coverage_cache -.coverage_contracts \ No newline at end of file +.coverage_contracts diff --git a/Dockerfile b/Dockerfile index c7b2b9b1..c354ddf5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ FROM ethereum/solc:0.6.8 as build-deps -FROM node:13 +FROM node:14 COPY --from=build-deps /usr/bin/solc /usr/bin/solc diff --git a/buidler.config.ts b/buidler.config.ts index 03f42645..ae6ef7e3 100644 --- a/buidler.config.ts +++ b/buidler.config.ts @@ -1,3 +1,5 @@ +import path from 'path'; +import fs from 'fs'; import {usePlugin} from '@nomiclabs/buidler/config'; // @ts-ignore import {accounts} from './test-wallets.js'; @@ -11,18 +13,29 @@ usePlugin('@nomiclabs/buidler-waffle'); usePlugin('@nomiclabs/buidler-etherscan'); //usePlugin('buidler-gas-reporter'); +const SKIP_LOAD = process.env.SKIP_LOAD === 'true'; const DEFAULT_BLOCK_GAS_LIMIT = 10000000; const DEFAULT_GAS_PRICE = 10; const HARDFORK = 'istanbul'; -const INFURA_KEY = ''; -const ETHERSCAN_KEY = ''; +const INFURA_KEY = process.env.INFURA_KEY || ''; +const ETHERSCAN_KEY = process.env.ETHERSCAN_KEY || ''; const MNEMONIC_PATH = "m/44'/60'/0'/0"; const MNEMONICS: {[network: string]: string} = { - [eEthereumNetwork.kovan]: '', - [eEthereumNetwork.ropsten]: '', - [eEthereumNetwork.main]: '', + [eEthereumNetwork.kovan]: process.env.MNEMONIC || '', + [eEthereumNetwork.ropsten]: process.env.MNEMONIC || '', + [eEthereumNetwork.main]: process.env.MNEMONIC || '', }; +// Prevent to load scripts before compilation and typechain +if (!SKIP_LOAD) { + ['misc', 'migrations', 'dev', 'full'].forEach((folder) => { + const tasksPath = path.join(__dirname, 'tasks', folder); + fs.readdirSync(tasksPath) + .filter((pth) => pth.includes('.ts')) + .forEach((task) => require(`${tasksPath}/${task}`)); + }); +} + const getCommonNetworkConfig = (networkName: eEthereumNetwork, networkId: number) => { return { url: `https://${networkName}.infura.io/v3/${INFURA_KEY}`, @@ -39,7 +52,7 @@ const getCommonNetworkConfig = (networkName: eEthereumNetwork, networkId: number }; }; -const config: any = { +const buidlerConfig: any = { solc: { version: '0.6.8', optimizer: {enabled: true, runs: 200}, @@ -50,7 +63,6 @@ const config: any = { target: 'ethers-v4', }, etherscan: { - url: 'https://api-kovan.etherscan.io/api', apiKey: ETHERSCAN_KEY, }, defaultNetwork: 'buidlerevm', @@ -90,4 +102,4 @@ const config: any = { }, }; -export default config; +export default buidlerConfig; diff --git a/config/aave.ts b/config/aave.ts new file mode 100644 index 00000000..1f4295be --- /dev/null +++ b/config/aave.ts @@ -0,0 +1,320 @@ +import BigNumber from 'bignumber.js'; +import {oneRay} from '../helpers/constants'; +import {IAaveConfiguration, EthereumNetwork, eEthereumNetwork} from '../helpers/types'; + +import {CommonsConfig} from './commons'; + +// ---------------- +// POOL--SPECIFIC PARAMS +// ---------------- + +export const AaveConfig: IAaveConfiguration = { + ...CommonsConfig, + ConfigName: 'Aave', + ProviderId: 1, + ReserveSymbols: [ + 'WETH', + 'DAI', + 'LEND', + 'TUSD', + 'BAT', + 'USDC', + 'USDT', + 'SUSD', + 'ZRX', + 'MKR', + 'WBTC', + 'LINK', + 'KNC', + 'MANA', + 'REP', + 'SNX', + 'BUSD', + ], + ReservesConfig: { + DAI: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.05).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '7500', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + TUSD: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '7500', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + USDC: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '7500', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '6', + }, + USDT: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '6', + }, + SUSD: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + LEND: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + BAT: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + WETH: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '7500', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + LINK: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6500', + liquidationThreshold: '7000', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + WBTC: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '8', + }, + KNC: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + REP: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + MKR: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + MANA: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + ZRX: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + }, + SNX: { + baseVariableBorrowRate: new BigNumber(0.03).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.12).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + BUSD: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + }, + ReserveAssets: { + [eEthereumNetwork.buidlerevm]: {}, + [eEthereumNetwork.coverage]: {}, + [EthereumNetwork.kovan]: { + WETH: '0xd0a1e359811322d97991e03f863a0c30c2cf029c', + DAI: '0xFf795577d9AC8bD7D90Ee22b6C1703490b6512FD', + TUSD: '0x016750AC630F711882812f24Dba6c95b9D35856d', + USDC: '0xe22da380ee6B445bb8273C81944ADEB6E8450422', + USDT: '0x13512979ADE267AB5100878E2e0f485B568328a4', + SUSD: '0xD868790F57B39C9B2B51b12de046975f986675f9', + LEND: '0x690eAcA024935Aaff9B14b9FF9e9C8757a281f3C', + BAT: '0x2d12186Fbb9f9a8C28B3FfdD4c42920f8539D738', + REP: '0x260071C8D61DAf730758f8BD0d6370353956AE0E', + MKR: '0x61e4CAE3DA7FD189e52a4879C7B8067D7C2Cc0FA', + LINK: '0xAD5ce863aE3E4E9394Ab43d4ba0D80f419F61789', + KNC: '0x3F80c39c0b96A0945f9F0E9f55d8A8891c5671A8', + WBTC: '0x3b92f58feD223E2cB1bCe4c286BD97e42f2A12EA', + MANA: '0x738Dc6380157429e957d223e6333Dc385c85Fec7', + ZRX: '0xD0d76886cF8D952ca26177EB7CfDf83bad08C00C', + SNX: '0x7FDb81B0b8a010dd4FFc57C3fecbf145BA8Bd947', + BUSD: '0x4c6E1EFC12FDfD568186b7BAEc0A43fFfb4bCcCf', + }, + [EthereumNetwork.ropsten]: { + WETH: '0xc778417e063141139fce010982780140aa0cd5ab', + DAI: '0xf80A32A835F79D7787E8a8ee5721D0fEaFd78108', + TUSD: '0xa2EA00Df6d8594DBc76b79beFe22db9043b8896F', + USDC: '0x851dEf71f0e6A903375C1e536Bd9ff1684BAD802', + USDT: '0xB404c51BBC10dcBE948077F18a4B8E553D160084', + SUSD: '0xc374eB17f665914c714Ac4cdC8AF3a3474228cc5', + LEND: '0xB47F338EC1e3857BB188E63569aeBAB036EE67c6', + BAT: '0x85B24b3517E3aC7bf72a14516160541A60cFF19d', + REP: '0xBeb13523503d35F9b3708ca577CdCCAdbFB236bD', + MKR: '0x2eA9df3bABe04451c9C3B06a2c844587c59d9C37', + LINK: '0x1a906E71FF9e28d8E01460639EB8CF0a6f0e2486', + KNC: '0xCe4aA1dE3091033Ba74FA2Ad951f6adc5E5cF361', + WBTC: '0xa0E54Ab6AA5f0bf1D62EC3526436F3c05b3348A0', + MANA: '0x78b1F763857C8645E46eAdD9540882905ff32Db7', + ZRX: '0x02d7055704EfF050323A2E5ee4ba05DB2A588959', + SNX: '0xF80Aa7e2Fda4DA065C55B8061767F729dA1476c7', + BUSD: '0xFA6adcFf6A90c11f31Bc9bb59eC0a6efB38381C6', + }, + [EthereumNetwork.main]: { + WETH: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + DAI: '0x6b175474e89094c44da98b954eedeac495271d0f', + TUSD: '0x0000000000085d4780B73119b644AE5ecd22b376', + USDC: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + USDT: '0xdac17f958d2ee523a2206206994597c13d831ec7', + SUSD: '0x57ab1ec28d129707052df4df418d58a2d46d5f51', + LEND: '0x80fB784B7eD66730e8b1DBd9820aFD29931aab03', + BAT: '0x0d8775f648430679a709e98d2b0cb6250d2887ef', + REP: '0x1985365e9f78359a9B6AD760e32412f4a445E862', + MKR: '0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2', + LINK: '0x514910771af9ca656af840dff83e8264ecf986ca', + KNC: '0xdd974d5c2e2928dea5f71b9825b8b646686bd200', + WBTC: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', + MANA: '0x0f5d2fb29fb7d3cfee444a200298f468908cc942', + ZRX: '0xe41d2489571d322189246dafa5ebde1f4699f498', + SNX: '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F', + BUSD: '0x4Fabb145d64652a948d72533023f6E7A623C7C53', + }, + }, +}; + +export default AaveConfig; diff --git a/config/commons.ts b/config/commons.ts new file mode 100644 index 00000000..83c9c25c --- /dev/null +++ b/config/commons.ts @@ -0,0 +1,261 @@ +import BigNumber from 'bignumber.js'; +import {oneEther, oneRay, RAY} from '../helpers/constants'; +import {ICommonConfiguration, EthereumNetwork, eEthereumNetwork} from '../helpers/types'; + +const MOCK_CHAINLINK_AGGREGATORS_PRICES = { + DAI: oneEther.multipliedBy('0.00369068412860').toFixed(), + TUSD: oneEther.multipliedBy('0.00364714136416').toFixed(), + USDC: oneEther.multipliedBy('0.00367714136416').toFixed(), + LEND: oneEther.multipliedBy('0.00003620948469').toFixed(), + BAT: oneEther.multipliedBy('0.00137893825230').toFixed(), + USDT: oneEther.multipliedBy('0.00369068412860').toFixed(), + SUSD: oneEther.multipliedBy('0.00364714136416').toFixed(), + MKR: oneEther.multipliedBy('2.508581').toFixed(), + REP: oneEther.multipliedBy('0.048235').toFixed(), + ZRX: oneEther.multipliedBy('0.001151').toFixed(), + WBTC: oneEther.multipliedBy('47.332685').toFixed(), + LINK: oneEther.multipliedBy('0.009955').toFixed(), + KNC: oneEther.multipliedBy('0.001072').toFixed(), + MANA: oneEther.multipliedBy('0.000158').toFixed(), + SNX: oneEther.multipliedBy('0.00442616').toFixed(), + BUSD: oneEther.multipliedBy('0.00736484').toFixed(), + WETH: oneEther.toFixed(), + USD: '5848466240000000', + UNI_DAI_ETH: oneEther.multipliedBy('2.1').toFixed(), + UNI_USDC_ETH: oneEther.multipliedBy('2.1').toFixed(), + UNI_SETH_ETH: oneEther.multipliedBy('2.1').toFixed(), + UNI_LEND_ETH: oneEther.multipliedBy('2.1').toFixed(), + UNI_LINK_ETH: oneEther.multipliedBy('2.1').toFixed(), + UNI_MKR_ETH: oneEther.multipliedBy('2.1').toFixed(), +}; +// ---------------- +// PROTOCOL GLOBAL PARAMS +// ---------------- + +export const CommonsConfig: ICommonConfiguration = { + ConfigName: 'Commons', + ProviderId: 0, + ReserveSymbols: [], + ProtocolGlobalParams: { + OptimalUtilizationRate: new BigNumber(0.8).times(RAY), + ExcessUtilizationRate: new BigNumber(0.2).times(RAY), + ApprovalAmountLendingPoolCore: '1000000000000000000000000000', + TokenDistributorPercentageBase: '10000', + MockUsdPriceInWei: '5848466240000000', + EthereumAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', + UsdAddress: '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96', + NilAddress: '0x0000000000000000000000000000000000000000', + OneAddress: '0x0000000000000000000000000000000000000001', + AaveReferral: '0', + }, + + // ---------------- + // COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS + // ---------------- + + Mocks: { + ChainlinkAggregatorPrices: { + ...MOCK_CHAINLINK_AGGREGATORS_PRICES, + }, + AllAssetsInitialPrices: { + ...MOCK_CHAINLINK_AGGREGATORS_PRICES, + }, + }, + LendingRateOracleRatesCommon: { + WETH: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + DAI: { + borrowRate: oneRay.multipliedBy(0.039).toFixed(), + }, + TUSD: { + borrowRate: oneRay.multipliedBy(0.035).toFixed(), + }, + USDC: { + borrowRate: oneRay.multipliedBy(0.039).toFixed(), + }, + SUSD: { + borrowRate: oneRay.multipliedBy(0.035).toFixed(), + }, + USDT: { + borrowRate: oneRay.multipliedBy(0.035).toFixed(), + }, + BAT: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + LEND: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + LINK: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + KNC: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + REP: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + MKR: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + MANA: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + WBTC: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + ZRX: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + SNX: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + BUSD: { + borrowRate: oneRay.multipliedBy(0.05).toFixed(), + }, + }, + // ---------------- + // COMMON PROTOCOL ADDRESSES ACROSS POOLS + // ---------------- + + // If lendingPoolManagerAddress is set, will take priority over lendingPoolManagerAddressIndex + AaveAdmin: { + [eEthereumNetwork.coverage]: undefined, + [eEthereumNetwork.buidlerevm]: undefined, + [eEthereumNetwork.kovan]: undefined, + [eEthereumNetwork.ropsten]: undefined, + [eEthereumNetwork.main]: undefined, + }, + AaveAdminIndex: 0, + ProviderRegistry: { + [eEthereumNetwork.kovan]: '', + [eEthereumNetwork.ropsten]: '', + [eEthereumNetwork.main]: '', + [eEthereumNetwork.coverage]: '', + [eEthereumNetwork.buidlerevm]: '', + }, + LendingRateOracle: { + [eEthereumNetwork.coverage]: '', + [eEthereumNetwork.buidlerevm]: '', + [eEthereumNetwork.kovan]: '0xdcde9bb6a49e37fa433990832ab541ae2d4feb4a', + [eEthereumNetwork.ropsten]: '0x05dcca805a6562c1bdd0423768754acb6993241b', + [eEthereumNetwork.main]: '0x4d728a4496e4de35f218d5a214366bde3a62b51c', + }, + TokenDistributor: { + [eEthereumNetwork.coverage]: '', + [eEthereumNetwork.buidlerevm]: '', + [EthereumNetwork.kovan]: '0x971efe90088f21dc6a36f610ffed77fc19710708', + [EthereumNetwork.ropsten]: '0xeba2ea67942b8250d870b12750b594696d02fc9c', + [EthereumNetwork.main]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae', + }, + ChainlinkProxyPriceProvider: { + [eEthereumNetwork.coverage]: '', + [eEthereumNetwork.buidlerevm]: '', + [EthereumNetwork.kovan]: '0x276C4793F2EE3D5Bf18C5b879529dD4270BA4814', + [EthereumNetwork.ropsten]: '0x657372A559c30d236F011239fF9fbB6D76718271', + [EthereumNetwork.main]: '0x76B47460d7F7c5222cFb6b6A75615ab10895DDe4', + }, + FallbackOracle: { + [eEthereumNetwork.coverage]: '', + [eEthereumNetwork.buidlerevm]: '', + [EthereumNetwork.kovan]: '0x50913E8E1c650E790F8a1E741FF9B1B1bB251dfe', + [EthereumNetwork.ropsten]: '0xAD1a978cdbb8175b2eaeC47B01404f8AEC5f4F0d', + [EthereumNetwork.main]: '0xf67a8b0e3e0ee303422f78b4c5b8da60df80a59c', + }, + ChainlinkAggregator: { + [eEthereumNetwork.coverage]: {}, + [eEthereumNetwork.buidlerevm]: {}, + [EthereumNetwork.kovan]: { + DAI: '0x6F47077D3B6645Cb6fb7A29D280277EC1e5fFD90', + TUSD: '0x02424c54D78D48179Fd12ebFfB11c16f9CA984Ad', + USDC: '0x672c1C0d1130912D83664011E7960a42E8cA05D5', + USDT: '0xCC833A6522721B3252e7578c5BCAF65738B75Fc3', + SUSD: '0xa353F8b083F7575cfec443b5ad585D42f652E9F7', + LEND: '0xdce38940264dfbc01ad1486c21764948e511947e', + BAT: '0x2c8d01771CCDca47c103194C5860dbEA2fE61626', + REP: '0x09F4A94F44c29d4967C761bBdB89f5bD3E2c09E6', + MKR: '0x14D7714eC44F44ECD0098B39e642b246fB2c38D0', + LINK: '0xf1e71Afd1459C05A2F898502C4025be755aa844A', + KNC: '0x0893AaF58f62279909F9F6FF2E5642f53342e77F', + WBTC: '0x33E5085E92f5b53E9A193E28ad2f76bF210550BB', + MANA: '0x3c30c5c415B2410326297F0f65f5Cbb32f3aefCc', + ZRX: '0x2636cfdDB457a6C7A7D60A439F1E5a5a0C3d9c65', + SNX: '0x775E76cca1B5bc903c9a8C6f77416A35E5744664', + BUSD: '0x63294A05C9a81b1A40CAD3f2ff30617111630393', + USD: '0xD21912D8762078598283B14cbA40Cb4bFCb87581', + UNI_DAI_ETH: '0x0338C40020Bf886c11406115fD1ba205Ef1D9Ff9', + UNI_USDC_ETH: '0x7f5E5D34591e9a70D187BBA94260C30B92aC0961', + UNI_SETH_ETH: '0xc5F1eA001c1570783b3af418fa775237Eb129EDC', + UNI_LEND_ETH: '0xB996b1a11BA0aACc4deA57f7f92d1722428f2E90', + UNI_LINK_ETH: '0x267490eE9Ad21dfE839aE73A8B1c8C9A36F60d33', + UNI_MKR_ETH: '0x6eBF25AB0A18B8F6243619f1AE6b94373169A069', + }, + [EthereumNetwork.ropsten]: { + DAI: '0x64b8e49baded7bfb2fd5a9235b2440c0ee02971b', + TUSD: '0x523ac85618df56e940534443125ef16daf785620', + USDC: '0xe1480303dde539e2c241bdc527649f37c9cbef7d', + USDT: '0xc08fe0c4d97ccda6b40649c6da621761b628c288', + SUSD: '0xe054b4aee7ac7645642dd52f1c892ff0128c98f0', + LEND: '0xf7b4834fe443d1E04D757b4b089b35F5A90F2847', + BAT: '0xafd8186c962daf599f171b8600f3e19af7b52c92', + REP: '0xa949ee9ba80c0f381481f2eab538bc5547a5ac67', + MKR: '0x811B1f727F8F4aE899774B568d2e72916D91F392', + LINK: '0xb8c99b98913bE2ca4899CdcaF33a3e519C20EeEc', + KNC: '0x19d97ceb36624a31d827032d8216dd2eb15e9845', + WBTC: '0x5b8B87A0abA4be247e660B0e0143bB30Cdf566AF', + MANA: '0xDab909dedB72573c626481fC98CEE1152b81DEC2', + ZRX: '0x1d0052e4ae5b4ae4563cbac50edc3627ca0460d7', + SNX: '0xA95674a8Ed9aa9D2E445eb0024a9aa05ab44f6bf', + BUSD: '0x0A32D96Ff131cd5c3E0E5AAB645BF009Eda61564', + USD: '0x8468b2bDCE073A157E560AA4D9CcF6dB1DB98507', + UNI_DAI_ETH: '0x16048819e3f77b7112eB033624A0bA9d33743028', + UNI_USDC_ETH: '0x6952A2678D574073DB97963886c2F38CD09C8Ba3', + UNI_SETH_ETH: '0x23Ee5188806BD2D31103368B0EA0259bc6706Af1', + UNI_LEND_ETH: '0x43c44B27376Afedee06Bae2A003e979FC3B3Da6C', + UNI_LINK_ETH: '0xb60c29714146EA3539261f599Eb30f62904108Fa', + UNI_MKR_ETH: '0x594ae5421f378b8B4AF9e758C461d2A1FF990BC5', + }, + [EthereumNetwork.main]: { + DAI: '0x037E8F2125bF532F3e228991e051c8A7253B642c', + TUSD: '0x73ead35fd6A572EF763B13Be65a9db96f7643577', + USDC: '0xdE54467873c3BCAA76421061036053e371721708', + USDT: '0xa874fe207DF445ff19E7482C746C4D3fD0CB9AcE', + SUSD: '0x6d626Ff97f0E89F6f983dE425dc5B24A18DE26Ea', + LEND: '0x1EeaF25f2ECbcAf204ECADc8Db7B0db9DA845327', + BAT: '0x9b4e2579895efa2b4765063310Dc4109a7641129', + REP: '0xb8b513d9cf440C1b6f5C7142120d611C94fC220c', + MKR: '0xda3d675d50ff6c555973c4f0424964e1f6a4e7d3', + LINK: '0xeCfA53A8bdA4F0c4dd39c55CC8deF3757aCFDD07', + KNC: '0xd0e785973390fF8E77a83961efDb4F271E6B8152', + WBTC: '0x0133Aa47B6197D0BA090Bf2CD96626Eb71fFd13c', + MANA: '0xc89c4ed8f52Bb17314022f6c0dCB26210C905C97', + ZRX: '0xA0F9D94f060836756FFC84Db4C78d097cA8C23E8', + SNX: '0xE23d1142dE4E83C08bb048bcab54d50907390828', + BUSD: '0x5d4BB541EED49D0290730b4aB332aA46bd27d888', + USD: '0x59b826c214aBa7125bFA52970d97736c105Cc375', + UNI_DAI_ETH: '0x1bAB293850289Bf161C5DA79ff3d1F02A950555b', + UNI_USDC_ETH: '0x444315Ee92F2bb3579293C17B07194227fA99bF0', + UNI_SETH_ETH: '0x517D40E49660c7705b2e99eEFA6d7B0E9Ba5BF10', + UNI_LEND_ETH: '0xF4C8Db2d999b024bBB6c6022566503eD41f2AC1E', + UNI_LINK_ETH: '0xE2A639Beb647d7F709ca805ABa760bBEfdbE37e3', + UNI_MKR_ETH: '0xEe40a5E8F3732bE6ECDb5A90e23D0b7bF0D4a73c', + }, + }, + ReserveAssets: { + [eEthereumNetwork.coverage]: {}, + [eEthereumNetwork.buidlerevm]: {}, + [EthereumNetwork.main]: {}, + [EthereumNetwork.kovan]: {}, + [EthereumNetwork.ropsten]: {}, + }, + ReservesConfig: {}, + ATokenDomainSeparator: { + [eEthereumNetwork.coverage]: + '0x95b73a72c6ecf4ccbbba5178800023260bad8e75cdccdb8e4827a2977a37c820', + [eEthereumNetwork.buidlerevm]: + '0x76cbbf8aa4b11a7c207dd79ccf8c394f59475301598c9a083f8258b4fafcfa86', + [eEthereumNetwork.kovan]: '', + [eEthereumNetwork.ropsten]: '', + [eEthereumNetwork.main]: '', + }, +}; diff --git a/config/tokensets_v2.ts b/config/tokensets_v2.ts new file mode 100644 index 00000000..a685a68b --- /dev/null +++ b/config/tokensets_v2.ts @@ -0,0 +1,6 @@ +import {CommonsConfig} from './commons'; + +export const TokenSetsConfig = { + ...CommonsConfig, + // ...TokenSetsConfigStore, +}; diff --git a/config/uniswap.ts b/config/uniswap.ts new file mode 100644 index 00000000..289b4c0b --- /dev/null +++ b/config/uniswap.ts @@ -0,0 +1,236 @@ +import BigNumber from 'bignumber.js'; +import {eEthereumNetwork, EthereumNetwork, IUniswapConfiguration} from '../helpers/types'; +import {oneRay} from '../helpers/constants'; + +import {CommonsConfig} from './commons'; + +// ---------------- +// POOL--SPECIFIC PARAMS +// ---------------- + +export const UniswapConfig: IUniswapConfiguration = { + ...CommonsConfig, + ConfigName: 'Uniswap', + ProviderId: 2, + ReserveSymbols: [ + 'WETH', + 'DAI', + 'USDC', + 'USDT', + 'UNI_DAI_ETH', + 'UNI_USDC_ETH', + 'UNI_SETH_ETH', + 'UNI_LINK_ETH', + 'UNI_MKR_ETH', + 'UNI_LEND_ETH', + ], + ReservesConfig: { + WETH: { + baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + DAI: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + USDC: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '6', + }, + USDT: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '-1', + liquidationThreshold: '8000', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '6', + }, + UNI_DAI_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6800', + liquidationThreshold: '7300', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + UNI_USDC_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6800', + liquidationThreshold: '7300', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + UNI_SETH_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '4800', + liquidationThreshold: '6600', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + UNI_LEND_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '5100', + liquidationThreshold: '6600', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + UNI_LINK_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '6300', + liquidationThreshold: '6800', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + UNI_MKR_ETH: { + baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), + stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), + stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), + baseLTVAsCollateral: '4800', + liquidationThreshold: '6600', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + }, + }, + ChainlinkAggregator: { + [eEthereumNetwork.buidlerevm]: {}, + [eEthereumNetwork.coverage]: {}, + [EthereumNetwork.kovan]: { + DAI: '0x6F47077D3B6645Cb6fb7A29D280277EC1e5fFD90', + USDC: '0x672c1C0d1130912D83664011E7960a42E8cA05D5', + USDT: '0xCC833A6522721B3252e7578c5BCAF65738B75Fc3', + UNI_DAI_ETH: '0x0338C40020Bf886c11406115fD1ba205Ef1D9Ff9', + UNI_USDC_ETH: '0x7f5E5D34591e9a70D187BBA94260C30B92aC0961', + UNI_SETH_ETH: '0xc5F1eA001c1570783b3af418fa775237Eb129EDC', + UNI_LEND_ETH: '0xB996b1a11BA0aACc4deA57f7f92d1722428f2E90', + UNI_LINK_ETH: '0x267490eE9Ad21dfE839aE73A8B1c8C9A36F60d33', + UNI_MKR_ETH: '0x6eBF25AB0A18B8F6243619f1AE6b94373169A069', + }, + [EthereumNetwork.ropsten]: { + DAI: '0x64b8e49baded7bfb2fd5a9235b2440c0ee02971b', + USDC: '0xe1480303dde539e2c241bdc527649f37c9cbef7d', + USDT: '0xc08fe0c4d97ccda6b40649c6da621761b628c288', + UNI_DAI_ETH: '0x16048819e3f77b7112eB033624A0bA9d33743028', + UNI_USDC_ETH: '0x6952A2678D574073DB97963886c2F38CD09C8Ba3', + UNI_SETH_ETH: '0x23Ee5188806BD2D31103368B0EA0259bc6706Af1', + UNI_LEND_ETH: '0x43c44B27376Afedee06Bae2A003e979FC3B3Da6C', + UNI_LINK_ETH: '0xb60c29714146EA3539261f599Eb30f62904108Fa', + UNI_MKR_ETH: '0x594ae5421f378b8B4AF9e758C461d2A1FF990BC5', + }, + [EthereumNetwork.main]: { + DAI: '0x037E8F2125bF532F3e228991e051c8A7253B642c', + USDC: '0xdE54467873c3BCAA76421061036053e371721708', + USDT: '0xa874fe207DF445ff19E7482C746C4D3fD0CB9AcE', + UNI_DAI_ETH: '0x1bAB293850289Bf161C5DA79ff3d1F02A950555b', + UNI_USDC_ETH: '0x444315Ee92F2bb3579293C17B07194227fA99bF0', + UNI_SETH_ETH: '0x517D40E49660c7705b2e99eEFA6d7B0E9Ba5BF10', + UNI_LEND_ETH: '0xF4C8Db2d999b024bBB6c6022566503eD41f2AC1E', + UNI_LINK_ETH: '0xE2A639Beb647d7F709ca805ABa760bBEfdbE37e3', + UNI_MKR_ETH: '0xEe40a5E8F3732bE6ECDb5A90e23D0b7bF0D4a73c', + }, + }, + ReserveAssets: { + [eEthereumNetwork.buidlerevm]: {}, + [eEthereumNetwork.coverage]: {}, + [EthereumNetwork.kovan]: { + WETH: '0xd0a1e359811322d97991e03f863a0c30c2cf029c', + DAI: '0xFf795577d9AC8bD7D90Ee22b6C1703490b6512FD', + USDC: '0xe22da380ee6B445bb8273C81944ADEB6E8450422', + USDT: '0x13512979ADE267AB5100878E2e0f485B568328a4', + UNI_DAI_ETH: '0x2e0086b5343101203ADeE40160ca1BD91E29fF75', + UNI_USDC_ETH: '0x34eA1aB2a43ee696914fc3C0d3e517fA666B9e8D', + UNI_SETH_ETH: '0xCF457d8Bb8D8f54Af1ea1B3710231e89bd6CFbfe', + UNI_LEND_ETH: '0x7615cd666F867406C64E558B9CCC3883e7EC9BA8', + UNI_LINK_ETH: '0xFb9AAc184e79025f936E9C4EF3047Ad4889Df4a8', + UNI_MKR_ETH: '0xB31a1c30f38cD68e8177566Ef950d7bc3C81DaCF', + }, + [EthereumNetwork.ropsten]: { + WETH: '0xc778417e063141139fce010982780140aa0cd5ab', + DAI: '0xf80A32A835F79D7787E8a8ee5721D0fEaFd78108', + USDC: '0x851dEf71f0e6A903375C1e536Bd9ff1684BAD802', + USDT: '0xB404c51BBC10dcBE948077F18a4B8E553D160084', + UNI_DAI_ETH: '0xC245A7d35E652Cae438A1FdB13E474DF53DBB81D', + UNI_USDC_ETH: '0x2BD65323955D08eb600074291305881d1295c4D2', + UNI_SETH_ETH: '0xed4597DCd234867d7A260AD24bAb8253F64940a5', + UNI_LEND_ETH: '0xcD5DE1EDD40aBBD6efE2C306276FF56f81Bc3151', + UNI_LINK_ETH: '0x8dcf3c8d4d69ca7C188c0A4cf219A1dcE1e510d7', + UNI_MKR_ETH: '0xd8b7B99a9205FD0D0abFB6D7a2c13Db2681bff43', + }, + [EthereumNetwork.main]: { + WETH: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + DAI: '0x6b175474e89094c44da98b954eedeac495271d0f', + USDC: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', + USDT: '0xdac17f958d2ee523a2206206994597c13d831ec7', + UNI_DAI_ETH: '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667', + UNI_USDC_ETH: '0x97dec872013f6b5fb443861090ad931542878126', + UNI_SETH_ETH: '0xe9cf7887b93150d4f2da7dfc6d502b216438f244', + UNI_LEND_ETH: '0xcaa7e4656f6a2b59f5f99c745f91ab26d1210dce', + UNI_LINK_ETH: '0xf173214c720f58e03e194085b1db28b50acdeead', + UNI_MKR_ETH: '0x2c4bd064b998838076fa341a83d007fc2fa50957', + }, + }, +}; diff --git a/contracts/flashloan/interfaces/IFlashLoanReceiver.sol b/contracts/flashloan/interfaces/IFlashLoanReceiver.sol index e3c2636c..5c92236a 100644 --- a/contracts/flashloan/interfaces/IFlashLoanReceiver.sol +++ b/contracts/flashloan/interfaces/IFlashLoanReceiver.sol @@ -13,5 +13,5 @@ interface IFlashLoanReceiver { uint256 amount, uint256 fee, bytes calldata params - ) external; + ) external returns (bool); } diff --git a/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol b/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol index 8ad61dca..1c6e4c0c 100644 --- a/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol +++ b/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol @@ -50,7 +50,6 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { //slope of the stable interest curve when utilization rate > OPTIMAL_UTILIZATION_RATE. Expressed in ray uint256 internal immutable _stableRateSlope2; - constructor( LendingPoolAddressesProvider provider, uint256 baseVariableBorrowRate, @@ -94,9 +93,8 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { function getMaxVariableBorrowRate() external override view returns (uint256) { return _baseVariableBorrowRate.add(_variableRateSlope1).add(_variableRateSlope2); } - - struct CalcInterestRatesLocalVars { + struct CalcInterestRatesLocalVars { uint256 totalBorrows; uint256 currentVariableBorrowRate; uint256 currentStableBorrowRate; @@ -133,7 +131,6 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { uint256 ) { - CalcInterestRatesLocalVars memory vars; vars.totalBorrows = totalStableDebt.add(totalVariableDebt); @@ -172,13 +169,18 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { vars.currentLiquidityRate = _getOverallBorrowRate( totalStableDebt, totalVariableDebt, - vars.currentVariableBorrowRate, + vars + .currentVariableBorrowRate, averageStableBorrowRate ) .rayMul(utilizationRate) .percentMul(PercentageMath.PERCENTAGE_FACTOR.sub(reserveFactor)); - return (vars.currentLiquidityRate, vars.currentStableBorrowRate, vars.currentVariableBorrowRate); + return ( + vars.currentLiquidityRate, + vars.currentStableBorrowRate, + vars.currentVariableBorrowRate + ); } /** @@ -199,13 +201,9 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { if (totalBorrows == 0) return 0; - uint256 weightedVariableRate = totalVariableDebt.wadToRay().rayMul( - currentVariableBorrowRate - ); + uint256 weightedVariableRate = totalVariableDebt.wadToRay().rayMul(currentVariableBorrowRate); - uint256 weightedStableRate = totalStableDebt.wadToRay().rayMul( - currentAverageStableBorrowRate - ); + uint256 weightedStableRate = totalStableDebt.wadToRay().rayMul(currentAverageStableBorrowRate); uint256 overallBorrowRate = weightedVariableRate.add(weightedStableRate).rayDiv( totalBorrows.wadToRay() diff --git a/contracts/lendingpool/LendingPool.sol b/contracts/lendingpool/LendingPool.sol index 948df2c9..688f3eb3 100644 --- a/contracts/lendingpool/LendingPool.sol +++ b/contracts/lendingpool/LendingPool.sol @@ -579,7 +579,10 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage IAToken(vars.aTokenAddress).transferUnderlyingTo(receiverAddress, amount); //execute action of the receiver - vars.receiver.executeOperation(asset, amount, vars.premium, params); + require( + vars.receiver.executeOperation(asset, amount, vars.premium, params), + Errors.INVALID_FLASH_LOAN_EXECUTOR_RETURN + ); vars.amountPlusPremium = amount.add(vars.premium); @@ -720,7 +723,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage return _reserves[asset].configuration; } - /** + /** * @dev returns the configuration of the user for the specific reserve * @param user the user * @return the configuration of the user @@ -734,7 +737,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage return _usersConfig[user]; } - /** + /** * @dev returns the normalized income per unit of asset * @param asset the address of the reserve * @return the reserve normalized income @@ -757,7 +760,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage return _reserves[asset].getNormalizedDebt(); } - /** + /** * @dev Returns if the LendingPool is paused */ function paused() external override view returns (bool) { @@ -810,8 +813,8 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage } /** - * @dev avoids direct transfers of ETH - **/ + * @dev avoids direct transfers of ETH + **/ receive() external payable { revert(); } @@ -853,10 +856,10 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage } /** - * @dev sets the configuration map of the reserve - * @param asset the address of the reserve - * @param configuration the configuration map - **/ + * @dev sets the configuration map of the reserve + * @param asset the address of the reserve + * @param configuration the configuration map + **/ function setConfiguration(address asset, uint256 configuration) external override { _onlyLendingPoolConfigurator(); _reserves[asset].configuration.data = configuration; @@ -876,6 +879,7 @@ contract LendingPool is VersionedInitializable, ILendingPool, LendingPoolStorage emit Unpaused(); } } + // internal functions struct ExecuteBorrowParams { address asset; diff --git a/contracts/lendingpool/LendingPoolStorage.sol b/contracts/lendingpool/LendingPoolStorage.sol index c2fb6111..1def3b12 100644 --- a/contracts/lendingpool/LendingPoolStorage.sol +++ b/contracts/lendingpool/LendingPoolStorage.sol @@ -25,5 +25,4 @@ contract LendingPoolStorage { bool internal _flashLiquidationLocked; bool internal _paused; - } diff --git a/contracts/libraries/configuration/UserConfiguration.sol b/contracts/libraries/configuration/UserConfiguration.sol index 45802f31..86a3b925 100644 --- a/contracts/libraries/configuration/UserConfiguration.sol +++ b/contracts/libraries/configuration/UserConfiguration.sol @@ -5,6 +5,7 @@ import {SafeMath} from '@openzeppelin/contracts/math/SafeMath.sol'; import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol'; import {WadRayMath} from '../math/WadRayMath.sol'; import {IPriceOracleGetter} from '../../interfaces/IPriceOracleGetter.sol'; + /** * @title UserConfiguration library * @author Aave diff --git a/contracts/libraries/helpers/Errors.sol b/contracts/libraries/helpers/Errors.sol index cf0923c7..ee71efaa 100644 --- a/contracts/libraries/helpers/Errors.sol +++ b/contracts/libraries/helpers/Errors.sol @@ -44,6 +44,7 @@ library Errors { string public constant FAILED_COLLATERAL_SWAP = '55'; string public constant INVALID_EQUAL_ASSETS_TO_SWAP = '56'; string public constant NO_MORE_RESERVES_ALLOWED = '59'; + string public constant INVALID_FLASH_LOAN_EXECUTOR_RETURN = '60'; // require error messages - aToken - DebtTokens string public constant CALLER_MUST_BE_LENDING_POOL = '28'; // 'The caller of this function must be a lending pool' diff --git a/contracts/mocks/flashloan/MockFlashLoanReceiver.sol b/contracts/mocks/flashloan/MockFlashLoanReceiver.sol index 112084a7..cf717e6f 100644 --- a/contracts/mocks/flashloan/MockFlashLoanReceiver.sol +++ b/contracts/mocks/flashloan/MockFlashLoanReceiver.sol @@ -20,6 +20,7 @@ contract MockFlashLoanReceiver is FlashLoanReceiverBase { bool _failExecution; uint256 _amountToApprove; + bool _simulateEOA; constructor(ILendingPoolAddressesProvider provider) public FlashLoanReceiverBase(provider) {} @@ -31,16 +32,25 @@ contract MockFlashLoanReceiver is FlashLoanReceiverBase { _amountToApprove = amountToApprove; } + function setSimulateEOA(bool flag) public { + _simulateEOA = flag; + } + function amountToApprove() public view returns (uint256) { return _amountToApprove; } + function simulateEOA() public view returns (bool) { + return _simulateEOA; + } + function executeOperation( address reserve, uint256 amount, uint256 fee, bytes memory params - ) public override { + ) public override returns (bool) { + params; //mint to this contract the specific amount MintableERC20 token = MintableERC20(reserve); @@ -51,7 +61,7 @@ contract MockFlashLoanReceiver is FlashLoanReceiverBase { if (_failExecution) { emit ExecutedWithFail(reserve, amount, fee); - return; + return !_simulateEOA; } //execution does not fail - mint tokens and return them to the _destination @@ -62,5 +72,7 @@ contract MockFlashLoanReceiver is FlashLoanReceiverBase { IERC20(reserve).approve(_addressesProvider.getLendingPool(), amountToReturn); emit ExecutedWithSuccess(reserve, amount, fee); + + return true; } } diff --git a/contracts/mocks/upgradeability/MockAToken.sol b/contracts/mocks/upgradeability/MockAToken.sol index 837e103a..3e6a39b8 100644 --- a/contracts/mocks/upgradeability/MockAToken.sol +++ b/contracts/mocks/upgradeability/MockAToken.sol @@ -12,7 +12,17 @@ contract MockAToken is AToken { string memory tokenName, string memory tokenSymbol, address incentivesController - ) public AToken(pool, underlyingAssetAddress, reserveTreasury, tokenName, tokenSymbol, incentivesController) {} + ) + public + AToken( + pool, + underlyingAssetAddress, + reserveTreasury, + tokenName, + tokenSymbol, + incentivesController + ) + {} function getRevision() internal override pure returns (uint256) { return 0x2; diff --git a/contracts/tokenization/AToken.sol b/contracts/tokenization/AToken.sol index 016a5601..3e6d4c76 100644 --- a/contracts/tokenization/AToken.sol +++ b/contracts/tokenization/AToken.sol @@ -134,7 +134,6 @@ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { emit Mint(user, amount, index); } - /** * @dev mints aTokens to reserve treasury * only lending pools can call this function @@ -142,8 +141,7 @@ contract AToken is VersionedInitializable, IncentivizedERC20, IAToken { * @param index the the last index of the reserve */ function mintToTreasury(uint256 amount, uint256 index) external override onlyLendingPool { - - if(amount == 0){ + if (amount == 0) { return; } diff --git a/contracts/tokenization/VariableDebtToken.sol b/contracts/tokenization/VariableDebtToken.sol index e7bd7309..f8e48af9 100644 --- a/contracts/tokenization/VariableDebtToken.sol +++ b/contracts/tokenization/VariableDebtToken.sol @@ -60,7 +60,6 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken { uint256 amount, uint256 index ) external override onlyLendingPool { - uint256 amountScaled = amount.rayDiv(index); require(amountScaled != 0, Errors.INVALID_MINT_AMOUNT); @@ -80,7 +79,6 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken { uint256 amount, uint256 index ) external override onlyLendingPool { - uint256 amountScaled = amount.rayDiv(index); require(amountScaled != 0, Errors.INVALID_BURN_AMOUNT); @@ -114,14 +112,18 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken { return super.totalSupply(); } - /** + /** * @dev returns the principal balance of the user and principal total supply. * @param user the address of the user * @return the principal balance of the user * @return the principal total supply **/ - function getScaledUserBalanceAndSupply(address user) external override view returns (uint256, uint256){ + function getScaledUserBalanceAndSupply(address user) + external + override + view + returns (uint256, uint256) + { return (super.balanceOf(user), super.totalSupply()); } - } diff --git a/contracts/tokenization/interfaces/IAToken.sol b/contracts/tokenization/interfaces/IAToken.sol index b5e182bc..612abdc5 100644 --- a/contracts/tokenization/interfaces/IAToken.sol +++ b/contracts/tokenization/interfaces/IAToken.sol @@ -11,12 +11,7 @@ interface IAToken is IERC20, IScaledBalanceToken { * @param value the amount to be redeemed * @param index the last index of the reserve **/ - event Burn( - address indexed from, - address indexed target, - uint256 value, - uint256 index - ); + event Burn(address indexed from, address indexed target, uint256 value, uint256 index); /** * @dev emitted during the transfer action * @param from the address from which the tokens are being transferred @@ -24,12 +19,8 @@ interface IAToken is IERC20, IScaledBalanceToken { * @param value the amount to be minted * @param index the last index of the reserve **/ - event BalanceTransfer( - address indexed from, - address indexed to, - uint256 value, - uint256 index - ); + event BalanceTransfer(address indexed from, address indexed to, uint256 value, uint256 index); + /** * @dev burns the aTokens and sends the equivalent amount of underlying to the target. * only lending pools can call this function @@ -63,7 +54,6 @@ interface IAToken is IERC20, IScaledBalanceToken { uint256 value ) external; - function isTransferAllowed(address user, uint256 amount) external view returns (bool); /** @@ -73,6 +63,4 @@ interface IAToken is IERC20, IScaledBalanceToken { * @return the amount transferred **/ function transferUnderlyingTo(address user, uint256 amount) external returns (uint256); - - } diff --git a/contracts/tokenization/interfaces/IScaledBalanceToken.sol b/contracts/tokenization/interfaces/IScaledBalanceToken.sol index 9bcd2427..5d2796e9 100644 --- a/contracts/tokenization/interfaces/IScaledBalanceToken.sol +++ b/contracts/tokenization/interfaces/IScaledBalanceToken.sol @@ -1,9 +1,7 @@ - // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; interface IScaledBalanceToken { - /** * @dev emitted after the mint action * @param from the address performing the mint diff --git a/contracts/tokenization/interfaces/IVariableDebtToken.sol b/contracts/tokenization/interfaces/IVariableDebtToken.sol index 2e6bae93..f1988be8 100644 --- a/contracts/tokenization/interfaces/IVariableDebtToken.sol +++ b/contracts/tokenization/interfaces/IVariableDebtToken.sol @@ -8,21 +8,16 @@ import {IScaledBalanceToken} from './IScaledBalanceToken.sol'; * @author Aave * @notice defines the basic interface for a variable debt token. **/ -interface IVariableDebtToken is IScaledBalanceToken { - +interface IVariableDebtToken is IScaledBalanceToken { /** * @dev emitted when variable debt is burnt * @param user the user which debt has been burned * @param amount the amount of debt being burned * @param index the index of the user **/ - event Burn( - address indexed user, - uint256 amount, - uint256 index - ); + event Burn(address indexed user, uint256 amount, uint256 index); - /** + /** * @dev burns user variable debt * @param user the user which debt is burnt * @param index the variable debt index of the reserve @@ -32,5 +27,4 @@ interface IVariableDebtToken is IScaledBalanceToken { uint256 amount, uint256 index ) external; - } diff --git a/coverage.json b/coverage.json index 5c8fd1d4..a5225afd 100644 --- a/coverage.json +++ b/coverage.json @@ -1 +1,7373 @@ -{"contracts/configuration/LendingPoolAddressesProvider.sol":{"l":{"38":9,"46":1,"47":1,"55":119,"63":1,"64":1,"75":37,"83":1,"84":1,"93":124,"97":1,"98":1,"102":168,"106":1,"107":1,"111":234,"115":1,"116":1,"125":2,"127":2,"130":2,"132":2,"133":2,"134":2,"135":2,"136":2,"138":0},"path":"/src/contracts/configuration/LendingPoolAddressesProvider.sol","s":{"1":9,"2":1,"3":1,"4":119,"5":1,"6":1,"7":37,"8":1,"9":1,"10":124,"11":1,"12":1,"13":168,"14":1,"15":1,"16":234,"17":1,"18":1,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"25":2,"26":2,"27":0},"b":{"1":[2,0]},"f":{"1":9,"2":1,"3":119,"4":1,"5":37,"6":1,"7":124,"8":1,"9":168,"10":1,"11":234,"12":1,"13":2},"fnMap":{"1":{"name":"getLendingPool","line":37,"loc":{"start":{"line":37,"column":2},"end":{"line":39,"column":2}}},"2":{"name":"setLendingPoolImpl","line":45,"loc":{"start":{"line":45,"column":2},"end":{"line":48,"column":2}}},"3":{"name":"getLendingPoolConfigurator","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":56,"column":2}}},"4":{"name":"setLendingPoolConfiguratorImpl","line":62,"loc":{"start":{"line":62,"column":2},"end":{"line":65,"column":2}}},"5":{"name":"getLendingPoolCollateralManager","line":74,"loc":{"start":{"line":74,"column":2},"end":{"line":76,"column":2}}},"6":{"name":"setLendingPoolCollateralManager","line":82,"loc":{"start":{"line":82,"column":2},"end":{"line":85,"column":2}}},"7":{"name":"getAaveAdmin","line":92,"loc":{"start":{"line":92,"column":2},"end":{"line":94,"column":2}}},"8":{"name":"setAaveAdmin","line":96,"loc":{"start":{"line":96,"column":2},"end":{"line":99,"column":2}}},"9":{"name":"getPriceOracle","line":101,"loc":{"start":{"line":101,"column":2},"end":{"line":103,"column":2}}},"10":{"name":"setPriceOracle","line":105,"loc":{"start":{"line":105,"column":2},"end":{"line":108,"column":2}}},"11":{"name":"getLendingRateOracle","line":110,"loc":{"start":{"line":110,"column":2},"end":{"line":112,"column":2}}},"12":{"name":"setLendingRateOracle","line":114,"loc":{"start":{"line":114,"column":2},"end":{"line":117,"column":2}}},"13":{"name":"_updateImpl","line":124,"loc":{"start":{"line":124,"column":2},"end":{"line":140,"column":2}}}},"statementMap":{"1":{"start":{"line":38,"column":4},"end":{"line":38,"column":35}},"2":{"start":{"line":46,"column":4},"end":{"line":46,"column":34}},"3":{"start":{"line":47,"column":4},"end":{"line":47,"column":33}},"4":{"start":{"line":55,"column":4},"end":{"line":55,"column":48}},"5":{"start":{"line":63,"column":4},"end":{"line":63,"column":55}},"6":{"start":{"line":64,"column":4},"end":{"line":64,"column":53}},"7":{"start":{"line":75,"column":4},"end":{"line":75,"column":54}},"8":{"start":{"line":83,"column":4},"end":{"line":83,"column":56}},"9":{"start":{"line":84,"column":4},"end":{"line":84,"column":53}},"10":{"start":{"line":93,"column":4},"end":{"line":93,"column":33}},"11":{"start":{"line":97,"column":4},"end":{"line":97,"column":37}},"12":{"start":{"line":98,"column":4},"end":{"line":98,"column":36}},"13":{"start":{"line":102,"column":4},"end":{"line":102,"column":35}},"14":{"start":{"line":106,"column":4},"end":{"line":106,"column":41}},"15":{"start":{"line":107,"column":4},"end":{"line":107,"column":40}},"16":{"start":{"line":111,"column":4},"end":{"line":111,"column":42}},"17":{"start":{"line":115,"column":4},"end":{"line":115,"column":54}},"18":{"start":{"line":116,"column":4},"end":{"line":116,"column":52}},"19":{"start":{"line":125,"column":4},"end":{"line":125,"column":58}},"20":{"start":{"line":127,"column":4},"end":{"line":127,"column":4874}},"21":{"start":{"line":130,"column":4},"end":{"line":130,"column":87}},"22":{"start":{"line":132,"column":4},"end":{"line":132,"column":5078}},"23":{"start":{"line":133,"column":6},"end":{"line":133,"column":56}},"24":{"start":{"line":134,"column":6},"end":{"line":134,"column":56}},"25":{"start":{"line":135,"column":6},"end":{"line":135,"column":36}},"26":{"start":{"line":136,"column":6},"end":{"line":136,"column":43}},"27":{"start":{"line":138,"column":6},"end":{"line":138,"column":47}}},"branchMap":{"1":{"line":132,"type":"if","locations":[{"start":{"line":132,"column":4},"end":{"line":132,"column":4}},{"start":{"line":132,"column":4},"end":{"line":132,"column":4}}]}}},"contracts/configuration/LendingPoolAddressesProviderRegistry.sol":{"l":{"31":1,"39":3,"41":3,"43":3,"44":5,"45":4,"49":3,"57":2,"58":2,"59":2,"67":1,"68":1,"69":1,"77":2,"78":1,"79":0,"83":2},"path":"/src/contracts/configuration/LendingPoolAddressesProviderRegistry.sol","s":{"1":1,"2":3,"3":3,"4":3,"5":5,"6":4,"7":3,"8":2,"9":2,"10":2,"11":1,"12":1,"13":1,"14":2,"15":1,"16":0,"17":2},"b":{"1":[4,1],"2":[1,0],"3":[0,1]},"f":{"1":1,"2":3,"3":2,"4":1,"5":2},"fnMap":{"1":{"name":"isAddressesProviderRegistered","line":25,"loc":{"start":{"line":25,"column":2},"end":{"line":32,"column":2}}},"2":{"name":"getAddressesProvidersList","line":38,"loc":{"start":{"line":38,"column":2},"end":{"line":50,"column":2}}},"3":{"name":"registerAddressesProvider","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":60,"column":2}}},"4":{"name":"unregisterAddressesProvider","line":66,"loc":{"start":{"line":66,"column":2},"end":{"line":70,"column":2}}},"5":{"name":"_addToAddressesProvidersList","line":76,"loc":{"start":{"line":76,"column":2},"end":{"line":84,"column":2}}}},"statementMap":{"1":{"start":{"line":31,"column":4},"end":{"line":31,"column":39}},"2":{"start":{"line":39,"column":4},"end":{"line":39,"column":53}},"3":{"start":{"line":41,"column":4},"end":{"line":41,"column":63}},"4":{"start":{"line":43,"column":4},"end":{"line":43,"column":1323}},"5":{"start":{"line":44,"column":6},"end":{"line":44,"column":1393}},"6":{"start":{"line":45,"column":8},"end":{"line":45,"column":53}},"7":{"start":{"line":49,"column":4},"end":{"line":49,"column":26}},"8":{"start":{"line":57,"column":4},"end":{"line":57,"column":36}},"9":{"start":{"line":58,"column":4},"end":{"line":58,"column":41}},"10":{"start":{"line":59,"column":4},"end":{"line":59,"column":46}},"11":{"start":{"line":67,"column":4},"end":{"line":67,"column":76}},"12":{"start":{"line":68,"column":4},"end":{"line":68,"column":35}},"13":{"start":{"line":69,"column":4},"end":{"line":69,"column":48}},"14":{"start":{"line":77,"column":4},"end":{"line":77,"column":2552}},"15":{"start":{"line":78,"column":6},"end":{"line":78,"column":2622}},"16":{"start":{"line":79,"column":8},"end":{"line":79,"column":14}},"17":{"start":{"line":83,"column":4},"end":{"line":83,"column":40}}},"branchMap":{"1":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":6},"end":{"line":44,"column":6}},{"start":{"line":44,"column":6},"end":{"line":44,"column":6}}]},"2":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":4},"end":{"line":67,"column":4}},{"start":{"line":67,"column":4},"end":{"line":67,"column":4}}]},"3":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":6},"end":{"line":78,"column":6}},{"start":{"line":78,"column":6},"end":{"line":78,"column":6}}]}}},"contracts/flashloan/base/FlashLoanReceiverBase.sol":{"l":{"18":3},"path":"/src/contracts/flashloan/base/FlashLoanReceiverBase.sol","s":{"1":3},"b":{},"f":{"1":3},"fnMap":{"1":{"name":"constructor","line":17,"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":2}}}},"statementMap":{"1":{"start":{"line":18,"column":4},"end":{"line":18,"column":32}}},"branchMap":{}},"contracts/flashloan/interfaces/IFlashLoanReceiver.sol":{"l":{},"path":"/src/contracts/flashloan/interfaces/IFlashLoanReceiver.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/lendingpool/DefaultReserveInterestRateStrategy.sol":{"l":{"62":51,"63":51,"64":51,"65":51,"66":51,"67":51,"75":0,"79":0,"83":0,"87":0,"91":0,"95":7,"137":234,"139":234,"140":234,"141":234,"142":234,"144":234,"148":234,"151":234,"152":4,"156":4,"160":4,"164":230,"167":230,"172":234,"181":234,"198":234,"200":234,"202":86,"206":86,"210":86,"214":86},"path":"/src/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol","s":{"1":51,"2":51,"3":51,"4":51,"5":51,"6":51,"7":0,"8":0,"9":0,"10":0,"11":0,"12":7,"13":234,"14":234,"15":234,"16":234,"17":234,"18":234,"19":234,"20":234,"21":4,"22":4,"23":4,"24":230,"25":230,"26":234,"27":234,"28":234,"29":234,"30":148,"31":86,"32":86,"33":86,"34":86},"b":{"1":[4,230],"2":[148,86]},"f":{"1":51,"2":0,"3":0,"4":0,"5":0,"6":0,"7":7,"8":234,"9":234},"fnMap":{"1":{"name":"constructor","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":68,"column":2}}},"2":{"name":"variableRateSlope1","line":74,"loc":{"start":{"line":74,"column":2},"end":{"line":76,"column":2}}},"3":{"name":"variableRateSlope2","line":78,"loc":{"start":{"line":78,"column":2},"end":{"line":80,"column":2}}},"4":{"name":"stableRateSlope1","line":82,"loc":{"start":{"line":82,"column":2},"end":{"line":84,"column":2}}},"5":{"name":"stableRateSlope2","line":86,"loc":{"start":{"line":86,"column":2},"end":{"line":88,"column":2}}},"6":{"name":"baseVariableBorrowRate","line":90,"loc":{"start":{"line":90,"column":2},"end":{"line":92,"column":2}}},"7":{"name":"getMaxVariableBorrowRate","line":94,"loc":{"start":{"line":94,"column":2},"end":{"line":96,"column":2}}},"8":{"name":"calculateInterestRates","line":119,"loc":{"start":{"line":119,"column":2},"end":{"line":182,"column":2}}},"9":{"name":"_getOverallBorrowRate","line":192,"loc":{"start":{"line":192,"column":2},"end":{"line":215,"column":2}}}},"statementMap":{"1":{"start":{"line":62,"column":4},"end":{"line":62,"column":31}},"2":{"start":{"line":63,"column":4},"end":{"line":63,"column":51}},"3":{"start":{"line":64,"column":4},"end":{"line":64,"column":43}},"4":{"start":{"line":65,"column":4},"end":{"line":65,"column":43}},"5":{"start":{"line":66,"column":4},"end":{"line":66,"column":39}},"6":{"start":{"line":67,"column":4},"end":{"line":67,"column":39}},"7":{"start":{"line":75,"column":4},"end":{"line":75,"column":30}},"8":{"start":{"line":79,"column":4},"end":{"line":79,"column":30}},"9":{"start":{"line":83,"column":4},"end":{"line":83,"column":28}},"10":{"start":{"line":87,"column":4},"end":{"line":87,"column":28}},"11":{"start":{"line":91,"column":4},"end":{"line":91,"column":34}},"12":{"start":{"line":95,"column":4},"end":{"line":95,"column":84}},"13":{"start":{"line":137,"column":4},"end":{"line":137,"column":42}},"14":{"start":{"line":139,"column":4},"end":{"line":139,"column":61}},"15":{"start":{"line":140,"column":4},"end":{"line":140,"column":37}},"16":{"start":{"line":141,"column":4},"end":{"line":141,"column":35}},"17":{"start":{"line":142,"column":4},"end":{"line":142,"column":32}},"18":{"start":{"line":144,"column":4},"end":{"line":144,"column":5183}},"19":{"start":{"line":148,"column":4},"end":{"line":148,"column":5283}},"20":{"start":{"line":151,"column":4},"end":{"line":151,"column":5387}},"21":{"start":{"line":152,"column":6},"end":{"line":152,"column":5446}},"22":{"start":{"line":156,"column":6},"end":{"line":156,"column":5584}},"23":{"start":{"line":160,"column":6},"end":{"line":160,"column":5749}},"24":{"start":{"line":164,"column":6},"end":{"line":164,"column":5927}},"25":{"start":{"line":167,"column":6},"end":{"line":167,"column":6090}},"26":{"start":{"line":172,"column":4},"end":{"line":172,"column":6320}},"27":{"start":{"line":181,"column":4},"end":{"line":181,"column":100}},"28":{"start":{"line":198,"column":4},"end":{"line":198,"column":65}},"29":{"start":{"line":200,"column":4},"end":{"line":200,"column":35}},"30":{"start":{"line":200,"column":27},"end":{"line":200,"column":35}},"31":{"start":{"line":202,"column":4},"end":{"line":202,"column":7483}},"32":{"start":{"line":206,"column":4},"end":{"line":206,"column":7595}},"33":{"start":{"line":210,"column":4},"end":{"line":210,"column":7708}},"34":{"start":{"line":214,"column":4},"end":{"line":214,"column":28}}},"branchMap":{"1":{"line":151,"type":"if","locations":[{"start":{"line":151,"column":4},"end":{"line":151,"column":4}},{"start":{"line":151,"column":4},"end":{"line":151,"column":4}}]},"2":{"line":200,"type":"if","locations":[{"start":{"line":200,"column":4},"end":{"line":200,"column":4}},{"start":{"line":200,"column":4},"end":{"line":200,"column":4}}]}}},"contracts/lendingpool/LendingPool.sol":{"l":{"55":118,"68":300,"72":1,"81":1,"97":105,"98":104,"100":104,"102":102,"104":102,"105":102,"107":102,"108":102,"109":93,"112":102,"115":102,"117":102,"126":26,"127":25,"129":25,"131":25,"133":25,"136":25,"137":19,"140":25,"150":22,"152":22,"154":22,"155":18,"158":22,"160":22,"177":3,"194":5,"195":4,"197":3,"198":3,"217":62,"218":61,"220":61,"221":4,"223":4,"229":59,"257":21,"259":20,"261":20,"263":20,"266":20,"270":20,"271":5,"274":20,"283":17,"286":17,"287":9,"289":8,"296":17,"297":17,"299":17,"300":12,"303":17,"305":17,"314":5,"315":4,"317":4,"319":4,"321":4,"329":2,"331":2,"333":1,"334":1,"341":1,"346":1,"353":2,"355":2,"367":8,"369":7,"371":7,"372":7,"373":7,"375":7,"378":7,"379":7,"380":7,"387":7,"388":7,"394":7,"401":1,"403":1,"404":1,"406":1,"408":1,"418":8,"419":7,"421":7,"430":6,"432":6,"433":2,"435":4,"455":11,"456":10,"459":10,"469":10,"471":10,"473":10,"475":5,"499":21,"500":20,"501":18,"503":18,"506":18,"517":18,"519":16,"521":16,"522":5,"525":11,"555":14,"556":13,"557":13,"559":13,"561":13,"563":13,"565":11,"567":11,"570":11,"573":9,"575":9,"577":9,"578":5,"580":3,"581":3,"582":3,"584":3,"587":4,"617":10,"618":9,"621":9,"631":9,"633":7,"635":7,"636":5,"662":97,"664":97,"689":710,"691":710,"715":363,"717":363,"744":21,"758":21,"781":343,"783":343,"784":343,"785":343,"786":343,"787":343,"788":343,"789":343,"792":343,"796":3,"800":0,"816":17,"817":17,"823":17,"836":0,"837":0,"841":75,"842":75,"851":75,"872":63,"873":63,"875":63,"877":63,"881":63,"894":50,"895":50,"896":37,"899":50,"902":50,"904":50,"907":25,"909":25,"915":25,"922":50,"929":50,"930":47,"933":50,"950":17,"951":17,"952":17,"953":136,"954":0,"956":17,"957":17,"958":17,"968":648,"982":810,"997":4,"998":3,"1015":26,"1017":26,"1018":26,"1019":13,"1021":13,"1029":0},"path":"/src/contracts/lendingpool/LendingPool.sol","s":{"1":118,"2":300,"3":1,"4":1,"5":105,"6":104,"7":104,"8":102,"9":102,"10":102,"11":102,"12":102,"13":93,"14":102,"15":102,"16":102,"17":26,"18":25,"19":25,"20":25,"21":25,"22":25,"23":19,"24":25,"25":22,"26":22,"27":22,"28":18,"29":22,"30":22,"31":3,"32":5,"33":4,"34":3,"35":3,"36":62,"37":61,"38":61,"39":4,"40":4,"41":59,"42":21,"43":20,"44":20,"45":20,"46":20,"47":20,"48":5,"49":20,"50":17,"51":17,"52":9,"53":8,"54":17,"55":17,"56":17,"57":12,"58":17,"59":17,"60":5,"61":4,"62":4,"63":4,"64":4,"65":2,"66":2,"67":1,"68":1,"69":1,"70":1,"71":2,"72":2,"73":8,"74":7,"75":7,"76":7,"77":7,"78":7,"79":7,"80":7,"81":7,"82":7,"83":7,"84":7,"85":1,"86":1,"87":1,"88":1,"89":1,"90":8,"91":7,"92":7,"93":6,"94":6,"95":2,"96":4,"97":11,"98":10,"99":10,"100":10,"101":10,"102":10,"103":5,"104":21,"105":20,"106":18,"107":18,"108":18,"109":18,"110":16,"111":16,"112":5,"113":11,"114":14,"115":13,"116":13,"117":13,"118":13,"119":13,"120":11,"121":11,"122":11,"123":9,"124":9,"125":9,"126":5,"127":3,"128":3,"129":3,"130":3,"131":4,"132":10,"133":9,"134":9,"135":9,"136":7,"137":7,"138":5,"139":97,"140":97,"141":710,"142":710,"143":363,"144":363,"145":21,"146":21,"147":343,"148":343,"149":343,"150":343,"151":343,"152":343,"153":343,"154":343,"155":343,"156":3,"157":17,"158":17,"159":17,"160":0,"161":0,"162":75,"163":75,"164":75,"165":63,"166":63,"167":63,"168":63,"169":63,"170":50,"171":50,"172":37,"173":50,"174":50,"175":50,"176":25,"177":25,"178":25,"179":50,"180":50,"181":47,"182":50,"183":17,"184":17,"185":17,"186":136,"187":0,"188":17,"189":17,"190":17,"191":648,"192":810,"193":4,"194":3,"195":26,"196":26,"197":26,"198":13,"199":13,"200":0},"b":{"1":[118,0],"2":[287,13],"3":[93,9],"4":[19,6],"5":[18,4],"6":[4,57],"7":[5,15],"8":[9,8],"9":[12,5],"10":[1,1],"11":[1,6],"12":[2,4],"13":[10,0],"14":[5,5],"15":[18,2],"16":[16,2],"17":[5,11],"18":[5,4],"19":[7,2],"20":[5,2],"21":[37,13],"22":[25,25],"23":[47,3],"24":[17,0],"25":[0,136],"26":[17,0],"27":[13,13]},"f":{"1":118,"2":300,"3":1,"4":1,"5":105,"6":26,"7":3,"8":5,"9":62,"10":21,"11":5,"12":8,"13":8,"14":11,"15":21,"16":14,"17":10,"18":97,"19":710,"20":363,"21":21,"22":343,"23":3,"24":17,"25":0,"26":75,"27":75,"28":63,"29":17,"30":648,"31":810,"32":4,"33":26,"34":0},"fnMap":{"1":{"name":"_onlyLendingPoolConfigurator","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":59,"column":2}}},"2":{"name":"_whenNotPaused","line":67,"loc":{"start":{"line":67,"column":2},"end":{"line":69,"column":2}}},"3":{"name":"getRevision","line":71,"loc":{"start":{"line":71,"column":2},"end":{"line":73,"column":2}}},"4":{"name":"initialize","line":80,"loc":{"start":{"line":80,"column":2},"end":{"line":82,"column":2}}},"5":{"name":"deposit","line":91,"loc":{"start":{"line":91,"column":2},"end":{"line":118,"column":2}}},"6":{"name":"withdraw","line":125,"loc":{"start":{"line":125,"column":2},"end":{"line":161,"column":2}}},"7":{"name":"getBorrowAllowance","line":171,"loc":{"start":{"line":171,"column":2},"end":{"line":179,"column":2}}},"8":{"name":"delegateBorrowAllowance","line":188,"loc":{"start":{"line":188,"column":2},"end":{"line":199,"column":2}}},"9":{"name":"borrow","line":210,"loc":{"start":{"line":210,"column":2},"end":{"line":241,"column":2}}},"10":{"name":"repay","line":251,"loc":{"start":{"line":251,"column":2},"end":{"line":306,"column":2}}},"11":{"name":"swapBorrowRateMode","line":313,"loc":{"start":{"line":313,"column":2},"end":{"line":356,"column":2}}},"12":{"name":"rebalanceStableBorrowRate","line":365,"loc":{"start":{"line":365,"column":2},"end":{"line":410,"column":2}}},"13":{"name":"setUserUseReserveAsCollateral","line":417,"loc":{"start":{"line":417,"column":2},"end":{"line":437,"column":2}}},"14":{"name":"liquidationCall","line":448,"loc":{"start":{"line":448,"column":2},"end":{"line":477,"column":2}}},"15":{"name":"repayWithCollateral","line":491,"loc":{"start":{"line":491,"column":2},"end":{"line":526,"column":2}}},"16":{"name":"flashLoan","line":547,"loc":{"start":{"line":547,"column":2},"end":{"line":600,"column":2}}},"17":{"name":"swapLiquidity","line":610,"loc":{"start":{"line":610,"column":2},"end":{"line":638,"column":2}}},"18":{"name":"getReserveConfigurationData","line":644,"loc":{"start":{"line":644,"column":2},"end":{"line":677,"column":2}}},"19":{"name":"getReserveTokensAddresses","line":679,"loc":{"start":{"line":679,"column":2},"end":{"line":696,"column":2}}},"20":{"name":"getReserveData","line":698,"loc":{"start":{"line":698,"column":2},"end":{"line":729,"column":2}}},"21":{"name":"getUserAccountData","line":731,"loc":{"start":{"line":731,"column":2},"end":{"line":763,"column":2}}},"22":{"name":"getUserReserveData","line":765,"loc":{"start":{"line":765,"column":2},"end":{"line":793,"column":2}}},"23":{"name":"getReserves","line":795,"loc":{"start":{"line":795,"column":2},"end":{"line":797,"column":2}}},"24":{"name":"initReserve","line":809,"loc":{"start":{"line":809,"column":2},"end":{"line":824,"column":2}}},"25":{"name":"setReserveInterestRateStrategyAddress","line":832,"loc":{"start":{"line":832,"column":2},"end":{"line":838,"column":2}}},"26":{"name":"setConfiguration","line":840,"loc":{"start":{"line":840,"column":2},"end":{"line":843,"column":2}}},"27":{"name":"getConfiguration","line":845,"loc":{"start":{"line":845,"column":2},"end":{"line":852,"column":2}}},"28":{"name":"_executeBorrow","line":871,"loc":{"start":{"line":871,"column":2},"end":{"line":944,"column":2}}},"29":{"name":"_addReserveToList","line":949,"loc":{"start":{"line":949,"column":2},"end":{"line":960,"column":2}}},"30":{"name":"getReserveNormalizedIncome","line":967,"loc":{"start":{"line":967,"column":2},"end":{"line":969,"column":2}}},"31":{"name":"getReserveNormalizedVariableDebt","line":976,"loc":{"start":{"line":976,"column":2},"end":{"line":983,"column":2}}},"32":{"name":"balanceDecreaseAllowed","line":992,"loc":{"start":{"line":992,"column":2},"end":{"line":1008,"column":2}}},"33":{"name":"setPause","line":1014,"loc":{"start":{"line":1014,"column":2},"end":{"line":1023,"column":2}}},"34":{"name":"paused","line":1028,"loc":{"start":{"line":1028,"column":2},"end":{"line":1030,"column":2}}}},"statementMap":{"1":{"start":{"line":55,"column":4},"end":{"line":55,"column":2946}},"2":{"start":{"line":68,"column":4},"end":{"line":68,"column":38}},"3":{"start":{"line":72,"column":4},"end":{"line":72,"column":31}},"4":{"start":{"line":81,"column":4},"end":{"line":81,"column":32}},"5":{"start":{"line":97,"column":4},"end":{"line":97,"column":19}},"6":{"start":{"line":98,"column":4},"end":{"line":98,"column":63}},"7":{"start":{"line":100,"column":4},"end":{"line":100,"column":51}},"8":{"start":{"line":102,"column":4},"end":{"line":102,"column":42}},"9":{"start":{"line":104,"column":4},"end":{"line":104,"column":24}},"10":{"start":{"line":105,"column":4},"end":{"line":105,"column":56}},"11":{"start":{"line":107,"column":4},"end":{"line":107,"column":68}},"12":{"start":{"line":108,"column":4},"end":{"line":108,"column":4605}},"13":{"start":{"line":109,"column":6},"end":{"line":109,"column":68}},"14":{"start":{"line":112,"column":4},"end":{"line":112,"column":67}},"15":{"start":{"line":115,"column":4},"end":{"line":115,"column":61}},"16":{"start":{"line":117,"column":4},"end":{"line":117,"column":69}},"17":{"start":{"line":126,"column":4},"end":{"line":126,"column":19}},"18":{"start":{"line":127,"column":4},"end":{"line":127,"column":63}},"19":{"start":{"line":129,"column":4},"end":{"line":129,"column":42}},"20":{"start":{"line":131,"column":4},"end":{"line":131,"column":63}},"21":{"start":{"line":133,"column":4},"end":{"line":133,"column":37}},"22":{"start":{"line":136,"column":4},"end":{"line":136,"column":5500}},"23":{"start":{"line":137,"column":6},"end":{"line":137,"column":35}},"24":{"start":{"line":140,"column":4},"end":{"line":140,"column":5584}},"25":{"start":{"line":150,"column":4},"end":{"line":150,"column":24}},"26":{"start":{"line":152,"column":4},"end":{"line":152,"column":66}},"27":{"start":{"line":154,"column":4},"end":{"line":154,"column":5896}},"28":{"start":{"line":155,"column":6},"end":{"line":155,"column":69}},"29":{"start":{"line":158,"column":4},"end":{"line":158,"column":89}},"30":{"start":{"line":160,"column":4},"end":{"line":160,"column":44}},"31":{"start":{"line":177,"column":4},"end":{"line":177,"column":6759}},"32":{"start":{"line":194,"column":4},"end":{"line":194,"column":19}},"33":{"start":{"line":195,"column":4},"end":{"line":195,"column":78}},"34":{"start":{"line":197,"column":4},"end":{"line":197,"column":57}},"35":{"start":{"line":198,"column":4},"end":{"line":198,"column":84}},"36":{"start":{"line":217,"column":4},"end":{"line":217,"column":19}},"37":{"start":{"line":218,"column":4},"end":{"line":218,"column":63}},"38":{"start":{"line":220,"column":4},"end":{"line":220,"column":8253}},"39":{"start":{"line":221,"column":6},"end":{"line":221,"column":71}},"40":{"start":{"line":223,"column":6},"end":{"line":223,"column":8367}},"41":{"start":{"line":229,"column":4},"end":{"line":229,"column":8567}},"42":{"start":{"line":257,"column":4},"end":{"line":257,"column":19}},"43":{"start":{"line":259,"column":4},"end":{"line":259,"column":63}},"44":{"start":{"line":261,"column":4},"end":{"line":261,"column":96}},"45":{"start":{"line":263,"column":4},"end":{"line":263,"column":92}},"46":{"start":{"line":266,"column":4},"end":{"line":266,"column":9784}},"47":{"start":{"line":270,"column":4},"end":{"line":270,"column":9895}},"48":{"start":{"line":271,"column":6},"end":{"line":271,"column":27}},"49":{"start":{"line":274,"column":4},"end":{"line":274,"column":9997}},"50":{"start":{"line":283,"column":4},"end":{"line":283,"column":24}},"51":{"start":{"line":286,"column":4},"end":{"line":286,"column":10224}},"52":{"start":{"line":287,"column":6},"end":{"line":287,"column":85}},"53":{"start":{"line":289,"column":6},"end":{"line":289,"column":10397}},"54":{"start":{"line":296,"column":4},"end":{"line":296,"column":42}},"55":{"start":{"line":297,"column":4},"end":{"line":297,"column":63}},"56":{"start":{"line":299,"column":4},"end":{"line":299,"column":10664}},"57":{"start":{"line":300,"column":6},"end":{"line":300,"column":61}},"58":{"start":{"line":303,"column":4},"end":{"line":303,"column":68}},"59":{"start":{"line":305,"column":4},"end":{"line":305,"column":60}},"60":{"start":{"line":314,"column":4},"end":{"line":314,"column":19}},"61":{"start":{"line":315,"column":4},"end":{"line":315,"column":63}},"62":{"start":{"line":317,"column":4},"end":{"line":317,"column":96}},"63":{"start":{"line":319,"column":4},"end":{"line":319,"column":92}},"64":{"start":{"line":321,"column":4},"end":{"line":321,"column":11549}},"65":{"start":{"line":329,"column":4},"end":{"line":329,"column":24}},"66":{"start":{"line":331,"column":4},"end":{"line":331,"column":11735}},"67":{"start":{"line":333,"column":6},"end":{"line":333,"column":82}},"68":{"start":{"line":334,"column":6},"end":{"line":334,"column":11951}},"69":{"start":{"line":341,"column":6},"end":{"line":341,"column":12138}},"70":{"start":{"line":346,"column":6},"end":{"line":346,"column":12290}},"71":{"start":{"line":353,"column":4},"end":{"line":353,"column":66}},"72":{"start":{"line":355,"column":4},"end":{"line":355,"column":32}},"73":{"start":{"line":367,"column":4},"end":{"line":367,"column":19}},"74":{"start":{"line":369,"column":4},"end":{"line":369,"column":63}},"75":{"start":{"line":371,"column":4},"end":{"line":371,"column":67}},"76":{"start":{"line":372,"column":4},"end":{"line":372,"column":71}},"77":{"start":{"line":373,"column":4},"end":{"line":373,"column":49}},"78":{"start":{"line":375,"column":4},"end":{"line":375,"column":73}},"79":{"start":{"line":378,"column":4},"end":{"line":378,"column":104}},"80":{"start":{"line":379,"column":4},"end":{"line":379,"column":82}},"81":{"start":{"line":380,"column":4},"end":{"line":380,"column":13692}},"82":{"start":{"line":387,"column":4},"end":{"line":387,"column":63}},"83":{"start":{"line":388,"column":4},"end":{"line":388,"column":14007}},"84":{"start":{"line":394,"column":4},"end":{"line":394,"column":14137}},"85":{"start":{"line":401,"column":4},"end":{"line":401,"column":24}},"86":{"start":{"line":403,"column":4},"end":{"line":403,"column":77}},"87":{"start":{"line":404,"column":4},"end":{"line":404,"column":110}},"88":{"start":{"line":406,"column":4},"end":{"line":406,"column":58}},"89":{"start":{"line":408,"column":4},"end":{"line":408,"column":47}},"90":{"start":{"line":418,"column":4},"end":{"line":418,"column":19}},"91":{"start":{"line":419,"column":4},"end":{"line":419,"column":63}},"92":{"start":{"line":421,"column":4},"end":{"line":421,"column":15152}},"93":{"start":{"line":430,"column":4},"end":{"line":430,"column":77}},"94":{"start":{"line":432,"column":4},"end":{"line":432,"column":15436}},"95":{"start":{"line":433,"column":6},"end":{"line":433,"column":60}},"96":{"start":{"line":435,"column":6},"end":{"line":435,"column":61}},"97":{"start":{"line":455,"column":4},"end":{"line":455,"column":19}},"98":{"start":{"line":456,"column":4},"end":{"line":456,"column":84}},"99":{"start":{"line":459,"column":4},"end":{"line":459,"column":16409}},"100":{"start":{"line":469,"column":4},"end":{"line":469,"column":51}},"101":{"start":{"line":471,"column":4},"end":{"line":471,"column":93}},"102":{"start":{"line":473,"column":4},"end":{"line":473,"column":16839}},"103":{"start":{"line":475,"column":6},"end":{"line":475,"column":52}},"104":{"start":{"line":499,"column":4},"end":{"line":499,"column":19}},"105":{"start":{"line":500,"column":4},"end":{"line":500,"column":67}},"106":{"start":{"line":501,"column":4},"end":{"line":501,"column":33}},"107":{"start":{"line":503,"column":4},"end":{"line":503,"column":84}},"108":{"start":{"line":506,"column":4},"end":{"line":506,"column":18211}},"109":{"start":{"line":517,"column":4},"end":{"line":517,"column":56}},"110":{"start":{"line":519,"column":4},"end":{"line":519,"column":93}},"111":{"start":{"line":521,"column":4},"end":{"line":521,"column":18675}},"112":{"start":{"line":522,"column":6},"end":{"line":522,"column":52}},"113":{"start":{"line":525,"column":4},"end":{"line":525,"column":34}},"114":{"start":{"line":555,"column":4},"end":{"line":555,"column":19}},"115":{"start":{"line":556,"column":4},"end":{"line":556,"column":63}},"116":{"start":{"line":557,"column":4},"end":{"line":557,"column":34}},"117":{"start":{"line":559,"column":4},"end":{"line":559,"column":45}},"118":{"start":{"line":561,"column":4},"end":{"line":561,"column":64}},"119":{"start":{"line":563,"column":4},"end":{"line":563,"column":56}},"120":{"start":{"line":565,"column":4},"end":{"line":565,"column":80}},"121":{"start":{"line":567,"column":4},"end":{"line":567,"column":54}},"122":{"start":{"line":570,"column":4},"end":{"line":570,"column":76}},"123":{"start":{"line":573,"column":4},"end":{"line":573,"column":70}},"124":{"start":{"line":575,"column":4},"end":{"line":575,"column":52}},"125":{"start":{"line":577,"column":4},"end":{"line":577,"column":20770}},"126":{"start":{"line":578,"column":6},"end":{"line":578,"column":92}},"127":{"start":{"line":580,"column":6},"end":{"line":580,"column":26}},"128":{"start":{"line":581,"column":6},"end":{"line":581,"column":93}},"129":{"start":{"line":582,"column":6},"end":{"line":582,"column":76}},"130":{"start":{"line":584,"column":6},"end":{"line":584,"column":80}},"131":{"start":{"line":587,"column":6},"end":{"line":587,"column":21346}},"132":{"start":{"line":617,"column":4},"end":{"line":617,"column":19}},"133":{"start":{"line":618,"column":4},"end":{"line":618,"column":84}},"134":{"start":{"line":621,"column":4},"end":{"line":621,"column":22445}},"135":{"start":{"line":631,"column":4},"end":{"line":631,"column":50}},"136":{"start":{"line":633,"column":4},"end":{"line":633,"column":93}},"137":{"start":{"line":635,"column":4},"end":{"line":635,"column":22876}},"138":{"start":{"line":636,"column":6},"end":{"line":636,"column":52}},"139":{"start":{"line":662,"column":4},"end":{"line":662,"column":63}},"140":{"start":{"line":664,"column":4},"end":{"line":664,"column":23557}},"141":{"start":{"line":689,"column":4},"end":{"line":689,"column":63}},"142":{"start":{"line":691,"column":4},"end":{"line":691,"column":24379}},"143":{"start":{"line":715,"column":4},"end":{"line":715,"column":62}},"144":{"start":{"line":717,"column":4},"end":{"line":717,"column":25005}},"145":{"start":{"line":744,"column":4},"end":{"line":744,"column":25791}},"146":{"start":{"line":758,"column":4},"end":{"line":758,"column":26088}},"147":{"start":{"line":781,"column":4},"end":{"line":781,"column":63}},"148":{"start":{"line":783,"column":4},"end":{"line":783,"column":71}},"149":{"start":{"line":784,"column":4},"end":{"line":784,"column":87}},"150":{"start":{"line":785,"column":4},"end":{"line":785,"column":98}},"151":{"start":{"line":786,"column":4},"end":{"line":786,"column":98}},"152":{"start":{"line":787,"column":4},"end":{"line":787,"column":47}},"153":{"start":{"line":788,"column":4},"end":{"line":788,"column":94}},"154":{"start":{"line":789,"column":4},"end":{"line":789,"column":27231}},"155":{"start":{"line":792,"column":4},"end":{"line":792,"column":80}},"156":{"start":{"line":796,"column":4},"end":{"line":796,"column":24}},"157":{"start":{"line":816,"column":4},"end":{"line":816,"column":33}},"158":{"start":{"line":817,"column":4},"end":{"line":817,"column":28078}},"159":{"start":{"line":823,"column":4},"end":{"line":823,"column":27}},"160":{"start":{"line":836,"column":4},"end":{"line":836,"column":33}},"161":{"start":{"line":837,"column":4},"end":{"line":837,"column":69}},"162":{"start":{"line":841,"column":4},"end":{"line":841,"column":33}},"163":{"start":{"line":842,"column":4},"end":{"line":842,"column":54}},"164":{"start":{"line":851,"column":4},"end":{"line":851,"column":41}},"165":{"start":{"line":872,"column":4},"end":{"line":872,"column":68}},"166":{"start":{"line":873,"column":4},"end":{"line":873,"column":76}},"167":{"start":{"line":875,"column":4},"end":{"line":875,"column":56}},"168":{"start":{"line":877,"column":4},"end":{"line":877,"column":29792}},"169":{"start":{"line":881,"column":4},"end":{"line":881,"column":29946}},"170":{"start":{"line":894,"column":4},"end":{"line":894,"column":34}},"171":{"start":{"line":895,"column":4},"end":{"line":895,"column":30243}},"172":{"start":{"line":896,"column":6},"end":{"line":896,"column":45}},"173":{"start":{"line":899,"column":4},"end":{"line":899,"column":24}},"174":{"start":{"line":902,"column":4},"end":{"line":902,"column":33}},"175":{"start":{"line":904,"column":4},"end":{"line":904,"column":30453}},"176":{"start":{"line":907,"column":6},"end":{"line":907,"column":56}},"177":{"start":{"line":909,"column":6},"end":{"line":909,"column":30633}},"178":{"start":{"line":915,"column":6},"end":{"line":915,"column":30788}},"179":{"start":{"line":922,"column":4},"end":{"line":922,"column":30947}},"180":{"start":{"line":929,"column":4},"end":{"line":929,"column":31088}},"181":{"start":{"line":930,"column":6},"end":{"line":930,"column":77}},"182":{"start":{"line":933,"column":4},"end":{"line":933,"column":31210}},"183":{"start":{"line":950,"column":4},"end":{"line":950,"column":36}},"184":{"start":{"line":951,"column":4},"end":{"line":951,"column":87}},"185":{"start":{"line":952,"column":4},"end":{"line":952,"column":31801}},"186":{"start":{"line":953,"column":6},"end":{"line":953,"column":31858}},"187":{"start":{"line":954,"column":8},"end":{"line":954,"column":33}},"188":{"start":{"line":956,"column":4},"end":{"line":956,"column":31937}},"189":{"start":{"line":957,"column":6},"end":{"line":957,"column":54}},"190":{"start":{"line":958,"column":6},"end":{"line":958,"column":30}},"191":{"start":{"line":968,"column":4},"end":{"line":968,"column":49}},"192":{"start":{"line":982,"column":4},"end":{"line":982,"column":47}},"193":{"start":{"line":997,"column":4},"end":{"line":997,"column":19}},"194":{"start":{"line":998,"column":4},"end":{"line":998,"column":33188}},"195":{"start":{"line":1015,"column":4},"end":{"line":1015,"column":33}},"196":{"start":{"line":1017,"column":4},"end":{"line":1017,"column":16}},"197":{"start":{"line":1018,"column":4},"end":{"line":1018,"column":33641}},"198":{"start":{"line":1019,"column":6},"end":{"line":1019,"column":19}},"199":{"start":{"line":1021,"column":6},"end":{"line":1021,"column":21}},"200":{"start":{"line":1029,"column":4},"end":{"line":1029,"column":18}}},"branchMap":{"1":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":4},"end":{"line":55,"column":4}},{"start":{"line":55,"column":4},"end":{"line":55,"column":4}}]},"2":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":4},"end":{"line":68,"column":4}},{"start":{"line":68,"column":4},"end":{"line":68,"column":4}}]},"3":{"line":108,"type":"if","locations":[{"start":{"line":108,"column":4},"end":{"line":108,"column":4}},{"start":{"line":108,"column":4},"end":{"line":108,"column":4}}]},"4":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":4},"end":{"line":136,"column":4}},{"start":{"line":136,"column":4},"end":{"line":136,"column":4}}]},"5":{"line":154,"type":"if","locations":[{"start":{"line":154,"column":4},"end":{"line":154,"column":4}},{"start":{"line":154,"column":4},"end":{"line":154,"column":4}}]},"6":{"line":220,"type":"if","locations":[{"start":{"line":220,"column":4},"end":{"line":220,"column":4}},{"start":{"line":220,"column":4},"end":{"line":220,"column":4}}]},"7":{"line":270,"type":"if","locations":[{"start":{"line":270,"column":4},"end":{"line":270,"column":4}},{"start":{"line":270,"column":4},"end":{"line":270,"column":4}}]},"8":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":4},"end":{"line":286,"column":4}},{"start":{"line":286,"column":4},"end":{"line":286,"column":4}}]},"9":{"line":299,"type":"if","locations":[{"start":{"line":299,"column":4},"end":{"line":299,"column":4}},{"start":{"line":299,"column":4},"end":{"line":299,"column":4}}]},"10":{"line":331,"type":"if","locations":[{"start":{"line":331,"column":4},"end":{"line":331,"column":4}},{"start":{"line":331,"column":4},"end":{"line":331,"column":4}}]},"11":{"line":394,"type":"if","locations":[{"start":{"line":394,"column":4},"end":{"line":394,"column":4}},{"start":{"line":394,"column":4},"end":{"line":394,"column":4}}]},"12":{"line":432,"type":"if","locations":[{"start":{"line":432,"column":4},"end":{"line":432,"column":4}},{"start":{"line":432,"column":4},"end":{"line":432,"column":4}}]},"13":{"line":469,"type":"if","locations":[{"start":{"line":469,"column":4},"end":{"line":469,"column":4}},{"start":{"line":469,"column":4},"end":{"line":469,"column":4}}]},"14":{"line":473,"type":"if","locations":[{"start":{"line":473,"column":4},"end":{"line":473,"column":4}},{"start":{"line":473,"column":4},"end":{"line":473,"column":4}}]},"15":{"line":500,"type":"if","locations":[{"start":{"line":500,"column":4},"end":{"line":500,"column":4}},{"start":{"line":500,"column":4},"end":{"line":500,"column":4}}]},"16":{"line":517,"type":"if","locations":[{"start":{"line":517,"column":4},"end":{"line":517,"column":4}},{"start":{"line":517,"column":4},"end":{"line":517,"column":4}}]},"17":{"line":521,"type":"if","locations":[{"start":{"line":521,"column":4},"end":{"line":521,"column":4}},{"start":{"line":521,"column":4},"end":{"line":521,"column":4}}]},"18":{"line":577,"type":"if","locations":[{"start":{"line":577,"column":4},"end":{"line":577,"column":4}},{"start":{"line":577,"column":4},"end":{"line":577,"column":4}}]},"19":{"line":631,"type":"if","locations":[{"start":{"line":631,"column":4},"end":{"line":631,"column":4}},{"start":{"line":631,"column":4},"end":{"line":631,"column":4}}]},"20":{"line":635,"type":"if","locations":[{"start":{"line":635,"column":4},"end":{"line":635,"column":4}},{"start":{"line":635,"column":4},"end":{"line":635,"column":4}}]},"21":{"line":895,"type":"if","locations":[{"start":{"line":895,"column":4},"end":{"line":895,"column":4}},{"start":{"line":895,"column":4},"end":{"line":895,"column":4}}]},"22":{"line":904,"type":"if","locations":[{"start":{"line":904,"column":4},"end":{"line":904,"column":4}},{"start":{"line":904,"column":4},"end":{"line":904,"column":4}}]},"23":{"line":929,"type":"if","locations":[{"start":{"line":929,"column":4},"end":{"line":929,"column":4}},{"start":{"line":929,"column":4},"end":{"line":929,"column":4}}]},"24":{"line":951,"type":"if","locations":[{"start":{"line":951,"column":4},"end":{"line":951,"column":4}},{"start":{"line":951,"column":4},"end":{"line":951,"column":4}}]},"25":{"line":953,"type":"if","locations":[{"start":{"line":953,"column":6},"end":{"line":953,"column":6}},{"start":{"line":953,"column":6},"end":{"line":953,"column":6}}]},"26":{"line":956,"type":"if","locations":[{"start":{"line":956,"column":4},"end":{"line":956,"column":4}},{"start":{"line":956,"column":4},"end":{"line":956,"column":4}}]},"27":{"line":1018,"type":"if","locations":[{"start":{"line":1018,"column":4},"end":{"line":1018,"column":4}},{"start":{"line":1018,"column":4},"end":{"line":1018,"column":4}}]}}},"contracts/lendingpool/LendingPoolCollateralManager.sol":{"l":{"127":0,"146":10,"147":10,"148":10,"150":10,"152":10,"161":10,"166":10,"175":10,"176":5,"179":5,"181":5,"183":5,"187":5,"191":5,"207":5,"208":1,"212":5,"213":3,"216":3,"217":0,"225":5,"227":5,"234":5,"235":1,"241":4,"247":4,"254":5,"255":2,"260":3,"261":3,"269":3,"278":5,"284":5,"294":5,"317":18,"318":18,"319":18,"321":18,"323":18,"331":18,"333":18,"343":18,"344":5,"347":13,"349":13,"353":13,"354":13,"356":13,"371":13,"372":2,"375":13,"377":13,"384":13,"385":2,"388":13,"391":13,"400":11,"401":11,"407":11,"409":11,"410":9,"416":2,"421":2,"428":11,"435":11,"444":11,"462":9,"463":9,"465":9,"467":9,"474":9,"475":4,"478":5,"479":5,"481":5,"482":5,"484":5,"485":1,"488":5,"490":4,"497":3,"505":3,"506":3,"507":3,"513":3,"514":1,"517":3,"518":3,"526":3,"534":3,"535":1,"541":2,"563":18,"564":18,"565":18,"567":18,"569":18,"570":18,"572":18,"575":18,"579":18,"586":18,"587":3,"588":3,"595":15,"596":15,"598":18},"path":"/src/contracts/lendingpool/LendingPoolCollateralManager.sol","s":{"1":0,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":10,"10":5,"11":5,"12":5,"13":5,"14":5,"15":5,"16":5,"17":1,"18":5,"19":3,"20":3,"21":0,"22":5,"23":5,"24":5,"25":1,"26":4,"27":4,"28":5,"29":2,"30":3,"31":3,"32":3,"33":5,"34":5,"35":5,"36":18,"37":18,"38":18,"39":18,"40":18,"41":18,"42":18,"43":18,"44":5,"45":13,"46":13,"47":13,"48":13,"49":13,"50":13,"51":2,"52":13,"53":13,"54":13,"55":2,"56":13,"57":13,"58":11,"59":11,"60":11,"61":11,"62":9,"63":2,"64":2,"65":11,"66":11,"67":11,"68":9,"69":9,"70":9,"71":9,"72":9,"73":4,"74":5,"75":5,"76":5,"77":5,"78":5,"79":1,"80":5,"81":4,"82":3,"83":3,"84":3,"85":3,"86":3,"87":1,"88":3,"89":3,"90":3,"91":3,"92":1,"93":2,"94":18,"95":18,"96":18,"97":18,"98":18,"99":18,"100":18,"101":18,"102":18,"103":18,"104":3,"105":3,"106":15,"107":15,"108":18},"b":{"1":[5,5],"2":[1,4],"3":[3,2],"4":[0,3],"5":[1,4],"6":[2,3],"7":[5,13],"8":[2,11],"9":[2,11],"10":[9,2],"11":[4,5],"12":[1,4],"13":[3,0],"14":[1,2],"15":[1,2],"16":[3,15]},"f":{"1":0,"2":10,"3":18,"4":9,"5":18},"fnMap":{"1":{"name":"getRevision","line":126,"loc":{"start":{"line":126,"column":2},"end":{"line":128,"column":2}}},"2":{"name":"liquidationCall","line":139,"loc":{"start":{"line":139,"column":2},"end":{"line":295,"column":2}}},"3":{"name":"repayWithCollateral","line":309,"loc":{"start":{"line":309,"column":2},"end":{"line":445,"column":2}}},"4":{"name":"swapLiquidity","line":455,"loc":{"start":{"line":455,"column":2},"end":{"line":542,"column":2}}},"5":{"name":"calculateAvailableCollateralToLiquidate","line":555,"loc":{"start":{"line":555,"column":2},"end":{"line":599,"column":2}}}},"statementMap":{"1":{"start":{"line":127,"column":4},"end":{"line":127,"column":12}},"2":{"start":{"line":146,"column":4},"end":{"line":146,"column":78}},"3":{"start":{"line":147,"column":4},"end":{"line":147,"column":76}},"4":{"start":{"line":148,"column":4},"end":{"line":148,"column":65}},"5":{"start":{"line":150,"column":4},"end":{"line":150,"column":40}},"6":{"start":{"line":152,"column":4},"end":{"line":152,"column":6033}},"7":{"start":{"line":161,"column":4},"end":{"line":161,"column":6330}},"8":{"start":{"line":166,"column":4},"end":{"line":166,"column":6452}},"9":{"start":{"line":175,"column":4},"end":{"line":175,"column":6686}},"10":{"start":{"line":176,"column":6},"end":{"line":176,"column":44}},"11":{"start":{"line":179,"column":4},"end":{"line":179,"column":67}},"12":{"start":{"line":181,"column":4},"end":{"line":181,"column":69}},"13":{"start":{"line":183,"column":4},"end":{"line":183,"column":6984}},"14":{"start":{"line":187,"column":4},"end":{"line":187,"column":7148}},"15":{"start":{"line":191,"column":4},"end":{"line":191,"column":7286}},"16":{"start":{"line":207,"column":4},"end":{"line":207,"column":7770}},"17":{"start":{"line":208,"column":6},"end":{"line":208,"column":62}},"18":{"start":{"line":212,"column":4},"end":{"line":212,"column":8027}},"19":{"start":{"line":213,"column":6},"end":{"line":213,"column":8058}},"20":{"start":{"line":216,"column":6},"end":{"line":216,"column":8178}},"21":{"start":{"line":217,"column":8},"end":{"line":217,"column":8255}},"22":{"start":{"line":225,"column":4},"end":{"line":225,"column":33}},"23":{"start":{"line":227,"column":4},"end":{"line":227,"column":8484}},"24":{"start":{"line":234,"column":4},"end":{"line":234,"column":8633}},"25":{"start":{"line":235,"column":6},"end":{"line":235,"column":8702}},"26":{"start":{"line":241,"column":6},"end":{"line":241,"column":8895}},"27":{"start":{"line":247,"column":6},"end":{"line":247,"column":9069}},"28":{"start":{"line":254,"column":4},"end":{"line":254,"column":9311}},"29":{"start":{"line":255,"column":6},"end":{"line":255,"column":97}},"30":{"start":{"line":260,"column":6},"end":{"line":260,"column":36}},"31":{"start":{"line":261,"column":6},"end":{"line":261,"column":9577}},"32":{"start":{"line":269,"column":6},"end":{"line":269,"column":9786}},"33":{"start":{"line":278,"column":4},"end":{"line":278,"column":9999}},"34":{"start":{"line":284,"column":4},"end":{"line":284,"column":10139}},"35":{"start":{"line":294,"column":4},"end":{"line":294,"column":79}},"36":{"start":{"line":317,"column":4},"end":{"line":317,"column":78}},"37":{"start":{"line":318,"column":4},"end":{"line":318,"column":71}},"38":{"start":{"line":319,"column":4},"end":{"line":319,"column":65}},"39":{"start":{"line":321,"column":4},"end":{"line":321,"column":40}},"40":{"start":{"line":323,"column":4},"end":{"line":323,"column":11674}},"41":{"start":{"line":331,"column":4},"end":{"line":331,"column":95}},"42":{"start":{"line":333,"column":4},"end":{"line":333,"column":11972}},"43":{"start":{"line":343,"column":4},"end":{"line":343,"column":12217}},"44":{"start":{"line":344,"column":6},"end":{"line":344,"column":44}},"45":{"start":{"line":347,"column":4},"end":{"line":347,"column":86}},"46":{"start":{"line":349,"column":4},"end":{"line":349,"column":12479}},"47":{"start":{"line":353,"column":4},"end":{"line":353,"column":67}},"48":{"start":{"line":354,"column":4},"end":{"line":354,"column":69}},"49":{"start":{"line":356,"column":4},"end":{"line":356,"column":12761}},"50":{"start":{"line":371,"column":4},"end":{"line":371,"column":13239}},"51":{"start":{"line":372,"column":6},"end":{"line":372,"column":62}},"52":{"start":{"line":375,"column":4},"end":{"line":375,"column":34}},"53":{"start":{"line":377,"column":4},"end":{"line":377,"column":13459}},"54":{"start":{"line":384,"column":4},"end":{"line":384,"column":13603}},"55":{"start":{"line":385,"column":6},"end":{"line":385,"column":73}},"56":{"start":{"line":388,"column":4},"end":{"line":388,"column":51}},"57":{"start":{"line":391,"column":4},"end":{"line":391,"column":13905}},"58":{"start":{"line":400,"column":4},"end":{"line":400,"column":28}},"59":{"start":{"line":401,"column":4},"end":{"line":401,"column":14123}},"60":{"start":{"line":407,"column":4},"end":{"line":407,"column":95}},"61":{"start":{"line":409,"column":4},"end":{"line":409,"column":14355}},"62":{"start":{"line":410,"column":6},"end":{"line":410,"column":14424}},"63":{"start":{"line":416,"column":6},"end":{"line":416,"column":14607}},"64":{"start":{"line":421,"column":6},"end":{"line":421,"column":14770}},"65":{"start":{"line":428,"column":4},"end":{"line":428,"column":14959}},"66":{"start":{"line":435,"column":4},"end":{"line":435,"column":15112}},"67":{"start":{"line":444,"column":4},"end":{"line":444,"column":79}},"68":{"start":{"line":462,"column":4},"end":{"line":462,"column":71}},"69":{"start":{"line":463,"column":4},"end":{"line":463,"column":67}},"70":{"start":{"line":465,"column":4},"end":{"line":465,"column":38}},"71":{"start":{"line":467,"column":4},"end":{"line":467,"column":16281}},"72":{"start":{"line":474,"column":4},"end":{"line":474,"column":16433}},"73":{"start":{"line":475,"column":6},"end":{"line":475,"column":44}},"74":{"start":{"line":478,"column":4},"end":{"line":478,"column":62}},"75":{"start":{"line":479,"column":4},"end":{"line":479,"column":58}},"76":{"start":{"line":481,"column":4},"end":{"line":481,"column":28}},"77":{"start":{"line":482,"column":4},"end":{"line":482,"column":26}},"78":{"start":{"line":484,"column":4},"end":{"line":484,"column":16775}},"79":{"start":{"line":485,"column":6},"end":{"line":485,"column":73}},"80":{"start":{"line":488,"column":4},"end":{"line":488,"column":95}},"81":{"start":{"line":490,"column":4},"end":{"line":490,"column":17029}},"82":{"start":{"line":497,"column":4},"end":{"line":497,"column":17256}},"83":{"start":{"line":505,"column":4},"end":{"line":505,"column":68}},"84":{"start":{"line":506,"column":4},"end":{"line":506,"column":17473}},"85":{"start":{"line":507,"column":6},"end":{"line":507,"column":17514}},"86":{"start":{"line":513,"column":6},"end":{"line":513,"column":17653}},"87":{"start":{"line":514,"column":8},"end":{"line":514,"column":72}},"88":{"start":{"line":517,"column":6},"end":{"line":517,"column":90}},"89":{"start":{"line":518,"column":6},"end":{"line":518,"column":17891}},"90":{"start":{"line":526,"column":4},"end":{"line":526,"column":18036}},"91":{"start":{"line":534,"column":4},"end":{"line":534,"column":18247}},"92":{"start":{"line":535,"column":6},"end":{"line":535,"column":18332}},"93":{"start":{"line":541,"column":4},"end":{"line":541,"column":79}},"94":{"start":{"line":563,"column":4},"end":{"line":563,"column":32}},"95":{"start":{"line":564,"column":4},"end":{"line":564,"column":37}},"96":{"start":{"line":565,"column":4},"end":{"line":565,"column":87}},"97":{"start":{"line":567,"column":4},"end":{"line":567,"column":55}},"98":{"start":{"line":569,"column":4},"end":{"line":569,"column":65}},"99":{"start":{"line":570,"column":4},"end":{"line":570,"column":71}},"100":{"start":{"line":572,"column":4},"end":{"line":572,"column":20103}},"101":{"start":{"line":575,"column":4},"end":{"line":575,"column":72}},"102":{"start":{"line":579,"column":4},"end":{"line":579,"column":20496}},"103":{"start":{"line":586,"column":4},"end":{"line":586,"column":20713}},"104":{"start":{"line":587,"column":6},"end":{"line":587,"column":45}},"105":{"start":{"line":588,"column":6},"end":{"line":588,"column":20871}},"106":{"start":{"line":595,"column":6},"end":{"line":595,"column":59}},"107":{"start":{"line":596,"column":6},"end":{"line":596,"column":43}},"108":{"start":{"line":598,"column":4},"end":{"line":598,"column":52}}},"branchMap":{"1":{"line":175,"type":"if","locations":[{"start":{"line":175,"column":4},"end":{"line":175,"column":4}},{"start":{"line":175,"column":4},"end":{"line":175,"column":4}}]},"2":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":207,"column":4}},{"start":{"line":207,"column":4},"end":{"line":207,"column":4}}]},"3":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":4},"end":{"line":212,"column":4}},{"start":{"line":212,"column":4},"end":{"line":212,"column":4}}]},"4":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":6},"end":{"line":216,"column":6}},{"start":{"line":216,"column":6},"end":{"line":216,"column":6}}]},"5":{"line":234,"type":"if","locations":[{"start":{"line":234,"column":4},"end":{"line":234,"column":4}},{"start":{"line":234,"column":4},"end":{"line":234,"column":4}}]},"6":{"line":254,"type":"if","locations":[{"start":{"line":254,"column":4},"end":{"line":254,"column":4}},{"start":{"line":254,"column":4},"end":{"line":254,"column":4}}]},"7":{"line":343,"type":"if","locations":[{"start":{"line":343,"column":4},"end":{"line":343,"column":4}},{"start":{"line":343,"column":4},"end":{"line":343,"column":4}}]},"8":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":4},"end":{"line":371,"column":4}},{"start":{"line":371,"column":4},"end":{"line":371,"column":4}}]},"9":{"line":384,"type":"if","locations":[{"start":{"line":384,"column":4},"end":{"line":384,"column":4}},{"start":{"line":384,"column":4},"end":{"line":384,"column":4}}]},"10":{"line":409,"type":"if","locations":[{"start":{"line":409,"column":4},"end":{"line":409,"column":4}},{"start":{"line":409,"column":4},"end":{"line":409,"column":4}}]},"11":{"line":474,"type":"if","locations":[{"start":{"line":474,"column":4},"end":{"line":474,"column":4}},{"start":{"line":474,"column":4},"end":{"line":474,"column":4}}]},"12":{"line":484,"type":"if","locations":[{"start":{"line":484,"column":4},"end":{"line":484,"column":4}},{"start":{"line":484,"column":4},"end":{"line":484,"column":4}}]},"13":{"line":506,"type":"if","locations":[{"start":{"line":506,"column":4},"end":{"line":506,"column":4}},{"start":{"line":506,"column":4},"end":{"line":506,"column":4}}]},"14":{"line":513,"type":"if","locations":[{"start":{"line":513,"column":6},"end":{"line":513,"column":6}},{"start":{"line":513,"column":6},"end":{"line":513,"column":6}}]},"15":{"line":534,"type":"if","locations":[{"start":{"line":534,"column":4},"end":{"line":534,"column":4}},{"start":{"line":534,"column":4},"end":{"line":534,"column":4}}]},"16":{"line":586,"type":"if","locations":[{"start":{"line":586,"column":4},"end":{"line":586,"column":4}},{"start":{"line":586,"column":4},"end":{"line":586,"column":4}}]}}},"contracts/lendingpool/LendingPoolConfigurator.sol":{"l":{"187":124,"188":105,"194":1,"198":1,"199":1,"219":17,"221":17,"226":17,"231":17,"239":17,"241":17,"243":17,"244":17,"246":17,"248":17,"263":1,"265":1,"267":1,"276":1,"278":1,"280":1,"289":1,"291":1,"293":1,"305":18,"307":18,"308":18,"310":18,"312":18,"320":1,"322":1,"324":1,"325":1,"341":14,"343":14,"344":14,"345":14,"347":14,"349":14,"357":1,"359":1,"361":1,"363":1,"371":1,"373":1,"375":1,"377":1,"385":1,"387":1,"389":1,"391":1,"399":7,"401":7,"403":7,"405":7,"413":8,"425":8,"430":7,"432":7,"434":7,"436":7,"444":2,"446":2,"448":2,"450":2,"458":2,"460":2,"462":2,"464":2,"473":1,"475":1,"477":1,"479":1,"488":1,"490":1,"492":1,"494":1,"504":1,"506":1,"508":1,"510":1,"519":1,"521":1,"523":1,"525":1,"534":0,"536":0,"538":0,"540":0,"552":0,"553":0,"562":51,"564":51,"571":51,"573":51,"581":3,"585":3,"587":3,"594":3,"602":26},"path":"/src/contracts/lendingpool/LendingPoolConfigurator.sol","s":{"1":124,"2":1,"3":1,"4":1,"5":17,"6":17,"7":17,"8":17,"9":17,"10":17,"11":17,"12":17,"13":17,"14":17,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":18,"25":18,"26":18,"27":18,"28":18,"29":1,"30":1,"31":1,"32":1,"33":14,"34":14,"35":14,"36":14,"37":14,"38":14,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":7,"52":7,"53":7,"54":7,"55":8,"56":8,"57":7,"58":7,"59":7,"60":7,"61":2,"62":2,"63":2,"64":2,"65":2,"66":2,"67":2,"68":2,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":51,"92":51,"93":51,"94":51,"95":3,"96":3,"97":3,"98":3,"99":26},"b":{"1":[105,19],"2":[7,1]},"f":{"1":124,"2":1,"3":1,"4":17,"5":1,"6":1,"7":1,"8":18,"9":1,"10":14,"11":1,"12":1,"13":1,"14":7,"15":8,"16":2,"17":2,"18":1,"19":1,"20":1,"21":1,"22":0,"23":0,"24":51,"25":3,"26":26},"fnMap":{"1":{"name":"onlyAaveAdmin","line":186,"loc":{"start":{"line":186,"column":2},"end":{"line":189,"column":2}}},"2":{"name":"getRevision","line":193,"loc":{"start":{"line":193,"column":2},"end":{"line":195,"column":2}}},"3":{"name":"initialize","line":197,"loc":{"start":{"line":197,"column":2},"end":{"line":200,"column":2}}},"4":{"name":"initReserve","line":218,"loc":{"start":{"line":211,"column":2},"end":{"line":255,"column":2}}},"5":{"name":"updateAToken","line":262,"loc":{"start":{"line":262,"column":2},"end":{"line":268,"column":2}}},"6":{"name":"updateStableDebtToken","line":275,"loc":{"start":{"line":275,"column":2},"end":{"line":281,"column":2}}},"7":{"name":"updateVariableDebtToken","line":288,"loc":{"start":{"line":288,"column":2},"end":{"line":294,"column":2}}},"8":{"name":"enableBorrowingOnReserve","line":303,"loc":{"start":{"line":301,"column":2},"end":{"line":313,"column":2}}},"9":{"name":"disableBorrowingOnReserve","line":319,"loc":{"start":{"line":319,"column":2},"end":{"line":326,"column":2}}},"10":{"name":"enableReserveAsCollateral","line":340,"loc":{"start":{"line":335,"column":2},"end":{"line":350,"column":2}}},"11":{"name":"disableReserveAsCollateral","line":356,"loc":{"start":{"line":356,"column":2},"end":{"line":364,"column":2}}},"12":{"name":"enableReserveStableRate","line":370,"loc":{"start":{"line":370,"column":2},"end":{"line":378,"column":2}}},"13":{"name":"disableReserveStableRate","line":384,"loc":{"start":{"line":384,"column":2},"end":{"line":392,"column":2}}},"14":{"name":"activateReserve","line":398,"loc":{"start":{"line":398,"column":2},"end":{"line":406,"column":2}}},"15":{"name":"deactivateReserve","line":412,"loc":{"start":{"line":412,"column":2},"end":{"line":437,"column":2}}},"16":{"name":"freezeReserve","line":443,"loc":{"start":{"line":443,"column":2},"end":{"line":451,"column":2}}},"17":{"name":"unfreezeReserve","line":457,"loc":{"start":{"line":457,"column":2},"end":{"line":465,"column":2}}},"18":{"name":"setLtv","line":472,"loc":{"start":{"line":472,"column":2},"end":{"line":480,"column":2}}},"19":{"name":"setReserveFactor","line":487,"loc":{"start":{"line":487,"column":2},"end":{"line":495,"column":2}}},"20":{"name":"setLiquidationThreshold","line":503,"loc":{"start":{"line":503,"column":2},"end":{"line":511,"column":2}}},"21":{"name":"setLiquidationBonus","line":518,"loc":{"start":{"line":518,"column":2},"end":{"line":526,"column":2}}},"22":{"name":"setReserveDecimals","line":533,"loc":{"start":{"line":533,"column":2},"end":{"line":541,"column":2}}},"23":{"name":"setReserveInterestRateStrategyAddress","line":550,"loc":{"start":{"line":548,"column":2},"end":{"line":554,"column":2}}},"24":{"name":"_initTokenWithProxy","line":561,"loc":{"start":{"line":561,"column":2},"end":{"line":574,"column":2}}},"25":{"name":"_upgradeTokenImplementation","line":576,"loc":{"start":{"line":576,"column":2},"end":{"line":595,"column":2}}},"26":{"name":"setPoolPause","line":601,"loc":{"start":{"line":601,"column":2},"end":{"line":603,"column":2}}}},"statementMap":{"1":{"start":{"line":187,"column":4},"end":{"line":187,"column":88}},"2":{"start":{"line":194,"column":4},"end":{"line":194,"column":32}},"3":{"start":{"line":198,"column":4},"end":{"line":198,"column":31}},"4":{"start":{"line":199,"column":4},"end":{"line":199,"column":58}},"5":{"start":{"line":219,"column":4},"end":{"line":219,"column":89}},"6":{"start":{"line":221,"column":4},"end":{"line":221,"column":7918}},"7":{"start":{"line":226,"column":4},"end":{"line":226,"column":8046}},"8":{"start":{"line":231,"column":4},"end":{"line":231,"column":8177}},"9":{"start":{"line":239,"column":4},"end":{"line":239,"column":80}},"10":{"start":{"line":241,"column":4},"end":{"line":241,"column":53}},"11":{"start":{"line":243,"column":4},"end":{"line":243,"column":32}},"12":{"start":{"line":244,"column":4},"end":{"line":244,"column":33}},"13":{"start":{"line":246,"column":4},"end":{"line":246,"column":51}},"14":{"start":{"line":248,"column":4},"end":{"line":248,"column":8620}},"15":{"start":{"line":263,"column":4},"end":{"line":263,"column":71}},"16":{"start":{"line":265,"column":4},"end":{"line":265,"column":68}},"17":{"start":{"line":267,"column":4},"end":{"line":267,"column":61}},"18":{"start":{"line":276,"column":4},"end":{"line":276,"column":73}},"19":{"start":{"line":278,"column":4},"end":{"line":278,"column":70}},"20":{"start":{"line":280,"column":4},"end":{"line":280,"column":72}},"21":{"start":{"line":289,"column":4},"end":{"line":289,"column":75}},"22":{"start":{"line":291,"column":4},"end":{"line":291,"column":72}},"23":{"start":{"line":293,"column":4},"end":{"line":293,"column":76}},"24":{"start":{"line":305,"column":4},"end":{"line":305,"column":80}},"25":{"start":{"line":307,"column":4},"end":{"line":307,"column":42}},"26":{"start":{"line":308,"column":4},"end":{"line":308,"column":71}},"27":{"start":{"line":310,"column":4},"end":{"line":310,"column":51}},"28":{"start":{"line":312,"column":4},"end":{"line":312,"column":66}},"29":{"start":{"line":320,"column":4},"end":{"line":320,"column":80}},"30":{"start":{"line":322,"column":4},"end":{"line":322,"column":43}},"31":{"start":{"line":324,"column":4},"end":{"line":324,"column":51}},"32":{"start":{"line":325,"column":4},"end":{"line":325,"column":42}},"33":{"start":{"line":341,"column":4},"end":{"line":341,"column":80}},"34":{"start":{"line":343,"column":4},"end":{"line":343,"column":28}},"35":{"start":{"line":344,"column":4},"end":{"line":344,"column":62}},"36":{"start":{"line":345,"column":4},"end":{"line":345,"column":54}},"37":{"start":{"line":347,"column":4},"end":{"line":347,"column":51}},"38":{"start":{"line":349,"column":4},"end":{"line":349,"column":87}},"39":{"start":{"line":357,"column":4},"end":{"line":357,"column":80}},"40":{"start":{"line":359,"column":4},"end":{"line":359,"column":26}},"41":{"start":{"line":361,"column":4},"end":{"line":361,"column":51}},"42":{"start":{"line":363,"column":4},"end":{"line":363,"column":43}},"43":{"start":{"line":371,"column":4},"end":{"line":371,"column":80}},"44":{"start":{"line":373,"column":4},"end":{"line":373,"column":52}},"45":{"start":{"line":375,"column":4},"end":{"line":375,"column":51}},"46":{"start":{"line":377,"column":4},"end":{"line":377,"column":42}},"47":{"start":{"line":385,"column":4},"end":{"line":385,"column":80}},"48":{"start":{"line":387,"column":4},"end":{"line":387,"column":53}},"49":{"start":{"line":389,"column":4},"end":{"line":389,"column":51}},"50":{"start":{"line":391,"column":4},"end":{"line":391,"column":43}},"51":{"start":{"line":399,"column":4},"end":{"line":399,"column":80}},"52":{"start":{"line":401,"column":4},"end":{"line":401,"column":32}},"53":{"start":{"line":403,"column":4},"end":{"line":403,"column":51}},"54":{"start":{"line":405,"column":4},"end":{"line":405,"column":32}},"55":{"start":{"line":413,"column":4},"end":{"line":413,"column":14228}},"56":{"start":{"line":425,"column":4},"end":{"line":425,"column":14387}},"57":{"start":{"line":430,"column":4},"end":{"line":430,"column":80}},"58":{"start":{"line":432,"column":4},"end":{"line":432,"column":33}},"59":{"start":{"line":434,"column":4},"end":{"line":434,"column":51}},"60":{"start":{"line":436,"column":4},"end":{"line":436,"column":34}},"61":{"start":{"line":444,"column":4},"end":{"line":444,"column":80}},"62":{"start":{"line":446,"column":4},"end":{"line":446,"column":32}},"63":{"start":{"line":448,"column":4},"end":{"line":448,"column":51}},"64":{"start":{"line":450,"column":4},"end":{"line":450,"column":30}},"65":{"start":{"line":458,"column":4},"end":{"line":458,"column":80}},"66":{"start":{"line":460,"column":4},"end":{"line":460,"column":33}},"67":{"start":{"line":462,"column":4},"end":{"line":462,"column":51}},"68":{"start":{"line":464,"column":4},"end":{"line":464,"column":32}},"69":{"start":{"line":473,"column":4},"end":{"line":473,"column":80}},"70":{"start":{"line":475,"column":4},"end":{"line":475,"column":28}},"71":{"start":{"line":477,"column":4},"end":{"line":477,"column":51}},"72":{"start":{"line":479,"column":4},"end":{"line":479,"column":42}},"73":{"start":{"line":488,"column":4},"end":{"line":488,"column":80}},"74":{"start":{"line":490,"column":4},"end":{"line":490,"column":48}},"75":{"start":{"line":492,"column":4},"end":{"line":492,"column":51}},"76":{"start":{"line":494,"column":4},"end":{"line":494,"column":51}},"77":{"start":{"line":504,"column":4},"end":{"line":504,"column":80}},"78":{"start":{"line":506,"column":4},"end":{"line":506,"column":51}},"79":{"start":{"line":508,"column":4},"end":{"line":508,"column":51}},"80":{"start":{"line":510,"column":4},"end":{"line":510,"column":61}},"81":{"start":{"line":519,"column":4},"end":{"line":519,"column":80}},"82":{"start":{"line":521,"column":4},"end":{"line":521,"column":43}},"83":{"start":{"line":523,"column":4},"end":{"line":523,"column":51}},"84":{"start":{"line":525,"column":4},"end":{"line":525,"column":53}},"85":{"start":{"line":534,"column":4},"end":{"line":534,"column":80}},"86":{"start":{"line":536,"column":4},"end":{"line":536,"column":38}},"87":{"start":{"line":538,"column":4},"end":{"line":538,"column":51}},"88":{"start":{"line":540,"column":4},"end":{"line":540,"column":48}},"89":{"start":{"line":552,"column":4},"end":{"line":552,"column":73}},"90":{"start":{"line":553,"column":4},"end":{"line":553,"column":71}},"91":{"start":{"line":562,"column":4},"end":{"line":562,"column":93}},"92":{"start":{"line":564,"column":4},"end":{"line":564,"column":18940}},"93":{"start":{"line":571,"column":4},"end":{"line":571,"column":58}},"94":{"start":{"line":573,"column":4},"end":{"line":573,"column":25}},"95":{"start":{"line":581,"column":4},"end":{"line":581,"column":19368}},"96":{"start":{"line":585,"column":4},"end":{"line":585,"column":84}},"97":{"start":{"line":587,"column":4},"end":{"line":587,"column":19580}},"98":{"start":{"line":594,"column":4},"end":{"line":594,"column":49}},"99":{"start":{"line":602,"column":4},"end":{"line":602,"column":21}}},"branchMap":{"1":{"line":187,"type":"if","locations":[{"start":{"line":187,"column":4},"end":{"line":187,"column":4}},{"start":{"line":187,"column":4},"end":{"line":187,"column":4}}]},"2":{"line":425,"type":"if","locations":[{"start":{"line":425,"column":4},"end":{"line":425,"column":4}},{"start":{"line":425,"column":4},"end":{"line":425,"column":4}}]}}},"contracts/lendingpool/LendingPoolStorage.sol":{"l":{"30":0,"37":0},"path":"/src/contracts/lendingpool/LendingPoolStorage.sol","s":{"1":0,"2":0},"b":{},"f":{"1":0,"2":0},"fnMap":{"1":{"name":"getReservesList","line":29,"loc":{"start":{"line":29,"column":2},"end":{"line":31,"column":2}}},"2":{"name":"getAddressesProvider","line":36,"loc":{"start":{"line":36,"column":2},"end":{"line":38,"column":2}}}},"statementMap":{"1":{"start":{"line":30,"column":4},"end":{"line":30,"column":24}},"2":{"start":{"line":37,"column":4},"end":{"line":37,"column":29}}},"branchMap":{}},"contracts/libraries/configuration/ReserveConfiguration.sol":{"l":{"46":1,"55":570,"63":16,"72":194,"84":15,"97":112,"106":15,"119":97,"128":17,"137":178,"146":31,"155":179,"164":21,"173":97,"182":19,"191":97,"202":20,"215":97,"233":179,"235":179,"258":209,"260":209},"path":"/src/contracts/libraries/configuration/ReserveConfiguration.sol","s":{"1":1,"2":570,"3":16,"4":194,"5":15,"6":112,"7":15,"8":97,"9":17,"10":178,"11":31,"12":179,"13":21,"14":97,"15":19,"16":97,"17":20,"18":97,"19":179,"20":179,"21":209,"22":209},"b":{},"f":{"1":1,"2":570,"3":16,"4":194,"5":15,"6":112,"7":15,"8":97,"9":17,"10":178,"11":31,"12":179,"13":21,"14":97,"15":19,"16":97,"17":20,"18":97,"19":179,"20":209},"fnMap":{"1":{"name":"setReserveFactor","line":44,"loc":{"start":{"line":44,"column":2},"end":{"line":47,"column":2}}},"2":{"name":"getReserveFactor","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":56,"column":2}}},"3":{"name":"setLtv","line":62,"loc":{"start":{"line":62,"column":2},"end":{"line":64,"column":2}}},"4":{"name":"getLtv","line":71,"loc":{"start":{"line":71,"column":2},"end":{"line":73,"column":2}}},"5":{"name":"setLiquidationThreshold","line":80,"loc":{"start":{"line":80,"column":2},"end":{"line":85,"column":2}}},"6":{"name":"getLiquidationThreshold","line":92,"loc":{"start":{"line":92,"column":2},"end":{"line":98,"column":2}}},"7":{"name":"setLiquidationBonus","line":105,"loc":{"start":{"line":105,"column":2},"end":{"line":107,"column":2}}},"8":{"name":"getLiquidationBonus","line":114,"loc":{"start":{"line":114,"column":2},"end":{"line":120,"column":2}}},"9":{"name":"setDecimals","line":127,"loc":{"start":{"line":127,"column":2},"end":{"line":129,"column":2}}},"10":{"name":"getDecimals","line":136,"loc":{"start":{"line":136,"column":2},"end":{"line":138,"column":2}}},"11":{"name":"setActive","line":145,"loc":{"start":{"line":145,"column":2},"end":{"line":147,"column":2}}},"12":{"name":"getActive","line":154,"loc":{"start":{"line":154,"column":2},"end":{"line":156,"column":2}}},"13":{"name":"setFrozen","line":163,"loc":{"start":{"line":163,"column":2},"end":{"line":165,"column":2}}},"14":{"name":"getFrozen","line":172,"loc":{"start":{"line":172,"column":2},"end":{"line":174,"column":2}}},"15":{"name":"setBorrowingEnabled","line":181,"loc":{"start":{"line":181,"column":2},"end":{"line":183,"column":2}}},"16":{"name":"getBorrowingEnabled","line":190,"loc":{"start":{"line":190,"column":2},"end":{"line":192,"column":2}}},"17":{"name":"setStableRateBorrowingEnabled","line":199,"loc":{"start":{"line":199,"column":2},"end":{"line":203,"column":2}}},"18":{"name":"getStableRateBorrowingEnabled","line":210,"loc":{"start":{"line":210,"column":2},"end":{"line":216,"column":2}}},"19":{"name":"getFlags","line":223,"loc":{"start":{"line":223,"column":2},"end":{"line":241,"column":2}}},"20":{"name":"getParams","line":248,"loc":{"start":{"line":248,"column":2},"end":{"line":266,"column":2}}}},"statementMap":{"1":{"start":{"line":46,"column":4},"end":{"line":46,"column":70}},"2":{"start":{"line":55,"column":4},"end":{"line":55,"column":51}},"3":{"start":{"line":63,"column":4},"end":{"line":63,"column":43}},"4":{"start":{"line":72,"column":4},"end":{"line":72,"column":32}},"5":{"start":{"line":84,"column":4},"end":{"line":84,"column":75}},"6":{"start":{"line":97,"column":4},"end":{"line":97,"column":58}},"7":{"start":{"line":106,"column":4},"end":{"line":106,"column":67}},"8":{"start":{"line":119,"column":4},"end":{"line":119,"column":54}},"9":{"start":{"line":128,"column":4},"end":{"line":128,"column":61}},"10":{"start":{"line":137,"column":4},"end":{"line":137,"column":45}},"11":{"start":{"line":146,"column":4},"end":{"line":146,"column":74}},"12":{"start":{"line":155,"column":4},"end":{"line":155,"column":50}},"13":{"start":{"line":164,"column":4},"end":{"line":164,"column":74}},"14":{"start":{"line":173,"column":4},"end":{"line":173,"column":50}},"15":{"start":{"line":182,"column":4},"end":{"line":182,"column":78}},"16":{"start":{"line":191,"column":4},"end":{"line":191,"column":53}},"17":{"start":{"line":202,"column":4},"end":{"line":202,"column":85}},"18":{"start":{"line":215,"column":4},"end":{"line":215,"column":60}},"19":{"start":{"line":233,"column":4},"end":{"line":233,"column":33}},"20":{"start":{"line":235,"column":4},"end":{"line":235,"column":7613}},"21":{"start":{"line":258,"column":4},"end":{"line":258,"column":33}},"22":{"start":{"line":260,"column":4},"end":{"line":260,"column":8256}}},"branchMap":{}},"contracts/libraries/configuration/UserConfiguration.sol":{"l":{"31":49,"47":121,"63":1853,"77":235,"91":550,"100":33,"109":119},"path":"/src/contracts/libraries/configuration/UserConfiguration.sol","s":{"1":49,"2":121,"3":1853,"4":235,"5":550,"6":33,"7":119},"b":{},"f":{"1":49,"2":121,"3":1853,"4":235,"5":550,"6":33,"7":119},"fnMap":{"1":{"name":"setBorrowing","line":26,"loc":{"start":{"line":26,"column":2},"end":{"line":34,"column":2}}},"2":{"name":"setUsingAsCollateral","line":42,"loc":{"start":{"line":42,"column":2},"end":{"line":50,"column":2}}},"3":{"name":"isUsingAsCollateralOrBorrowing","line":58,"loc":{"start":{"line":58,"column":2},"end":{"line":64,"column":2}}},"4":{"name":"isBorrowing","line":72,"loc":{"start":{"line":72,"column":2},"end":{"line":78,"column":2}}},"5":{"name":"isUsingAsCollateral","line":86,"loc":{"start":{"line":86,"column":2},"end":{"line":92,"column":2}}},"6":{"name":"isBorrowingAny","line":99,"loc":{"start":{"line":99,"column":2},"end":{"line":101,"column":2}}},"7":{"name":"isEmpty","line":108,"loc":{"start":{"line":108,"column":2},"end":{"line":110,"column":2}}}},"statementMap":{"1":{"start":{"line":31,"column":4},"end":{"line":31,"column":1104}},"2":{"start":{"line":47,"column":4},"end":{"line":47,"column":1694}},"3":{"start":{"line":63,"column":4},"end":{"line":63,"column":53}},"4":{"start":{"line":77,"column":4},"end":{"line":77,"column":53}},"5":{"start":{"line":91,"column":4},"end":{"line":91,"column":57}},"6":{"start":{"line":100,"column":4},"end":{"line":100,"column":42}},"7":{"start":{"line":109,"column":4},"end":{"line":109,"column":25}}},"branchMap":{}},"contracts/libraries/helpers/Errors.sol":{"l":{},"path":"/src/contracts/libraries/helpers/Errors.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/libraries/helpers/Helpers.sol":{"l":{"24":395},"path":"/src/contracts/libraries/helpers/Helpers.sol","s":{"1":395},"b":{},"f":{"1":395},"fnMap":{"1":{"name":"getUserCurrentDebt","line":19,"loc":{"start":{"line":19,"column":2},"end":{"line":28,"column":2}}}},"statementMap":{"1":{"start":{"line":24,"column":4},"end":{"line":24,"column":653}}},"branchMap":{}},"contracts/libraries/logic/GenericLogic.sol":{"l":{"65":33,"69":27,"72":6,"74":6,"76":6,"77":0,"80":6,"88":6,"89":0,"92":6,"96":6,"99":6,"100":3,"103":3,"109":3,"115":3,"169":119,"171":119,"172":10,"174":109,"175":1853,"176":1668,"179":185,"180":185,"182":185,"186":185,"187":185,"189":185,"190":128,"192":128,"197":128,"199":128,"200":128,"205":185,"206":63,"209":63,"213":63,"219":109,"222":109,"226":109,"231":109,"252":112,"254":64,"271":21,"273":21,"274":11,"277":10,"278":10},"path":"/src/contracts/libraries/logic/GenericLogic.sol","s":{"1":33,"2":27,"3":6,"4":6,"5":6,"6":0,"7":6,"8":6,"9":0,"10":6,"11":6,"12":6,"13":3,"14":3,"15":3,"16":3,"17":119,"18":119,"19":10,"20":109,"21":1853,"22":185,"23":185,"24":185,"25":185,"26":185,"27":185,"28":128,"29":128,"30":128,"31":128,"32":128,"33":185,"34":63,"35":63,"36":63,"37":109,"38":109,"39":109,"40":109,"41":112,"42":48,"43":64,"44":21,"45":21,"46":11,"47":10,"48":10},"b":{"1":[27,6],"2":[0,6],"3":[0,6],"4":[3,3],"5":[10,109],"6":[1668,185],"7":[128,57],"8":[63,122],"9":[48,64],"10":[11,10]},"f":{"1":33,"2":119,"3":112,"4":21},"fnMap":{"1":{"name":"balanceDecreaseAllowed","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":116,"column":2}}},"2":{"name":"calculateUserAccountData","line":152,"loc":{"start":{"line":152,"column":2},"end":{"line":238,"column":2}}},"3":{"name":"calculateHealthFactorFromBalances","line":247,"loc":{"start":{"line":247,"column":2},"end":{"line":255,"column":2}}},"4":{"name":"calculateAvailableBorrowsETH","line":266,"loc":{"start":{"line":266,"column":2},"end":{"line":279,"column":2}}}},"statementMap":{"1":{"start":{"line":65,"column":4},"end":{"line":65,"column":2530}},"2":{"start":{"line":69,"column":6},"end":{"line":69,"column":17}},"3":{"start":{"line":72,"column":4},"end":{"line":72,"column":47}},"4":{"start":{"line":74,"column":4},"end":{"line":74,"column":80}},"5":{"start":{"line":76,"column":4},"end":{"line":76,"column":2807}},"6":{"start":{"line":77,"column":6},"end":{"line":77,"column":17}},"7":{"start":{"line":80,"column":4},"end":{"line":80,"column":3008}},"8":{"start":{"line":88,"column":4},"end":{"line":88,"column":3133}},"9":{"start":{"line":89,"column":6},"end":{"line":89,"column":17}},"10":{"start":{"line":92,"column":4},"end":{"line":92,"column":3245}},"11":{"start":{"line":96,"column":4},"end":{"line":96,"column":95}},"12":{"start":{"line":99,"column":4},"end":{"line":99,"column":3528}},"13":{"start":{"line":100,"column":6},"end":{"line":100,"column":18}},"14":{"start":{"line":103,"column":4},"end":{"line":103,"column":3647}},"15":{"start":{"line":109,"column":4},"end":{"line":109,"column":3854}},"16":{"start":{"line":115,"column":4},"end":{"line":115,"column":87}},"17":{"start":{"line":169,"column":4},"end":{"line":169,"column":44}},"18":{"start":{"line":171,"column":4},"end":{"line":171,"column":5830}},"19":{"start":{"line":172,"column":6},"end":{"line":172,"column":38}},"20":{"start":{"line":174,"column":4},"end":{"line":174,"column":5908}},"21":{"start":{"line":175,"column":6},"end":{"line":175,"column":5971}},"22":{"start":{"line":179,"column":6},"end":{"line":179,"column":50}},"23":{"start":{"line":180,"column":6},"end":{"line":180,"column":96}},"24":{"start":{"line":182,"column":6},"end":{"line":182,"column":6227}},"25":{"start":{"line":186,"column":6},"end":{"line":186,"column":39}},"26":{"start":{"line":187,"column":6},"end":{"line":187,"column":97}},"27":{"start":{"line":189,"column":6},"end":{"line":189,"column":6481}},"28":{"start":{"line":190,"column":8},"end":{"line":190,"column":93}},"29":{"start":{"line":192,"column":8},"end":{"line":192,"column":6673}},"30":{"start":{"line":197,"column":8},"end":{"line":197,"column":95}},"31":{"start":{"line":199,"column":8},"end":{"line":199,"column":71}},"32":{"start":{"line":200,"column":8},"end":{"line":200,"column":6976}},"33":{"start":{"line":205,"column":6},"end":{"line":205,"column":7126}},"34":{"start":{"line":206,"column":8},"end":{"line":206,"column":7174}},"35":{"start":{"line":209,"column":8},"end":{"line":209,"column":7296}},"36":{"start":{"line":213,"column":8},"end":{"line":213,"column":7455}},"37":{"start":{"line":219,"column":4},"end":{"line":219,"column":7632}},"38":{"start":{"line":222,"column":4},"end":{"line":222,"column":7752}},"39":{"start":{"line":226,"column":4},"end":{"line":226,"column":7903}},"40":{"start":{"line":231,"column":4},"end":{"line":231,"column":8077}},"41":{"start":{"line":252,"column":4},"end":{"line":252,"column":49}},"42":{"start":{"line":252,"column":31},"end":{"line":252,"column":49}},"43":{"start":{"line":254,"column":4},"end":{"line":254,"column":91}},"44":{"start":{"line":271,"column":4},"end":{"line":271,"column":70}},"45":{"start":{"line":273,"column":4},"end":{"line":273,"column":9571}},"46":{"start":{"line":274,"column":6},"end":{"line":274,"column":14}},"47":{"start":{"line":277,"column":4},"end":{"line":277,"column":66}},"48":{"start":{"line":278,"column":4},"end":{"line":278,"column":30}}},"branchMap":{"1":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":4},"end":{"line":65,"column":4}},{"start":{"line":65,"column":4},"end":{"line":65,"column":4}}]},"2":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"3":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":88,"column":4}},{"start":{"line":88,"column":4},"end":{"line":88,"column":4}}]},"4":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":4},"end":{"line":99,"column":4}},{"start":{"line":99,"column":4},"end":{"line":99,"column":4}}]},"5":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":4},"end":{"line":171,"column":4}},{"start":{"line":171,"column":4},"end":{"line":171,"column":4}}]},"6":{"line":175,"type":"if","locations":[{"start":{"line":175,"column":6},"end":{"line":175,"column":6}},{"start":{"line":175,"column":6},"end":{"line":175,"column":6}}]},"7":{"line":189,"type":"if","locations":[{"start":{"line":189,"column":6},"end":{"line":189,"column":6}},{"start":{"line":189,"column":6},"end":{"line":189,"column":6}}]},"8":{"line":205,"type":"if","locations":[{"start":{"line":205,"column":6},"end":{"line":205,"column":6}},{"start":{"line":205,"column":6},"end":{"line":205,"column":6}}]},"9":{"line":252,"type":"if","locations":[{"start":{"line":252,"column":4},"end":{"line":252,"column":4}},{"start":{"line":252,"column":4},"end":{"line":252,"column":4}}]},"10":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":4},"end":{"line":273,"column":4}},{"start":{"line":273,"column":4},"end":{"line":273,"column":4}}]}}},"contracts/libraries/logic/ReserveLogic.sol":{"l":{"85":648,"88":648,"90":370,"93":278,"97":278,"108":810,"111":810,"113":498,"116":312,"120":312,"134":11,"139":10,"151":239,"152":239,"153":239,"155":239,"162":239,"183":3,"185":3,"187":3,"188":3,"190":3,"206":17,"207":17,"209":17,"212":17,"213":17,"216":17,"217":17,"218":17,"219":17,"246":235,"248":235,"250":235,"253":235,"255":235,"267":234,"268":234,"269":234,"271":234,"272":234,"273":234,"275":234,"316":239,"318":239,"320":239,"321":239,"325":0,"328":0,"336":0,"339":0,"342":0,"347":0,"350":0,"356":0,"358":0,"374":239,"376":239,"378":239,"379":239,"382":239,"383":69,"387":69,"388":69,"390":69,"394":69,"395":39,"399":39,"400":39,"401":39,"406":239,"407":239},"path":"/src/contracts/libraries/logic/ReserveLogic.sol","s":{"1":648,"2":648,"3":370,"4":278,"5":278,"6":810,"7":810,"8":498,"9":312,"10":312,"11":11,"12":10,"13":239,"14":239,"15":239,"16":239,"17":239,"18":3,"19":3,"20":3,"21":3,"22":3,"23":17,"24":17,"25":17,"26":17,"27":17,"28":17,"29":17,"30":17,"31":17,"32":235,"33":235,"34":235,"35":235,"36":235,"37":234,"38":234,"39":234,"40":234,"41":234,"42":234,"43":234,"44":239,"45":239,"46":239,"47":239,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":239,"58":239,"59":239,"60":239,"61":239,"62":69,"63":69,"64":69,"65":69,"66":69,"67":39,"68":39,"69":39,"70":39,"71":239,"72":239},"b":{"1":[370,278],"2":[498,312],"3":[10,1],"4":[3,0],"5":[17,0],"6":[17,0],"7":[17,0],"8":[234,0],"9":[234,0],"10":[234,0],"11":[239,0],"12":[69,170],"13":[69,0],"14":[39,30],"15":[39,0]},"f":{"1":648,"2":810,"3":11,"4":239,"5":3,"6":17,"7":235,"8":239,"9":239},"fnMap":{"1":{"name":"getNormalizedIncome","line":84,"loc":{"start":{"line":84,"column":2},"end":{"line":98,"column":2}}},"2":{"name":"getNormalizedDebt","line":107,"loc":{"start":{"line":107,"column":2},"end":{"line":121,"column":2}}},"3":{"name":"getDebtTokenAddress","line":129,"loc":{"start":{"line":129,"column":2},"end":{"line":143,"column":2}}},"4":{"name":"updateState","line":150,"loc":{"start":{"line":150,"column":2},"end":{"line":169,"column":2}}},"5":{"name":"cumulateToLiquidityIndex","line":178,"loc":{"start":{"line":178,"column":2},"end":{"line":191,"column":2}}},"6":{"name":"init","line":199,"loc":{"start":{"line":199,"column":2},"end":{"line":220,"column":2}}},"7":{"name":"updateInterestRates","line":239,"loc":{"start":{"line":239,"column":2},"end":{"line":283,"column":2}}},"8":{"name":"_mintToTreasury","line":309,"loc":{"start":{"line":309,"column":2},"end":{"line":359,"column":2}}},"9":{"name":"_updateIndexes","line":368,"loc":{"start":{"line":368,"column":2},"end":{"line":408,"column":2}}}},"statementMap":{"1":{"start":{"line":85,"column":4},"end":{"line":85,"column":50}},"2":{"start":{"line":88,"column":4},"end":{"line":88,"column":3533}},"3":{"start":{"line":90,"column":6},"end":{"line":90,"column":35}},"4":{"start":{"line":93,"column":4},"end":{"line":93,"column":3745}},"5":{"start":{"line":97,"column":4},"end":{"line":97,"column":20}},"6":{"start":{"line":108,"column":4},"end":{"line":108,"column":50}},"7":{"start":{"line":111,"column":4},"end":{"line":111,"column":4417}},"8":{"start":{"line":113,"column":6},"end":{"line":113,"column":40}},"9":{"start":{"line":116,"column":4},"end":{"line":116,"column":4639}},"10":{"start":{"line":120,"column":4},"end":{"line":120,"column":20}},"11":{"start":{"line":134,"column":4},"end":{"line":134,"column":5256}},"12":{"start":{"line":139,"column":4},"end":{"line":139,"column":5559}},"13":{"start":{"line":151,"column":4},"end":{"line":151,"column":64}},"14":{"start":{"line":152,"column":4},"end":{"line":152,"column":69}},"15":{"start":{"line":153,"column":4},"end":{"line":153,"column":59}},"16":{"start":{"line":155,"column":4},"end":{"line":155,"column":6182}},"17":{"start":{"line":162,"column":4},"end":{"line":162,"column":6375}},"18":{"start":{"line":183,"column":4},"end":{"line":183,"column":88}},"19":{"start":{"line":185,"column":4},"end":{"line":185,"column":65}},"20":{"start":{"line":187,"column":4},"end":{"line":187,"column":49}},"21":{"start":{"line":188,"column":4},"end":{"line":188,"column":64}},"22":{"start":{"line":190,"column":4},"end":{"line":190,"column":43}},"23":{"start":{"line":206,"column":4},"end":{"line":206,"column":83}},"24":{"start":{"line":207,"column":4},"end":{"line":207,"column":7908}},"25":{"start":{"line":209,"column":6},"end":{"line":209,"column":55}},"26":{"start":{"line":212,"column":4},"end":{"line":212,"column":8064}},"27":{"start":{"line":213,"column":6},"end":{"line":213,"column":60}},"28":{"start":{"line":216,"column":4},"end":{"line":216,"column":40}},"29":{"start":{"line":217,"column":4},"end":{"line":217,"column":58}},"30":{"start":{"line":218,"column":4},"end":{"line":218,"column":62}},"31":{"start":{"line":219,"column":4},"end":{"line":219,"column":68}},"32":{"start":{"line":246,"column":4},"end":{"line":246,"column":44}},"33":{"start":{"line":248,"column":4},"end":{"line":248,"column":63}},"34":{"start":{"line":250,"column":4},"end":{"line":250,"column":9530}},"35":{"start":{"line":253,"column":4},"end":{"line":253,"column":76}},"36":{"start":{"line":255,"column":4},"end":{"line":255,"column":9713}},"37":{"start":{"line":267,"column":4},"end":{"line":267,"column":87}},"38":{"start":{"line":268,"column":4},"end":{"line":268,"column":88}},"39":{"start":{"line":269,"column":4},"end":{"line":269,"column":92}},"40":{"start":{"line":271,"column":4},"end":{"line":271,"column":64}},"41":{"start":{"line":272,"column":4},"end":{"line":272,"column":64}},"42":{"start":{"line":273,"column":4},"end":{"line":273,"column":68}},"43":{"start":{"line":275,"column":4},"end":{"line":275,"column":10646}},"44":{"start":{"line":316,"column":4},"end":{"line":316,"column":39}},"45":{"start":{"line":318,"column":4},"end":{"line":318,"column":64}},"46":{"start":{"line":320,"column":4},"end":{"line":320,"column":12121}},"47":{"start":{"line":321,"column":6},"end":{"line":321,"column":12}},"48":{"start":{"line":325,"column":4},"end":{"line":325,"column":86}},"49":{"start":{"line":328,"column":4},"end":{"line":328,"column":12457}},"50":{"start":{"line":336,"column":4},"end":{"line":336,"column":90}},"51":{"start":{"line":339,"column":4},"end":{"line":339,"column":84}},"52":{"start":{"line":342,"column":4},"end":{"line":342,"column":12963}},"53":{"start":{"line":347,"column":4},"end":{"line":347,"column":90}},"54":{"start":{"line":350,"column":4},"end":{"line":350,"column":13330}},"55":{"start":{"line":356,"column":4},"end":{"line":356,"column":75}},"56":{"start":{"line":358,"column":4},"end":{"line":358,"column":86}},"57":{"start":{"line":374,"column":4},"end":{"line":374,"column":50}},"58":{"start":{"line":376,"column":4},"end":{"line":376,"column":63}},"59":{"start":{"line":378,"column":4},"end":{"line":378,"column":46}},"60":{"start":{"line":379,"column":4},"end":{"line":379,"column":56}},"61":{"start":{"line":382,"column":4},"end":{"line":382,"column":14442}},"62":{"start":{"line":383,"column":6},"end":{"line":383,"column":14483}},"63":{"start":{"line":387,"column":6},"end":{"line":387,"column":74}},"64":{"start":{"line":388,"column":6},"end":{"line":388,"column":77}},"65":{"start":{"line":390,"column":6},"end":{"line":390,"column":56}},"66":{"start":{"line":394,"column":6},"end":{"line":394,"column":14986}},"67":{"start":{"line":395,"column":8},"end":{"line":395,"column":15048}},"68":{"start":{"line":399,"column":8},"end":{"line":399,"column":91}},"69":{"start":{"line":400,"column":8},"end":{"line":400,"column":90}},"70":{"start":{"line":401,"column":8},"end":{"line":401,"column":68}},"71":{"start":{"line":406,"column":4},"end":{"line":406,"column":56}},"72":{"start":{"line":407,"column":4},"end":{"line":407,"column":54}}},"branchMap":{"1":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":88,"column":4}},{"start":{"line":88,"column":4},"end":{"line":88,"column":4}}]},"2":{"line":111,"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":111,"column":4}},{"start":{"line":111,"column":4},"end":{"line":111,"column":4}}]},"3":{"line":134,"type":"if","locations":[{"start":{"line":134,"column":4},"end":{"line":134,"column":4}},{"start":{"line":134,"column":4},"end":{"line":134,"column":4}}]},"4":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":4},"end":{"line":188,"column":4}},{"start":{"line":188,"column":4},"end":{"line":188,"column":4}}]},"5":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":4},"end":{"line":206,"column":4}},{"start":{"line":206,"column":4},"end":{"line":206,"column":4}}]},"6":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":207,"column":4}},{"start":{"line":207,"column":4},"end":{"line":207,"column":4}}]},"7":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":4},"end":{"line":212,"column":4}},{"start":{"line":212,"column":4},"end":{"line":212,"column":4}}]},"8":{"line":267,"type":"if","locations":[{"start":{"line":267,"column":4},"end":{"line":267,"column":4}},{"start":{"line":267,"column":4},"end":{"line":267,"column":4}}]},"9":{"line":268,"type":"if","locations":[{"start":{"line":268,"column":4},"end":{"line":268,"column":4}},{"start":{"line":268,"column":4},"end":{"line":268,"column":4}}]},"10":{"line":269,"type":"if","locations":[{"start":{"line":269,"column":4},"end":{"line":269,"column":4}},{"start":{"line":269,"column":4},"end":{"line":269,"column":4}}]},"11":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":4},"end":{"line":320,"column":4}},{"start":{"line":320,"column":4},"end":{"line":320,"column":4}}]},"12":{"line":382,"type":"if","locations":[{"start":{"line":382,"column":4},"end":{"line":382,"column":4}},{"start":{"line":382,"column":4},"end":{"line":382,"column":4}}]},"13":{"line":388,"type":"if","locations":[{"start":{"line":388,"column":6},"end":{"line":388,"column":6}},{"start":{"line":388,"column":6},"end":{"line":388,"column":6}}]},"14":{"line":394,"type":"if","locations":[{"start":{"line":394,"column":6},"end":{"line":394,"column":6}},{"start":{"line":394,"column":6},"end":{"line":394,"column":6}}]},"15":{"line":400,"type":"if","locations":[{"start":{"line":400,"column":8},"end":{"line":400,"column":8}},{"start":{"line":400,"column":8},"end":{"line":400,"column":8}}]}}},"contracts/libraries/logic/ValidationLogic.sol":{"l":{"38":104,"40":104,"41":102,"42":102,"60":25,"62":24,"64":23,"125":63,"127":63,"134":63,"135":63,"137":63,"140":63,"146":61,"160":61,"162":55,"168":55,"172":55,"186":50,"189":0,"191":0,"200":0,"202":0,"222":20,"224":20,"226":20,"228":18,"236":18,"257":4,"259":4,"260":4,"262":4,"263":2,"265":2,"273":1,"275":1,"283":0,"304":7,"306":7,"308":7,"328":13,"329":12,"349":10,"352":2,"355":8,"356":1,"362":7,"366":7,"367":1,"373":6,"374":1,"380":5,"402":18,"405":2,"408":16,"411":0,"417":16,"418":8,"422":8,"423":1,"430":15,"431":2,"437":13,"453":9,"454":1,"460":8,"461":8,"462":2,"464":6,"465":1,"471":5},"path":"/src/contracts/libraries/logic/ValidationLogic.sol","s":{"1":104,"2":104,"3":102,"4":102,"5":25,"6":24,"7":23,"8":63,"9":63,"10":63,"11":63,"12":63,"13":63,"14":61,"15":61,"16":55,"17":55,"18":55,"19":50,"20":0,"21":0,"22":0,"23":0,"24":20,"25":20,"26":20,"27":18,"28":18,"29":4,"30":4,"31":4,"32":4,"33":2,"34":2,"35":2,"36":1,"37":1,"38":0,"39":7,"40":7,"41":7,"42":13,"43":12,"44":10,"45":2,"46":8,"47":1,"48":7,"49":7,"50":1,"51":6,"52":1,"53":5,"54":18,"55":2,"56":16,"57":0,"58":16,"59":8,"60":8,"61":1,"62":15,"63":2,"64":13,"65":9,"66":1,"67":8,"68":8,"69":2,"70":6,"71":1,"72":5},"b":{"1":[102,2],"2":[102,0],"3":[102,0],"4":[24,1],"5":[23,1],"6":[22,1],"7":[63,0],"8":[63,0],"9":[63,0],"10":[61,2],"11":[55,6],"12":[55,0],"13":[50,5],"14":[0,50],"15":[0,0],"16":[0,0],"17":[0,0],"18":[20,0],"19":[18,2],"20":[18,0],"21":[17,1],"22":[4,0],"23":[4,0],"24":[2,2],"25":[1,1],"26":[2,0],"27":[1,1],"28":[1,0],"29":[1,0],"30":[7,0],"31":[6,1],"32":[12,1],"33":[11,1],"34":[2,8],"35":[1,7],"36":[1,6],"37":[1,5],"38":[2,16],"39":[0,16],"40":[8,8],"41":[1,7],"42":[2,13],"43":[1,8],"44":[2,6],"45":[1,5]},"f":{"1":104,"2":25,"3":63,"4":20,"5":4,"6":7,"7":13,"8":10,"9":18,"10":9},"fnMap":{"1":{"name":"validateDeposit","line":37,"loc":{"start":{"line":37,"column":2},"end":{"line":43,"column":2}}},"2":{"name":"validateWithdraw","line":51,"loc":{"start":{"line":51,"column":2},"end":{"line":76,"column":2}}},"3":{"name":"validateBorrow","line":113,"loc":{"start":{"line":113,"column":2},"end":{"line":204,"column":2}}},"4":{"name":"validateRepay","line":214,"loc":{"start":{"line":214,"column":2},"end":{"line":240,"column":2}}},"5":{"name":"validateSwapRateMode","line":250,"loc":{"start":{"line":250,"column":2},"end":{"line":285,"column":2}}},"6":{"name":"validateSetUseReserveAsCollateral","line":296,"loc":{"start":{"line":296,"column":2},"end":{"line":320,"column":2}}},"7":{"name":"validateFlashloan","line":327,"loc":{"start":{"line":327,"column":2},"end":{"line":330,"column":2}}},"8":{"name":"validateLiquidationCall","line":341,"loc":{"start":{"line":341,"column":2},"end":{"line":381,"column":2}}},"9":{"name":"validateRepayWithCollateral","line":393,"loc":{"start":{"line":393,"column":2},"end":{"line":438,"column":2}}},"10":{"name":"validateSwapLiquidity","line":447,"loc":{"start":{"line":447,"column":2},"end":{"line":472,"column":2}}}},"statementMap":{"1":{"start":{"line":38,"column":4},"end":{"line":38,"column":74}},"2":{"start":{"line":40,"column":4},"end":{"line":40,"column":56}},"3":{"start":{"line":41,"column":4},"end":{"line":41,"column":46}},"4":{"start":{"line":42,"column":4},"end":{"line":42,"column":51}},"5":{"start":{"line":60,"column":4},"end":{"line":60,"column":56}},"6":{"start":{"line":62,"column":4},"end":{"line":62,"column":75}},"7":{"start":{"line":64,"column":4},"end":{"line":64,"column":2437}},"8":{"start":{"line":125,"column":4},"end":{"line":125,"column":39}},"9":{"start":{"line":127,"column":4},"end":{"line":127,"column":4488}},"10":{"start":{"line":134,"column":4},"end":{"line":134,"column":51}},"11":{"start":{"line":135,"column":4},"end":{"line":135,"column":56}},"12":{"start":{"line":137,"column":4},"end":{"line":137,"column":63}},"13":{"start":{"line":140,"column":4},"end":{"line":140,"column":4827}},"14":{"start":{"line":146,"column":4},"end":{"line":146,"column":5049}},"15":{"start":{"line":160,"column":4},"end":{"line":160,"column":77}},"16":{"start":{"line":162,"column":4},"end":{"line":162,"column":5434}},"17":{"start":{"line":168,"column":4},"end":{"line":168,"column":5703}},"18":{"start":{"line":172,"column":4},"end":{"line":172,"column":5861}},"19":{"start":{"line":186,"column":4},"end":{"line":186,"column":6430}},"20":{"start":{"line":189,"column":6},"end":{"line":189,"column":82}},"21":{"start":{"line":191,"column":6},"end":{"line":191,"column":6685}},"22":{"start":{"line":200,"column":6},"end":{"line":200,"column":90}},"23":{"start":{"line":202,"column":6},"end":{"line":202,"column":89}},"24":{"start":{"line":222,"column":4},"end":{"line":222,"column":53}},"25":{"start":{"line":224,"column":4},"end":{"line":224,"column":46}},"26":{"start":{"line":226,"column":4},"end":{"line":226,"column":60}},"27":{"start":{"line":228,"column":4},"end":{"line":228,"column":8040}},"28":{"start":{"line":236,"column":4},"end":{"line":236,"column":8339}},"29":{"start":{"line":257,"column":4},"end":{"line":257,"column":96}},"30":{"start":{"line":259,"column":4},"end":{"line":259,"column":46}},"31":{"start":{"line":260,"column":4},"end":{"line":260,"column":51}},"32":{"start":{"line":262,"column":4},"end":{"line":262,"column":9332}},"33":{"start":{"line":263,"column":6},"end":{"line":263,"column":76}},"34":{"start":{"line":264,"column":11},"end":{"line":264,"column":9485}},"35":{"start":{"line":265,"column":6},"end":{"line":265,"column":80}},"36":{"start":{"line":273,"column":6},"end":{"line":273,"column":68}},"37":{"start":{"line":275,"column":6},"end":{"line":275,"column":10079}},"38":{"start":{"line":283,"column":6},"end":{"line":283,"column":55}},"39":{"start":{"line":304,"column":4},"end":{"line":304,"column":83}},"40":{"start":{"line":306,"column":4},"end":{"line":306,"column":79}},"41":{"start":{"line":308,"column":4},"end":{"line":308,"column":11408}},"42":{"start":{"line":328,"column":4},"end":{"line":328,"column":58}},"43":{"start":{"line":329,"column":4},"end":{"line":329,"column":98}},"44":{"start":{"line":349,"column":4},"end":{"line":349,"column":12893}},"45":{"start":{"line":352,"column":6},"end":{"line":352,"column":98}},"46":{"start":{"line":355,"column":4},"end":{"line":355,"column":13115}},"47":{"start":{"line":356,"column":6},"end":{"line":356,"column":13200}},"48":{"start":{"line":362,"column":4},"end":{"line":362,"column":13408}},"49":{"start":{"line":366,"column":4},"end":{"line":366,"column":13592}},"50":{"start":{"line":367,"column":6},"end":{"line":367,"column":13629}},"51":{"start":{"line":373,"column":4},"end":{"line":373,"column":13783}},"52":{"start":{"line":374,"column":6},"end":{"line":374,"column":13844}},"53":{"start":{"line":380,"column":4},"end":{"line":380,"column":79}},"54":{"start":{"line":402,"column":4},"end":{"line":402,"column":14907}},"55":{"start":{"line":405,"column":6},"end":{"line":405,"column":98}},"56":{"start":{"line":408,"column":4},"end":{"line":408,"column":15129}},"57":{"start":{"line":411,"column":6},"end":{"line":411,"column":15248}},"58":{"start":{"line":417,"column":4},"end":{"line":417,"column":15402}},"59":{"start":{"line":418,"column":6},"end":{"line":418,"column":15490}},"60":{"start":{"line":422,"column":6},"end":{"line":422,"column":15680}},"61":{"start":{"line":423,"column":8},"end":{"line":423,"column":15719}},"62":{"start":{"line":430,"column":4},"end":{"line":430,"column":15885}},"63":{"start":{"line":431,"column":6},"end":{"line":431,"column":15946}},"64":{"start":{"line":437,"column":4},"end":{"line":437,"column":79}},"65":{"start":{"line":453,"column":4},"end":{"line":453,"column":16711}},"66":{"start":{"line":454,"column":6},"end":{"line":454,"column":16748}},"67":{"start":{"line":460,"column":4},"end":{"line":460,"column":80}},"68":{"start":{"line":461,"column":4},"end":{"line":461,"column":16978}},"69":{"start":{"line":462,"column":6},"end":{"line":462,"column":98}},"70":{"start":{"line":464,"column":4},"end":{"line":464,"column":17149}},"71":{"start":{"line":465,"column":6},"end":{"line":465,"column":17177}},"72":{"start":{"line":471,"column":4},"end":{"line":471,"column":79}}},"branchMap":{"1":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":40,"column":4}},{"start":{"line":40,"column":4},"end":{"line":40,"column":4}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":41,"column":4}},{"start":{"line":41,"column":4},"end":{"line":41,"column":4}}]},"3":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":4}},{"start":{"line":42,"column":4},"end":{"line":42,"column":4}}]},"4":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},{"start":{"line":60,"column":4},"end":{"line":60,"column":4}}]},"5":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":62,"column":4}},{"start":{"line":62,"column":4},"end":{"line":62,"column":4}}]},"6":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":4},"end":{"line":64,"column":4}},{"start":{"line":64,"column":4},"end":{"line":64,"column":4}}]},"7":{"line":134,"type":"if","locations":[{"start":{"line":134,"column":4},"end":{"line":134,"column":4}},{"start":{"line":134,"column":4},"end":{"line":134,"column":4}}]},"8":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":4},"end":{"line":135,"column":4}},{"start":{"line":135,"column":4},"end":{"line":135,"column":4}}]},"9":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":4},"end":{"line":137,"column":4}},{"start":{"line":137,"column":4},"end":{"line":137,"column":4}}]},"10":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":4},"end":{"line":140,"column":4}},{"start":{"line":140,"column":4},"end":{"line":140,"column":4}}]},"11":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":4},"end":{"line":160,"column":4}},{"start":{"line":160,"column":4},"end":{"line":160,"column":4}}]},"12":{"line":162,"type":"if","locations":[{"start":{"line":162,"column":4},"end":{"line":162,"column":4}},{"start":{"line":162,"column":4},"end":{"line":162,"column":4}}]},"13":{"line":172,"type":"if","locations":[{"start":{"line":172,"column":4},"end":{"line":172,"column":4}},{"start":{"line":172,"column":4},"end":{"line":172,"column":4}}]},"14":{"line":186,"type":"if","locations":[{"start":{"line":186,"column":4},"end":{"line":186,"column":4}},{"start":{"line":186,"column":4},"end":{"line":186,"column":4}}]},"15":{"line":189,"type":"if","locations":[{"start":{"line":189,"column":6},"end":{"line":189,"column":6}},{"start":{"line":189,"column":6},"end":{"line":189,"column":6}}]},"16":{"line":191,"type":"if","locations":[{"start":{"line":191,"column":6},"end":{"line":191,"column":6}},{"start":{"line":191,"column":6},"end":{"line":191,"column":6}}]},"17":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":6},"end":{"line":202,"column":6}},{"start":{"line":202,"column":6},"end":{"line":202,"column":6}}]},"18":{"line":224,"type":"if","locations":[{"start":{"line":224,"column":4},"end":{"line":224,"column":4}},{"start":{"line":224,"column":4},"end":{"line":224,"column":4}}]},"19":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":4},"end":{"line":226,"column":4}},{"start":{"line":226,"column":4},"end":{"line":226,"column":4}}]},"20":{"line":228,"type":"if","locations":[{"start":{"line":228,"column":4},"end":{"line":228,"column":4}},{"start":{"line":228,"column":4},"end":{"line":228,"column":4}}]},"21":{"line":236,"type":"if","locations":[{"start":{"line":236,"column":4},"end":{"line":236,"column":4}},{"start":{"line":236,"column":4},"end":{"line":236,"column":4}}]},"22":{"line":259,"type":"if","locations":[{"start":{"line":259,"column":4},"end":{"line":259,"column":4}},{"start":{"line":259,"column":4},"end":{"line":259,"column":4}}]},"23":{"line":260,"type":"if","locations":[{"start":{"line":260,"column":4},"end":{"line":260,"column":4}},{"start":{"line":260,"column":4},"end":{"line":260,"column":4}}]},"24":{"line":262,"type":"if","locations":[{"start":{"line":262,"column":4},"end":{"line":262,"column":4}},{"start":{"line":262,"column":4},"end":{"line":262,"column":4}}]},"25":{"line":263,"type":"if","locations":[{"start":{"line":263,"column":6},"end":{"line":263,"column":6}},{"start":{"line":263,"column":6},"end":{"line":263,"column":6}}]},"26":{"line":264,"type":"if","locations":[{"start":{"line":264,"column":11},"end":{"line":264,"column":11}},{"start":{"line":264,"column":11},"end":{"line":264,"column":11}}]},"27":{"line":265,"type":"if","locations":[{"start":{"line":265,"column":6},"end":{"line":265,"column":6}},{"start":{"line":265,"column":6},"end":{"line":265,"column":6}}]},"28":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":6},"end":{"line":273,"column":6}},{"start":{"line":273,"column":6},"end":{"line":273,"column":6}}]},"29":{"line":275,"type":"if","locations":[{"start":{"line":275,"column":6},"end":{"line":275,"column":6}},{"start":{"line":275,"column":6},"end":{"line":275,"column":6}}]},"30":{"line":306,"type":"if","locations":[{"start":{"line":306,"column":4},"end":{"line":306,"column":4}},{"start":{"line":306,"column":4},"end":{"line":306,"column":4}}]},"31":{"line":308,"type":"if","locations":[{"start":{"line":308,"column":4},"end":{"line":308,"column":4}},{"start":{"line":308,"column":4},"end":{"line":308,"column":4}}]},"32":{"line":328,"type":"if","locations":[{"start":{"line":328,"column":4},"end":{"line":328,"column":4}},{"start":{"line":328,"column":4},"end":{"line":328,"column":4}}]},"33":{"line":329,"type":"if","locations":[{"start":{"line":329,"column":4},"end":{"line":329,"column":4}},{"start":{"line":329,"column":4},"end":{"line":329,"column":4}}]},"34":{"line":349,"type":"if","locations":[{"start":{"line":349,"column":4},"end":{"line":349,"column":4}},{"start":{"line":349,"column":4},"end":{"line":349,"column":4}}]},"35":{"line":355,"type":"if","locations":[{"start":{"line":355,"column":4},"end":{"line":355,"column":4}},{"start":{"line":355,"column":4},"end":{"line":355,"column":4}}]},"36":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":4},"end":{"line":366,"column":4}},{"start":{"line":366,"column":4},"end":{"line":366,"column":4}}]},"37":{"line":373,"type":"if","locations":[{"start":{"line":373,"column":4},"end":{"line":373,"column":4}},{"start":{"line":373,"column":4},"end":{"line":373,"column":4}}]},"38":{"line":402,"type":"if","locations":[{"start":{"line":402,"column":4},"end":{"line":402,"column":4}},{"start":{"line":402,"column":4},"end":{"line":402,"column":4}}]},"39":{"line":408,"type":"if","locations":[{"start":{"line":408,"column":4},"end":{"line":408,"column":4}},{"start":{"line":408,"column":4},"end":{"line":408,"column":4}}]},"40":{"line":417,"type":"if","locations":[{"start":{"line":417,"column":4},"end":{"line":417,"column":4}},{"start":{"line":417,"column":4},"end":{"line":417,"column":4}}]},"41":{"line":422,"type":"if","locations":[{"start":{"line":422,"column":6},"end":{"line":422,"column":6}},{"start":{"line":422,"column":6},"end":{"line":422,"column":6}}]},"42":{"line":430,"type":"if","locations":[{"start":{"line":430,"column":4},"end":{"line":430,"column":4}},{"start":{"line":430,"column":4},"end":{"line":430,"column":4}}]},"43":{"line":453,"type":"if","locations":[{"start":{"line":453,"column":4},"end":{"line":453,"column":4}},{"start":{"line":453,"column":4},"end":{"line":453,"column":4}}]},"44":{"line":461,"type":"if","locations":[{"start":{"line":461,"column":4},"end":{"line":461,"column":4}},{"start":{"line":461,"column":4},"end":{"line":461,"column":4}}]},"45":{"line":464,"type":"if","locations":[{"start":{"line":464,"column":4},"end":{"line":464,"column":4}},{"start":{"line":464,"column":4},"end":{"line":464,"column":4}}]}}},"contracts/libraries/math/MathUtils.sol":{"l":{"26":347,"28":347,"30":347,"52":672,"54":672,"55":116,"58":556,"60":556,"62":556,"64":556,"65":556,"67":556,"68":556,"70":556},"path":"/src/contracts/libraries/math/MathUtils.sol","s":{"1":347,"2":347,"3":347,"4":672,"5":672,"6":116,"7":556,"8":556,"9":556,"10":556,"11":556,"12":556,"13":556,"14":556},"b":{"1":[116,556]},"f":{"1":347,"2":672},"fnMap":{"1":{"name":"calculateLinearInterest","line":20,"loc":{"start":{"line":20,"column":2},"end":{"line":31,"column":2}}},"2":{"name":"calculateCompoundedInterest","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":71,"column":2}}}},"statementMap":{"1":{"start":{"line":26,"column":4},"end":{"line":26,"column":78}},"2":{"start":{"line":28,"column":4},"end":{"line":28,"column":85}},"3":{"start":{"line":30,"column":4},"end":{"line":30,"column":55}},"4":{"start":{"line":52,"column":4},"end":{"line":52,"column":67}},"5":{"start":{"line":54,"column":4},"end":{"line":54,"column":1957}},"6":{"start":{"line":55,"column":6},"end":{"line":55,"column":29}},"7":{"start":{"line":58,"column":4},"end":{"line":58,"column":33}},"8":{"start":{"line":60,"column":4},"end":{"line":60,"column":47}},"9":{"start":{"line":62,"column":4},"end":{"line":62,"column":51}},"10":{"start":{"line":64,"column":4},"end":{"line":64,"column":62}},"11":{"start":{"line":65,"column":4},"end":{"line":65,"column":63}},"12":{"start":{"line":67,"column":4},"end":{"line":67,"column":67}},"13":{"start":{"line":68,"column":4},"end":{"line":68,"column":85}},"14":{"start":{"line":70,"column":4},"end":{"line":70,"column":86}}},"branchMap":{"1":{"line":54,"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":54,"column":4}},{"start":{"line":54,"column":4},"end":{"line":54,"column":4}}]}}},"contracts/libraries/math/PercentageMath.sol":{"l":{"25":343,"26":148,"29":195,"31":195,"33":195,"35":195,"37":195,"47":58,"48":58,"50":58,"52":58,"54":58,"56":58,"58":58},"path":"/src/contracts/libraries/math/PercentageMath.sol","s":{"1":343,"2":148,"3":195,"4":195,"5":195,"6":195,"7":195,"8":58,"9":58,"10":58,"11":58,"12":58,"13":58,"14":58},"b":{"1":[148,195],"2":[195,0],"3":[195,0],"4":[58,0],"5":[58,0],"6":[58,0]},"f":{"1":343,"2":58},"fnMap":{"1":{"name":"percentMul","line":24,"loc":{"start":{"line":24,"column":2},"end":{"line":38,"column":2}}},"2":{"name":"percentDiv","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":59,"column":2}}}},"statementMap":{"1":{"start":{"line":25,"column":4},"end":{"line":25,"column":891}},"2":{"start":{"line":26,"column":6},"end":{"line":26,"column":14}},"3":{"start":{"line":29,"column":4},"end":{"line":29,"column":39}},"4":{"start":{"line":31,"column":4},"end":{"line":31,"column":72}},"5":{"start":{"line":33,"column":4},"end":{"line":33,"column":25}},"6":{"start":{"line":35,"column":4},"end":{"line":35,"column":60}},"7":{"start":{"line":37,"column":4},"end":{"line":37,"column":37}},"8":{"start":{"line":47,"column":4},"end":{"line":47,"column":52}},"9":{"start":{"line":48,"column":4},"end":{"line":48,"column":43}},"10":{"start":{"line":50,"column":4},"end":{"line":50,"column":46}},"11":{"start":{"line":52,"column":4},"end":{"line":52,"column":79}},"12":{"start":{"line":54,"column":4},"end":{"line":54,"column":27}},"13":{"start":{"line":56,"column":4},"end":{"line":56,"column":62}},"14":{"start":{"line":58,"column":4},"end":{"line":58,"column":30}}},"branchMap":{"1":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":25,"column":4}},{"start":{"line":25,"column":4},"end":{"line":25,"column":4}}]},"2":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":4},"end":{"line":31,"column":4}},{"start":{"line":31,"column":4},"end":{"line":31,"column":4}}]},"3":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":4}},{"start":{"line":35,"column":4},"end":{"line":35,"column":4}}]},"4":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":47,"column":4}},{"start":{"line":47,"column":4},"end":{"line":47,"column":4}}]},"5":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},{"start":{"line":52,"column":4},"end":{"line":52,"column":4}}]},"6":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":4},"end":{"line":56,"column":4}},{"start":{"line":56,"column":4},"end":{"line":56,"column":4}}]}}},"contracts/libraries/math/SafeMath.sol":{"l":{"28":450,"29":450,"31":450,"44":124,"61":212,"62":211,"64":211,"80":0,"81":0,"84":0,"85":0,"87":0,"102":0,"122":0,"123":0,"126":0,"141":0,"160":0,"161":0},"path":"/src/contracts/libraries/math/SafeMath.sol","s":{"1":450,"2":450,"3":450,"4":124,"5":212,"6":211,"7":211,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"b":{"1":[450,0],"2":[211,1],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0]},"f":{"1":450,"2":124,"3":212,"4":0,"5":0,"6":0,"7":0,"8":0},"fnMap":{"1":{"name":"add","line":27,"loc":{"start":{"line":27,"column":2},"end":{"line":32,"column":2}}},"2":{"name":"sub","line":43,"loc":{"start":{"line":43,"column":2},"end":{"line":45,"column":2}}},"3":{"name":"sub","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":65,"column":2}}},"4":{"name":"mul","line":76,"loc":{"start":{"line":76,"column":2},"end":{"line":88,"column":2}}},"5":{"name":"div","line":101,"loc":{"start":{"line":101,"column":2},"end":{"line":103,"column":2}}},"6":{"name":"div","line":116,"loc":{"start":{"line":116,"column":2},"end":{"line":127,"column":2}}},"7":{"name":"mod","line":140,"loc":{"start":{"line":140,"column":2},"end":{"line":142,"column":2}}},"8":{"name":"mod","line":155,"loc":{"start":{"line":155,"column":2},"end":{"line":162,"column":2}}}},"statementMap":{"1":{"start":{"line":28,"column":4},"end":{"line":28,"column":21}},"2":{"start":{"line":29,"column":4},"end":{"line":29,"column":49}},"3":{"start":{"line":31,"column":4},"end":{"line":31,"column":12}},"4":{"start":{"line":44,"column":4},"end":{"line":44,"column":54}},"5":{"start":{"line":61,"column":4},"end":{"line":61,"column":32}},"6":{"start":{"line":62,"column":4},"end":{"line":62,"column":21}},"7":{"start":{"line":64,"column":4},"end":{"line":64,"column":12}},"8":{"start":{"line":80,"column":4},"end":{"line":80,"column":2341}},"9":{"start":{"line":81,"column":6},"end":{"line":81,"column":14}},"10":{"start":{"line":84,"column":4},"end":{"line":84,"column":21}},"11":{"start":{"line":85,"column":4},"end":{"line":85,"column":59}},"12":{"start":{"line":87,"column":4},"end":{"line":87,"column":12}},"13":{"start":{"line":102,"column":4},"end":{"line":102,"column":50}},"14":{"start":{"line":122,"column":4},"end":{"line":122,"column":31}},"15":{"start":{"line":123,"column":4},"end":{"line":123,"column":21}},"16":{"start":{"line":126,"column":4},"end":{"line":126,"column":12}},"17":{"start":{"line":141,"column":4},"end":{"line":141,"column":48}},"18":{"start":{"line":160,"column":4},"end":{"line":160,"column":32}},"19":{"start":{"line":161,"column":4},"end":{"line":161,"column":16}}},"branchMap":{"1":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":4}},{"start":{"line":29,"column":4},"end":{"line":29,"column":4}}]},"2":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":61,"column":4}},{"start":{"line":61,"column":4},"end":{"line":61,"column":4}}]},"3":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":4},"end":{"line":80,"column":4}},{"start":{"line":80,"column":4},"end":{"line":80,"column":4}}]},"4":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":85,"column":4}},{"start":{"line":85,"column":4},"end":{"line":85,"column":4}}]},"5":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":4},"end":{"line":122,"column":4}},{"start":{"line":122,"column":4},"end":{"line":122,"column":4}}]},"6":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":4},"end":{"line":160,"column":4}},{"start":{"line":160,"column":4},"end":{"line":160,"column":4}}]}}},"contracts/libraries/math/WadRayMath.sol":{"l":{"25":1056,"33":0,"40":0,"47":0,"57":0,"58":0,"61":0,"63":0,"65":0,"67":0,"69":0,"79":64,"81":64,"83":64,"85":64,"87":64,"89":64,"91":64,"101":4935,"102":1581,"105":3354,"107":3354,"109":3354,"111":3354,"113":3354,"123":1257,"125":1257,"127":1257,"129":1257,"131":1257,"133":1257,"135":1257,"144":0,"145":0,"146":0,"148":0,"157":1134,"158":1134,"159":1134},"path":"/src/contracts/libraries/math/WadRayMath.sol","s":{"1":1056,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":64,"13":64,"14":64,"15":64,"16":64,"17":64,"18":64,"19":4935,"20":1581,"21":3354,"22":3354,"23":3354,"24":3354,"25":3354,"26":1257,"27":1257,"28":1257,"29":1257,"30":1257,"31":1257,"32":1257,"33":0,"34":0,"35":0,"36":0,"37":1134,"38":1134,"39":1134},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[64,0],"5":[64,0],"6":[64,0],"7":[1581,3354],"8":[3354,0],"9":[3354,0],"10":[1257,0],"11":[1257,0],"12":[1257,0],"13":[0,0],"14":[1134,0]},"f":{"1":1056,"2":0,"3":0,"4":0,"5":0,"6":64,"7":4935,"8":1257,"9":0,"10":1134},"fnMap":{"1":{"name":"ray","line":24,"loc":{"start":{"line":24,"column":2},"end":{"line":26,"column":2}}},"2":{"name":"wad","line":32,"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":2}}},"3":{"name":"halfRay","line":39,"loc":{"start":{"line":39,"column":2},"end":{"line":41,"column":2}}},"4":{"name":"halfWad","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":48,"column":2}}},"5":{"name":"wadMul","line":56,"loc":{"start":{"line":56,"column":2},"end":{"line":70,"column":2}}},"6":{"name":"wadDiv","line":78,"loc":{"start":{"line":78,"column":2},"end":{"line":92,"column":2}}},"7":{"name":"rayMul","line":100,"loc":{"start":{"line":100,"column":2},"end":{"line":114,"column":2}}},"8":{"name":"rayDiv","line":122,"loc":{"start":{"line":122,"column":2},"end":{"line":136,"column":2}}},"9":{"name":"rayToWad","line":143,"loc":{"start":{"line":143,"column":2},"end":{"line":149,"column":2}}},"10":{"name":"wadToRay","line":156,"loc":{"start":{"line":156,"column":2},"end":{"line":160,"column":2}}}},"statementMap":{"1":{"start":{"line":25,"column":4},"end":{"line":25,"column":14}},"2":{"start":{"line":33,"column":4},"end":{"line":33,"column":14}},"3":{"start":{"line":40,"column":4},"end":{"line":40,"column":18}},"4":{"start":{"line":47,"column":4},"end":{"line":47,"column":18}},"5":{"start":{"line":57,"column":4},"end":{"line":57,"column":1244}},"6":{"start":{"line":58,"column":6},"end":{"line":58,"column":14}},"7":{"start":{"line":61,"column":4},"end":{"line":61,"column":26}},"8":{"start":{"line":63,"column":4},"end":{"line":63,"column":59}},"9":{"start":{"line":65,"column":4},"end":{"line":65,"column":20}},"10":{"start":{"line":67,"column":4},"end":{"line":67,"column":55}},"11":{"start":{"line":69,"column":4},"end":{"line":69,"column":23}},"12":{"start":{"line":79,"column":4},"end":{"line":79,"column":43}},"13":{"start":{"line":81,"column":4},"end":{"line":81,"column":25}},"14":{"start":{"line":83,"column":4},"end":{"line":83,"column":28}},"15":{"start":{"line":85,"column":4},"end":{"line":85,"column":61}},"16":{"start":{"line":87,"column":4},"end":{"line":87,"column":18}},"17":{"start":{"line":89,"column":4},"end":{"line":89,"column":53}},"18":{"start":{"line":91,"column":4},"end":{"line":91,"column":21}},"19":{"start":{"line":101,"column":4},"end":{"line":101,"column":2221}},"20":{"start":{"line":102,"column":6},"end":{"line":102,"column":14}},"21":{"start":{"line":105,"column":4},"end":{"line":105,"column":26}},"22":{"start":{"line":107,"column":4},"end":{"line":107,"column":59}},"23":{"start":{"line":109,"column":4},"end":{"line":109,"column":20}},"24":{"start":{"line":111,"column":4},"end":{"line":111,"column":55}},"25":{"start":{"line":113,"column":4},"end":{"line":113,"column":23}},"26":{"start":{"line":123,"column":4},"end":{"line":123,"column":43}},"27":{"start":{"line":125,"column":4},"end":{"line":125,"column":25}},"28":{"start":{"line":127,"column":4},"end":{"line":127,"column":28}},"29":{"start":{"line":129,"column":4},"end":{"line":129,"column":61}},"30":{"start":{"line":131,"column":4},"end":{"line":131,"column":18}},"31":{"start":{"line":133,"column":4},"end":{"line":133,"column":53}},"32":{"start":{"line":135,"column":4},"end":{"line":135,"column":21}},"33":{"start":{"line":144,"column":4},"end":{"line":144,"column":41}},"34":{"start":{"line":145,"column":4},"end":{"line":145,"column":34}},"35":{"start":{"line":146,"column":4},"end":{"line":146,"column":57}},"36":{"start":{"line":148,"column":4},"end":{"line":148,"column":33}},"37":{"start":{"line":157,"column":4},"end":{"line":157,"column":38}},"38":{"start":{"line":158,"column":4},"end":{"line":158,"column":71}},"39":{"start":{"line":159,"column":4},"end":{"line":159,"column":17}}},"branchMap":{"1":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":4},"end":{"line":57,"column":4}},{"start":{"line":57,"column":4},"end":{"line":57,"column":4}}]},"2":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":4},"end":{"line":63,"column":4}},{"start":{"line":63,"column":4},"end":{"line":63,"column":4}}]},"3":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":4},"end":{"line":67,"column":4}},{"start":{"line":67,"column":4},"end":{"line":67,"column":4}}]},"4":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":4},"end":{"line":79,"column":4}},{"start":{"line":79,"column":4},"end":{"line":79,"column":4}}]},"5":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":85,"column":4}},{"start":{"line":85,"column":4},"end":{"line":85,"column":4}}]},"6":{"line":89,"type":"if","locations":[{"start":{"line":89,"column":4},"end":{"line":89,"column":4}},{"start":{"line":89,"column":4},"end":{"line":89,"column":4}}]},"7":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":101,"column":4}},{"start":{"line":101,"column":4},"end":{"line":101,"column":4}}]},"8":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":4},"end":{"line":107,"column":4}},{"start":{"line":107,"column":4},"end":{"line":107,"column":4}}]},"9":{"line":111,"type":"if","locations":[{"start":{"line":111,"column":4},"end":{"line":111,"column":4}},{"start":{"line":111,"column":4},"end":{"line":111,"column":4}}]},"10":{"line":123,"type":"if","locations":[{"start":{"line":123,"column":4},"end":{"line":123,"column":4}},{"start":{"line":123,"column":4},"end":{"line":123,"column":4}}]},"11":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":4},"end":{"line":129,"column":4}},{"start":{"line":129,"column":4},"end":{"line":129,"column":4}}]},"12":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":133,"column":4}},{"start":{"line":133,"column":4},"end":{"line":133,"column":4}}]},"13":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":4},"end":{"line":146,"column":4}},{"start":{"line":146,"column":4},"end":{"line":146,"column":4}}]},"14":{"line":158,"type":"if","locations":[{"start":{"line":158,"column":4},"end":{"line":158,"column":4}},{"start":{"line":158,"column":4},"end":{"line":158,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/AdminUpgradeabilityProxy.sol":{"l":{"26":0,"27":0,"34":0},"path":"/src/contracts/libraries/openzeppelin-upgradeability/AdminUpgradeabilityProxy.sol","s":{"1":0,"2":0,"3":0},"b":{"1":[0,0]},"f":{"1":0,"2":0},"fnMap":{"1":{"name":"constructor","line":25,"loc":{"start":{"line":21,"column":2},"end":{"line":28,"column":2}}},"2":{"name":"_willFallback","line":33,"loc":{"start":{"line":33,"column":2},"end":{"line":35,"column":2}}}},"statementMap":{"1":{"start":{"line":26,"column":4},"end":{"line":26,"column":79}},"2":{"start":{"line":27,"column":4},"end":{"line":27,"column":20}},"3":{"start":{"line":34,"column":4},"end":{"line":34,"column":47}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":26,"column":4}},{"start":{"line":26,"column":4},"end":{"line":26,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/BaseAdminUpgradeabilityProxy.sol":{"l":{"35":3,"36":3,"38":0,"46":0,"53":0,"62":0,"63":0,"64":0,"73":0,"90":3,"91":3,"92":3,"99":9902,"101":9902,"111":53,"113":53,"122":9899,"123":9899},"path":"/src/contracts/libraries/openzeppelin-upgradeability/BaseAdminUpgradeabilityProxy.sol","s":{"1":3,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":3,"10":3,"11":3,"12":9902,"13":53,"14":9899,"15":9899},"b":{"1":[3,0],"2":[0,0],"3":[3,0],"4":[9899,0]},"f":{"1":3,"2":0,"3":0,"4":0,"5":0,"6":3,"7":9902,"8":53,"9":9899},"fnMap":{"1":{"name":"ifAdmin","line":34,"loc":{"start":{"line":34,"column":2},"end":{"line":40,"column":2}}},"2":{"name":"admin","line":45,"loc":{"start":{"line":45,"column":2},"end":{"line":47,"column":2}}},"3":{"name":"implementation","line":52,"loc":{"start":{"line":52,"column":2},"end":{"line":54,"column":2}}},"4":{"name":"changeAdmin","line":61,"loc":{"start":{"line":61,"column":2},"end":{"line":65,"column":2}}},"5":{"name":"upgradeTo","line":72,"loc":{"start":{"line":72,"column":2},"end":{"line":74,"column":2}}},"6":{"name":"upgradeToAndCall","line":88,"loc":{"start":{"line":85,"column":2},"end":{"line":93,"column":2}}},"7":{"name":"_admin","line":98,"loc":{"start":{"line":98,"column":2},"end":{"line":104,"column":2}}},"8":{"name":"_setAdmin","line":110,"loc":{"start":{"line":110,"column":2},"end":{"line":116,"column":2}}},"9":{"name":"_willFallback","line":121,"loc":{"start":{"line":121,"column":2},"end":{"line":124,"column":2}}}},"statementMap":{"1":{"start":{"line":35,"column":4},"end":{"line":35,"column":1284}},"2":{"start":{"line":38,"column":6},"end":{"line":38,"column":16}},"3":{"start":{"line":46,"column":4},"end":{"line":46,"column":19}},"4":{"start":{"line":53,"column":4},"end":{"line":53,"column":28}},"5":{"start":{"line":62,"column":4},"end":{"line":62,"column":92}},"6":{"start":{"line":63,"column":4},"end":{"line":63,"column":41}},"7":{"start":{"line":64,"column":4},"end":{"line":64,"column":22}},"8":{"start":{"line":73,"column":4},"end":{"line":73,"column":32}},"9":{"start":{"line":90,"column":4},"end":{"line":90,"column":32}},"10":{"start":{"line":91,"column":4},"end":{"line":91,"column":59}},"11":{"start":{"line":92,"column":4},"end":{"line":92,"column":19}},"12":{"start":{"line":99,"column":4},"end":{"line":99,"column":29}},"13":{"start":{"line":111,"column":4},"end":{"line":111,"column":29}},"14":{"start":{"line":122,"column":4},"end":{"line":122,"column":88}},"15":{"start":{"line":123,"column":4},"end":{"line":123,"column":24}}},"branchMap":{"1":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":4}},{"start":{"line":35,"column":4},"end":{"line":35,"column":4}}]},"2":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":62,"column":4}},{"start":{"line":62,"column":4},"end":{"line":62,"column":4}}]},"3":{"line":92,"type":"if","locations":[{"start":{"line":92,"column":4},"end":{"line":92,"column":4}},{"start":{"line":92,"column":4},"end":{"line":92,"column":4}}]},"4":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":4},"end":{"line":122,"column":4}},{"start":{"line":122,"column":4},"end":{"line":122,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/BaseUpgradeabilityProxy.sol":{"l":{"32":10005,"34":10005,"44":3,"45":3,"53":56,"58":56,"61":56},"path":"/src/contracts/libraries/openzeppelin-upgradeability/BaseUpgradeabilityProxy.sol","s":{"1":10005,"2":3,"3":3,"4":56,"5":56},"b":{"1":[56,0]},"f":{"1":10005,"2":3,"3":56},"fnMap":{"1":{"name":"_implementation","line":31,"loc":{"start":{"line":31,"column":2},"end":{"line":37,"column":2}}},"2":{"name":"_upgradeTo","line":43,"loc":{"start":{"line":43,"column":2},"end":{"line":46,"column":2}}},"3":{"name":"_setImplementation","line":52,"loc":{"start":{"line":52,"column":2},"end":{"line":64,"column":2}}}},"statementMap":{"1":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"2":{"start":{"line":44,"column":4},"end":{"line":44,"column":40}},"3":{"start":{"line":45,"column":4},"end":{"line":45,"column":36}},"4":{"start":{"line":53,"column":4},"end":{"line":53,"column":1706}},"5":{"start":{"line":58,"column":4},"end":{"line":58,"column":38}}},"branchMap":{"1":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":4},"end":{"line":53,"column":4}},{"start":{"line":53,"column":4},"end":{"line":53,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/Initializable.sol":{"l":{"31":0,"36":0,"37":0,"38":0,"39":0,"42":0,"44":0,"45":0,"56":0,"58":0,"61":0},"path":"/src/contracts/libraries/openzeppelin-upgradeability/Initializable.sol","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0]},"f":{"1":0,"2":0},"fnMap":{"1":{"name":"initializer","line":30,"loc":{"start":{"line":30,"column":2},"end":{"line":47,"column":2}}},"2":{"name":"isConstructor","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":62,"column":2}}}},"statementMap":{"1":{"start":{"line":31,"column":4},"end":{"line":31,"column":1056}},"2":{"start":{"line":36,"column":4},"end":{"line":36,"column":39}},"3":{"start":{"line":37,"column":4},"end":{"line":37,"column":1228}},"4":{"start":{"line":38,"column":6},"end":{"line":38,"column":24}},"5":{"start":{"line":39,"column":6},"end":{"line":39,"column":23}},"6":{"start":{"line":44,"column":4},"end":{"line":44,"column":1322}},"7":{"start":{"line":45,"column":6},"end":{"line":45,"column":25}},"8":{"start":{"line":56,"column":4},"end":{"line":56,"column":14}},"9":{"start":{"line":61,"column":4},"end":{"line":61,"column":18}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":4},"end":{"line":31,"column":4}},{"start":{"line":31,"column":4},"end":{"line":31,"column":4}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":37,"column":4}},{"start":{"line":37,"column":4},"end":{"line":37,"column":4}}]},"3":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":44,"column":4}},{"start":{"line":44,"column":4},"end":{"line":44,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/InitializableAdminUpgradeabilityProxy.sol":{"l":{"30":53,"31":53,"32":53,"33":53,"40":9899},"path":"/src/contracts/libraries/openzeppelin-upgradeability/InitializableAdminUpgradeabilityProxy.sol","s":{"1":53,"2":53,"3":53,"4":53,"5":9899},"b":{"1":[53,0],"2":[53,0]},"f":{"1":53,"2":9899},"fnMap":{"1":{"name":"initialize","line":25,"loc":{"start":{"line":25,"column":2},"end":{"line":34,"column":2}}},"2":{"name":"_willFallback","line":39,"loc":{"start":{"line":39,"column":2},"end":{"line":41,"column":2}}}},"statementMap":{"1":{"start":{"line":30,"column":4},"end":{"line":30,"column":43}},"2":{"start":{"line":31,"column":4},"end":{"line":31,"column":59}},"3":{"start":{"line":32,"column":4},"end":{"line":32,"column":79}},"4":{"start":{"line":33,"column":4},"end":{"line":33,"column":19}},"5":{"start":{"line":40,"column":4},"end":{"line":40,"column":47}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":4}},{"start":{"line":30,"column":4},"end":{"line":30,"column":4}}]},"2":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":32,"column":4}},{"start":{"line":32,"column":4},"end":{"line":32,"column":4}}]}}},"contracts/libraries/openzeppelin-upgradeability/InitializableUpgradeabilityProxy.sol":{"l":{"21":53,"22":53,"23":53,"24":53,"25":53,"26":53},"path":"/src/contracts/libraries/openzeppelin-upgradeability/InitializableUpgradeabilityProxy.sol","s":{"1":53,"2":53,"3":53,"4":53,"5":53,"6":53},"b":{"1":[53,0],"2":[53,0],"3":[53,0],"4":[53,0]},"f":{"1":53},"fnMap":{"1":{"name":"initialize","line":20,"loc":{"start":{"line":20,"column":2},"end":{"line":28,"column":2}}}},"statementMap":{"1":{"start":{"line":21,"column":4},"end":{"line":21,"column":43}},"2":{"start":{"line":22,"column":4},"end":{"line":22,"column":97}},"3":{"start":{"line":23,"column":4},"end":{"line":23,"column":29}},"4":{"start":{"line":24,"column":4},"end":{"line":24,"column":1119}},"5":{"start":{"line":25,"column":6},"end":{"line":25,"column":51}},"6":{"start":{"line":26,"column":6},"end":{"line":26,"column":21}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":21,"column":4}},{"start":{"line":21,"column":4},"end":{"line":21,"column":4}}]},"2":{"line":22,"type":"if","locations":[{"start":{"line":22,"column":4},"end":{"line":22,"column":4}},{"start":{"line":22,"column":4},"end":{"line":22,"column":4}}]},"3":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":24,"column":4}},{"start":{"line":24,"column":4},"end":{"line":24,"column":4}}]},"4":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":6}},{"start":{"line":26,"column":6},"end":{"line":26,"column":6}}]}}},"contracts/libraries/openzeppelin-upgradeability/Proxy.sol":{"l":{"17":9899,"33":9899,"69":9899,"70":9899},"path":"/src/contracts/libraries/openzeppelin-upgradeability/Proxy.sol","s":{"1":9899,"2":9899,"3":9899},"b":{},"f":{"1":9899,"2":9899,"3":9899,"4":9899},"fnMap":{"1":{"name":null,"line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":18,"column":2}}},"2":{"name":"_delegate","line":31,"loc":{"start":{"line":31,"column":2},"end":{"line":55,"column":2}}},"3":{"name":"_willFallback","line":62,"loc":{"start":{"line":62,"column":2},"end":{"line":62,"column":45}}},"4":{"name":"_fallback","line":68,"loc":{"start":{"line":68,"column":2},"end":{"line":71,"column":2}}}},"statementMap":{"1":{"start":{"line":17,"column":4},"end":{"line":17,"column":14}},"2":{"start":{"line":69,"column":4},"end":{"line":69,"column":18}},"3":{"start":{"line":70,"column":4},"end":{"line":70,"column":31}}},"branchMap":{}},"contracts/libraries/openzeppelin-upgradeability/UpgradeabilityProxy.sol":{"l":{"21":0,"22":0,"23":0,"24":0,"25":0},"path":"/src/contracts/libraries/openzeppelin-upgradeability/UpgradeabilityProxy.sol","s":{"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0]},"f":{"1":0},"fnMap":{"1":{"name":"constructor","line":20,"loc":{"start":{"line":20,"column":2},"end":{"line":27,"column":2}}}},"statementMap":{"1":{"start":{"line":21,"column":4},"end":{"line":21,"column":97}},"2":{"start":{"line":22,"column":4},"end":{"line":22,"column":29}},"3":{"start":{"line":23,"column":4},"end":{"line":23,"column":1038}},"4":{"start":{"line":24,"column":6},"end":{"line":24,"column":51}},"5":{"start":{"line":25,"column":6},"end":{"line":25,"column":21}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":21,"column":4}},{"start":{"line":21,"column":4},"end":{"line":21,"column":4}}]},"2":{"line":23,"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":23,"column":4}},{"start":{"line":23,"column":4},"end":{"line":23,"column":4}}]},"3":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":6},"end":{"line":25,"column":6}},{"start":{"line":25,"column":6},"end":{"line":25,"column":6}}]}}},"contracts/libraries/openzeppelin-upgradeability/VersionedInitializable.sol":{"l":{"33":56,"34":56,"39":56,"40":56,"41":56,"42":56,"45":56,"47":56,"48":56,"63":56,"65":56,"68":56},"path":"/src/contracts/libraries/openzeppelin-upgradeability/VersionedInitializable.sol","s":{"1":56,"2":56,"3":56,"4":56,"5":56,"6":56,"7":56,"8":56,"9":56,"10":56},"b":{"1":[56,0],"2":[56,0],"3":[56,0]},"f":{"1":56,"2":56},"fnMap":{"1":{"name":"initializer","line":32,"loc":{"start":{"line":32,"column":2},"end":{"line":50,"column":2}}},"2":{"name":"isConstructor","line":57,"loc":{"start":{"line":57,"column":2},"end":{"line":69,"column":2}}}},"statementMap":{"1":{"start":{"line":33,"column":4},"end":{"line":33,"column":36}},"2":{"start":{"line":34,"column":4},"end":{"line":34,"column":1202}},"3":{"start":{"line":39,"column":4},"end":{"line":39,"column":39}},"4":{"start":{"line":40,"column":4},"end":{"line":40,"column":1396}},"5":{"start":{"line":41,"column":6},"end":{"line":41,"column":24}},"6":{"start":{"line":42,"column":6},"end":{"line":42,"column":39}},"7":{"start":{"line":47,"column":4},"end":{"line":47,"column":1506}},"8":{"start":{"line":48,"column":6},"end":{"line":48,"column":25}},"9":{"start":{"line":63,"column":4},"end":{"line":63,"column":14}},"10":{"start":{"line":68,"column":4},"end":{"line":68,"column":18}}},"branchMap":{"1":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":34,"column":4}},{"start":{"line":34,"column":4},"end":{"line":34,"column":4}}]},"2":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":40,"column":4}},{"start":{"line":40,"column":4},"end":{"line":40,"column":4}}]},"3":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":47,"column":4}},{"start":{"line":47,"column":4},"end":{"line":47,"column":4}}]}}},"contracts/misc/AaveProtocolTestHelpers.sol":{"l":{"18":3,"22":1,"23":1,"24":1,"25":1,"26":17,"33":1,"37":2,"38":2,"39":2,"40":2,"41":34,"42":34,"47":2},"path":"/src/contracts/misc/AaveProtocolTestHelpers.sol","s":{"1":3,"2":1,"3":1,"4":1,"5":1,"6":17,"7":1,"8":2,"9":2,"10":2,"11":2,"12":34,"13":34,"14":2},"b":{},"f":{"1":3,"2":1,"3":2},"fnMap":{"1":{"name":"constructor","line":17,"loc":{"start":{"line":17,"column":2},"end":{"line":19,"column":2}}},"2":{"name":"getAllReservesTokens","line":21,"loc":{"start":{"line":21,"column":2},"end":{"line":34,"column":2}}},"3":{"name":"getAllATokens","line":36,"loc":{"start":{"line":36,"column":2},"end":{"line":48,"column":2}}}},"statementMap":{"1":{"start":{"line":18,"column":4},"end":{"line":18,"column":41}},"2":{"start":{"line":22,"column":4},"end":{"line":22,"column":73}},"3":{"start":{"line":23,"column":4},"end":{"line":23,"column":50}},"4":{"start":{"line":24,"column":4},"end":{"line":24,"column":72}},"5":{"start":{"line":25,"column":4},"end":{"line":25,"column":904}},"6":{"start":{"line":26,"column":6},"end":{"line":26,"column":961}},"7":{"start":{"line":33,"column":4},"end":{"line":33,"column":25}},"8":{"start":{"line":37,"column":4},"end":{"line":37,"column":73}},"9":{"start":{"line":38,"column":4},"end":{"line":38,"column":50}},"10":{"start":{"line":39,"column":4},"end":{"line":39,"column":65}},"11":{"start":{"line":40,"column":4},"end":{"line":40,"column":1486}},"12":{"start":{"line":41,"column":6},"end":{"line":41,"column":79}},"13":{"start":{"line":42,"column":6},"end":{"line":42,"column":1624}},"14":{"start":{"line":47,"column":4},"end":{"line":47,"column":18}}},"branchMap":{}},"contracts/misc/Address.sol":{"l":{"29":99,"30":99,"32":99,"35":99,"55":0,"58":0,"59":0},"path":"/src/contracts/misc/Address.sol","s":{"1":99,"2":99,"3":99,"4":0,"5":0,"6":0},"b":{"1":[0,0],"2":[0,0]},"f":{"1":99,"2":0},"fnMap":{"1":{"name":"isContract","line":25,"loc":{"start":{"line":25,"column":2},"end":{"line":36,"column":2}}},"2":{"name":"sendValue","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":60,"column":2}}}},"statementMap":{"1":{"start":{"line":29,"column":4},"end":{"line":29,"column":20}},"2":{"start":{"line":30,"column":4},"end":{"line":30,"column":92}},"3":{"start":{"line":35,"column":4},"end":{"line":35,"column":55}},"4":{"start":{"line":55,"column":4},"end":{"line":55,"column":76}},"5":{"start":{"line":58,"column":4},"end":{"line":58,"column":56}},"6":{"start":{"line":59,"column":4},"end":{"line":59,"column":81}}},"branchMap":{"1":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":4},"end":{"line":55,"column":4}},{"start":{"line":55,"column":4},"end":{"line":55,"column":4}}]},"2":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":4},"end":{"line":59,"column":4}},{"start":{"line":59,"column":4},"end":{"line":59,"column":4}}]}}},"contracts/misc/ChainlinkProxyPriceProvider.sol":{"l":{"37":3,"38":3,"48":0,"55":0,"62":3,"63":3,"64":72,"65":72,"72":3,"73":3,"79":0,"81":0,"82":0,"84":0,"85":0,"86":0,"88":0,"96":0,"97":0,"98":0,"100":0,"107":0,"113":0},"path":"/src/contracts/misc/ChainlinkProxyPriceProvider.sol","s":{"1":3,"2":3,"3":0,"4":0,"5":3,"6":3,"7":72,"8":72,"9":3,"10":3,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0},"b":{"1":[3,0],"2":[0,0],"3":[0,0]},"f":{"1":3,"2":0,"3":0,"4":3,"5":3,"6":0,"7":0,"8":0,"9":0},"fnMap":{"1":{"name":"constructor","line":32,"loc":{"start":{"line":32,"column":2},"end":{"line":39,"column":2}}},"2":{"name":"setAssetSources","line":46,"loc":{"start":{"line":44,"column":2},"end":{"line":49,"column":2}}},"3":{"name":"setFallbackOracle","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":56,"column":2}}},"4":{"name":"_setAssetsSources","line":61,"loc":{"start":{"line":61,"column":2},"end":{"line":67,"column":2}}},"5":{"name":"_setFallbackOracle","line":71,"loc":{"start":{"line":71,"column":2},"end":{"line":74,"column":2}}},"6":{"name":"getAssetPrice","line":78,"loc":{"start":{"line":78,"column":2},"end":{"line":91,"column":2}}},"7":{"name":"getAssetsPrices","line":95,"loc":{"start":{"line":95,"column":2},"end":{"line":101,"column":2}}},"8":{"name":"getSourceOfAsset","line":106,"loc":{"start":{"line":106,"column":2},"end":{"line":108,"column":2}}},"9":{"name":"getFallbackOracle","line":112,"loc":{"start":{"line":112,"column":2},"end":{"line":114,"column":2}}}},"statementMap":{"1":{"start":{"line":37,"column":4},"end":{"line":37,"column":37}},"2":{"start":{"line":38,"column":4},"end":{"line":38,"column":37}},"3":{"start":{"line":48,"column":4},"end":{"line":48,"column":37}},"4":{"start":{"line":55,"column":4},"end":{"line":55,"column":37}},"5":{"start":{"line":62,"column":4},"end":{"line":62,"column":73}},"6":{"start":{"line":63,"column":4},"end":{"line":63,"column":2670}},"7":{"start":{"line":64,"column":6},"end":{"line":64,"column":64}},"8":{"start":{"line":65,"column":6},"end":{"line":65,"column":52}},"9":{"start":{"line":72,"column":4},"end":{"line":72,"column":55}},"10":{"start":{"line":73,"column":4},"end":{"line":73,"column":46}},"11":{"start":{"line":79,"column":4},"end":{"line":79,"column":54}},"12":{"start":{"line":81,"column":4},"end":{"line":81,"column":3446}},"13":{"start":{"line":82,"column":6},"end":{"line":82,"column":49}},"14":{"start":{"line":84,"column":6},"end":{"line":84,"column":64}},"15":{"start":{"line":85,"column":6},"end":{"line":85,"column":3621}},"16":{"start":{"line":86,"column":8},"end":{"line":86,"column":29}},"17":{"start":{"line":88,"column":8},"end":{"line":88,"column":51}},"18":{"start":{"line":96,"column":4},"end":{"line":96,"column":58}},"19":{"start":{"line":97,"column":4},"end":{"line":97,"column":4032}},"20":{"start":{"line":98,"column":6},"end":{"line":98,"column":41}},"21":{"start":{"line":100,"column":4},"end":{"line":100,"column":17}},"22":{"start":{"line":107,"column":4},"end":{"line":107,"column":40}},"23":{"start":{"line":113,"column":4},"end":{"line":113,"column":35}}},"branchMap":{"1":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":62,"column":4}},{"start":{"line":62,"column":4},"end":{"line":62,"column":4}}]},"2":{"line":81,"type":"if","locations":[{"start":{"line":81,"column":4},"end":{"line":81,"column":4}},{"start":{"line":81,"column":4},"end":{"line":81,"column":4}}]},"3":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":6},"end":{"line":85,"column":6}},{"start":{"line":85,"column":6},"end":{"line":85,"column":6}}]}}},"contracts/misc/Context.sol":{"l":{"16":4,"20":0,"21":0},"path":"/src/contracts/misc/Context.sol","s":{"1":4,"2":0},"b":{},"f":{"1":4,"2":0},"fnMap":{"1":{"name":"_msgSender","line":15,"loc":{"start":{"line":15,"column":2},"end":{"line":17,"column":2}}},"2":{"name":"_msgData","line":19,"loc":{"start":{"line":19,"column":2},"end":{"line":22,"column":2}}}},"statementMap":{"1":{"start":{"line":16,"column":4},"end":{"line":16,"column":21}},"2":{"start":{"line":21,"column":4},"end":{"line":21,"column":19}}},"branchMap":{}},"contracts/misc/IERC20DetailedBytes.sol":{"l":{},"path":"/src/contracts/misc/IERC20DetailedBytes.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/misc/SafeERC20.sol":{"l":{"27":99,"36":0,"44":0,"48":0,"52":99,"55":99,"56":99,"58":97,"61":97},"path":"/src/contracts/misc/SafeERC20.sol","s":{"1":99,"2":0,"3":0,"4":0,"5":99,"6":99,"7":99,"8":97,"9":97},"b":{"1":[0,0],"2":[99,0],"3":[97,2],"4":[97,0],"5":[97,0]},"f":{"1":99,"2":0,"3":0,"4":99},"fnMap":{"1":{"name":"safeTransfer","line":22,"loc":{"start":{"line":22,"column":2},"end":{"line":28,"column":2}}},"2":{"name":"safeTransferFrom","line":30,"loc":{"start":{"line":30,"column":2},"end":{"line":37,"column":2}}},"3":{"name":"safeApprove","line":39,"loc":{"start":{"line":39,"column":2},"end":{"line":49,"column":2}}},"4":{"name":"callOptionalReturn","line":51,"loc":{"start":{"line":51,"column":2},"end":{"line":63,"column":2}}}},"statementMap":{"1":{"start":{"line":27,"column":4},"end":{"line":27,"column":88}},"2":{"start":{"line":36,"column":4},"end":{"line":36,"column":98}},"3":{"start":{"line":44,"column":4},"end":{"line":44,"column":1254}},"4":{"start":{"line":48,"column":4},"end":{"line":48,"column":92}},"5":{"start":{"line":52,"column":4},"end":{"line":52,"column":74}},"6":{"start":{"line":55,"column":4},"end":{"line":55,"column":71}},"7":{"start":{"line":56,"column":4},"end":{"line":56,"column":55}},"8":{"start":{"line":58,"column":4},"end":{"line":58,"column":1845}},"9":{"start":{"line":61,"column":6},"end":{"line":61,"column":90}}},"branchMap":{"1":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":44,"column":4}},{"start":{"line":44,"column":4},"end":{"line":44,"column":4}}]},"2":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},{"start":{"line":52,"column":4},"end":{"line":52,"column":4}}]},"3":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":4},"end":{"line":56,"column":4}},{"start":{"line":56,"column":4},"end":{"line":56,"column":4}}]},"4":{"line":58,"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":58,"column":4}},{"start":{"line":58,"column":4},"end":{"line":58,"column":4}}]},"5":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":6},"end":{"line":61,"column":6}},{"start":{"line":61,"column":6},"end":{"line":61,"column":6}}]}}},"contracts/misc/WalletBalanceProvider.sol":{"l":{"26":3,"34":0,"45":0,"46":0,"48":0,"63":0,"65":0,"66":0,"67":0,"68":0,"69":0,"71":0,"76":0,"87":0,"89":0,"91":0,"93":0,"94":0,"96":0,"97":0,"98":0,"100":0,"103":0},"path":"/src/contracts/misc/WalletBalanceProvider.sol","s":{"1":3,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0]},"f":{"1":3,"2":0,"3":0,"4":0},"fnMap":{"1":{"name":"constructor","line":25,"loc":{"start":{"line":25,"column":2},"end":{"line":27,"column":2}}},"2":{"name":"balanceOf","line":43,"loc":{"start":{"line":43,"column":2},"end":{"line":50,"column":2}}},"3":{"name":"batchBalanceOf","line":58,"loc":{"start":{"line":58,"column":2},"end":{"line":77,"column":2}}},"4":{"name":"getUserWalletBalances","line":82,"loc":{"start":{"line":82,"column":2},"end":{"line":104,"column":2}}}},"statementMap":{"1":{"start":{"line":26,"column":4},"end":{"line":26,"column":23}},"2":{"start":{"line":45,"column":4},"end":{"line":45,"column":1672}},"3":{"start":{"line":46,"column":6},"end":{"line":46,"column":42}},"4":{"start":{"line":48,"column":6},"end":{"line":48,"column":14}},"5":{"start":{"line":63,"column":4},"end":{"line":63,"column":75}},"6":{"start":{"line":65,"column":4},"end":{"line":65,"column":2271}},"7":{"start":{"line":66,"column":6},"end":{"line":66,"column":2324}},"8":{"start":{"line":67,"column":8},"end":{"line":67,"column":43}},"9":{"start":{"line":68,"column":8},"end":{"line":68,"column":2425}},"10":{"start":{"line":69,"column":10},"end":{"line":69,"column":32}},"11":{"start":{"line":71,"column":10},"end":{"line":71,"column":63}},"12":{"start":{"line":76,"column":4},"end":{"line":76,"column":19}},"13":{"start":{"line":87,"column":4},"end":{"line":87,"column":64}},"14":{"start":{"line":89,"column":4},"end":{"line":89,"column":50}},"15":{"start":{"line":91,"column":4},"end":{"line":91,"column":62}},"16":{"start":{"line":93,"column":4},"end":{"line":93,"column":3026}},"17":{"start":{"line":94,"column":6},"end":{"line":94,"column":89}},"18":{"start":{"line":96,"column":6},"end":{"line":96,"column":3174}},"19":{"start":{"line":97,"column":8},"end":{"line":97,"column":22}},"20":{"start":{"line":100,"column":6},"end":{"line":100,"column":47}},"21":{"start":{"line":103,"column":4},"end":{"line":103,"column":31}}},"branchMap":{"1":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":34,"column":4}},{"start":{"line":34,"column":4},"end":{"line":34,"column":4}}]},"2":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":4},"end":{"line":45,"column":4}},{"start":{"line":45,"column":4},"end":{"line":45,"column":4}}]},"3":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":8}},{"start":{"line":68,"column":8},"end":{"line":68,"column":8}}]},"4":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":6},"end":{"line":96,"column":6}},{"start":{"line":96,"column":6},"end":{"line":96,"column":6}}]}}},"contracts/tokenization/AToken.sol":{"l":{"45":211,"46":207,"57":54,"58":54,"59":54,"63":17,"71":17,"74":17,"78":17,"88":17,"89":17,"90":17,"104":42,"107":41,"110":41,"111":41,"126":105,"129":105,"130":105,"134":0,"137":0,"138":0,"155":2,"170":641,"180":333,"195":0,"205":3,"207":3,"208":0,"211":3,"219":0,"229":4,"245":58,"246":56,"268":6,"270":5,"271":3,"272":3,"279":3,"280":0,"281":0,"298":6,"299":4,"302":4,"304":4,"306":4,"320":4,"327":0},"path":"/src/contracts/tokenization/AToken.sol","s":{"1":211,"2":54,"3":54,"4":54,"5":17,"6":17,"7":17,"8":17,"9":17,"10":17,"11":42,"12":41,"13":41,"14":41,"15":105,"16":105,"17":105,"18":0,"19":0,"20":0,"21":2,"22":641,"23":333,"24":0,"25":3,"26":3,"27":0,"28":3,"29":0,"30":4,"31":58,"32":56,"33":6,"34":5,"35":3,"36":3,"37":3,"38":0,"39":0,"40":6,"41":4,"42":4,"43":4,"44":4,"45":4},"b":{"1":[207,4],"2":[0,3],"3":[5,1],"4":[3,2],"5":[0,3],"6":[4,2],"7":[2,2]},"f":{"1":211,"2":54,"3":17,"4":17,"5":42,"6":105,"7":0,"8":2,"9":641,"10":333,"11":0,"12":3,"13":0,"14":4,"15":58,"16":6,"17":6,"18":4},"fnMap":{"1":{"name":"onlyLendingPool","line":44,"loc":{"start":{"line":44,"column":2},"end":{"line":47,"column":2}}},"2":{"name":"constructor","line":56,"loc":{"start":{"line":49,"column":2},"end":{"line":60,"column":2}}},"3":{"name":"getRevision","line":62,"loc":{"start":{"line":62,"column":2},"end":{"line":64,"column":2}}},"4":{"name":"initialize","line":70,"loc":{"start":{"line":66,"column":2},"end":{"line":91,"column":2}}},"5":{"name":"burn","line":103,"loc":{"start":{"line":98,"column":2},"end":{"line":112,"column":2}}},"6":{"name":"mint","line":124,"loc":{"start":{"line":120,"column":2},"end":{"line":131,"column":2}}},"7":{"name":"mintToTreasury","line":133,"loc":{"start":{"line":133,"column":2},"end":{"line":139,"column":2}}},"8":{"name":"transferOnLiquidation","line":152,"loc":{"start":{"line":148,"column":2},"end":{"line":156,"column":2}}},"9":{"name":"balanceOf","line":164,"loc":{"start":{"line":164,"column":2},"end":{"line":171,"column":2}}},"10":{"name":"scaledBalanceOf","line":179,"loc":{"start":{"line":179,"column":2},"end":{"line":181,"column":2}}},"11":{"name":"getScaledUserBalanceAndSupply","line":189,"loc":{"start":{"line":189,"column":2},"end":{"line":196,"column":2}}},"12":{"name":"totalSupply","line":204,"loc":{"start":{"line":204,"column":2},"end":{"line":212,"column":2}}},"13":{"name":"scaledTotalSupply","line":218,"loc":{"start":{"line":218,"column":2},"end":{"line":220,"column":2}}},"14":{"name":"isTransferAllowed","line":228,"loc":{"start":{"line":228,"column":2},"end":{"line":230,"column":2}}},"15":{"name":"transferUnderlyingTo","line":242,"loc":{"start":{"line":239,"column":2},"end":{"line":247,"column":2}}},"16":{"name":"permit","line":259,"loc":{"start":{"line":259,"column":2},"end":{"line":282,"column":2}}},"17":{"name":"_transfer","line":292,"loc":{"start":{"line":292,"column":2},"end":{"line":307,"column":2}}},"18":{"name":"_transfer","line":315,"loc":{"start":{"line":315,"column":2},"end":{"line":321,"column":2}}}},"statementMap":{"1":{"start":{"line":45,"column":4},"end":{"line":45,"column":75}},"2":{"start":{"line":57,"column":4},"end":{"line":57,"column":14}},"3":{"start":{"line":58,"column":4},"end":{"line":58,"column":52}},"4":{"start":{"line":59,"column":4},"end":{"line":59,"column":52}},"5":{"start":{"line":63,"column":4},"end":{"line":63,"column":26}},"6":{"start":{"line":71,"column":4},"end":{"line":71,"column":19}},"7":{"start":{"line":78,"column":4},"end":{"line":78,"column":2480}},"8":{"start":{"line":88,"column":4},"end":{"line":88,"column":22}},"9":{"start":{"line":89,"column":4},"end":{"line":89,"column":26}},"10":{"start":{"line":90,"column":4},"end":{"line":90,"column":40}},"11":{"start":{"line":104,"column":4},"end":{"line":104,"column":36}},"12":{"start":{"line":107,"column":4},"end":{"line":107,"column":78}},"13":{"start":{"line":110,"column":4},"end":{"line":110,"column":43}},"14":{"start":{"line":111,"column":4},"end":{"line":111,"column":62}},"15":{"start":{"line":126,"column":4},"end":{"line":126,"column":36}},"16":{"start":{"line":129,"column":4},"end":{"line":129,"column":43}},"17":{"start":{"line":130,"column":4},"end":{"line":130,"column":34}},"18":{"start":{"line":134,"column":4},"end":{"line":134,"column":53}},"19":{"start":{"line":137,"column":4},"end":{"line":137,"column":63}},"20":{"start":{"line":138,"column":4},"end":{"line":138,"column":54}},"21":{"start":{"line":155,"column":4},"end":{"line":155,"column":36}},"22":{"start":{"line":170,"column":4},"end":{"line":170,"column":98}},"23":{"start":{"line":180,"column":4},"end":{"line":180,"column":32}},"24":{"start":{"line":195,"column":4},"end":{"line":195,"column":55}},"25":{"start":{"line":205,"column":4},"end":{"line":205,"column":53}},"26":{"start":{"line":207,"column":4},"end":{"line":207,"column":6560}},"27":{"start":{"line":208,"column":6},"end":{"line":208,"column":14}},"28":{"start":{"line":211,"column":4},"end":{"line":211,"column":96}},"29":{"start":{"line":219,"column":4},"end":{"line":219,"column":30}},"30":{"start":{"line":229,"column":4},"end":{"line":229,"column":78}},"31":{"start":{"line":245,"column":4},"end":{"line":245,"column":64}},"32":{"start":{"line":246,"column":4},"end":{"line":246,"column":17}},"33":{"start":{"line":268,"column":4},"end":{"line":268,"column":48}},"34":{"start":{"line":270,"column":4},"end":{"line":270,"column":61}},"35":{"start":{"line":271,"column":4},"end":{"line":271,"column":46}},"36":{"start":{"line":272,"column":4},"end":{"line":272,"column":8691}},"37":{"start":{"line":279,"column":4},"end":{"line":279,"column":68}},"38":{"start":{"line":280,"column":4},"end":{"line":280,"column":44}},"39":{"start":{"line":281,"column":4},"end":{"line":281,"column":34}},"40":{"start":{"line":298,"column":4},"end":{"line":298,"column":9504}},"41":{"start":{"line":299,"column":6},"end":{"line":299,"column":74}},"42":{"start":{"line":302,"column":4},"end":{"line":302,"column":77}},"43":{"start":{"line":304,"column":4},"end":{"line":304,"column":50}},"44":{"start":{"line":306,"column":4},"end":{"line":306,"column":49}},"45":{"start":{"line":320,"column":4},"end":{"line":320,"column":36}}},"branchMap":{"1":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":4},"end":{"line":45,"column":4}},{"start":{"line":45,"column":4},"end":{"line":45,"column":4}}]},"2":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":4},"end":{"line":207,"column":4}},{"start":{"line":207,"column":4},"end":{"line":207,"column":4}}]},"3":{"line":268,"type":"if","locations":[{"start":{"line":268,"column":4},"end":{"line":268,"column":4}},{"start":{"line":268,"column":4},"end":{"line":268,"column":4}}]},"4":{"line":270,"type":"if","locations":[{"start":{"line":270,"column":4},"end":{"line":270,"column":4}},{"start":{"line":270,"column":4},"end":{"line":270,"column":4}}]},"5":{"line":279,"type":"if","locations":[{"start":{"line":279,"column":4},"end":{"line":279,"column":4}},{"start":{"line":279,"column":4},"end":{"line":279,"column":4}}]},"6":{"line":298,"type":"if","locations":[{"start":{"line":298,"column":4},"end":{"line":298,"column":4}},{"start":{"line":298,"column":4},"end":{"line":298,"column":4}}]},"7":{"line":299,"type":"if","locations":[{"start":{"line":299,"column":6},"end":{"line":299,"column":6}},{"start":{"line":299,"column":6},"end":{"line":299,"column":6}}]}}},"contracts/tokenization/base/DebtTokenBase.sol":{"l":{"29":99,"30":95,"44":108,"45":108,"59":36,"60":36,"61":36,"65":0,"73":0,"74":0,"75":0,"85":0,"86":0,"87":0,"91":0,"92":0,"93":0,"101":0,"102":0,"103":0,"104":0,"113":0,"114":0,"115":0,"124":0,"125":0,"126":0},"path":"/src/contracts/tokenization/base/DebtTokenBase.sol","s":{"1":99,"2":108,"3":108,"4":36,"5":36,"6":36,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0},"b":{"1":[95,4]},"f":{"1":99,"2":108,"3":36,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"fnMap":{"1":{"name":"onlyLendingPool","line":28,"loc":{"start":{"line":28,"column":2},"end":{"line":31,"column":2}}},"2":{"name":"constructor","line":43,"loc":{"start":{"line":37,"column":2},"end":{"line":46,"column":2}}},"3":{"name":"initialize","line":58,"loc":{"start":{"line":54,"column":2},"end":{"line":62,"column":2}}},"4":{"name":"underlyingAssetAddress","line":64,"loc":{"start":{"line":64,"column":2},"end":{"line":66,"column":2}}},"5":{"name":"transfer","line":72,"loc":{"start":{"line":72,"column":2},"end":{"line":76,"column":2}}},"6":{"name":"allowance","line":78,"loc":{"start":{"line":78,"column":2},"end":{"line":88,"column":2}}},"7":{"name":"approve","line":90,"loc":{"start":{"line":90,"column":2},"end":{"line":94,"column":2}}},"8":{"name":"transferFrom","line":96,"loc":{"start":{"line":96,"column":2},"end":{"line":105,"column":2}}},"9":{"name":"increaseAllowance","line":107,"loc":{"start":{"line":107,"column":2},"end":{"line":116,"column":2}}},"10":{"name":"decreaseAllowance","line":118,"loc":{"start":{"line":118,"column":2},"end":{"line":127,"column":2}}}},"statementMap":{"1":{"start":{"line":29,"column":4},"end":{"line":29,"column":75}},"2":{"start":{"line":44,"column":4},"end":{"line":44,"column":28}},"3":{"start":{"line":45,"column":4},"end":{"line":45,"column":44}},"4":{"start":{"line":59,"column":4},"end":{"line":59,"column":17}},"5":{"start":{"line":60,"column":4},"end":{"line":60,"column":21}},"6":{"start":{"line":61,"column":4},"end":{"line":61,"column":25}},"7":{"start":{"line":65,"column":4},"end":{"line":65,"column":27}},"8":{"start":{"line":75,"column":4},"end":{"line":75,"column":35}},"9":{"start":{"line":87,"column":4},"end":{"line":87,"column":36}},"10":{"start":{"line":93,"column":4},"end":{"line":93,"column":35}},"11":{"start":{"line":104,"column":4},"end":{"line":104,"column":35}},"12":{"start":{"line":115,"column":4},"end":{"line":115,"column":36}},"13":{"start":{"line":126,"column":4},"end":{"line":126,"column":36}}},"branchMap":{"1":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":4},"end":{"line":29,"column":4}},{"start":{"line":29,"column":4},"end":{"line":29,"column":4}}]}}},"contracts/tokenization/IncentivizedERC20.sol":{"l":{"34":162,"35":162,"36":162,"37":162,"44":67,"51":88,"58":0,"65":2318,"72":2652,"82":4,"83":2,"84":2,"100":4,"109":0,"110":0,"125":0,"126":0,"131":0,"132":0,"142":0,"143":0,"157":0,"165":0,"173":4,"174":4,"176":4,"178":4,"179":4,"180":4,"181":4,"183":4,"184":0,"185":0,"186":0,"187":0,"193":131,"195":131,"197":131,"198":131,"200":131,"201":131,"203":131,"204":0,"209":67,"211":67,"213":67,"214":67,"216":67,"217":67,"219":66,"220":0,"229":0,"230":0,"232":0,"233":0,"237":54,"241":54,"245":54},"path":"/src/contracts/tokenization/IncentivizedERC20.sol","s":{"1":162,"2":162,"3":162,"4":162,"5":67,"6":88,"7":0,"8":2318,"9":2652,"10":4,"11":2,"12":2,"13":4,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":4,"25":4,"26":4,"27":4,"28":4,"29":4,"30":4,"31":4,"32":0,"33":0,"34":0,"35":0,"36":131,"37":131,"38":131,"39":131,"40":131,"41":131,"42":131,"43":0,"44":67,"45":67,"46":67,"47":67,"48":67,"49":67,"50":66,"51":0,"52":0,"53":0,"54":0,"55":0,"56":54,"57":54,"58":54},"b":{"1":[4,0],"2":[4,0],"3":[0,4],"4":[0,0],"5":[131,0],"6":[0,131],"7":[67,0],"8":[0,66],"9":[0,0],"10":[0,0]},"f":{"1":162,"2":67,"3":88,"4":0,"5":2318,"6":2652,"7":4,"8":4,"9":0,"10":0,"11":0,"12":0,"13":4,"14":131,"15":67,"16":0,"17":54,"18":54,"19":54,"20":202},"fnMap":{"1":{"name":"constructor","line":28,"loc":{"start":{"line":28,"column":2},"end":{"line":38,"column":2}}},"2":{"name":"name","line":43,"loc":{"start":{"line":43,"column":2},"end":{"line":45,"column":2}}},"3":{"name":"symbol","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":52,"column":2}}},"4":{"name":"decimals","line":57,"loc":{"start":{"line":57,"column":2},"end":{"line":59,"column":2}}},"5":{"name":"totalSupply","line":64,"loc":{"start":{"line":64,"column":2},"end":{"line":66,"column":2}}},"6":{"name":"balanceOf","line":71,"loc":{"start":{"line":71,"column":2},"end":{"line":73,"column":2}}},"7":{"name":"transfer","line":81,"loc":{"start":{"line":81,"column":2},"end":{"line":85,"column":2}}},"8":{"name":"allowance","line":93,"loc":{"start":{"line":93,"column":2},"end":{"line":101,"column":2}}},"9":{"name":"approve","line":108,"loc":{"start":{"line":108,"column":2},"end":{"line":111,"column":2}}},"10":{"name":"transferFrom","line":120,"loc":{"start":{"line":120,"column":2},"end":{"line":133,"column":2}}},"11":{"name":"increaseAllowance","line":141,"loc":{"start":{"line":141,"column":2},"end":{"line":144,"column":2}}},"12":{"name":"decreaseAllowance","line":152,"loc":{"start":{"line":152,"column":2},"end":{"line":166,"column":2}}},"13":{"name":"_transfer","line":168,"loc":{"start":{"line":168,"column":2},"end":{"line":190,"column":2}}},"14":{"name":"_mint","line":192,"loc":{"start":{"line":192,"column":2},"end":{"line":206,"column":2}}},"15":{"name":"_burn","line":208,"loc":{"start":{"line":208,"column":2},"end":{"line":222,"column":2}}},"16":{"name":"_approve","line":224,"loc":{"start":{"line":224,"column":2},"end":{"line":234,"column":2}}},"17":{"name":"_setName","line":236,"loc":{"start":{"line":236,"column":2},"end":{"line":238,"column":2}}},"18":{"name":"_setSymbol","line":240,"loc":{"start":{"line":240,"column":2},"end":{"line":242,"column":2}}},"19":{"name":"_setDecimals","line":244,"loc":{"start":{"line":244,"column":2},"end":{"line":246,"column":2}}},"20":{"name":"_beforeTokenTransfer","line":248,"loc":{"start":{"line":248,"column":2},"end":{"line":252,"column":22}}}},"statementMap":{"1":{"start":{"line":34,"column":4},"end":{"line":34,"column":15}},"2":{"start":{"line":35,"column":4},"end":{"line":35,"column":19}},"3":{"start":{"line":36,"column":4},"end":{"line":36,"column":23}},"4":{"start":{"line":37,"column":4},"end":{"line":37,"column":74}},"5":{"start":{"line":44,"column":4},"end":{"line":44,"column":16}},"6":{"start":{"line":51,"column":4},"end":{"line":51,"column":18}},"7":{"start":{"line":58,"column":4},"end":{"line":58,"column":20}},"8":{"start":{"line":65,"column":4},"end":{"line":65,"column":23}},"9":{"start":{"line":72,"column":4},"end":{"line":72,"column":29}},"10":{"start":{"line":82,"column":4},"end":{"line":82,"column":45}},"11":{"start":{"line":83,"column":4},"end":{"line":83,"column":48}},"12":{"start":{"line":84,"column":4},"end":{"line":84,"column":15}},"13":{"start":{"line":100,"column":4},"end":{"line":100,"column":38}},"14":{"start":{"line":109,"column":4},"end":{"line":109,"column":42}},"15":{"start":{"line":110,"column":4},"end":{"line":110,"column":15}},"16":{"start":{"line":125,"column":4},"end":{"line":125,"column":39}},"17":{"start":{"line":126,"column":4},"end":{"line":126,"column":3648}},"18":{"start":{"line":131,"column":4},"end":{"line":131,"column":44}},"19":{"start":{"line":132,"column":4},"end":{"line":132,"column":15}},"20":{"start":{"line":142,"column":4},"end":{"line":142,"column":86}},"21":{"start":{"line":143,"column":4},"end":{"line":143,"column":15}},"22":{"start":{"line":157,"column":4},"end":{"line":157,"column":4675}},"23":{"start":{"line":165,"column":4},"end":{"line":165,"column":15}},"24":{"start":{"line":173,"column":4},"end":{"line":173,"column":73}},"25":{"start":{"line":174,"column":4},"end":{"line":174,"column":74}},"26":{"start":{"line":176,"column":4},"end":{"line":176,"column":50}},"27":{"start":{"line":178,"column":4},"end":{"line":178,"column":48}},"28":{"start":{"line":179,"column":4},"end":{"line":179,"column":93}},"29":{"start":{"line":180,"column":4},"end":{"line":180,"column":54}},"30":{"start":{"line":181,"column":4},"end":{"line":181,"column":58}},"31":{"start":{"line":183,"column":4},"end":{"line":183,"column":5459}},"32":{"start":{"line":184,"column":6},"end":{"line":184,"column":40}},"33":{"start":{"line":185,"column":6},"end":{"line":185,"column":78}},"34":{"start":{"line":186,"column":6},"end":{"line":186,"column":5642}},"35":{"start":{"line":187,"column":8},"end":{"line":187,"column":86}},"36":{"start":{"line":193,"column":4},"end":{"line":193,"column":68}},"37":{"start":{"line":195,"column":4},"end":{"line":195,"column":52}},"38":{"start":{"line":197,"column":4},"end":{"line":197,"column":41}},"39":{"start":{"line":198,"column":4},"end":{"line":198,"column":44}},"40":{"start":{"line":200,"column":4},"end":{"line":200,"column":50}},"41":{"start":{"line":201,"column":4},"end":{"line":201,"column":53}},"42":{"start":{"line":203,"column":4},"end":{"line":203,"column":6176}},"43":{"start":{"line":204,"column":6},"end":{"line":204,"column":83}},"44":{"start":{"line":209,"column":4},"end":{"line":209,"column":70}},"45":{"start":{"line":211,"column":4},"end":{"line":211,"column":52}},"46":{"start":{"line":213,"column":4},"end":{"line":213,"column":41}},"47":{"start":{"line":214,"column":4},"end":{"line":214,"column":44}},"48":{"start":{"line":216,"column":4},"end":{"line":216,"column":50}},"49":{"start":{"line":217,"column":4},"end":{"line":217,"column":91}},"50":{"start":{"line":219,"column":4},"end":{"line":219,"column":6766}},"51":{"start":{"line":220,"column":6},"end":{"line":220,"column":83}},"52":{"start":{"line":229,"column":4},"end":{"line":229,"column":71}},"53":{"start":{"line":230,"column":4},"end":{"line":230,"column":71}},"54":{"start":{"line":232,"column":4},"end":{"line":232,"column":39}},"55":{"start":{"line":233,"column":4},"end":{"line":233,"column":41}},"56":{"start":{"line":237,"column":4},"end":{"line":237,"column":18}},"57":{"start":{"line":241,"column":4},"end":{"line":241,"column":22}},"58":{"start":{"line":245,"column":4},"end":{"line":245,"column":26}}},"branchMap":{"1":{"line":173,"type":"if","locations":[{"start":{"line":173,"column":4},"end":{"line":173,"column":4}},{"start":{"line":173,"column":4},"end":{"line":173,"column":4}}]},"2":{"line":174,"type":"if","locations":[{"start":{"line":174,"column":4},"end":{"line":174,"column":4}},{"start":{"line":174,"column":4},"end":{"line":174,"column":4}}]},"3":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":4},"end":{"line":183,"column":4}},{"start":{"line":183,"column":4},"end":{"line":183,"column":4}}]},"4":{"line":186,"type":"if","locations":[{"start":{"line":186,"column":6},"end":{"line":186,"column":6}},{"start":{"line":186,"column":6},"end":{"line":186,"column":6}}]},"5":{"line":193,"type":"if","locations":[{"start":{"line":193,"column":4},"end":{"line":193,"column":4}},{"start":{"line":193,"column":4},"end":{"line":193,"column":4}}]},"6":{"line":203,"type":"if","locations":[{"start":{"line":203,"column":4},"end":{"line":203,"column":4}},{"start":{"line":203,"column":4},"end":{"line":203,"column":4}}]},"7":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":4},"end":{"line":209,"column":4}},{"start":{"line":209,"column":4},"end":{"line":209,"column":4}}]},"8":{"line":219,"type":"if","locations":[{"start":{"line":219,"column":4},"end":{"line":219,"column":4}},{"start":{"line":219,"column":4},"end":{"line":219,"column":4}}]},"9":{"line":229,"type":"if","locations":[{"start":{"line":229,"column":4},"end":{"line":229,"column":4}},{"start":{"line":229,"column":4},"end":{"line":229,"column":4}}]},"10":{"line":230,"type":"if","locations":[{"start":{"line":230,"column":4},"end":{"line":230,"column":4}},{"start":{"line":230,"column":4},"end":{"line":230,"column":4}}]}}},"contracts/tokenization/interfaces/IAToken.sol":{"l":{},"path":"/src/contracts/tokenization/interfaces/IAToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/tokenization/interfaces/IScaledBalanceToken.sol":{"l":{},"path":"/src/contracts/tokenization/interfaces/IScaledBalanceToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/tokenization/interfaces/IStableDebtToken.sol":{"l":{},"path":"/src/contracts/tokenization/interfaces/IStableDebtToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/tokenization/interfaces/IVariableDebtToken.sol":{"l":{},"path":"/src/contracts/tokenization/interfaces/IVariableDebtToken.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/tokenization/StableDebtToken.sol":{"l":{"39":17,"47":363,"55":343,"64":343,"72":488,"73":488,"74":488,"75":366,"77":122,"81":122,"104":27,"107":27,"114":27,"115":27,"116":27,"118":27,"121":27,"126":27,"127":27,"131":27,"134":27,"139":27,"142":27,"144":27,"160":17,"167":17,"173":17,"174":8,"175":8,"177":9,"178":9,"184":17,"185":11,"186":11,"190":6,"193":17,"195":17,"196":0,"198":17,"202":17,"204":17,"222":44,"224":44,"225":22,"229":22,"231":22,"242":331,"243":331,"250":235,"251":235,"258":414,"265":331,"274":343,"284":980,"286":980,"287":781,"290":199,"295":199,"306":27,"307":27,"309":27,"310":0,"322":17,"323":17,"325":17,"326":0},"path":"/src/contracts/tokenization/StableDebtToken.sol","s":{"1":17,"2":363,"3":343,"4":343,"5":488,"6":488,"7":488,"8":366,"9":122,"10":122,"11":27,"12":27,"13":27,"14":27,"15":27,"16":27,"17":27,"18":27,"19":27,"20":27,"21":27,"22":27,"23":27,"24":27,"25":17,"26":17,"27":17,"28":8,"29":8,"30":9,"31":9,"32":17,"33":11,"34":11,"35":6,"36":17,"37":17,"38":0,"39":17,"40":17,"41":17,"42":44,"43":44,"44":22,"45":22,"46":22,"47":331,"48":331,"49":235,"50":235,"51":414,"52":331,"53":343,"54":980,"55":980,"56":781,"57":199,"58":199,"59":27,"60":27,"61":27,"62":0,"63":17,"64":17,"65":17,"66":0},"b":{"1":[366,122],"2":[27,0],"3":[8,9],"4":[11,6],"5":[0,17],"6":[22,22],"7":[781,199],"8":[0,27],"9":[0,17]},"f":{"1":54,"2":17,"3":363,"4":343,"5":343,"6":488,"7":27,"8":17,"9":44,"10":331,"11":235,"12":414,"13":331,"14":343,"15":980,"16":27,"17":17},"fnMap":{"1":{"name":"constructor","line":32,"loc":{"start":{"line":26,"column":2},"end":{"line":32,"column":85}}},"2":{"name":"getRevision","line":38,"loc":{"start":{"line":38,"column":2},"end":{"line":40,"column":2}}},"3":{"name":"getAverageStableRate","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":48,"column":2}}},"4":{"name":"getUserLastUpdated","line":54,"loc":{"start":{"line":54,"column":2},"end":{"line":56,"column":2}}},"5":{"name":"getUserStableRate","line":63,"loc":{"start":{"line":63,"column":2},"end":{"line":65,"column":2}}},"6":{"name":"balanceOf","line":71,"loc":{"start":{"line":71,"column":2},"end":{"line":82,"column":2}}},"7":{"name":"mint","line":103,"loc":{"start":{"line":99,"column":2},"end":{"line":152,"column":2}}},"8":{"name":"burn","line":159,"loc":{"start":{"line":159,"column":2},"end":{"line":205,"column":2}}},"9":{"name":"_calculateBalanceIncrease","line":213,"loc":{"start":{"line":213,"column":2},"end":{"line":236,"column":2}}},"10":{"name":"getSupplyData","line":241,"loc":{"start":{"line":241,"column":2},"end":{"line":244,"column":2}}},"11":{"name":"getTotalSupplyAndAvgRate","line":249,"loc":{"start":{"line":249,"column":2},"end":{"line":252,"column":2}}},"12":{"name":"totalSupply","line":257,"loc":{"start":{"line":257,"column":2},"end":{"line":259,"column":2}}},"13":{"name":"getTotalSupplyLastUpdated","line":264,"loc":{"start":{"line":264,"column":2},"end":{"line":266,"column":2}}},"14":{"name":"principalBalanceOf","line":273,"loc":{"start":{"line":273,"column":2},"end":{"line":275,"column":2}}},"15":{"name":"_calcTotalSupply","line":283,"loc":{"start":{"line":283,"column":2},"end":{"line":296,"column":2}}},"16":{"name":"_mint","line":304,"loc":{"start":{"line":304,"column":3},"end":{"line":312,"column":2}}},"17":{"name":"_burn","line":320,"loc":{"start":{"line":320,"column":2},"end":{"line":328,"column":2}}}},"statementMap":{"1":{"start":{"line":39,"column":4},"end":{"line":39,"column":30}},"2":{"start":{"line":47,"column":4},"end":{"line":47,"column":25}},"3":{"start":{"line":55,"column":4},"end":{"line":55,"column":28}},"4":{"start":{"line":64,"column":4},"end":{"line":64,"column":27}},"5":{"start":{"line":72,"column":4},"end":{"line":72,"column":53}},"6":{"start":{"line":73,"column":4},"end":{"line":73,"column":44}},"7":{"start":{"line":74,"column":4},"end":{"line":74,"column":2428}},"8":{"start":{"line":75,"column":6},"end":{"line":75,"column":14}},"9":{"start":{"line":77,"column":4},"end":{"line":77,"column":2482}},"10":{"start":{"line":81,"column":4},"end":{"line":81,"column":51}},"11":{"start":{"line":104,"column":4},"end":{"line":104,"column":29}},"12":{"start":{"line":107,"column":4},"end":{"line":107,"column":3360}},"13":{"start":{"line":114,"column":4},"end":{"line":114,"column":38}},"14":{"start":{"line":115,"column":4},"end":{"line":115,"column":45}},"15":{"start":{"line":116,"column":4},"end":{"line":116,"column":67}},"16":{"start":{"line":118,"column":4},"end":{"line":118,"column":39}},"17":{"start":{"line":121,"column":4},"end":{"line":121,"column":3848}},"18":{"start":{"line":126,"column":4},"end":{"line":126,"column":79}},"19":{"start":{"line":127,"column":4},"end":{"line":127,"column":40}},"20":{"start":{"line":131,"column":4},"end":{"line":131,"column":70}},"21":{"start":{"line":134,"column":4},"end":{"line":134,"column":4342}},"22":{"start":{"line":139,"column":4},"end":{"line":139,"column":64}},"23":{"start":{"line":142,"column":4},"end":{"line":142,"column":43}},"24":{"start":{"line":144,"column":4},"end":{"line":144,"column":4640}},"25":{"start":{"line":160,"column":4},"end":{"line":160,"column":5054}},"26":{"start":{"line":167,"column":4},"end":{"line":167,"column":42}},"27":{"start":{"line":173,"column":4},"end":{"line":173,"column":5510}},"28":{"start":{"line":174,"column":6},"end":{"line":174,"column":23}},"29":{"start":{"line":175,"column":6},"end":{"line":175,"column":21}},"30":{"start":{"line":177,"column":7},"end":{"line":177,"column":69}},"31":{"start":{"line":178,"column":6},"end":{"line":178,"column":5715}},"32":{"start":{"line":184,"column":4},"end":{"line":184,"column":5865}},"33":{"start":{"line":185,"column":6},"end":{"line":185,"column":25}},"34":{"start":{"line":186,"column":6},"end":{"line":186,"column":26}},"35":{"start":{"line":190,"column":6},"end":{"line":190,"column":48}},"36":{"start":{"line":193,"column":4},"end":{"line":193,"column":50}},"37":{"start":{"line":195,"column":4},"end":{"line":195,"column":6147}},"38":{"start":{"line":196,"column":6},"end":{"line":196,"column":61}},"39":{"start":{"line":198,"column":6},"end":{"line":198,"column":61}},"40":{"start":{"line":202,"column":4},"end":{"line":202,"column":43}},"41":{"start":{"line":204,"column":4},"end":{"line":204,"column":81}},"42":{"start":{"line":222,"column":4},"end":{"line":222,"column":60}},"43":{"start":{"line":224,"column":4},"end":{"line":224,"column":7006}},"44":{"start":{"line":225,"column":6},"end":{"line":225,"column":22}},"45":{"start":{"line":229,"column":4},"end":{"line":229,"column":75}},"46":{"start":{"line":231,"column":4},"end":{"line":231,"column":7228}},"47":{"start":{"line":242,"column":4},"end":{"line":242,"column":36}},"48":{"start":{"line":243,"column":4},"end":{"line":243,"column":91}},"49":{"start":{"line":250,"column":4},"end":{"line":250,"column":36}},"50":{"start":{"line":251,"column":4},"end":{"line":251,"column":47}},"51":{"start":{"line":258,"column":4},"end":{"line":258,"column":43}},"52":{"start":{"line":265,"column":4},"end":{"line":265,"column":32}},"53":{"start":{"line":274,"column":4},"end":{"line":274,"column":32}},"54":{"start":{"line":284,"column":4},"end":{"line":284,"column":49}},"55":{"start":{"line":286,"column":4},"end":{"line":286,"column":8975}},"56":{"start":{"line":287,"column":6},"end":{"line":287,"column":14}},"57":{"start":{"line":290,"column":4},"end":{"line":290,"column":9031}},"58":{"start":{"line":295,"column":4},"end":{"line":295,"column":52}},"59":{"start":{"line":306,"column":4},"end":{"line":306,"column":50}},"60":{"start":{"line":307,"column":4},"end":{"line":307,"column":53}},"61":{"start":{"line":309,"column":4},"end":{"line":309,"column":9637}},"62":{"start":{"line":310,"column":6},"end":{"line":310,"column":83}},"63":{"start":{"line":322,"column":4},"end":{"line":322,"column":50}},"64":{"start":{"line":323,"column":4},"end":{"line":323,"column":91}},"65":{"start":{"line":325,"column":4},"end":{"line":325,"column":10249}},"66":{"start":{"line":326,"column":6},"end":{"line":326,"column":83}}},"branchMap":{"1":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4}},{"start":{"line":74,"column":4},"end":{"line":74,"column":4}}]},"2":{"line":126,"type":"if","locations":[{"start":{"line":126,"column":4},"end":{"line":126,"column":4}},{"start":{"line":126,"column":4},"end":{"line":126,"column":4}}]},"3":{"line":173,"type":"if","locations":[{"start":{"line":173,"column":4},"end":{"line":173,"column":4}},{"start":{"line":173,"column":4},"end":{"line":173,"column":4}}]},"4":{"line":184,"type":"if","locations":[{"start":{"line":184,"column":4},"end":{"line":184,"column":4}},{"start":{"line":184,"column":4},"end":{"line":184,"column":4}}]},"5":{"line":195,"type":"if","locations":[{"start":{"line":195,"column":4},"end":{"line":195,"column":4}},{"start":{"line":195,"column":4},"end":{"line":195,"column":4}}]},"6":{"line":224,"type":"if","locations":[{"start":{"line":224,"column":4},"end":{"line":224,"column":4}},{"start":{"line":224,"column":4},"end":{"line":224,"column":4}}]},"7":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":4},"end":{"line":286,"column":4}},{"start":{"line":286,"column":4},"end":{"line":286,"column":4}}]},"8":{"line":309,"type":"if","locations":[{"start":{"line":309,"column":4},"end":{"line":309,"column":4}},{"start":{"line":309,"column":4},"end":{"line":309,"column":4}}]},"9":{"line":325,"type":"if","locations":[{"start":{"line":325,"column":4},"end":{"line":325,"column":4}},{"start":{"line":325,"column":4},"end":{"line":325,"column":4}}]}}},"contracts/tokenization/VariableDebtToken.sol":{"l":{"34":17,"42":460,"44":460,"45":323,"48":137,"63":26,"65":26,"66":26,"79":25,"81":25,"82":25,"90":343,"98":673,"106":331,"116":0},"path":"/src/contracts/tokenization/VariableDebtToken.sol","s":{"1":17,"2":460,"3":460,"4":323,"5":137,"6":26,"7":26,"8":26,"9":25,"10":25,"11":25,"12":343,"13":673,"14":331,"15":0},"b":{"1":[323,137]},"f":{"1":54,"2":17,"3":460,"4":26,"5":25,"6":343,"7":673,"8":331,"9":0},"fnMap":{"1":{"name":"constructor","line":27,"loc":{"start":{"line":21,"column":2},"end":{"line":27,"column":85}}},"2":{"name":"getRevision","line":33,"loc":{"start":{"line":33,"column":2},"end":{"line":35,"column":2}}},"3":{"name":"balanceOf","line":41,"loc":{"start":{"line":41,"column":2},"end":{"line":49,"column":2}}},"4":{"name":"mint","line":61,"loc":{"start":{"line":57,"column":2},"end":{"line":67,"column":2}}},"5":{"name":"burn","line":78,"loc":{"start":{"line":74,"column":2},"end":{"line":83,"column":2}}},"6":{"name":"scaledBalanceOf","line":89,"loc":{"start":{"line":89,"column":2},"end":{"line":91,"column":2}}},"7":{"name":"totalSupply","line":97,"loc":{"start":{"line":97,"column":2},"end":{"line":99,"column":2}}},"8":{"name":"scaledTotalSupply","line":105,"loc":{"start":{"line":105,"column":2},"end":{"line":107,"column":2}}},"9":{"name":"getScaledUserBalanceAndSupply","line":115,"loc":{"start":{"line":115,"column":2},"end":{"line":117,"column":2}}}},"statementMap":{"1":{"start":{"line":34,"column":4},"end":{"line":34,"column":30}},"2":{"start":{"line":42,"column":4},"end":{"line":42,"column":49}},"3":{"start":{"line":44,"column":4},"end":{"line":44,"column":1484}},"4":{"start":{"line":45,"column":6},"end":{"line":45,"column":14}},"5":{"start":{"line":48,"column":4},"end":{"line":48,"column":88}},"6":{"start":{"line":63,"column":4},"end":{"line":63,"column":36}},"7":{"start":{"line":65,"column":4},"end":{"line":65,"column":43}},"8":{"start":{"line":66,"column":4},"end":{"line":66,"column":34}},"9":{"start":{"line":79,"column":4},"end":{"line":79,"column":36}},"10":{"start":{"line":81,"column":4},"end":{"line":81,"column":43}},"11":{"start":{"line":82,"column":4},"end":{"line":82,"column":34}},"12":{"start":{"line":90,"column":4},"end":{"line":90,"column":32}},"13":{"start":{"line":98,"column":4},"end":{"line":98,"column":94}},"14":{"start":{"line":106,"column":4},"end":{"line":106,"column":30}},"15":{"start":{"line":116,"column":4},"end":{"line":116,"column":55}}},"branchMap":{"1":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":4},"end":{"line":44,"column":4}},{"start":{"line":44,"column":4},"end":{"line":44,"column":4}}]}}}} \ No newline at end of file +{ + "contracts/configuration/LendingPoolAddressesProvider.sol": { + "l": { + "38": 9, + "46": 1, + "47": 1, + "55": 119, + "63": 1, + "64": 1, + "75": 37, + "83": 1, + "84": 1, + "93": 124, + "97": 1, + "98": 1, + "102": 168, + "106": 1, + "107": 1, + "111": 234, + "115": 1, + "116": 1, + "125": 2, + "127": 2, + "130": 2, + "132": 2, + "133": 2, + "134": 2, + "135": 2, + "136": 2, + "138": 0 + }, + "path": "/src/contracts/configuration/LendingPoolAddressesProvider.sol", + "s": { + "1": 9, + "2": 1, + "3": 1, + "4": 119, + "5": 1, + "6": 1, + "7": 37, + "8": 1, + "9": 1, + "10": 124, + "11": 1, + "12": 1, + "13": 168, + "14": 1, + "15": 1, + "16": 234, + "17": 1, + "18": 1, + "19": 2, + "20": 2, + "21": 2, + "22": 2, + "23": 2, + "24": 2, + "25": 2, + "26": 2, + "27": 0 + }, + "b": {"1": [2, 0]}, + "f": { + "1": 9, + "2": 1, + "3": 119, + "4": 1, + "5": 37, + "6": 1, + "7": 124, + "8": 1, + "9": 168, + "10": 1, + "11": 234, + "12": 1, + "13": 2 + }, + "fnMap": { + "1": { + "name": "getLendingPool", + "line": 37, + "loc": {"start": {"line": 37, "column": 2}, "end": {"line": 39, "column": 2}} + }, + "2": { + "name": "setLendingPoolImpl", + "line": 45, + "loc": {"start": {"line": 45, "column": 2}, "end": {"line": 48, "column": 2}} + }, + "3": { + "name": "getLendingPoolConfigurator", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 56, "column": 2}} + }, + "4": { + "name": "setLendingPoolConfiguratorImpl", + "line": 62, + "loc": {"start": {"line": 62, "column": 2}, "end": {"line": 65, "column": 2}} + }, + "5": { + "name": "getLendingPoolCollateralManager", + "line": 74, + "loc": {"start": {"line": 74, "column": 2}, "end": {"line": 76, "column": 2}} + }, + "6": { + "name": "setLendingPoolCollateralManager", + "line": 82, + "loc": {"start": {"line": 82, "column": 2}, "end": {"line": 85, "column": 2}} + }, + "7": { + "name": "getAaveAdmin", + "line": 92, + "loc": {"start": {"line": 92, "column": 2}, "end": {"line": 94, "column": 2}} + }, + "8": { + "name": "setAaveAdmin", + "line": 96, + "loc": {"start": {"line": 96, "column": 2}, "end": {"line": 99, "column": 2}} + }, + "9": { + "name": "getPriceOracle", + "line": 101, + "loc": {"start": {"line": 101, "column": 2}, "end": {"line": 103, "column": 2}} + }, + "10": { + "name": "setPriceOracle", + "line": 105, + "loc": {"start": {"line": 105, "column": 2}, "end": {"line": 108, "column": 2}} + }, + "11": { + "name": "getLendingRateOracle", + "line": 110, + "loc": {"start": {"line": 110, "column": 2}, "end": {"line": 112, "column": 2}} + }, + "12": { + "name": "setLendingRateOracle", + "line": 114, + "loc": {"start": {"line": 114, "column": 2}, "end": {"line": 117, "column": 2}} + }, + "13": { + "name": "_updateImpl", + "line": 124, + "loc": {"start": {"line": 124, "column": 2}, "end": {"line": 140, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 38, "column": 4}, "end": {"line": 38, "column": 35}}, + "2": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 34}}, + "3": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 33}}, + "4": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 48}}, + "5": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 55}}, + "6": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 53}}, + "7": {"start": {"line": 75, "column": 4}, "end": {"line": 75, "column": 54}}, + "8": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 56}}, + "9": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 53}}, + "10": {"start": {"line": 93, "column": 4}, "end": {"line": 93, "column": 33}}, + "11": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 37}}, + "12": {"start": {"line": 98, "column": 4}, "end": {"line": 98, "column": 36}}, + "13": {"start": {"line": 102, "column": 4}, "end": {"line": 102, "column": 35}}, + "14": {"start": {"line": 106, "column": 4}, "end": {"line": 106, "column": 41}}, + "15": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 40}}, + "16": {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 42}}, + "17": {"start": {"line": 115, "column": 4}, "end": {"line": 115, "column": 54}}, + "18": {"start": {"line": 116, "column": 4}, "end": {"line": 116, "column": 52}}, + "19": {"start": {"line": 125, "column": 4}, "end": {"line": 125, "column": 58}}, + "20": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 4874}}, + "21": {"start": {"line": 130, "column": 4}, "end": {"line": 130, "column": 87}}, + "22": {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 5078}}, + "23": {"start": {"line": 133, "column": 6}, "end": {"line": 133, "column": 56}}, + "24": {"start": {"line": 134, "column": 6}, "end": {"line": 134, "column": 56}}, + "25": {"start": {"line": 135, "column": 6}, "end": {"line": 135, "column": 36}}, + "26": {"start": {"line": 136, "column": 6}, "end": {"line": 136, "column": 43}}, + "27": {"start": {"line": 138, "column": 6}, "end": {"line": 138, "column": 47}} + }, + "branchMap": { + "1": { + "line": 132, + "type": "if", + "locations": [ + {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 4}}, + {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 4}} + ] + } + } + }, + "contracts/configuration/LendingPoolAddressesProviderRegistry.sol": { + "l": { + "31": 1, + "39": 3, + "41": 3, + "43": 3, + "44": 5, + "45": 4, + "49": 3, + "57": 2, + "58": 2, + "59": 2, + "67": 1, + "68": 1, + "69": 1, + "77": 2, + "78": 1, + "79": 0, + "83": 2 + }, + "path": "/src/contracts/configuration/LendingPoolAddressesProviderRegistry.sol", + "s": { + "1": 1, + "2": 3, + "3": 3, + "4": 3, + "5": 5, + "6": 4, + "7": 3, + "8": 2, + "9": 2, + "10": 2, + "11": 1, + "12": 1, + "13": 1, + "14": 2, + "15": 1, + "16": 0, + "17": 2 + }, + "b": {"1": [4, 1], "2": [1, 0], "3": [0, 1]}, + "f": {"1": 1, "2": 3, "3": 2, "4": 1, "5": 2}, + "fnMap": { + "1": { + "name": "isAddressesProviderRegistered", + "line": 25, + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 32, "column": 2}} + }, + "2": { + "name": "getAddressesProvidersList", + "line": 38, + "loc": {"start": {"line": 38, "column": 2}, "end": {"line": 50, "column": 2}} + }, + "3": { + "name": "registerAddressesProvider", + "line": 56, + "loc": {"start": {"line": 56, "column": 2}, "end": {"line": 60, "column": 2}} + }, + "4": { + "name": "unregisterAddressesProvider", + "line": 66, + "loc": {"start": {"line": 66, "column": 2}, "end": {"line": 70, "column": 2}} + }, + "5": { + "name": "_addToAddressesProvidersList", + "line": 76, + "loc": {"start": {"line": 76, "column": 2}, "end": {"line": 84, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 39}}, + "2": {"start": {"line": 39, "column": 4}, "end": {"line": 39, "column": 53}}, + "3": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 63}}, + "4": {"start": {"line": 43, "column": 4}, "end": {"line": 43, "column": 1323}}, + "5": {"start": {"line": 44, "column": 6}, "end": {"line": 44, "column": 1393}}, + "6": {"start": {"line": 45, "column": 8}, "end": {"line": 45, "column": 53}}, + "7": {"start": {"line": 49, "column": 4}, "end": {"line": 49, "column": 26}}, + "8": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 36}}, + "9": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 41}}, + "10": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 46}}, + "11": {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 76}}, + "12": {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 35}}, + "13": {"start": {"line": 69, "column": 4}, "end": {"line": 69, "column": 48}}, + "14": {"start": {"line": 77, "column": 4}, "end": {"line": 77, "column": 2552}}, + "15": {"start": {"line": 78, "column": 6}, "end": {"line": 78, "column": 2622}}, + "16": {"start": {"line": 79, "column": 8}, "end": {"line": 79, "column": 14}}, + "17": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 40}} + }, + "branchMap": { + "1": { + "line": 44, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 6}, "end": {"line": 44, "column": 6}}, + {"start": {"line": 44, "column": 6}, "end": {"line": 44, "column": 6}} + ] + }, + "2": { + "line": 67, + "type": "if", + "locations": [ + {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 4}}, + {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 4}} + ] + }, + "3": { + "line": 78, + "type": "if", + "locations": [ + {"start": {"line": 78, "column": 6}, "end": {"line": 78, "column": 6}}, + {"start": {"line": 78, "column": 6}, "end": {"line": 78, "column": 6}} + ] + } + } + }, + "contracts/flashloan/base/FlashLoanReceiverBase.sol": { + "l": {"18": 3}, + "path": "/src/contracts/flashloan/base/FlashLoanReceiverBase.sol", + "s": {"1": 3}, + "b": {}, + "f": {"1": 3}, + "fnMap": { + "1": { + "name": "constructor", + "line": 17, + "loc": {"start": {"line": 17, "column": 2}, "end": {"line": 19, "column": 2}} + } + }, + "statementMap": {"1": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 32}}}, + "branchMap": {} + }, + "contracts/flashloan/interfaces/IFlashLoanReceiver.sol": { + "l": {}, + "path": "/src/contracts/flashloan/interfaces/IFlashLoanReceiver.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/lendingpool/DefaultReserveInterestRateStrategy.sol": { + "l": { + "62": 51, + "63": 51, + "64": 51, + "65": 51, + "66": 51, + "67": 51, + "75": 0, + "79": 0, + "83": 0, + "87": 0, + "91": 0, + "95": 7, + "137": 234, + "139": 234, + "140": 234, + "141": 234, + "142": 234, + "144": 234, + "148": 234, + "151": 234, + "152": 4, + "156": 4, + "160": 4, + "164": 230, + "167": 230, + "172": 234, + "181": 234, + "198": 234, + "200": 234, + "202": 86, + "206": 86, + "210": 86, + "214": 86 + }, + "path": "/src/contracts/lendingpool/DefaultReserveInterestRateStrategy.sol", + "s": { + "1": 51, + "2": 51, + "3": 51, + "4": 51, + "5": 51, + "6": 51, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 7, + "13": 234, + "14": 234, + "15": 234, + "16": 234, + "17": 234, + "18": 234, + "19": 234, + "20": 234, + "21": 4, + "22": 4, + "23": 4, + "24": 230, + "25": 230, + "26": 234, + "27": 234, + "28": 234, + "29": 234, + "30": 148, + "31": 86, + "32": 86, + "33": 86, + "34": 86 + }, + "b": {"1": [4, 230], "2": [148, 86]}, + "f": {"1": 51, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 7, "8": 234, "9": 234}, + "fnMap": { + "1": { + "name": "constructor", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 68, "column": 2}} + }, + "2": { + "name": "variableRateSlope1", + "line": 74, + "loc": {"start": {"line": 74, "column": 2}, "end": {"line": 76, "column": 2}} + }, + "3": { + "name": "variableRateSlope2", + "line": 78, + "loc": {"start": {"line": 78, "column": 2}, "end": {"line": 80, "column": 2}} + }, + "4": { + "name": "stableRateSlope1", + "line": 82, + "loc": {"start": {"line": 82, "column": 2}, "end": {"line": 84, "column": 2}} + }, + "5": { + "name": "stableRateSlope2", + "line": 86, + "loc": {"start": {"line": 86, "column": 2}, "end": {"line": 88, "column": 2}} + }, + "6": { + "name": "baseVariableBorrowRate", + "line": 90, + "loc": {"start": {"line": 90, "column": 2}, "end": {"line": 92, "column": 2}} + }, + "7": { + "name": "getMaxVariableBorrowRate", + "line": 94, + "loc": {"start": {"line": 94, "column": 2}, "end": {"line": 96, "column": 2}} + }, + "8": { + "name": "calculateInterestRates", + "line": 119, + "loc": {"start": {"line": 119, "column": 2}, "end": {"line": 182, "column": 2}} + }, + "9": { + "name": "_getOverallBorrowRate", + "line": 192, + "loc": {"start": {"line": 192, "column": 2}, "end": {"line": 215, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 31}}, + "2": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 51}}, + "3": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 43}}, + "4": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 43}}, + "5": {"start": {"line": 66, "column": 4}, "end": {"line": 66, "column": 39}}, + "6": {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 39}}, + "7": {"start": {"line": 75, "column": 4}, "end": {"line": 75, "column": 30}}, + "8": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 30}}, + "9": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 28}}, + "10": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 28}}, + "11": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 34}}, + "12": {"start": {"line": 95, "column": 4}, "end": {"line": 95, "column": 84}}, + "13": {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 42}}, + "14": {"start": {"line": 139, "column": 4}, "end": {"line": 139, "column": 61}}, + "15": {"start": {"line": 140, "column": 4}, "end": {"line": 140, "column": 37}}, + "16": {"start": {"line": 141, "column": 4}, "end": {"line": 141, "column": 35}}, + "17": {"start": {"line": 142, "column": 4}, "end": {"line": 142, "column": 32}}, + "18": {"start": {"line": 144, "column": 4}, "end": {"line": 144, "column": 5183}}, + "19": {"start": {"line": 148, "column": 4}, "end": {"line": 148, "column": 5283}}, + "20": {"start": {"line": 151, "column": 4}, "end": {"line": 151, "column": 5387}}, + "21": {"start": {"line": 152, "column": 6}, "end": {"line": 152, "column": 5446}}, + "22": {"start": {"line": 156, "column": 6}, "end": {"line": 156, "column": 5584}}, + "23": {"start": {"line": 160, "column": 6}, "end": {"line": 160, "column": 5749}}, + "24": {"start": {"line": 164, "column": 6}, "end": {"line": 164, "column": 5927}}, + "25": {"start": {"line": 167, "column": 6}, "end": {"line": 167, "column": 6090}}, + "26": {"start": {"line": 172, "column": 4}, "end": {"line": 172, "column": 6320}}, + "27": {"start": {"line": 181, "column": 4}, "end": {"line": 181, "column": 100}}, + "28": {"start": {"line": 198, "column": 4}, "end": {"line": 198, "column": 65}}, + "29": {"start": {"line": 200, "column": 4}, "end": {"line": 200, "column": 35}}, + "30": {"start": {"line": 200, "column": 27}, "end": {"line": 200, "column": 35}}, + "31": {"start": {"line": 202, "column": 4}, "end": {"line": 202, "column": 7483}}, + "32": {"start": {"line": 206, "column": 4}, "end": {"line": 206, "column": 7595}}, + "33": {"start": {"line": 210, "column": 4}, "end": {"line": 210, "column": 7708}}, + "34": {"start": {"line": 214, "column": 4}, "end": {"line": 214, "column": 28}} + }, + "branchMap": { + "1": { + "line": 151, + "type": "if", + "locations": [ + {"start": {"line": 151, "column": 4}, "end": {"line": 151, "column": 4}}, + {"start": {"line": 151, "column": 4}, "end": {"line": 151, "column": 4}} + ] + }, + "2": { + "line": 200, + "type": "if", + "locations": [ + {"start": {"line": 200, "column": 4}, "end": {"line": 200, "column": 4}}, + {"start": {"line": 200, "column": 4}, "end": {"line": 200, "column": 4}} + ] + } + } + }, + "contracts/lendingpool/LendingPool.sol": { + "l": { + "55": 118, + "68": 300, + "72": 1, + "81": 1, + "97": 105, + "98": 104, + "100": 104, + "102": 102, + "104": 102, + "105": 102, + "107": 102, + "108": 102, + "109": 93, + "112": 102, + "115": 102, + "117": 102, + "126": 26, + "127": 25, + "129": 25, + "131": 25, + "133": 25, + "136": 25, + "137": 19, + "140": 25, + "150": 22, + "152": 22, + "154": 22, + "155": 18, + "158": 22, + "160": 22, + "177": 3, + "194": 5, + "195": 4, + "197": 3, + "198": 3, + "217": 62, + "218": 61, + "220": 61, + "221": 4, + "223": 4, + "229": 59, + "257": 21, + "259": 20, + "261": 20, + "263": 20, + "266": 20, + "270": 20, + "271": 5, + "274": 20, + "283": 17, + "286": 17, + "287": 9, + "289": 8, + "296": 17, + "297": 17, + "299": 17, + "300": 12, + "303": 17, + "305": 17, + "314": 5, + "315": 4, + "317": 4, + "319": 4, + "321": 4, + "329": 2, + "331": 2, + "333": 1, + "334": 1, + "341": 1, + "346": 1, + "353": 2, + "355": 2, + "367": 8, + "369": 7, + "371": 7, + "372": 7, + "373": 7, + "375": 7, + "378": 7, + "379": 7, + "380": 7, + "387": 7, + "388": 7, + "394": 7, + "401": 1, + "403": 1, + "404": 1, + "406": 1, + "408": 1, + "418": 8, + "419": 7, + "421": 7, + "430": 6, + "432": 6, + "433": 2, + "435": 4, + "455": 11, + "456": 10, + "459": 10, + "469": 10, + "471": 10, + "473": 10, + "475": 5, + "499": 21, + "500": 20, + "501": 18, + "503": 18, + "506": 18, + "517": 18, + "519": 16, + "521": 16, + "522": 5, + "525": 11, + "555": 14, + "556": 13, + "557": 13, + "559": 13, + "561": 13, + "563": 13, + "565": 11, + "567": 11, + "570": 11, + "573": 9, + "575": 9, + "577": 9, + "578": 5, + "580": 3, + "581": 3, + "582": 3, + "584": 3, + "587": 4, + "617": 10, + "618": 9, + "621": 9, + "631": 9, + "633": 7, + "635": 7, + "636": 5, + "662": 97, + "664": 97, + "689": 710, + "691": 710, + "715": 363, + "717": 363, + "744": 21, + "758": 21, + "781": 343, + "783": 343, + "784": 343, + "785": 343, + "786": 343, + "787": 343, + "788": 343, + "789": 343, + "792": 343, + "796": 3, + "800": 0, + "816": 17, + "817": 17, + "823": 17, + "836": 0, + "837": 0, + "841": 75, + "842": 75, + "851": 75, + "872": 63, + "873": 63, + "875": 63, + "877": 63, + "881": 63, + "894": 50, + "895": 50, + "896": 37, + "899": 50, + "902": 50, + "904": 50, + "907": 25, + "909": 25, + "915": 25, + "922": 50, + "929": 50, + "930": 47, + "933": 50, + "950": 17, + "951": 17, + "952": 17, + "953": 136, + "954": 0, + "956": 17, + "957": 17, + "958": 17, + "968": 648, + "982": 810, + "997": 4, + "998": 3, + "1015": 26, + "1017": 26, + "1018": 26, + "1019": 13, + "1021": 13, + "1029": 0 + }, + "path": "/src/contracts/lendingpool/LendingPool.sol", + "s": { + "1": 118, + "2": 300, + "3": 1, + "4": 1, + "5": 105, + "6": 104, + "7": 104, + "8": 102, + "9": 102, + "10": 102, + "11": 102, + "12": 102, + "13": 93, + "14": 102, + "15": 102, + "16": 102, + "17": 26, + "18": 25, + "19": 25, + "20": 25, + "21": 25, + "22": 25, + "23": 19, + "24": 25, + "25": 22, + "26": 22, + "27": 22, + "28": 18, + "29": 22, + "30": 22, + "31": 3, + "32": 5, + "33": 4, + "34": 3, + "35": 3, + "36": 62, + "37": 61, + "38": 61, + "39": 4, + "40": 4, + "41": 59, + "42": 21, + "43": 20, + "44": 20, + "45": 20, + "46": 20, + "47": 20, + "48": 5, + "49": 20, + "50": 17, + "51": 17, + "52": 9, + "53": 8, + "54": 17, + "55": 17, + "56": 17, + "57": 12, + "58": 17, + "59": 17, + "60": 5, + "61": 4, + "62": 4, + "63": 4, + "64": 4, + "65": 2, + "66": 2, + "67": 1, + "68": 1, + "69": 1, + "70": 1, + "71": 2, + "72": 2, + "73": 8, + "74": 7, + "75": 7, + "76": 7, + "77": 7, + "78": 7, + "79": 7, + "80": 7, + "81": 7, + "82": 7, + "83": 7, + "84": 7, + "85": 1, + "86": 1, + "87": 1, + "88": 1, + "89": 1, + "90": 8, + "91": 7, + "92": 7, + "93": 6, + "94": 6, + "95": 2, + "96": 4, + "97": 11, + "98": 10, + "99": 10, + "100": 10, + "101": 10, + "102": 10, + "103": 5, + "104": 21, + "105": 20, + "106": 18, + "107": 18, + "108": 18, + "109": 18, + "110": 16, + "111": 16, + "112": 5, + "113": 11, + "114": 14, + "115": 13, + "116": 13, + "117": 13, + "118": 13, + "119": 13, + "120": 11, + "121": 11, + "122": 11, + "123": 9, + "124": 9, + "125": 9, + "126": 5, + "127": 3, + "128": 3, + "129": 3, + "130": 3, + "131": 4, + "132": 10, + "133": 9, + "134": 9, + "135": 9, + "136": 7, + "137": 7, + "138": 5, + "139": 97, + "140": 97, + "141": 710, + "142": 710, + "143": 363, + "144": 363, + "145": 21, + "146": 21, + "147": 343, + "148": 343, + "149": 343, + "150": 343, + "151": 343, + "152": 343, + "153": 343, + "154": 343, + "155": 343, + "156": 3, + "157": 17, + "158": 17, + "159": 17, + "160": 0, + "161": 0, + "162": 75, + "163": 75, + "164": 75, + "165": 63, + "166": 63, + "167": 63, + "168": 63, + "169": 63, + "170": 50, + "171": 50, + "172": 37, + "173": 50, + "174": 50, + "175": 50, + "176": 25, + "177": 25, + "178": 25, + "179": 50, + "180": 50, + "181": 47, + "182": 50, + "183": 17, + "184": 17, + "185": 17, + "186": 136, + "187": 0, + "188": 17, + "189": 17, + "190": 17, + "191": 648, + "192": 810, + "193": 4, + "194": 3, + "195": 26, + "196": 26, + "197": 26, + "198": 13, + "199": 13, + "200": 0 + }, + "b": { + "1": [118, 0], + "2": [287, 13], + "3": [93, 9], + "4": [19, 6], + "5": [18, 4], + "6": [4, 57], + "7": [5, 15], + "8": [9, 8], + "9": [12, 5], + "10": [1, 1], + "11": [1, 6], + "12": [2, 4], + "13": [10, 0], + "14": [5, 5], + "15": [18, 2], + "16": [16, 2], + "17": [5, 11], + "18": [5, 4], + "19": [7, 2], + "20": [5, 2], + "21": [37, 13], + "22": [25, 25], + "23": [47, 3], + "24": [17, 0], + "25": [0, 136], + "26": [17, 0], + "27": [13, 13] + }, + "f": { + "1": 118, + "2": 300, + "3": 1, + "4": 1, + "5": 105, + "6": 26, + "7": 3, + "8": 5, + "9": 62, + "10": 21, + "11": 5, + "12": 8, + "13": 8, + "14": 11, + "15": 21, + "16": 14, + "17": 10, + "18": 97, + "19": 710, + "20": 363, + "21": 21, + "22": 343, + "23": 3, + "24": 17, + "25": 0, + "26": 75, + "27": 75, + "28": 63, + "29": 17, + "30": 648, + "31": 810, + "32": 4, + "33": 26, + "34": 0 + }, + "fnMap": { + "1": { + "name": "_onlyLendingPoolConfigurator", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 59, "column": 2}} + }, + "2": { + "name": "_whenNotPaused", + "line": 67, + "loc": {"start": {"line": 67, "column": 2}, "end": {"line": 69, "column": 2}} + }, + "3": { + "name": "getRevision", + "line": 71, + "loc": {"start": {"line": 71, "column": 2}, "end": {"line": 73, "column": 2}} + }, + "4": { + "name": "initialize", + "line": 80, + "loc": {"start": {"line": 80, "column": 2}, "end": {"line": 82, "column": 2}} + }, + "5": { + "name": "deposit", + "line": 91, + "loc": {"start": {"line": 91, "column": 2}, "end": {"line": 118, "column": 2}} + }, + "6": { + "name": "withdraw", + "line": 125, + "loc": {"start": {"line": 125, "column": 2}, "end": {"line": 161, "column": 2}} + }, + "7": { + "name": "getBorrowAllowance", + "line": 171, + "loc": {"start": {"line": 171, "column": 2}, "end": {"line": 179, "column": 2}} + }, + "8": { + "name": "delegateBorrowAllowance", + "line": 188, + "loc": {"start": {"line": 188, "column": 2}, "end": {"line": 199, "column": 2}} + }, + "9": { + "name": "borrow", + "line": 210, + "loc": {"start": {"line": 210, "column": 2}, "end": {"line": 241, "column": 2}} + }, + "10": { + "name": "repay", + "line": 251, + "loc": {"start": {"line": 251, "column": 2}, "end": {"line": 306, "column": 2}} + }, + "11": { + "name": "swapBorrowRateMode", + "line": 313, + "loc": {"start": {"line": 313, "column": 2}, "end": {"line": 356, "column": 2}} + }, + "12": { + "name": "rebalanceStableBorrowRate", + "line": 365, + "loc": {"start": {"line": 365, "column": 2}, "end": {"line": 410, "column": 2}} + }, + "13": { + "name": "setUserUseReserveAsCollateral", + "line": 417, + "loc": {"start": {"line": 417, "column": 2}, "end": {"line": 437, "column": 2}} + }, + "14": { + "name": "liquidationCall", + "line": 448, + "loc": {"start": {"line": 448, "column": 2}, "end": {"line": 477, "column": 2}} + }, + "15": { + "name": "repayWithCollateral", + "line": 491, + "loc": {"start": {"line": 491, "column": 2}, "end": {"line": 526, "column": 2}} + }, + "16": { + "name": "flashLoan", + "line": 547, + "loc": {"start": {"line": 547, "column": 2}, "end": {"line": 600, "column": 2}} + }, + "17": { + "name": "swapLiquidity", + "line": 610, + "loc": {"start": {"line": 610, "column": 2}, "end": {"line": 638, "column": 2}} + }, + "18": { + "name": "getReserveConfigurationData", + "line": 644, + "loc": {"start": {"line": 644, "column": 2}, "end": {"line": 677, "column": 2}} + }, + "19": { + "name": "getReserveTokensAddresses", + "line": 679, + "loc": {"start": {"line": 679, "column": 2}, "end": {"line": 696, "column": 2}} + }, + "20": { + "name": "getReserveData", + "line": 698, + "loc": {"start": {"line": 698, "column": 2}, "end": {"line": 729, "column": 2}} + }, + "21": { + "name": "getUserAccountData", + "line": 731, + "loc": {"start": {"line": 731, "column": 2}, "end": {"line": 763, "column": 2}} + }, + "22": { + "name": "getUserReserveData", + "line": 765, + "loc": {"start": {"line": 765, "column": 2}, "end": {"line": 793, "column": 2}} + }, + "23": { + "name": "getReserves", + "line": 795, + "loc": {"start": {"line": 795, "column": 2}, "end": {"line": 797, "column": 2}} + }, + "24": { + "name": "initReserve", + "line": 809, + "loc": {"start": {"line": 809, "column": 2}, "end": {"line": 824, "column": 2}} + }, + "25": { + "name": "setReserveInterestRateStrategyAddress", + "line": 832, + "loc": {"start": {"line": 832, "column": 2}, "end": {"line": 838, "column": 2}} + }, + "26": { + "name": "setConfiguration", + "line": 840, + "loc": {"start": {"line": 840, "column": 2}, "end": {"line": 843, "column": 2}} + }, + "27": { + "name": "getConfiguration", + "line": 845, + "loc": {"start": {"line": 845, "column": 2}, "end": {"line": 852, "column": 2}} + }, + "28": { + "name": "_executeBorrow", + "line": 871, + "loc": {"start": {"line": 871, "column": 2}, "end": {"line": 944, "column": 2}} + }, + "29": { + "name": "_addReserveToList", + "line": 949, + "loc": {"start": {"line": 949, "column": 2}, "end": {"line": 960, "column": 2}} + }, + "30": { + "name": "getReserveNormalizedIncome", + "line": 967, + "loc": {"start": {"line": 967, "column": 2}, "end": {"line": 969, "column": 2}} + }, + "31": { + "name": "getReserveNormalizedVariableDebt", + "line": 976, + "loc": {"start": {"line": 976, "column": 2}, "end": {"line": 983, "column": 2}} + }, + "32": { + "name": "balanceDecreaseAllowed", + "line": 992, + "loc": {"start": {"line": 992, "column": 2}, "end": {"line": 1008, "column": 2}} + }, + "33": { + "name": "setPause", + "line": 1014, + "loc": {"start": {"line": 1014, "column": 2}, "end": {"line": 1023, "column": 2}} + }, + "34": { + "name": "paused", + "line": 1028, + "loc": {"start": {"line": 1028, "column": 2}, "end": {"line": 1030, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 2946}}, + "2": {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 38}}, + "3": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 31}}, + "4": {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 32}}, + "5": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 19}}, + "6": {"start": {"line": 98, "column": 4}, "end": {"line": 98, "column": 63}}, + "7": {"start": {"line": 100, "column": 4}, "end": {"line": 100, "column": 51}}, + "8": {"start": {"line": 102, "column": 4}, "end": {"line": 102, "column": 42}}, + "9": {"start": {"line": 104, "column": 4}, "end": {"line": 104, "column": 24}}, + "10": {"start": {"line": 105, "column": 4}, "end": {"line": 105, "column": 56}}, + "11": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 68}}, + "12": {"start": {"line": 108, "column": 4}, "end": {"line": 108, "column": 4605}}, + "13": {"start": {"line": 109, "column": 6}, "end": {"line": 109, "column": 68}}, + "14": {"start": {"line": 112, "column": 4}, "end": {"line": 112, "column": 67}}, + "15": {"start": {"line": 115, "column": 4}, "end": {"line": 115, "column": 61}}, + "16": {"start": {"line": 117, "column": 4}, "end": {"line": 117, "column": 69}}, + "17": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 19}}, + "18": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 63}}, + "19": {"start": {"line": 129, "column": 4}, "end": {"line": 129, "column": 42}}, + "20": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 63}}, + "21": {"start": {"line": 133, "column": 4}, "end": {"line": 133, "column": 37}}, + "22": {"start": {"line": 136, "column": 4}, "end": {"line": 136, "column": 5500}}, + "23": {"start": {"line": 137, "column": 6}, "end": {"line": 137, "column": 35}}, + "24": {"start": {"line": 140, "column": 4}, "end": {"line": 140, "column": 5584}}, + "25": {"start": {"line": 150, "column": 4}, "end": {"line": 150, "column": 24}}, + "26": {"start": {"line": 152, "column": 4}, "end": {"line": 152, "column": 66}}, + "27": {"start": {"line": 154, "column": 4}, "end": {"line": 154, "column": 5896}}, + "28": {"start": {"line": 155, "column": 6}, "end": {"line": 155, "column": 69}}, + "29": {"start": {"line": 158, "column": 4}, "end": {"line": 158, "column": 89}}, + "30": {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 44}}, + "31": {"start": {"line": 177, "column": 4}, "end": {"line": 177, "column": 6759}}, + "32": {"start": {"line": 194, "column": 4}, "end": {"line": 194, "column": 19}}, + "33": {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 78}}, + "34": {"start": {"line": 197, "column": 4}, "end": {"line": 197, "column": 57}}, + "35": {"start": {"line": 198, "column": 4}, "end": {"line": 198, "column": 84}}, + "36": {"start": {"line": 217, "column": 4}, "end": {"line": 217, "column": 19}}, + "37": {"start": {"line": 218, "column": 4}, "end": {"line": 218, "column": 63}}, + "38": {"start": {"line": 220, "column": 4}, "end": {"line": 220, "column": 8253}}, + "39": {"start": {"line": 221, "column": 6}, "end": {"line": 221, "column": 71}}, + "40": {"start": {"line": 223, "column": 6}, "end": {"line": 223, "column": 8367}}, + "41": {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 8567}}, + "42": {"start": {"line": 257, "column": 4}, "end": {"line": 257, "column": 19}}, + "43": {"start": {"line": 259, "column": 4}, "end": {"line": 259, "column": 63}}, + "44": {"start": {"line": 261, "column": 4}, "end": {"line": 261, "column": 96}}, + "45": {"start": {"line": 263, "column": 4}, "end": {"line": 263, "column": 92}}, + "46": {"start": {"line": 266, "column": 4}, "end": {"line": 266, "column": 9784}}, + "47": {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 9895}}, + "48": {"start": {"line": 271, "column": 6}, "end": {"line": 271, "column": 27}}, + "49": {"start": {"line": 274, "column": 4}, "end": {"line": 274, "column": 9997}}, + "50": {"start": {"line": 283, "column": 4}, "end": {"line": 283, "column": 24}}, + "51": {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 10224}}, + "52": {"start": {"line": 287, "column": 6}, "end": {"line": 287, "column": 85}}, + "53": {"start": {"line": 289, "column": 6}, "end": {"line": 289, "column": 10397}}, + "54": {"start": {"line": 296, "column": 4}, "end": {"line": 296, "column": 42}}, + "55": {"start": {"line": 297, "column": 4}, "end": {"line": 297, "column": 63}}, + "56": {"start": {"line": 299, "column": 4}, "end": {"line": 299, "column": 10664}}, + "57": {"start": {"line": 300, "column": 6}, "end": {"line": 300, "column": 61}}, + "58": {"start": {"line": 303, "column": 4}, "end": {"line": 303, "column": 68}}, + "59": {"start": {"line": 305, "column": 4}, "end": {"line": 305, "column": 60}}, + "60": {"start": {"line": 314, "column": 4}, "end": {"line": 314, "column": 19}}, + "61": {"start": {"line": 315, "column": 4}, "end": {"line": 315, "column": 63}}, + "62": {"start": {"line": 317, "column": 4}, "end": {"line": 317, "column": 96}}, + "63": {"start": {"line": 319, "column": 4}, "end": {"line": 319, "column": 92}}, + "64": {"start": {"line": 321, "column": 4}, "end": {"line": 321, "column": 11549}}, + "65": {"start": {"line": 329, "column": 4}, "end": {"line": 329, "column": 24}}, + "66": {"start": {"line": 331, "column": 4}, "end": {"line": 331, "column": 11735}}, + "67": {"start": {"line": 333, "column": 6}, "end": {"line": 333, "column": 82}}, + "68": {"start": {"line": 334, "column": 6}, "end": {"line": 334, "column": 11951}}, + "69": {"start": {"line": 341, "column": 6}, "end": {"line": 341, "column": 12138}}, + "70": {"start": {"line": 346, "column": 6}, "end": {"line": 346, "column": 12290}}, + "71": {"start": {"line": 353, "column": 4}, "end": {"line": 353, "column": 66}}, + "72": {"start": {"line": 355, "column": 4}, "end": {"line": 355, "column": 32}}, + "73": {"start": {"line": 367, "column": 4}, "end": {"line": 367, "column": 19}}, + "74": {"start": {"line": 369, "column": 4}, "end": {"line": 369, "column": 63}}, + "75": {"start": {"line": 371, "column": 4}, "end": {"line": 371, "column": 67}}, + "76": {"start": {"line": 372, "column": 4}, "end": {"line": 372, "column": 71}}, + "77": {"start": {"line": 373, "column": 4}, "end": {"line": 373, "column": 49}}, + "78": {"start": {"line": 375, "column": 4}, "end": {"line": 375, "column": 73}}, + "79": {"start": {"line": 378, "column": 4}, "end": {"line": 378, "column": 104}}, + "80": {"start": {"line": 379, "column": 4}, "end": {"line": 379, "column": 82}}, + "81": {"start": {"line": 380, "column": 4}, "end": {"line": 380, "column": 13692}}, + "82": {"start": {"line": 387, "column": 4}, "end": {"line": 387, "column": 63}}, + "83": {"start": {"line": 388, "column": 4}, "end": {"line": 388, "column": 14007}}, + "84": {"start": {"line": 394, "column": 4}, "end": {"line": 394, "column": 14137}}, + "85": {"start": {"line": 401, "column": 4}, "end": {"line": 401, "column": 24}}, + "86": {"start": {"line": 403, "column": 4}, "end": {"line": 403, "column": 77}}, + "87": {"start": {"line": 404, "column": 4}, "end": {"line": 404, "column": 110}}, + "88": {"start": {"line": 406, "column": 4}, "end": {"line": 406, "column": 58}}, + "89": {"start": {"line": 408, "column": 4}, "end": {"line": 408, "column": 47}}, + "90": {"start": {"line": 418, "column": 4}, "end": {"line": 418, "column": 19}}, + "91": {"start": {"line": 419, "column": 4}, "end": {"line": 419, "column": 63}}, + "92": {"start": {"line": 421, "column": 4}, "end": {"line": 421, "column": 15152}}, + "93": {"start": {"line": 430, "column": 4}, "end": {"line": 430, "column": 77}}, + "94": {"start": {"line": 432, "column": 4}, "end": {"line": 432, "column": 15436}}, + "95": {"start": {"line": 433, "column": 6}, "end": {"line": 433, "column": 60}}, + "96": {"start": {"line": 435, "column": 6}, "end": {"line": 435, "column": 61}}, + "97": {"start": {"line": 455, "column": 4}, "end": {"line": 455, "column": 19}}, + "98": {"start": {"line": 456, "column": 4}, "end": {"line": 456, "column": 84}}, + "99": {"start": {"line": 459, "column": 4}, "end": {"line": 459, "column": 16409}}, + "100": {"start": {"line": 469, "column": 4}, "end": {"line": 469, "column": 51}}, + "101": {"start": {"line": 471, "column": 4}, "end": {"line": 471, "column": 93}}, + "102": {"start": {"line": 473, "column": 4}, "end": {"line": 473, "column": 16839}}, + "103": {"start": {"line": 475, "column": 6}, "end": {"line": 475, "column": 52}}, + "104": {"start": {"line": 499, "column": 4}, "end": {"line": 499, "column": 19}}, + "105": {"start": {"line": 500, "column": 4}, "end": {"line": 500, "column": 67}}, + "106": {"start": {"line": 501, "column": 4}, "end": {"line": 501, "column": 33}}, + "107": {"start": {"line": 503, "column": 4}, "end": {"line": 503, "column": 84}}, + "108": {"start": {"line": 506, "column": 4}, "end": {"line": 506, "column": 18211}}, + "109": {"start": {"line": 517, "column": 4}, "end": {"line": 517, "column": 56}}, + "110": {"start": {"line": 519, "column": 4}, "end": {"line": 519, "column": 93}}, + "111": {"start": {"line": 521, "column": 4}, "end": {"line": 521, "column": 18675}}, + "112": {"start": {"line": 522, "column": 6}, "end": {"line": 522, "column": 52}}, + "113": {"start": {"line": 525, "column": 4}, "end": {"line": 525, "column": 34}}, + "114": {"start": {"line": 555, "column": 4}, "end": {"line": 555, "column": 19}}, + "115": {"start": {"line": 556, "column": 4}, "end": {"line": 556, "column": 63}}, + "116": {"start": {"line": 557, "column": 4}, "end": {"line": 557, "column": 34}}, + "117": {"start": {"line": 559, "column": 4}, "end": {"line": 559, "column": 45}}, + "118": {"start": {"line": 561, "column": 4}, "end": {"line": 561, "column": 64}}, + "119": {"start": {"line": 563, "column": 4}, "end": {"line": 563, "column": 56}}, + "120": {"start": {"line": 565, "column": 4}, "end": {"line": 565, "column": 80}}, + "121": {"start": {"line": 567, "column": 4}, "end": {"line": 567, "column": 54}}, + "122": {"start": {"line": 570, "column": 4}, "end": {"line": 570, "column": 76}}, + "123": {"start": {"line": 573, "column": 4}, "end": {"line": 573, "column": 70}}, + "124": {"start": {"line": 575, "column": 4}, "end": {"line": 575, "column": 52}}, + "125": {"start": {"line": 577, "column": 4}, "end": {"line": 577, "column": 20770}}, + "126": {"start": {"line": 578, "column": 6}, "end": {"line": 578, "column": 92}}, + "127": {"start": {"line": 580, "column": 6}, "end": {"line": 580, "column": 26}}, + "128": {"start": {"line": 581, "column": 6}, "end": {"line": 581, "column": 93}}, + "129": {"start": {"line": 582, "column": 6}, "end": {"line": 582, "column": 76}}, + "130": {"start": {"line": 584, "column": 6}, "end": {"line": 584, "column": 80}}, + "131": {"start": {"line": 587, "column": 6}, "end": {"line": 587, "column": 21346}}, + "132": {"start": {"line": 617, "column": 4}, "end": {"line": 617, "column": 19}}, + "133": {"start": {"line": 618, "column": 4}, "end": {"line": 618, "column": 84}}, + "134": {"start": {"line": 621, "column": 4}, "end": {"line": 621, "column": 22445}}, + "135": {"start": {"line": 631, "column": 4}, "end": {"line": 631, "column": 50}}, + "136": {"start": {"line": 633, "column": 4}, "end": {"line": 633, "column": 93}}, + "137": {"start": {"line": 635, "column": 4}, "end": {"line": 635, "column": 22876}}, + "138": {"start": {"line": 636, "column": 6}, "end": {"line": 636, "column": 52}}, + "139": {"start": {"line": 662, "column": 4}, "end": {"line": 662, "column": 63}}, + "140": {"start": {"line": 664, "column": 4}, "end": {"line": 664, "column": 23557}}, + "141": {"start": {"line": 689, "column": 4}, "end": {"line": 689, "column": 63}}, + "142": {"start": {"line": 691, "column": 4}, "end": {"line": 691, "column": 24379}}, + "143": {"start": {"line": 715, "column": 4}, "end": {"line": 715, "column": 62}}, + "144": {"start": {"line": 717, "column": 4}, "end": {"line": 717, "column": 25005}}, + "145": {"start": {"line": 744, "column": 4}, "end": {"line": 744, "column": 25791}}, + "146": {"start": {"line": 758, "column": 4}, "end": {"line": 758, "column": 26088}}, + "147": {"start": {"line": 781, "column": 4}, "end": {"line": 781, "column": 63}}, + "148": {"start": {"line": 783, "column": 4}, "end": {"line": 783, "column": 71}}, + "149": {"start": {"line": 784, "column": 4}, "end": {"line": 784, "column": 87}}, + "150": {"start": {"line": 785, "column": 4}, "end": {"line": 785, "column": 98}}, + "151": {"start": {"line": 786, "column": 4}, "end": {"line": 786, "column": 98}}, + "152": {"start": {"line": 787, "column": 4}, "end": {"line": 787, "column": 47}}, + "153": {"start": {"line": 788, "column": 4}, "end": {"line": 788, "column": 94}}, + "154": {"start": {"line": 789, "column": 4}, "end": {"line": 789, "column": 27231}}, + "155": {"start": {"line": 792, "column": 4}, "end": {"line": 792, "column": 80}}, + "156": {"start": {"line": 796, "column": 4}, "end": {"line": 796, "column": 24}}, + "157": {"start": {"line": 816, "column": 4}, "end": {"line": 816, "column": 33}}, + "158": {"start": {"line": 817, "column": 4}, "end": {"line": 817, "column": 28078}}, + "159": {"start": {"line": 823, "column": 4}, "end": {"line": 823, "column": 27}}, + "160": {"start": {"line": 836, "column": 4}, "end": {"line": 836, "column": 33}}, + "161": {"start": {"line": 837, "column": 4}, "end": {"line": 837, "column": 69}}, + "162": {"start": {"line": 841, "column": 4}, "end": {"line": 841, "column": 33}}, + "163": {"start": {"line": 842, "column": 4}, "end": {"line": 842, "column": 54}}, + "164": {"start": {"line": 851, "column": 4}, "end": {"line": 851, "column": 41}}, + "165": {"start": {"line": 872, "column": 4}, "end": {"line": 872, "column": 68}}, + "166": {"start": {"line": 873, "column": 4}, "end": {"line": 873, "column": 76}}, + "167": {"start": {"line": 875, "column": 4}, "end": {"line": 875, "column": 56}}, + "168": {"start": {"line": 877, "column": 4}, "end": {"line": 877, "column": 29792}}, + "169": {"start": {"line": 881, "column": 4}, "end": {"line": 881, "column": 29946}}, + "170": {"start": {"line": 894, "column": 4}, "end": {"line": 894, "column": 34}}, + "171": {"start": {"line": 895, "column": 4}, "end": {"line": 895, "column": 30243}}, + "172": {"start": {"line": 896, "column": 6}, "end": {"line": 896, "column": 45}}, + "173": {"start": {"line": 899, "column": 4}, "end": {"line": 899, "column": 24}}, + "174": {"start": {"line": 902, "column": 4}, "end": {"line": 902, "column": 33}}, + "175": {"start": {"line": 904, "column": 4}, "end": {"line": 904, "column": 30453}}, + "176": {"start": {"line": 907, "column": 6}, "end": {"line": 907, "column": 56}}, + "177": {"start": {"line": 909, "column": 6}, "end": {"line": 909, "column": 30633}}, + "178": {"start": {"line": 915, "column": 6}, "end": {"line": 915, "column": 30788}}, + "179": {"start": {"line": 922, "column": 4}, "end": {"line": 922, "column": 30947}}, + "180": {"start": {"line": 929, "column": 4}, "end": {"line": 929, "column": 31088}}, + "181": {"start": {"line": 930, "column": 6}, "end": {"line": 930, "column": 77}}, + "182": {"start": {"line": 933, "column": 4}, "end": {"line": 933, "column": 31210}}, + "183": {"start": {"line": 950, "column": 4}, "end": {"line": 950, "column": 36}}, + "184": {"start": {"line": 951, "column": 4}, "end": {"line": 951, "column": 87}}, + "185": {"start": {"line": 952, "column": 4}, "end": {"line": 952, "column": 31801}}, + "186": {"start": {"line": 953, "column": 6}, "end": {"line": 953, "column": 31858}}, + "187": {"start": {"line": 954, "column": 8}, "end": {"line": 954, "column": 33}}, + "188": {"start": {"line": 956, "column": 4}, "end": {"line": 956, "column": 31937}}, + "189": {"start": {"line": 957, "column": 6}, "end": {"line": 957, "column": 54}}, + "190": {"start": {"line": 958, "column": 6}, "end": {"line": 958, "column": 30}}, + "191": {"start": {"line": 968, "column": 4}, "end": {"line": 968, "column": 49}}, + "192": {"start": {"line": 982, "column": 4}, "end": {"line": 982, "column": 47}}, + "193": {"start": {"line": 997, "column": 4}, "end": {"line": 997, "column": 19}}, + "194": {"start": {"line": 998, "column": 4}, "end": {"line": 998, "column": 33188}}, + "195": {"start": {"line": 1015, "column": 4}, "end": {"line": 1015, "column": 33}}, + "196": {"start": {"line": 1017, "column": 4}, "end": {"line": 1017, "column": 16}}, + "197": {"start": {"line": 1018, "column": 4}, "end": {"line": 1018, "column": 33641}}, + "198": {"start": {"line": 1019, "column": 6}, "end": {"line": 1019, "column": 19}}, + "199": {"start": {"line": 1021, "column": 6}, "end": {"line": 1021, "column": 21}}, + "200": {"start": {"line": 1029, "column": 4}, "end": {"line": 1029, "column": 18}} + }, + "branchMap": { + "1": { + "line": 55, + "type": "if", + "locations": [ + {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 4}}, + {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 4}} + ] + }, + "2": { + "line": 68, + "type": "if", + "locations": [ + {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 4}}, + {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 4}} + ] + }, + "3": { + "line": 108, + "type": "if", + "locations": [ + {"start": {"line": 108, "column": 4}, "end": {"line": 108, "column": 4}}, + {"start": {"line": 108, "column": 4}, "end": {"line": 108, "column": 4}} + ] + }, + "4": { + "line": 136, + "type": "if", + "locations": [ + {"start": {"line": 136, "column": 4}, "end": {"line": 136, "column": 4}}, + {"start": {"line": 136, "column": 4}, "end": {"line": 136, "column": 4}} + ] + }, + "5": { + "line": 154, + "type": "if", + "locations": [ + {"start": {"line": 154, "column": 4}, "end": {"line": 154, "column": 4}}, + {"start": {"line": 154, "column": 4}, "end": {"line": 154, "column": 4}} + ] + }, + "6": { + "line": 220, + "type": "if", + "locations": [ + {"start": {"line": 220, "column": 4}, "end": {"line": 220, "column": 4}}, + {"start": {"line": 220, "column": 4}, "end": {"line": 220, "column": 4}} + ] + }, + "7": { + "line": 270, + "type": "if", + "locations": [ + {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 4}}, + {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 4}} + ] + }, + "8": { + "line": 286, + "type": "if", + "locations": [ + {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 4}}, + {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 4}} + ] + }, + "9": { + "line": 299, + "type": "if", + "locations": [ + {"start": {"line": 299, "column": 4}, "end": {"line": 299, "column": 4}}, + {"start": {"line": 299, "column": 4}, "end": {"line": 299, "column": 4}} + ] + }, + "10": { + "line": 331, + "type": "if", + "locations": [ + {"start": {"line": 331, "column": 4}, "end": {"line": 331, "column": 4}}, + {"start": {"line": 331, "column": 4}, "end": {"line": 331, "column": 4}} + ] + }, + "11": { + "line": 394, + "type": "if", + "locations": [ + {"start": {"line": 394, "column": 4}, "end": {"line": 394, "column": 4}}, + {"start": {"line": 394, "column": 4}, "end": {"line": 394, "column": 4}} + ] + }, + "12": { + "line": 432, + "type": "if", + "locations": [ + {"start": {"line": 432, "column": 4}, "end": {"line": 432, "column": 4}}, + {"start": {"line": 432, "column": 4}, "end": {"line": 432, "column": 4}} + ] + }, + "13": { + "line": 469, + "type": "if", + "locations": [ + {"start": {"line": 469, "column": 4}, "end": {"line": 469, "column": 4}}, + {"start": {"line": 469, "column": 4}, "end": {"line": 469, "column": 4}} + ] + }, + "14": { + "line": 473, + "type": "if", + "locations": [ + {"start": {"line": 473, "column": 4}, "end": {"line": 473, "column": 4}}, + {"start": {"line": 473, "column": 4}, "end": {"line": 473, "column": 4}} + ] + }, + "15": { + "line": 500, + "type": "if", + "locations": [ + {"start": {"line": 500, "column": 4}, "end": {"line": 500, "column": 4}}, + {"start": {"line": 500, "column": 4}, "end": {"line": 500, "column": 4}} + ] + }, + "16": { + "line": 517, + "type": "if", + "locations": [ + {"start": {"line": 517, "column": 4}, "end": {"line": 517, "column": 4}}, + {"start": {"line": 517, "column": 4}, "end": {"line": 517, "column": 4}} + ] + }, + "17": { + "line": 521, + "type": "if", + "locations": [ + {"start": {"line": 521, "column": 4}, "end": {"line": 521, "column": 4}}, + {"start": {"line": 521, "column": 4}, "end": {"line": 521, "column": 4}} + ] + }, + "18": { + "line": 577, + "type": "if", + "locations": [ + {"start": {"line": 577, "column": 4}, "end": {"line": 577, "column": 4}}, + {"start": {"line": 577, "column": 4}, "end": {"line": 577, "column": 4}} + ] + }, + "19": { + "line": 631, + "type": "if", + "locations": [ + {"start": {"line": 631, "column": 4}, "end": {"line": 631, "column": 4}}, + {"start": {"line": 631, "column": 4}, "end": {"line": 631, "column": 4}} + ] + }, + "20": { + "line": 635, + "type": "if", + "locations": [ + {"start": {"line": 635, "column": 4}, "end": {"line": 635, "column": 4}}, + {"start": {"line": 635, "column": 4}, "end": {"line": 635, "column": 4}} + ] + }, + "21": { + "line": 895, + "type": "if", + "locations": [ + {"start": {"line": 895, "column": 4}, "end": {"line": 895, "column": 4}}, + {"start": {"line": 895, "column": 4}, "end": {"line": 895, "column": 4}} + ] + }, + "22": { + "line": 904, + "type": "if", + "locations": [ + {"start": {"line": 904, "column": 4}, "end": {"line": 904, "column": 4}}, + {"start": {"line": 904, "column": 4}, "end": {"line": 904, "column": 4}} + ] + }, + "23": { + "line": 929, + "type": "if", + "locations": [ + {"start": {"line": 929, "column": 4}, "end": {"line": 929, "column": 4}}, + {"start": {"line": 929, "column": 4}, "end": {"line": 929, "column": 4}} + ] + }, + "24": { + "line": 951, + "type": "if", + "locations": [ + {"start": {"line": 951, "column": 4}, "end": {"line": 951, "column": 4}}, + {"start": {"line": 951, "column": 4}, "end": {"line": 951, "column": 4}} + ] + }, + "25": { + "line": 953, + "type": "if", + "locations": [ + {"start": {"line": 953, "column": 6}, "end": {"line": 953, "column": 6}}, + {"start": {"line": 953, "column": 6}, "end": {"line": 953, "column": 6}} + ] + }, + "26": { + "line": 956, + "type": "if", + "locations": [ + {"start": {"line": 956, "column": 4}, "end": {"line": 956, "column": 4}}, + {"start": {"line": 956, "column": 4}, "end": {"line": 956, "column": 4}} + ] + }, + "27": { + "line": 1018, + "type": "if", + "locations": [ + {"start": {"line": 1018, "column": 4}, "end": {"line": 1018, "column": 4}}, + {"start": {"line": 1018, "column": 4}, "end": {"line": 1018, "column": 4}} + ] + } + } + }, + "contracts/lendingpool/LendingPoolCollateralManager.sol": { + "l": { + "127": 0, + "146": 10, + "147": 10, + "148": 10, + "150": 10, + "152": 10, + "161": 10, + "166": 10, + "175": 10, + "176": 5, + "179": 5, + "181": 5, + "183": 5, + "187": 5, + "191": 5, + "207": 5, + "208": 1, + "212": 5, + "213": 3, + "216": 3, + "217": 0, + "225": 5, + "227": 5, + "234": 5, + "235": 1, + "241": 4, + "247": 4, + "254": 5, + "255": 2, + "260": 3, + "261": 3, + "269": 3, + "278": 5, + "284": 5, + "294": 5, + "317": 18, + "318": 18, + "319": 18, + "321": 18, + "323": 18, + "331": 18, + "333": 18, + "343": 18, + "344": 5, + "347": 13, + "349": 13, + "353": 13, + "354": 13, + "356": 13, + "371": 13, + "372": 2, + "375": 13, + "377": 13, + "384": 13, + "385": 2, + "388": 13, + "391": 13, + "400": 11, + "401": 11, + "407": 11, + "409": 11, + "410": 9, + "416": 2, + "421": 2, + "428": 11, + "435": 11, + "444": 11, + "462": 9, + "463": 9, + "465": 9, + "467": 9, + "474": 9, + "475": 4, + "478": 5, + "479": 5, + "481": 5, + "482": 5, + "484": 5, + "485": 1, + "488": 5, + "490": 4, + "497": 3, + "505": 3, + "506": 3, + "507": 3, + "513": 3, + "514": 1, + "517": 3, + "518": 3, + "526": 3, + "534": 3, + "535": 1, + "541": 2, + "563": 18, + "564": 18, + "565": 18, + "567": 18, + "569": 18, + "570": 18, + "572": 18, + "575": 18, + "579": 18, + "586": 18, + "587": 3, + "588": 3, + "595": 15, + "596": 15, + "598": 18 + }, + "path": "/src/contracts/lendingpool/LendingPoolCollateralManager.sol", + "s": { + "1": 0, + "2": 10, + "3": 10, + "4": 10, + "5": 10, + "6": 10, + "7": 10, + "8": 10, + "9": 10, + "10": 5, + "11": 5, + "12": 5, + "13": 5, + "14": 5, + "15": 5, + "16": 5, + "17": 1, + "18": 5, + "19": 3, + "20": 3, + "21": 0, + "22": 5, + "23": 5, + "24": 5, + "25": 1, + "26": 4, + "27": 4, + "28": 5, + "29": 2, + "30": 3, + "31": 3, + "32": 3, + "33": 5, + "34": 5, + "35": 5, + "36": 18, + "37": 18, + "38": 18, + "39": 18, + "40": 18, + "41": 18, + "42": 18, + "43": 18, + "44": 5, + "45": 13, + "46": 13, + "47": 13, + "48": 13, + "49": 13, + "50": 13, + "51": 2, + "52": 13, + "53": 13, + "54": 13, + "55": 2, + "56": 13, + "57": 13, + "58": 11, + "59": 11, + "60": 11, + "61": 11, + "62": 9, + "63": 2, + "64": 2, + "65": 11, + "66": 11, + "67": 11, + "68": 9, + "69": 9, + "70": 9, + "71": 9, + "72": 9, + "73": 4, + "74": 5, + "75": 5, + "76": 5, + "77": 5, + "78": 5, + "79": 1, + "80": 5, + "81": 4, + "82": 3, + "83": 3, + "84": 3, + "85": 3, + "86": 3, + "87": 1, + "88": 3, + "89": 3, + "90": 3, + "91": 3, + "92": 1, + "93": 2, + "94": 18, + "95": 18, + "96": 18, + "97": 18, + "98": 18, + "99": 18, + "100": 18, + "101": 18, + "102": 18, + "103": 18, + "104": 3, + "105": 3, + "106": 15, + "107": 15, + "108": 18 + }, + "b": { + "1": [5, 5], + "2": [1, 4], + "3": [3, 2], + "4": [0, 3], + "5": [1, 4], + "6": [2, 3], + "7": [5, 13], + "8": [2, 11], + "9": [2, 11], + "10": [9, 2], + "11": [4, 5], + "12": [1, 4], + "13": [3, 0], + "14": [1, 2], + "15": [1, 2], + "16": [3, 15] + }, + "f": {"1": 0, "2": 10, "3": 18, "4": 9, "5": 18}, + "fnMap": { + "1": { + "name": "getRevision", + "line": 126, + "loc": {"start": {"line": 126, "column": 2}, "end": {"line": 128, "column": 2}} + }, + "2": { + "name": "liquidationCall", + "line": 139, + "loc": {"start": {"line": 139, "column": 2}, "end": {"line": 295, "column": 2}} + }, + "3": { + "name": "repayWithCollateral", + "line": 309, + "loc": {"start": {"line": 309, "column": 2}, "end": {"line": 445, "column": 2}} + }, + "4": { + "name": "swapLiquidity", + "line": 455, + "loc": {"start": {"line": 455, "column": 2}, "end": {"line": 542, "column": 2}} + }, + "5": { + "name": "calculateAvailableCollateralToLiquidate", + "line": 555, + "loc": {"start": {"line": 555, "column": 2}, "end": {"line": 599, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 12}}, + "2": {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 78}}, + "3": {"start": {"line": 147, "column": 4}, "end": {"line": 147, "column": 76}}, + "4": {"start": {"line": 148, "column": 4}, "end": {"line": 148, "column": 65}}, + "5": {"start": {"line": 150, "column": 4}, "end": {"line": 150, "column": 40}}, + "6": {"start": {"line": 152, "column": 4}, "end": {"line": 152, "column": 6033}}, + "7": {"start": {"line": 161, "column": 4}, "end": {"line": 161, "column": 6330}}, + "8": {"start": {"line": 166, "column": 4}, "end": {"line": 166, "column": 6452}}, + "9": {"start": {"line": 175, "column": 4}, "end": {"line": 175, "column": 6686}}, + "10": {"start": {"line": 176, "column": 6}, "end": {"line": 176, "column": 44}}, + "11": {"start": {"line": 179, "column": 4}, "end": {"line": 179, "column": 67}}, + "12": {"start": {"line": 181, "column": 4}, "end": {"line": 181, "column": 69}}, + "13": {"start": {"line": 183, "column": 4}, "end": {"line": 183, "column": 6984}}, + "14": {"start": {"line": 187, "column": 4}, "end": {"line": 187, "column": 7148}}, + "15": {"start": {"line": 191, "column": 4}, "end": {"line": 191, "column": 7286}}, + "16": {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 7770}}, + "17": {"start": {"line": 208, "column": 6}, "end": {"line": 208, "column": 62}}, + "18": {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 8027}}, + "19": {"start": {"line": 213, "column": 6}, "end": {"line": 213, "column": 8058}}, + "20": {"start": {"line": 216, "column": 6}, "end": {"line": 216, "column": 8178}}, + "21": {"start": {"line": 217, "column": 8}, "end": {"line": 217, "column": 8255}}, + "22": {"start": {"line": 225, "column": 4}, "end": {"line": 225, "column": 33}}, + "23": {"start": {"line": 227, "column": 4}, "end": {"line": 227, "column": 8484}}, + "24": {"start": {"line": 234, "column": 4}, "end": {"line": 234, "column": 8633}}, + "25": {"start": {"line": 235, "column": 6}, "end": {"line": 235, "column": 8702}}, + "26": {"start": {"line": 241, "column": 6}, "end": {"line": 241, "column": 8895}}, + "27": {"start": {"line": 247, "column": 6}, "end": {"line": 247, "column": 9069}}, + "28": {"start": {"line": 254, "column": 4}, "end": {"line": 254, "column": 9311}}, + "29": {"start": {"line": 255, "column": 6}, "end": {"line": 255, "column": 97}}, + "30": {"start": {"line": 260, "column": 6}, "end": {"line": 260, "column": 36}}, + "31": {"start": {"line": 261, "column": 6}, "end": {"line": 261, "column": 9577}}, + "32": {"start": {"line": 269, "column": 6}, "end": {"line": 269, "column": 9786}}, + "33": {"start": {"line": 278, "column": 4}, "end": {"line": 278, "column": 9999}}, + "34": {"start": {"line": 284, "column": 4}, "end": {"line": 284, "column": 10139}}, + "35": {"start": {"line": 294, "column": 4}, "end": {"line": 294, "column": 79}}, + "36": {"start": {"line": 317, "column": 4}, "end": {"line": 317, "column": 78}}, + "37": {"start": {"line": 318, "column": 4}, "end": {"line": 318, "column": 71}}, + "38": {"start": {"line": 319, "column": 4}, "end": {"line": 319, "column": 65}}, + "39": {"start": {"line": 321, "column": 4}, "end": {"line": 321, "column": 40}}, + "40": {"start": {"line": 323, "column": 4}, "end": {"line": 323, "column": 11674}}, + "41": {"start": {"line": 331, "column": 4}, "end": {"line": 331, "column": 95}}, + "42": {"start": {"line": 333, "column": 4}, "end": {"line": 333, "column": 11972}}, + "43": {"start": {"line": 343, "column": 4}, "end": {"line": 343, "column": 12217}}, + "44": {"start": {"line": 344, "column": 6}, "end": {"line": 344, "column": 44}}, + "45": {"start": {"line": 347, "column": 4}, "end": {"line": 347, "column": 86}}, + "46": {"start": {"line": 349, "column": 4}, "end": {"line": 349, "column": 12479}}, + "47": {"start": {"line": 353, "column": 4}, "end": {"line": 353, "column": 67}}, + "48": {"start": {"line": 354, "column": 4}, "end": {"line": 354, "column": 69}}, + "49": {"start": {"line": 356, "column": 4}, "end": {"line": 356, "column": 12761}}, + "50": {"start": {"line": 371, "column": 4}, "end": {"line": 371, "column": 13239}}, + "51": {"start": {"line": 372, "column": 6}, "end": {"line": 372, "column": 62}}, + "52": {"start": {"line": 375, "column": 4}, "end": {"line": 375, "column": 34}}, + "53": {"start": {"line": 377, "column": 4}, "end": {"line": 377, "column": 13459}}, + "54": {"start": {"line": 384, "column": 4}, "end": {"line": 384, "column": 13603}}, + "55": {"start": {"line": 385, "column": 6}, "end": {"line": 385, "column": 73}}, + "56": {"start": {"line": 388, "column": 4}, "end": {"line": 388, "column": 51}}, + "57": {"start": {"line": 391, "column": 4}, "end": {"line": 391, "column": 13905}}, + "58": {"start": {"line": 400, "column": 4}, "end": {"line": 400, "column": 28}}, + "59": {"start": {"line": 401, "column": 4}, "end": {"line": 401, "column": 14123}}, + "60": {"start": {"line": 407, "column": 4}, "end": {"line": 407, "column": 95}}, + "61": {"start": {"line": 409, "column": 4}, "end": {"line": 409, "column": 14355}}, + "62": {"start": {"line": 410, "column": 6}, "end": {"line": 410, "column": 14424}}, + "63": {"start": {"line": 416, "column": 6}, "end": {"line": 416, "column": 14607}}, + "64": {"start": {"line": 421, "column": 6}, "end": {"line": 421, "column": 14770}}, + "65": {"start": {"line": 428, "column": 4}, "end": {"line": 428, "column": 14959}}, + "66": {"start": {"line": 435, "column": 4}, "end": {"line": 435, "column": 15112}}, + "67": {"start": {"line": 444, "column": 4}, "end": {"line": 444, "column": 79}}, + "68": {"start": {"line": 462, "column": 4}, "end": {"line": 462, "column": 71}}, + "69": {"start": {"line": 463, "column": 4}, "end": {"line": 463, "column": 67}}, + "70": {"start": {"line": 465, "column": 4}, "end": {"line": 465, "column": 38}}, + "71": {"start": {"line": 467, "column": 4}, "end": {"line": 467, "column": 16281}}, + "72": {"start": {"line": 474, "column": 4}, "end": {"line": 474, "column": 16433}}, + "73": {"start": {"line": 475, "column": 6}, "end": {"line": 475, "column": 44}}, + "74": {"start": {"line": 478, "column": 4}, "end": {"line": 478, "column": 62}}, + "75": {"start": {"line": 479, "column": 4}, "end": {"line": 479, "column": 58}}, + "76": {"start": {"line": 481, "column": 4}, "end": {"line": 481, "column": 28}}, + "77": {"start": {"line": 482, "column": 4}, "end": {"line": 482, "column": 26}}, + "78": {"start": {"line": 484, "column": 4}, "end": {"line": 484, "column": 16775}}, + "79": {"start": {"line": 485, "column": 6}, "end": {"line": 485, "column": 73}}, + "80": {"start": {"line": 488, "column": 4}, "end": {"line": 488, "column": 95}}, + "81": {"start": {"line": 490, "column": 4}, "end": {"line": 490, "column": 17029}}, + "82": {"start": {"line": 497, "column": 4}, "end": {"line": 497, "column": 17256}}, + "83": {"start": {"line": 505, "column": 4}, "end": {"line": 505, "column": 68}}, + "84": {"start": {"line": 506, "column": 4}, "end": {"line": 506, "column": 17473}}, + "85": {"start": {"line": 507, "column": 6}, "end": {"line": 507, "column": 17514}}, + "86": {"start": {"line": 513, "column": 6}, "end": {"line": 513, "column": 17653}}, + "87": {"start": {"line": 514, "column": 8}, "end": {"line": 514, "column": 72}}, + "88": {"start": {"line": 517, "column": 6}, "end": {"line": 517, "column": 90}}, + "89": {"start": {"line": 518, "column": 6}, "end": {"line": 518, "column": 17891}}, + "90": {"start": {"line": 526, "column": 4}, "end": {"line": 526, "column": 18036}}, + "91": {"start": {"line": 534, "column": 4}, "end": {"line": 534, "column": 18247}}, + "92": {"start": {"line": 535, "column": 6}, "end": {"line": 535, "column": 18332}}, + "93": {"start": {"line": 541, "column": 4}, "end": {"line": 541, "column": 79}}, + "94": {"start": {"line": 563, "column": 4}, "end": {"line": 563, "column": 32}}, + "95": {"start": {"line": 564, "column": 4}, "end": {"line": 564, "column": 37}}, + "96": {"start": {"line": 565, "column": 4}, "end": {"line": 565, "column": 87}}, + "97": {"start": {"line": 567, "column": 4}, "end": {"line": 567, "column": 55}}, + "98": {"start": {"line": 569, "column": 4}, "end": {"line": 569, "column": 65}}, + "99": {"start": {"line": 570, "column": 4}, "end": {"line": 570, "column": 71}}, + "100": {"start": {"line": 572, "column": 4}, "end": {"line": 572, "column": 20103}}, + "101": {"start": {"line": 575, "column": 4}, "end": {"line": 575, "column": 72}}, + "102": {"start": {"line": 579, "column": 4}, "end": {"line": 579, "column": 20496}}, + "103": {"start": {"line": 586, "column": 4}, "end": {"line": 586, "column": 20713}}, + "104": {"start": {"line": 587, "column": 6}, "end": {"line": 587, "column": 45}}, + "105": {"start": {"line": 588, "column": 6}, "end": {"line": 588, "column": 20871}}, + "106": {"start": {"line": 595, "column": 6}, "end": {"line": 595, "column": 59}}, + "107": {"start": {"line": 596, "column": 6}, "end": {"line": 596, "column": 43}}, + "108": {"start": {"line": 598, "column": 4}, "end": {"line": 598, "column": 52}} + }, + "branchMap": { + "1": { + "line": 175, + "type": "if", + "locations": [ + {"start": {"line": 175, "column": 4}, "end": {"line": 175, "column": 4}}, + {"start": {"line": 175, "column": 4}, "end": {"line": 175, "column": 4}} + ] + }, + "2": { + "line": 207, + "type": "if", + "locations": [ + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}}, + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}} + ] + }, + "3": { + "line": 212, + "type": "if", + "locations": [ + {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 4}}, + {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 4}} + ] + }, + "4": { + "line": 216, + "type": "if", + "locations": [ + {"start": {"line": 216, "column": 6}, "end": {"line": 216, "column": 6}}, + {"start": {"line": 216, "column": 6}, "end": {"line": 216, "column": 6}} + ] + }, + "5": { + "line": 234, + "type": "if", + "locations": [ + {"start": {"line": 234, "column": 4}, "end": {"line": 234, "column": 4}}, + {"start": {"line": 234, "column": 4}, "end": {"line": 234, "column": 4}} + ] + }, + "6": { + "line": 254, + "type": "if", + "locations": [ + {"start": {"line": 254, "column": 4}, "end": {"line": 254, "column": 4}}, + {"start": {"line": 254, "column": 4}, "end": {"line": 254, "column": 4}} + ] + }, + "7": { + "line": 343, + "type": "if", + "locations": [ + {"start": {"line": 343, "column": 4}, "end": {"line": 343, "column": 4}}, + {"start": {"line": 343, "column": 4}, "end": {"line": 343, "column": 4}} + ] + }, + "8": { + "line": 371, + "type": "if", + "locations": [ + {"start": {"line": 371, "column": 4}, "end": {"line": 371, "column": 4}}, + {"start": {"line": 371, "column": 4}, "end": {"line": 371, "column": 4}} + ] + }, + "9": { + "line": 384, + "type": "if", + "locations": [ + {"start": {"line": 384, "column": 4}, "end": {"line": 384, "column": 4}}, + {"start": {"line": 384, "column": 4}, "end": {"line": 384, "column": 4}} + ] + }, + "10": { + "line": 409, + "type": "if", + "locations": [ + {"start": {"line": 409, "column": 4}, "end": {"line": 409, "column": 4}}, + {"start": {"line": 409, "column": 4}, "end": {"line": 409, "column": 4}} + ] + }, + "11": { + "line": 474, + "type": "if", + "locations": [ + {"start": {"line": 474, "column": 4}, "end": {"line": 474, "column": 4}}, + {"start": {"line": 474, "column": 4}, "end": {"line": 474, "column": 4}} + ] + }, + "12": { + "line": 484, + "type": "if", + "locations": [ + {"start": {"line": 484, "column": 4}, "end": {"line": 484, "column": 4}}, + {"start": {"line": 484, "column": 4}, "end": {"line": 484, "column": 4}} + ] + }, + "13": { + "line": 506, + "type": "if", + "locations": [ + {"start": {"line": 506, "column": 4}, "end": {"line": 506, "column": 4}}, + {"start": {"line": 506, "column": 4}, "end": {"line": 506, "column": 4}} + ] + }, + "14": { + "line": 513, + "type": "if", + "locations": [ + {"start": {"line": 513, "column": 6}, "end": {"line": 513, "column": 6}}, + {"start": {"line": 513, "column": 6}, "end": {"line": 513, "column": 6}} + ] + }, + "15": { + "line": 534, + "type": "if", + "locations": [ + {"start": {"line": 534, "column": 4}, "end": {"line": 534, "column": 4}}, + {"start": {"line": 534, "column": 4}, "end": {"line": 534, "column": 4}} + ] + }, + "16": { + "line": 586, + "type": "if", + "locations": [ + {"start": {"line": 586, "column": 4}, "end": {"line": 586, "column": 4}}, + {"start": {"line": 586, "column": 4}, "end": {"line": 586, "column": 4}} + ] + } + } + }, + "contracts/lendingpool/LendingPoolConfigurator.sol": { + "l": { + "187": 124, + "188": 105, + "194": 1, + "198": 1, + "199": 1, + "219": 17, + "221": 17, + "226": 17, + "231": 17, + "239": 17, + "241": 17, + "243": 17, + "244": 17, + "246": 17, + "248": 17, + "263": 1, + "265": 1, + "267": 1, + "276": 1, + "278": 1, + "280": 1, + "289": 1, + "291": 1, + "293": 1, + "305": 18, + "307": 18, + "308": 18, + "310": 18, + "312": 18, + "320": 1, + "322": 1, + "324": 1, + "325": 1, + "341": 14, + "343": 14, + "344": 14, + "345": 14, + "347": 14, + "349": 14, + "357": 1, + "359": 1, + "361": 1, + "363": 1, + "371": 1, + "373": 1, + "375": 1, + "377": 1, + "385": 1, + "387": 1, + "389": 1, + "391": 1, + "399": 7, + "401": 7, + "403": 7, + "405": 7, + "413": 8, + "425": 8, + "430": 7, + "432": 7, + "434": 7, + "436": 7, + "444": 2, + "446": 2, + "448": 2, + "450": 2, + "458": 2, + "460": 2, + "462": 2, + "464": 2, + "473": 1, + "475": 1, + "477": 1, + "479": 1, + "488": 1, + "490": 1, + "492": 1, + "494": 1, + "504": 1, + "506": 1, + "508": 1, + "510": 1, + "519": 1, + "521": 1, + "523": 1, + "525": 1, + "534": 0, + "536": 0, + "538": 0, + "540": 0, + "552": 0, + "553": 0, + "562": 51, + "564": 51, + "571": 51, + "573": 51, + "581": 3, + "585": 3, + "587": 3, + "594": 3, + "602": 26 + }, + "path": "/src/contracts/lendingpool/LendingPoolConfigurator.sol", + "s": { + "1": 124, + "2": 1, + "3": 1, + "4": 1, + "5": 17, + "6": 17, + "7": 17, + "8": 17, + "9": 17, + "10": 17, + "11": 17, + "12": 17, + "13": 17, + "14": 17, + "15": 1, + "16": 1, + "17": 1, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 1, + "24": 18, + "25": 18, + "26": 18, + "27": 18, + "28": 18, + "29": 1, + "30": 1, + "31": 1, + "32": 1, + "33": 14, + "34": 14, + "35": 14, + "36": 14, + "37": 14, + "38": 14, + "39": 1, + "40": 1, + "41": 1, + "42": 1, + "43": 1, + "44": 1, + "45": 1, + "46": 1, + "47": 1, + "48": 1, + "49": 1, + "50": 1, + "51": 7, + "52": 7, + "53": 7, + "54": 7, + "55": 8, + "56": 8, + "57": 7, + "58": 7, + "59": 7, + "60": 7, + "61": 2, + "62": 2, + "63": 2, + "64": 2, + "65": 2, + "66": 2, + "67": 2, + "68": 2, + "69": 1, + "70": 1, + "71": 1, + "72": 1, + "73": 1, + "74": 1, + "75": 1, + "76": 1, + "77": 1, + "78": 1, + "79": 1, + "80": 1, + "81": 1, + "82": 1, + "83": 1, + "84": 1, + "85": 0, + "86": 0, + "87": 0, + "88": 0, + "89": 0, + "90": 0, + "91": 51, + "92": 51, + "93": 51, + "94": 51, + "95": 3, + "96": 3, + "97": 3, + "98": 3, + "99": 26 + }, + "b": {"1": [105, 19], "2": [7, 1]}, + "f": { + "1": 124, + "2": 1, + "3": 1, + "4": 17, + "5": 1, + "6": 1, + "7": 1, + "8": 18, + "9": 1, + "10": 14, + "11": 1, + "12": 1, + "13": 1, + "14": 7, + "15": 8, + "16": 2, + "17": 2, + "18": 1, + "19": 1, + "20": 1, + "21": 1, + "22": 0, + "23": 0, + "24": 51, + "25": 3, + "26": 26 + }, + "fnMap": { + "1": { + "name": "onlyAaveAdmin", + "line": 186, + "loc": {"start": {"line": 186, "column": 2}, "end": {"line": 189, "column": 2}} + }, + "2": { + "name": "getRevision", + "line": 193, + "loc": {"start": {"line": 193, "column": 2}, "end": {"line": 195, "column": 2}} + }, + "3": { + "name": "initialize", + "line": 197, + "loc": {"start": {"line": 197, "column": 2}, "end": {"line": 200, "column": 2}} + }, + "4": { + "name": "initReserve", + "line": 218, + "loc": {"start": {"line": 211, "column": 2}, "end": {"line": 255, "column": 2}} + }, + "5": { + "name": "updateAToken", + "line": 262, + "loc": {"start": {"line": 262, "column": 2}, "end": {"line": 268, "column": 2}} + }, + "6": { + "name": "updateStableDebtToken", + "line": 275, + "loc": {"start": {"line": 275, "column": 2}, "end": {"line": 281, "column": 2}} + }, + "7": { + "name": "updateVariableDebtToken", + "line": 288, + "loc": {"start": {"line": 288, "column": 2}, "end": {"line": 294, "column": 2}} + }, + "8": { + "name": "enableBorrowingOnReserve", + "line": 303, + "loc": {"start": {"line": 301, "column": 2}, "end": {"line": 313, "column": 2}} + }, + "9": { + "name": "disableBorrowingOnReserve", + "line": 319, + "loc": {"start": {"line": 319, "column": 2}, "end": {"line": 326, "column": 2}} + }, + "10": { + "name": "enableReserveAsCollateral", + "line": 340, + "loc": {"start": {"line": 335, "column": 2}, "end": {"line": 350, "column": 2}} + }, + "11": { + "name": "disableReserveAsCollateral", + "line": 356, + "loc": {"start": {"line": 356, "column": 2}, "end": {"line": 364, "column": 2}} + }, + "12": { + "name": "enableReserveStableRate", + "line": 370, + "loc": {"start": {"line": 370, "column": 2}, "end": {"line": 378, "column": 2}} + }, + "13": { + "name": "disableReserveStableRate", + "line": 384, + "loc": {"start": {"line": 384, "column": 2}, "end": {"line": 392, "column": 2}} + }, + "14": { + "name": "activateReserve", + "line": 398, + "loc": {"start": {"line": 398, "column": 2}, "end": {"line": 406, "column": 2}} + }, + "15": { + "name": "deactivateReserve", + "line": 412, + "loc": {"start": {"line": 412, "column": 2}, "end": {"line": 437, "column": 2}} + }, + "16": { + "name": "freezeReserve", + "line": 443, + "loc": {"start": {"line": 443, "column": 2}, "end": {"line": 451, "column": 2}} + }, + "17": { + "name": "unfreezeReserve", + "line": 457, + "loc": {"start": {"line": 457, "column": 2}, "end": {"line": 465, "column": 2}} + }, + "18": { + "name": "setLtv", + "line": 472, + "loc": {"start": {"line": 472, "column": 2}, "end": {"line": 480, "column": 2}} + }, + "19": { + "name": "setReserveFactor", + "line": 487, + "loc": {"start": {"line": 487, "column": 2}, "end": {"line": 495, "column": 2}} + }, + "20": { + "name": "setLiquidationThreshold", + "line": 503, + "loc": {"start": {"line": 503, "column": 2}, "end": {"line": 511, "column": 2}} + }, + "21": { + "name": "setLiquidationBonus", + "line": 518, + "loc": {"start": {"line": 518, "column": 2}, "end": {"line": 526, "column": 2}} + }, + "22": { + "name": "setReserveDecimals", + "line": 533, + "loc": {"start": {"line": 533, "column": 2}, "end": {"line": 541, "column": 2}} + }, + "23": { + "name": "setReserveInterestRateStrategyAddress", + "line": 550, + "loc": {"start": {"line": 548, "column": 2}, "end": {"line": 554, "column": 2}} + }, + "24": { + "name": "_initTokenWithProxy", + "line": 561, + "loc": {"start": {"line": 561, "column": 2}, "end": {"line": 574, "column": 2}} + }, + "25": { + "name": "_upgradeTokenImplementation", + "line": 576, + "loc": {"start": {"line": 576, "column": 2}, "end": {"line": 595, "column": 2}} + }, + "26": { + "name": "setPoolPause", + "line": 601, + "loc": {"start": {"line": 601, "column": 2}, "end": {"line": 603, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 187, "column": 4}, "end": {"line": 187, "column": 88}}, + "2": {"start": {"line": 194, "column": 4}, "end": {"line": 194, "column": 32}}, + "3": {"start": {"line": 198, "column": 4}, "end": {"line": 198, "column": 31}}, + "4": {"start": {"line": 199, "column": 4}, "end": {"line": 199, "column": 58}}, + "5": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 89}}, + "6": {"start": {"line": 221, "column": 4}, "end": {"line": 221, "column": 7918}}, + "7": {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 8046}}, + "8": {"start": {"line": 231, "column": 4}, "end": {"line": 231, "column": 8177}}, + "9": {"start": {"line": 239, "column": 4}, "end": {"line": 239, "column": 80}}, + "10": {"start": {"line": 241, "column": 4}, "end": {"line": 241, "column": 53}}, + "11": {"start": {"line": 243, "column": 4}, "end": {"line": 243, "column": 32}}, + "12": {"start": {"line": 244, "column": 4}, "end": {"line": 244, "column": 33}}, + "13": {"start": {"line": 246, "column": 4}, "end": {"line": 246, "column": 51}}, + "14": {"start": {"line": 248, "column": 4}, "end": {"line": 248, "column": 8620}}, + "15": {"start": {"line": 263, "column": 4}, "end": {"line": 263, "column": 71}}, + "16": {"start": {"line": 265, "column": 4}, "end": {"line": 265, "column": 68}}, + "17": {"start": {"line": 267, "column": 4}, "end": {"line": 267, "column": 61}}, + "18": {"start": {"line": 276, "column": 4}, "end": {"line": 276, "column": 73}}, + "19": {"start": {"line": 278, "column": 4}, "end": {"line": 278, "column": 70}}, + "20": {"start": {"line": 280, "column": 4}, "end": {"line": 280, "column": 72}}, + "21": {"start": {"line": 289, "column": 4}, "end": {"line": 289, "column": 75}}, + "22": {"start": {"line": 291, "column": 4}, "end": {"line": 291, "column": 72}}, + "23": {"start": {"line": 293, "column": 4}, "end": {"line": 293, "column": 76}}, + "24": {"start": {"line": 305, "column": 4}, "end": {"line": 305, "column": 80}}, + "25": {"start": {"line": 307, "column": 4}, "end": {"line": 307, "column": 42}}, + "26": {"start": {"line": 308, "column": 4}, "end": {"line": 308, "column": 71}}, + "27": {"start": {"line": 310, "column": 4}, "end": {"line": 310, "column": 51}}, + "28": {"start": {"line": 312, "column": 4}, "end": {"line": 312, "column": 66}}, + "29": {"start": {"line": 320, "column": 4}, "end": {"line": 320, "column": 80}}, + "30": {"start": {"line": 322, "column": 4}, "end": {"line": 322, "column": 43}}, + "31": {"start": {"line": 324, "column": 4}, "end": {"line": 324, "column": 51}}, + "32": {"start": {"line": 325, "column": 4}, "end": {"line": 325, "column": 42}}, + "33": {"start": {"line": 341, "column": 4}, "end": {"line": 341, "column": 80}}, + "34": {"start": {"line": 343, "column": 4}, "end": {"line": 343, "column": 28}}, + "35": {"start": {"line": 344, "column": 4}, "end": {"line": 344, "column": 62}}, + "36": {"start": {"line": 345, "column": 4}, "end": {"line": 345, "column": 54}}, + "37": {"start": {"line": 347, "column": 4}, "end": {"line": 347, "column": 51}}, + "38": {"start": {"line": 349, "column": 4}, "end": {"line": 349, "column": 87}}, + "39": {"start": {"line": 357, "column": 4}, "end": {"line": 357, "column": 80}}, + "40": {"start": {"line": 359, "column": 4}, "end": {"line": 359, "column": 26}}, + "41": {"start": {"line": 361, "column": 4}, "end": {"line": 361, "column": 51}}, + "42": {"start": {"line": 363, "column": 4}, "end": {"line": 363, "column": 43}}, + "43": {"start": {"line": 371, "column": 4}, "end": {"line": 371, "column": 80}}, + "44": {"start": {"line": 373, "column": 4}, "end": {"line": 373, "column": 52}}, + "45": {"start": {"line": 375, "column": 4}, "end": {"line": 375, "column": 51}}, + "46": {"start": {"line": 377, "column": 4}, "end": {"line": 377, "column": 42}}, + "47": {"start": {"line": 385, "column": 4}, "end": {"line": 385, "column": 80}}, + "48": {"start": {"line": 387, "column": 4}, "end": {"line": 387, "column": 53}}, + "49": {"start": {"line": 389, "column": 4}, "end": {"line": 389, "column": 51}}, + "50": {"start": {"line": 391, "column": 4}, "end": {"line": 391, "column": 43}}, + "51": {"start": {"line": 399, "column": 4}, "end": {"line": 399, "column": 80}}, + "52": {"start": {"line": 401, "column": 4}, "end": {"line": 401, "column": 32}}, + "53": {"start": {"line": 403, "column": 4}, "end": {"line": 403, "column": 51}}, + "54": {"start": {"line": 405, "column": 4}, "end": {"line": 405, "column": 32}}, + "55": {"start": {"line": 413, "column": 4}, "end": {"line": 413, "column": 14228}}, + "56": {"start": {"line": 425, "column": 4}, "end": {"line": 425, "column": 14387}}, + "57": {"start": {"line": 430, "column": 4}, "end": {"line": 430, "column": 80}}, + "58": {"start": {"line": 432, "column": 4}, "end": {"line": 432, "column": 33}}, + "59": {"start": {"line": 434, "column": 4}, "end": {"line": 434, "column": 51}}, + "60": {"start": {"line": 436, "column": 4}, "end": {"line": 436, "column": 34}}, + "61": {"start": {"line": 444, "column": 4}, "end": {"line": 444, "column": 80}}, + "62": {"start": {"line": 446, "column": 4}, "end": {"line": 446, "column": 32}}, + "63": {"start": {"line": 448, "column": 4}, "end": {"line": 448, "column": 51}}, + "64": {"start": {"line": 450, "column": 4}, "end": {"line": 450, "column": 30}}, + "65": {"start": {"line": 458, "column": 4}, "end": {"line": 458, "column": 80}}, + "66": {"start": {"line": 460, "column": 4}, "end": {"line": 460, "column": 33}}, + "67": {"start": {"line": 462, "column": 4}, "end": {"line": 462, "column": 51}}, + "68": {"start": {"line": 464, "column": 4}, "end": {"line": 464, "column": 32}}, + "69": {"start": {"line": 473, "column": 4}, "end": {"line": 473, "column": 80}}, + "70": {"start": {"line": 475, "column": 4}, "end": {"line": 475, "column": 28}}, + "71": {"start": {"line": 477, "column": 4}, "end": {"line": 477, "column": 51}}, + "72": {"start": {"line": 479, "column": 4}, "end": {"line": 479, "column": 42}}, + "73": {"start": {"line": 488, "column": 4}, "end": {"line": 488, "column": 80}}, + "74": {"start": {"line": 490, "column": 4}, "end": {"line": 490, "column": 48}}, + "75": {"start": {"line": 492, "column": 4}, "end": {"line": 492, "column": 51}}, + "76": {"start": {"line": 494, "column": 4}, "end": {"line": 494, "column": 51}}, + "77": {"start": {"line": 504, "column": 4}, "end": {"line": 504, "column": 80}}, + "78": {"start": {"line": 506, "column": 4}, "end": {"line": 506, "column": 51}}, + "79": {"start": {"line": 508, "column": 4}, "end": {"line": 508, "column": 51}}, + "80": {"start": {"line": 510, "column": 4}, "end": {"line": 510, "column": 61}}, + "81": {"start": {"line": 519, "column": 4}, "end": {"line": 519, "column": 80}}, + "82": {"start": {"line": 521, "column": 4}, "end": {"line": 521, "column": 43}}, + "83": {"start": {"line": 523, "column": 4}, "end": {"line": 523, "column": 51}}, + "84": {"start": {"line": 525, "column": 4}, "end": {"line": 525, "column": 53}}, + "85": {"start": {"line": 534, "column": 4}, "end": {"line": 534, "column": 80}}, + "86": {"start": {"line": 536, "column": 4}, "end": {"line": 536, "column": 38}}, + "87": {"start": {"line": 538, "column": 4}, "end": {"line": 538, "column": 51}}, + "88": {"start": {"line": 540, "column": 4}, "end": {"line": 540, "column": 48}}, + "89": {"start": {"line": 552, "column": 4}, "end": {"line": 552, "column": 73}}, + "90": {"start": {"line": 553, "column": 4}, "end": {"line": 553, "column": 71}}, + "91": {"start": {"line": 562, "column": 4}, "end": {"line": 562, "column": 93}}, + "92": {"start": {"line": 564, "column": 4}, "end": {"line": 564, "column": 18940}}, + "93": {"start": {"line": 571, "column": 4}, "end": {"line": 571, "column": 58}}, + "94": {"start": {"line": 573, "column": 4}, "end": {"line": 573, "column": 25}}, + "95": {"start": {"line": 581, "column": 4}, "end": {"line": 581, "column": 19368}}, + "96": {"start": {"line": 585, "column": 4}, "end": {"line": 585, "column": 84}}, + "97": {"start": {"line": 587, "column": 4}, "end": {"line": 587, "column": 19580}}, + "98": {"start": {"line": 594, "column": 4}, "end": {"line": 594, "column": 49}}, + "99": {"start": {"line": 602, "column": 4}, "end": {"line": 602, "column": 21}} + }, + "branchMap": { + "1": { + "line": 187, + "type": "if", + "locations": [ + {"start": {"line": 187, "column": 4}, "end": {"line": 187, "column": 4}}, + {"start": {"line": 187, "column": 4}, "end": {"line": 187, "column": 4}} + ] + }, + "2": { + "line": 425, + "type": "if", + "locations": [ + {"start": {"line": 425, "column": 4}, "end": {"line": 425, "column": 4}}, + {"start": {"line": 425, "column": 4}, "end": {"line": 425, "column": 4}} + ] + } + } + }, + "contracts/lendingpool/LendingPoolStorage.sol": { + "l": {"30": 0, "37": 0}, + "path": "/src/contracts/lendingpool/LendingPoolStorage.sol", + "s": {"1": 0, "2": 0}, + "b": {}, + "f": {"1": 0, "2": 0}, + "fnMap": { + "1": { + "name": "getReservesList", + "line": 29, + "loc": {"start": {"line": 29, "column": 2}, "end": {"line": 31, "column": 2}} + }, + "2": { + "name": "getAddressesProvider", + "line": 36, + "loc": {"start": {"line": 36, "column": 2}, "end": {"line": 38, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 24}}, + "2": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 29}} + }, + "branchMap": {} + }, + "contracts/libraries/configuration/ReserveConfiguration.sol": { + "l": { + "46": 1, + "55": 570, + "63": 16, + "72": 194, + "84": 15, + "97": 112, + "106": 15, + "119": 97, + "128": 17, + "137": 178, + "146": 31, + "155": 179, + "164": 21, + "173": 97, + "182": 19, + "191": 97, + "202": 20, + "215": 97, + "233": 179, + "235": 179, + "258": 209, + "260": 209 + }, + "path": "/src/contracts/libraries/configuration/ReserveConfiguration.sol", + "s": { + "1": 1, + "2": 570, + "3": 16, + "4": 194, + "5": 15, + "6": 112, + "7": 15, + "8": 97, + "9": 17, + "10": 178, + "11": 31, + "12": 179, + "13": 21, + "14": 97, + "15": 19, + "16": 97, + "17": 20, + "18": 97, + "19": 179, + "20": 179, + "21": 209, + "22": 209 + }, + "b": {}, + "f": { + "1": 1, + "2": 570, + "3": 16, + "4": 194, + "5": 15, + "6": 112, + "7": 15, + "8": 97, + "9": 17, + "10": 178, + "11": 31, + "12": 179, + "13": 21, + "14": 97, + "15": 19, + "16": 97, + "17": 20, + "18": 97, + "19": 179, + "20": 209 + }, + "fnMap": { + "1": { + "name": "setReserveFactor", + "line": 44, + "loc": {"start": {"line": 44, "column": 2}, "end": {"line": 47, "column": 2}} + }, + "2": { + "name": "getReserveFactor", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 56, "column": 2}} + }, + "3": { + "name": "setLtv", + "line": 62, + "loc": {"start": {"line": 62, "column": 2}, "end": {"line": 64, "column": 2}} + }, + "4": { + "name": "getLtv", + "line": 71, + "loc": {"start": {"line": 71, "column": 2}, "end": {"line": 73, "column": 2}} + }, + "5": { + "name": "setLiquidationThreshold", + "line": 80, + "loc": {"start": {"line": 80, "column": 2}, "end": {"line": 85, "column": 2}} + }, + "6": { + "name": "getLiquidationThreshold", + "line": 92, + "loc": {"start": {"line": 92, "column": 2}, "end": {"line": 98, "column": 2}} + }, + "7": { + "name": "setLiquidationBonus", + "line": 105, + "loc": {"start": {"line": 105, "column": 2}, "end": {"line": 107, "column": 2}} + }, + "8": { + "name": "getLiquidationBonus", + "line": 114, + "loc": {"start": {"line": 114, "column": 2}, "end": {"line": 120, "column": 2}} + }, + "9": { + "name": "setDecimals", + "line": 127, + "loc": {"start": {"line": 127, "column": 2}, "end": {"line": 129, "column": 2}} + }, + "10": { + "name": "getDecimals", + "line": 136, + "loc": {"start": {"line": 136, "column": 2}, "end": {"line": 138, "column": 2}} + }, + "11": { + "name": "setActive", + "line": 145, + "loc": {"start": {"line": 145, "column": 2}, "end": {"line": 147, "column": 2}} + }, + "12": { + "name": "getActive", + "line": 154, + "loc": {"start": {"line": 154, "column": 2}, "end": {"line": 156, "column": 2}} + }, + "13": { + "name": "setFrozen", + "line": 163, + "loc": {"start": {"line": 163, "column": 2}, "end": {"line": 165, "column": 2}} + }, + "14": { + "name": "getFrozen", + "line": 172, + "loc": {"start": {"line": 172, "column": 2}, "end": {"line": 174, "column": 2}} + }, + "15": { + "name": "setBorrowingEnabled", + "line": 181, + "loc": {"start": {"line": 181, "column": 2}, "end": {"line": 183, "column": 2}} + }, + "16": { + "name": "getBorrowingEnabled", + "line": 190, + "loc": {"start": {"line": 190, "column": 2}, "end": {"line": 192, "column": 2}} + }, + "17": { + "name": "setStableRateBorrowingEnabled", + "line": 199, + "loc": {"start": {"line": 199, "column": 2}, "end": {"line": 203, "column": 2}} + }, + "18": { + "name": "getStableRateBorrowingEnabled", + "line": 210, + "loc": {"start": {"line": 210, "column": 2}, "end": {"line": 216, "column": 2}} + }, + "19": { + "name": "getFlags", + "line": 223, + "loc": {"start": {"line": 223, "column": 2}, "end": {"line": 241, "column": 2}} + }, + "20": { + "name": "getParams", + "line": 248, + "loc": {"start": {"line": 248, "column": 2}, "end": {"line": 266, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 70}}, + "2": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 51}}, + "3": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 43}}, + "4": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 32}}, + "5": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 75}}, + "6": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 58}}, + "7": {"start": {"line": 106, "column": 4}, "end": {"line": 106, "column": 67}}, + "8": {"start": {"line": 119, "column": 4}, "end": {"line": 119, "column": 54}}, + "9": {"start": {"line": 128, "column": 4}, "end": {"line": 128, "column": 61}}, + "10": {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 45}}, + "11": {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 74}}, + "12": {"start": {"line": 155, "column": 4}, "end": {"line": 155, "column": 50}}, + "13": {"start": {"line": 164, "column": 4}, "end": {"line": 164, "column": 74}}, + "14": {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 50}}, + "15": {"start": {"line": 182, "column": 4}, "end": {"line": 182, "column": 78}}, + "16": {"start": {"line": 191, "column": 4}, "end": {"line": 191, "column": 53}}, + "17": {"start": {"line": 202, "column": 4}, "end": {"line": 202, "column": 85}}, + "18": {"start": {"line": 215, "column": 4}, "end": {"line": 215, "column": 60}}, + "19": {"start": {"line": 233, "column": 4}, "end": {"line": 233, "column": 33}}, + "20": {"start": {"line": 235, "column": 4}, "end": {"line": 235, "column": 7613}}, + "21": {"start": {"line": 258, "column": 4}, "end": {"line": 258, "column": 33}}, + "22": {"start": {"line": 260, "column": 4}, "end": {"line": 260, "column": 8256}} + }, + "branchMap": {} + }, + "contracts/libraries/configuration/UserConfiguration.sol": { + "l": {"31": 49, "47": 121, "63": 1853, "77": 235, "91": 550, "100": 33, "109": 119}, + "path": "/src/contracts/libraries/configuration/UserConfiguration.sol", + "s": {"1": 49, "2": 121, "3": 1853, "4": 235, "5": 550, "6": 33, "7": 119}, + "b": {}, + "f": {"1": 49, "2": 121, "3": 1853, "4": 235, "5": 550, "6": 33, "7": 119}, + "fnMap": { + "1": { + "name": "setBorrowing", + "line": 26, + "loc": {"start": {"line": 26, "column": 2}, "end": {"line": 34, "column": 2}} + }, + "2": { + "name": "setUsingAsCollateral", + "line": 42, + "loc": {"start": {"line": 42, "column": 2}, "end": {"line": 50, "column": 2}} + }, + "3": { + "name": "isUsingAsCollateralOrBorrowing", + "line": 58, + "loc": {"start": {"line": 58, "column": 2}, "end": {"line": 64, "column": 2}} + }, + "4": { + "name": "isBorrowing", + "line": 72, + "loc": {"start": {"line": 72, "column": 2}, "end": {"line": 78, "column": 2}} + }, + "5": { + "name": "isUsingAsCollateral", + "line": 86, + "loc": {"start": {"line": 86, "column": 2}, "end": {"line": 92, "column": 2}} + }, + "6": { + "name": "isBorrowingAny", + "line": 99, + "loc": {"start": {"line": 99, "column": 2}, "end": {"line": 101, "column": 2}} + }, + "7": { + "name": "isEmpty", + "line": 108, + "loc": {"start": {"line": 108, "column": 2}, "end": {"line": 110, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 1104}}, + "2": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 1694}}, + "3": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 53}}, + "4": {"start": {"line": 77, "column": 4}, "end": {"line": 77, "column": 53}}, + "5": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 57}}, + "6": {"start": {"line": 100, "column": 4}, "end": {"line": 100, "column": 42}}, + "7": {"start": {"line": 109, "column": 4}, "end": {"line": 109, "column": 25}} + }, + "branchMap": {} + }, + "contracts/libraries/helpers/Errors.sol": { + "l": {}, + "path": "/src/contracts/libraries/helpers/Errors.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/libraries/helpers/Helpers.sol": { + "l": {"24": 395}, + "path": "/src/contracts/libraries/helpers/Helpers.sol", + "s": {"1": 395}, + "b": {}, + "f": {"1": 395}, + "fnMap": { + "1": { + "name": "getUserCurrentDebt", + "line": 19, + "loc": {"start": {"line": 19, "column": 2}, "end": {"line": 28, "column": 2}} + } + }, + "statementMap": {"1": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 653}}}, + "branchMap": {} + }, + "contracts/libraries/logic/GenericLogic.sol": { + "l": { + "65": 33, + "69": 27, + "72": 6, + "74": 6, + "76": 6, + "77": 0, + "80": 6, + "88": 6, + "89": 0, + "92": 6, + "96": 6, + "99": 6, + "100": 3, + "103": 3, + "109": 3, + "115": 3, + "169": 119, + "171": 119, + "172": 10, + "174": 109, + "175": 1853, + "176": 1668, + "179": 185, + "180": 185, + "182": 185, + "186": 185, + "187": 185, + "189": 185, + "190": 128, + "192": 128, + "197": 128, + "199": 128, + "200": 128, + "205": 185, + "206": 63, + "209": 63, + "213": 63, + "219": 109, + "222": 109, + "226": 109, + "231": 109, + "252": 112, + "254": 64, + "271": 21, + "273": 21, + "274": 11, + "277": 10, + "278": 10 + }, + "path": "/src/contracts/libraries/logic/GenericLogic.sol", + "s": { + "1": 33, + "2": 27, + "3": 6, + "4": 6, + "5": 6, + "6": 0, + "7": 6, + "8": 6, + "9": 0, + "10": 6, + "11": 6, + "12": 6, + "13": 3, + "14": 3, + "15": 3, + "16": 3, + "17": 119, + "18": 119, + "19": 10, + "20": 109, + "21": 1853, + "22": 185, + "23": 185, + "24": 185, + "25": 185, + "26": 185, + "27": 185, + "28": 128, + "29": 128, + "30": 128, + "31": 128, + "32": 128, + "33": 185, + "34": 63, + "35": 63, + "36": 63, + "37": 109, + "38": 109, + "39": 109, + "40": 109, + "41": 112, + "42": 48, + "43": 64, + "44": 21, + "45": 21, + "46": 11, + "47": 10, + "48": 10 + }, + "b": { + "1": [27, 6], + "2": [0, 6], + "3": [0, 6], + "4": [3, 3], + "5": [10, 109], + "6": [1668, 185], + "7": [128, 57], + "8": [63, 122], + "9": [48, 64], + "10": [11, 10] + }, + "f": {"1": 33, "2": 119, "3": 112, "4": 21}, + "fnMap": { + "1": { + "name": "balanceDecreaseAllowed", + "line": 56, + "loc": {"start": {"line": 56, "column": 2}, "end": {"line": 116, "column": 2}} + }, + "2": { + "name": "calculateUserAccountData", + "line": 152, + "loc": {"start": {"line": 152, "column": 2}, "end": {"line": 238, "column": 2}} + }, + "3": { + "name": "calculateHealthFactorFromBalances", + "line": 247, + "loc": {"start": {"line": 247, "column": 2}, "end": {"line": 255, "column": 2}} + }, + "4": { + "name": "calculateAvailableBorrowsETH", + "line": 266, + "loc": {"start": {"line": 266, "column": 2}, "end": {"line": 279, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 2530}}, + "2": {"start": {"line": 69, "column": 6}, "end": {"line": 69, "column": 17}}, + "3": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 47}}, + "4": {"start": {"line": 74, "column": 4}, "end": {"line": 74, "column": 80}}, + "5": {"start": {"line": 76, "column": 4}, "end": {"line": 76, "column": 2807}}, + "6": {"start": {"line": 77, "column": 6}, "end": {"line": 77, "column": 17}}, + "7": {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 3008}}, + "8": {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 3133}}, + "9": {"start": {"line": 89, "column": 6}, "end": {"line": 89, "column": 17}}, + "10": {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 3245}}, + "11": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 95}}, + "12": {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 3528}}, + "13": {"start": {"line": 100, "column": 6}, "end": {"line": 100, "column": 18}}, + "14": {"start": {"line": 103, "column": 4}, "end": {"line": 103, "column": 3647}}, + "15": {"start": {"line": 109, "column": 4}, "end": {"line": 109, "column": 3854}}, + "16": {"start": {"line": 115, "column": 4}, "end": {"line": 115, "column": 87}}, + "17": {"start": {"line": 169, "column": 4}, "end": {"line": 169, "column": 44}}, + "18": {"start": {"line": 171, "column": 4}, "end": {"line": 171, "column": 5830}}, + "19": {"start": {"line": 172, "column": 6}, "end": {"line": 172, "column": 38}}, + "20": {"start": {"line": 174, "column": 4}, "end": {"line": 174, "column": 5908}}, + "21": {"start": {"line": 175, "column": 6}, "end": {"line": 175, "column": 5971}}, + "22": {"start": {"line": 179, "column": 6}, "end": {"line": 179, "column": 50}}, + "23": {"start": {"line": 180, "column": 6}, "end": {"line": 180, "column": 96}}, + "24": {"start": {"line": 182, "column": 6}, "end": {"line": 182, "column": 6227}}, + "25": {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 39}}, + "26": {"start": {"line": 187, "column": 6}, "end": {"line": 187, "column": 97}}, + "27": {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 6481}}, + "28": {"start": {"line": 190, "column": 8}, "end": {"line": 190, "column": 93}}, + "29": {"start": {"line": 192, "column": 8}, "end": {"line": 192, "column": 6673}}, + "30": {"start": {"line": 197, "column": 8}, "end": {"line": 197, "column": 95}}, + "31": {"start": {"line": 199, "column": 8}, "end": {"line": 199, "column": 71}}, + "32": {"start": {"line": 200, "column": 8}, "end": {"line": 200, "column": 6976}}, + "33": {"start": {"line": 205, "column": 6}, "end": {"line": 205, "column": 7126}}, + "34": {"start": {"line": 206, "column": 8}, "end": {"line": 206, "column": 7174}}, + "35": {"start": {"line": 209, "column": 8}, "end": {"line": 209, "column": 7296}}, + "36": {"start": {"line": 213, "column": 8}, "end": {"line": 213, "column": 7455}}, + "37": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 7632}}, + "38": {"start": {"line": 222, "column": 4}, "end": {"line": 222, "column": 7752}}, + "39": {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 7903}}, + "40": {"start": {"line": 231, "column": 4}, "end": {"line": 231, "column": 8077}}, + "41": {"start": {"line": 252, "column": 4}, "end": {"line": 252, "column": 49}}, + "42": {"start": {"line": 252, "column": 31}, "end": {"line": 252, "column": 49}}, + "43": {"start": {"line": 254, "column": 4}, "end": {"line": 254, "column": 91}}, + "44": {"start": {"line": 271, "column": 4}, "end": {"line": 271, "column": 70}}, + "45": {"start": {"line": 273, "column": 4}, "end": {"line": 273, "column": 9571}}, + "46": {"start": {"line": 274, "column": 6}, "end": {"line": 274, "column": 14}}, + "47": {"start": {"line": 277, "column": 4}, "end": {"line": 277, "column": 66}}, + "48": {"start": {"line": 278, "column": 4}, "end": {"line": 278, "column": 30}} + }, + "branchMap": { + "1": { + "line": 65, + "type": "if", + "locations": [ + {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 4}}, + {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 4}} + ] + }, + "2": { + "line": 76, + "type": "if", + "locations": [ + {"start": {"line": 76, "column": 4}, "end": {"line": 76, "column": 4}}, + {"start": {"line": 76, "column": 4}, "end": {"line": 76, "column": 4}} + ] + }, + "3": { + "line": 88, + "type": "if", + "locations": [ + {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 4}}, + {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 4}} + ] + }, + "4": { + "line": 99, + "type": "if", + "locations": [ + {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 4}}, + {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 4}} + ] + }, + "5": { + "line": 171, + "type": "if", + "locations": [ + {"start": {"line": 171, "column": 4}, "end": {"line": 171, "column": 4}}, + {"start": {"line": 171, "column": 4}, "end": {"line": 171, "column": 4}} + ] + }, + "6": { + "line": 175, + "type": "if", + "locations": [ + {"start": {"line": 175, "column": 6}, "end": {"line": 175, "column": 6}}, + {"start": {"line": 175, "column": 6}, "end": {"line": 175, "column": 6}} + ] + }, + "7": { + "line": 189, + "type": "if", + "locations": [ + {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 6}}, + {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 6}} + ] + }, + "8": { + "line": 205, + "type": "if", + "locations": [ + {"start": {"line": 205, "column": 6}, "end": {"line": 205, "column": 6}}, + {"start": {"line": 205, "column": 6}, "end": {"line": 205, "column": 6}} + ] + }, + "9": { + "line": 252, + "type": "if", + "locations": [ + {"start": {"line": 252, "column": 4}, "end": {"line": 252, "column": 4}}, + {"start": {"line": 252, "column": 4}, "end": {"line": 252, "column": 4}} + ] + }, + "10": { + "line": 273, + "type": "if", + "locations": [ + {"start": {"line": 273, "column": 4}, "end": {"line": 273, "column": 4}}, + {"start": {"line": 273, "column": 4}, "end": {"line": 273, "column": 4}} + ] + } + } + }, + "contracts/libraries/logic/ReserveLogic.sol": { + "l": { + "85": 648, + "88": 648, + "90": 370, + "93": 278, + "97": 278, + "108": 810, + "111": 810, + "113": 498, + "116": 312, + "120": 312, + "134": 11, + "139": 10, + "151": 239, + "152": 239, + "153": 239, + "155": 239, + "162": 239, + "183": 3, + "185": 3, + "187": 3, + "188": 3, + "190": 3, + "206": 17, + "207": 17, + "209": 17, + "212": 17, + "213": 17, + "216": 17, + "217": 17, + "218": 17, + "219": 17, + "246": 235, + "248": 235, + "250": 235, + "253": 235, + "255": 235, + "267": 234, + "268": 234, + "269": 234, + "271": 234, + "272": 234, + "273": 234, + "275": 234, + "316": 239, + "318": 239, + "320": 239, + "321": 239, + "325": 0, + "328": 0, + "336": 0, + "339": 0, + "342": 0, + "347": 0, + "350": 0, + "356": 0, + "358": 0, + "374": 239, + "376": 239, + "378": 239, + "379": 239, + "382": 239, + "383": 69, + "387": 69, + "388": 69, + "390": 69, + "394": 69, + "395": 39, + "399": 39, + "400": 39, + "401": 39, + "406": 239, + "407": 239 + }, + "path": "/src/contracts/libraries/logic/ReserveLogic.sol", + "s": { + "1": 648, + "2": 648, + "3": 370, + "4": 278, + "5": 278, + "6": 810, + "7": 810, + "8": 498, + "9": 312, + "10": 312, + "11": 11, + "12": 10, + "13": 239, + "14": 239, + "15": 239, + "16": 239, + "17": 239, + "18": 3, + "19": 3, + "20": 3, + "21": 3, + "22": 3, + "23": 17, + "24": 17, + "25": 17, + "26": 17, + "27": 17, + "28": 17, + "29": 17, + "30": 17, + "31": 17, + "32": 235, + "33": 235, + "34": 235, + "35": 235, + "36": 235, + "37": 234, + "38": 234, + "39": 234, + "40": 234, + "41": 234, + "42": 234, + "43": 234, + "44": 239, + "45": 239, + "46": 239, + "47": 239, + "48": 0, + "49": 0, + "50": 0, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 0, + "57": 239, + "58": 239, + "59": 239, + "60": 239, + "61": 239, + "62": 69, + "63": 69, + "64": 69, + "65": 69, + "66": 69, + "67": 39, + "68": 39, + "69": 39, + "70": 39, + "71": 239, + "72": 239 + }, + "b": { + "1": [370, 278], + "2": [498, 312], + "3": [10, 1], + "4": [3, 0], + "5": [17, 0], + "6": [17, 0], + "7": [17, 0], + "8": [234, 0], + "9": [234, 0], + "10": [234, 0], + "11": [239, 0], + "12": [69, 170], + "13": [69, 0], + "14": [39, 30], + "15": [39, 0] + }, + "f": {"1": 648, "2": 810, "3": 11, "4": 239, "5": 3, "6": 17, "7": 235, "8": 239, "9": 239}, + "fnMap": { + "1": { + "name": "getNormalizedIncome", + "line": 84, + "loc": {"start": {"line": 84, "column": 2}, "end": {"line": 98, "column": 2}} + }, + "2": { + "name": "getNormalizedDebt", + "line": 107, + "loc": {"start": {"line": 107, "column": 2}, "end": {"line": 121, "column": 2}} + }, + "3": { + "name": "getDebtTokenAddress", + "line": 129, + "loc": {"start": {"line": 129, "column": 2}, "end": {"line": 143, "column": 2}} + }, + "4": { + "name": "updateState", + "line": 150, + "loc": {"start": {"line": 150, "column": 2}, "end": {"line": 169, "column": 2}} + }, + "5": { + "name": "cumulateToLiquidityIndex", + "line": 178, + "loc": {"start": {"line": 178, "column": 2}, "end": {"line": 191, "column": 2}} + }, + "6": { + "name": "init", + "line": 199, + "loc": {"start": {"line": 199, "column": 2}, "end": {"line": 220, "column": 2}} + }, + "7": { + "name": "updateInterestRates", + "line": 239, + "loc": {"start": {"line": 239, "column": 2}, "end": {"line": 283, "column": 2}} + }, + "8": { + "name": "_mintToTreasury", + "line": 309, + "loc": {"start": {"line": 309, "column": 2}, "end": {"line": 359, "column": 2}} + }, + "9": { + "name": "_updateIndexes", + "line": 368, + "loc": {"start": {"line": 368, "column": 2}, "end": {"line": 408, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 50}}, + "2": {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 3533}}, + "3": {"start": {"line": 90, "column": 6}, "end": {"line": 90, "column": 35}}, + "4": {"start": {"line": 93, "column": 4}, "end": {"line": 93, "column": 3745}}, + "5": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 20}}, + "6": {"start": {"line": 108, "column": 4}, "end": {"line": 108, "column": 50}}, + "7": {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 4417}}, + "8": {"start": {"line": 113, "column": 6}, "end": {"line": 113, "column": 40}}, + "9": {"start": {"line": 116, "column": 4}, "end": {"line": 116, "column": 4639}}, + "10": {"start": {"line": 120, "column": 4}, "end": {"line": 120, "column": 20}}, + "11": {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 5256}}, + "12": {"start": {"line": 139, "column": 4}, "end": {"line": 139, "column": 5559}}, + "13": {"start": {"line": 151, "column": 4}, "end": {"line": 151, "column": 64}}, + "14": {"start": {"line": 152, "column": 4}, "end": {"line": 152, "column": 69}}, + "15": {"start": {"line": 153, "column": 4}, "end": {"line": 153, "column": 59}}, + "16": {"start": {"line": 155, "column": 4}, "end": {"line": 155, "column": 6182}}, + "17": {"start": {"line": 162, "column": 4}, "end": {"line": 162, "column": 6375}}, + "18": {"start": {"line": 183, "column": 4}, "end": {"line": 183, "column": 88}}, + "19": {"start": {"line": 185, "column": 4}, "end": {"line": 185, "column": 65}}, + "20": {"start": {"line": 187, "column": 4}, "end": {"line": 187, "column": 49}}, + "21": {"start": {"line": 188, "column": 4}, "end": {"line": 188, "column": 64}}, + "22": {"start": {"line": 190, "column": 4}, "end": {"line": 190, "column": 43}}, + "23": {"start": {"line": 206, "column": 4}, "end": {"line": 206, "column": 83}}, + "24": {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 7908}}, + "25": {"start": {"line": 209, "column": 6}, "end": {"line": 209, "column": 55}}, + "26": {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 8064}}, + "27": {"start": {"line": 213, "column": 6}, "end": {"line": 213, "column": 60}}, + "28": {"start": {"line": 216, "column": 4}, "end": {"line": 216, "column": 40}}, + "29": {"start": {"line": 217, "column": 4}, "end": {"line": 217, "column": 58}}, + "30": {"start": {"line": 218, "column": 4}, "end": {"line": 218, "column": 62}}, + "31": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 68}}, + "32": {"start": {"line": 246, "column": 4}, "end": {"line": 246, "column": 44}}, + "33": {"start": {"line": 248, "column": 4}, "end": {"line": 248, "column": 63}}, + "34": {"start": {"line": 250, "column": 4}, "end": {"line": 250, "column": 9530}}, + "35": {"start": {"line": 253, "column": 4}, "end": {"line": 253, "column": 76}}, + "36": {"start": {"line": 255, "column": 4}, "end": {"line": 255, "column": 9713}}, + "37": {"start": {"line": 267, "column": 4}, "end": {"line": 267, "column": 87}}, + "38": {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 88}}, + "39": {"start": {"line": 269, "column": 4}, "end": {"line": 269, "column": 92}}, + "40": {"start": {"line": 271, "column": 4}, "end": {"line": 271, "column": 64}}, + "41": {"start": {"line": 272, "column": 4}, "end": {"line": 272, "column": 64}}, + "42": {"start": {"line": 273, "column": 4}, "end": {"line": 273, "column": 68}}, + "43": {"start": {"line": 275, "column": 4}, "end": {"line": 275, "column": 10646}}, + "44": {"start": {"line": 316, "column": 4}, "end": {"line": 316, "column": 39}}, + "45": {"start": {"line": 318, "column": 4}, "end": {"line": 318, "column": 64}}, + "46": {"start": {"line": 320, "column": 4}, "end": {"line": 320, "column": 12121}}, + "47": {"start": {"line": 321, "column": 6}, "end": {"line": 321, "column": 12}}, + "48": {"start": {"line": 325, "column": 4}, "end": {"line": 325, "column": 86}}, + "49": {"start": {"line": 328, "column": 4}, "end": {"line": 328, "column": 12457}}, + "50": {"start": {"line": 336, "column": 4}, "end": {"line": 336, "column": 90}}, + "51": {"start": {"line": 339, "column": 4}, "end": {"line": 339, "column": 84}}, + "52": {"start": {"line": 342, "column": 4}, "end": {"line": 342, "column": 12963}}, + "53": {"start": {"line": 347, "column": 4}, "end": {"line": 347, "column": 90}}, + "54": {"start": {"line": 350, "column": 4}, "end": {"line": 350, "column": 13330}}, + "55": {"start": {"line": 356, "column": 4}, "end": {"line": 356, "column": 75}}, + "56": {"start": {"line": 358, "column": 4}, "end": {"line": 358, "column": 86}}, + "57": {"start": {"line": 374, "column": 4}, "end": {"line": 374, "column": 50}}, + "58": {"start": {"line": 376, "column": 4}, "end": {"line": 376, "column": 63}}, + "59": {"start": {"line": 378, "column": 4}, "end": {"line": 378, "column": 46}}, + "60": {"start": {"line": 379, "column": 4}, "end": {"line": 379, "column": 56}}, + "61": {"start": {"line": 382, "column": 4}, "end": {"line": 382, "column": 14442}}, + "62": {"start": {"line": 383, "column": 6}, "end": {"line": 383, "column": 14483}}, + "63": {"start": {"line": 387, "column": 6}, "end": {"line": 387, "column": 74}}, + "64": {"start": {"line": 388, "column": 6}, "end": {"line": 388, "column": 77}}, + "65": {"start": {"line": 390, "column": 6}, "end": {"line": 390, "column": 56}}, + "66": {"start": {"line": 394, "column": 6}, "end": {"line": 394, "column": 14986}}, + "67": {"start": {"line": 395, "column": 8}, "end": {"line": 395, "column": 15048}}, + "68": {"start": {"line": 399, "column": 8}, "end": {"line": 399, "column": 91}}, + "69": {"start": {"line": 400, "column": 8}, "end": {"line": 400, "column": 90}}, + "70": {"start": {"line": 401, "column": 8}, "end": {"line": 401, "column": 68}}, + "71": {"start": {"line": 406, "column": 4}, "end": {"line": 406, "column": 56}}, + "72": {"start": {"line": 407, "column": 4}, "end": {"line": 407, "column": 54}} + }, + "branchMap": { + "1": { + "line": 88, + "type": "if", + "locations": [ + {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 4}}, + {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 4}} + ] + }, + "2": { + "line": 111, + "type": "if", + "locations": [ + {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 4}}, + {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 4}} + ] + }, + "3": { + "line": 134, + "type": "if", + "locations": [ + {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 4}}, + {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 4}} + ] + }, + "4": { + "line": 188, + "type": "if", + "locations": [ + {"start": {"line": 188, "column": 4}, "end": {"line": 188, "column": 4}}, + {"start": {"line": 188, "column": 4}, "end": {"line": 188, "column": 4}} + ] + }, + "5": { + "line": 206, + "type": "if", + "locations": [ + {"start": {"line": 206, "column": 4}, "end": {"line": 206, "column": 4}}, + {"start": {"line": 206, "column": 4}, "end": {"line": 206, "column": 4}} + ] + }, + "6": { + "line": 207, + "type": "if", + "locations": [ + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}}, + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}} + ] + }, + "7": { + "line": 212, + "type": "if", + "locations": [ + {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 4}}, + {"start": {"line": 212, "column": 4}, "end": {"line": 212, "column": 4}} + ] + }, + "8": { + "line": 267, + "type": "if", + "locations": [ + {"start": {"line": 267, "column": 4}, "end": {"line": 267, "column": 4}}, + {"start": {"line": 267, "column": 4}, "end": {"line": 267, "column": 4}} + ] + }, + "9": { + "line": 268, + "type": "if", + "locations": [ + {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 4}}, + {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 4}} + ] + }, + "10": { + "line": 269, + "type": "if", + "locations": [ + {"start": {"line": 269, "column": 4}, "end": {"line": 269, "column": 4}}, + {"start": {"line": 269, "column": 4}, "end": {"line": 269, "column": 4}} + ] + }, + "11": { + "line": 320, + "type": "if", + "locations": [ + {"start": {"line": 320, "column": 4}, "end": {"line": 320, "column": 4}}, + {"start": {"line": 320, "column": 4}, "end": {"line": 320, "column": 4}} + ] + }, + "12": { + "line": 382, + "type": "if", + "locations": [ + {"start": {"line": 382, "column": 4}, "end": {"line": 382, "column": 4}}, + {"start": {"line": 382, "column": 4}, "end": {"line": 382, "column": 4}} + ] + }, + "13": { + "line": 388, + "type": "if", + "locations": [ + {"start": {"line": 388, "column": 6}, "end": {"line": 388, "column": 6}}, + {"start": {"line": 388, "column": 6}, "end": {"line": 388, "column": 6}} + ] + }, + "14": { + "line": 394, + "type": "if", + "locations": [ + {"start": {"line": 394, "column": 6}, "end": {"line": 394, "column": 6}}, + {"start": {"line": 394, "column": 6}, "end": {"line": 394, "column": 6}} + ] + }, + "15": { + "line": 400, + "type": "if", + "locations": [ + {"start": {"line": 400, "column": 8}, "end": {"line": 400, "column": 8}}, + {"start": {"line": 400, "column": 8}, "end": {"line": 400, "column": 8}} + ] + } + } + }, + "contracts/libraries/logic/ValidationLogic.sol": { + "l": { + "38": 104, + "40": 104, + "41": 102, + "42": 102, + "60": 25, + "62": 24, + "64": 23, + "125": 63, + "127": 63, + "134": 63, + "135": 63, + "137": 63, + "140": 63, + "146": 61, + "160": 61, + "162": 55, + "168": 55, + "172": 55, + "186": 50, + "189": 0, + "191": 0, + "200": 0, + "202": 0, + "222": 20, + "224": 20, + "226": 20, + "228": 18, + "236": 18, + "257": 4, + "259": 4, + "260": 4, + "262": 4, + "263": 2, + "265": 2, + "273": 1, + "275": 1, + "283": 0, + "304": 7, + "306": 7, + "308": 7, + "328": 13, + "329": 12, + "349": 10, + "352": 2, + "355": 8, + "356": 1, + "362": 7, + "366": 7, + "367": 1, + "373": 6, + "374": 1, + "380": 5, + "402": 18, + "405": 2, + "408": 16, + "411": 0, + "417": 16, + "418": 8, + "422": 8, + "423": 1, + "430": 15, + "431": 2, + "437": 13, + "453": 9, + "454": 1, + "460": 8, + "461": 8, + "462": 2, + "464": 6, + "465": 1, + "471": 5 + }, + "path": "/src/contracts/libraries/logic/ValidationLogic.sol", + "s": { + "1": 104, + "2": 104, + "3": 102, + "4": 102, + "5": 25, + "6": 24, + "7": 23, + "8": 63, + "9": 63, + "10": 63, + "11": 63, + "12": 63, + "13": 63, + "14": 61, + "15": 61, + "16": 55, + "17": 55, + "18": 55, + "19": 50, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 20, + "25": 20, + "26": 20, + "27": 18, + "28": 18, + "29": 4, + "30": 4, + "31": 4, + "32": 4, + "33": 2, + "34": 2, + "35": 2, + "36": 1, + "37": 1, + "38": 0, + "39": 7, + "40": 7, + "41": 7, + "42": 13, + "43": 12, + "44": 10, + "45": 2, + "46": 8, + "47": 1, + "48": 7, + "49": 7, + "50": 1, + "51": 6, + "52": 1, + "53": 5, + "54": 18, + "55": 2, + "56": 16, + "57": 0, + "58": 16, + "59": 8, + "60": 8, + "61": 1, + "62": 15, + "63": 2, + "64": 13, + "65": 9, + "66": 1, + "67": 8, + "68": 8, + "69": 2, + "70": 6, + "71": 1, + "72": 5 + }, + "b": { + "1": [102, 2], + "2": [102, 0], + "3": [102, 0], + "4": [24, 1], + "5": [23, 1], + "6": [22, 1], + "7": [63, 0], + "8": [63, 0], + "9": [63, 0], + "10": [61, 2], + "11": [55, 6], + "12": [55, 0], + "13": [50, 5], + "14": [0, 50], + "15": [0, 0], + "16": [0, 0], + "17": [0, 0], + "18": [20, 0], + "19": [18, 2], + "20": [18, 0], + "21": [17, 1], + "22": [4, 0], + "23": [4, 0], + "24": [2, 2], + "25": [1, 1], + "26": [2, 0], + "27": [1, 1], + "28": [1, 0], + "29": [1, 0], + "30": [7, 0], + "31": [6, 1], + "32": [12, 1], + "33": [11, 1], + "34": [2, 8], + "35": [1, 7], + "36": [1, 6], + "37": [1, 5], + "38": [2, 16], + "39": [0, 16], + "40": [8, 8], + "41": [1, 7], + "42": [2, 13], + "43": [1, 8], + "44": [2, 6], + "45": [1, 5] + }, + "f": {"1": 104, "2": 25, "3": 63, "4": 20, "5": 4, "6": 7, "7": 13, "8": 10, "9": 18, "10": 9}, + "fnMap": { + "1": { + "name": "validateDeposit", + "line": 37, + "loc": {"start": {"line": 37, "column": 2}, "end": {"line": 43, "column": 2}} + }, + "2": { + "name": "validateWithdraw", + "line": 51, + "loc": {"start": {"line": 51, "column": 2}, "end": {"line": 76, "column": 2}} + }, + "3": { + "name": "validateBorrow", + "line": 113, + "loc": {"start": {"line": 113, "column": 2}, "end": {"line": 204, "column": 2}} + }, + "4": { + "name": "validateRepay", + "line": 214, + "loc": {"start": {"line": 214, "column": 2}, "end": {"line": 240, "column": 2}} + }, + "5": { + "name": "validateSwapRateMode", + "line": 250, + "loc": {"start": {"line": 250, "column": 2}, "end": {"line": 285, "column": 2}} + }, + "6": { + "name": "validateSetUseReserveAsCollateral", + "line": 296, + "loc": {"start": {"line": 296, "column": 2}, "end": {"line": 320, "column": 2}} + }, + "7": { + "name": "validateFlashloan", + "line": 327, + "loc": {"start": {"line": 327, "column": 2}, "end": {"line": 330, "column": 2}} + }, + "8": { + "name": "validateLiquidationCall", + "line": 341, + "loc": {"start": {"line": 341, "column": 2}, "end": {"line": 381, "column": 2}} + }, + "9": { + "name": "validateRepayWithCollateral", + "line": 393, + "loc": {"start": {"line": 393, "column": 2}, "end": {"line": 438, "column": 2}} + }, + "10": { + "name": "validateSwapLiquidity", + "line": 447, + "loc": {"start": {"line": 447, "column": 2}, "end": {"line": 472, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 38, "column": 4}, "end": {"line": 38, "column": 74}}, + "2": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 56}}, + "3": {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 46}}, + "4": {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 51}}, + "5": {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 56}}, + "6": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 75}}, + "7": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 2437}}, + "8": {"start": {"line": 125, "column": 4}, "end": {"line": 125, "column": 39}}, + "9": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 4488}}, + "10": {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 51}}, + "11": {"start": {"line": 135, "column": 4}, "end": {"line": 135, "column": 56}}, + "12": {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 63}}, + "13": {"start": {"line": 140, "column": 4}, "end": {"line": 140, "column": 4827}}, + "14": {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 5049}}, + "15": {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 77}}, + "16": {"start": {"line": 162, "column": 4}, "end": {"line": 162, "column": 5434}}, + "17": {"start": {"line": 168, "column": 4}, "end": {"line": 168, "column": 5703}}, + "18": {"start": {"line": 172, "column": 4}, "end": {"line": 172, "column": 5861}}, + "19": {"start": {"line": 186, "column": 4}, "end": {"line": 186, "column": 6430}}, + "20": {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 82}}, + "21": {"start": {"line": 191, "column": 6}, "end": {"line": 191, "column": 6685}}, + "22": {"start": {"line": 200, "column": 6}, "end": {"line": 200, "column": 90}}, + "23": {"start": {"line": 202, "column": 6}, "end": {"line": 202, "column": 89}}, + "24": {"start": {"line": 222, "column": 4}, "end": {"line": 222, "column": 53}}, + "25": {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 46}}, + "26": {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 60}}, + "27": {"start": {"line": 228, "column": 4}, "end": {"line": 228, "column": 8040}}, + "28": {"start": {"line": 236, "column": 4}, "end": {"line": 236, "column": 8339}}, + "29": {"start": {"line": 257, "column": 4}, "end": {"line": 257, "column": 96}}, + "30": {"start": {"line": 259, "column": 4}, "end": {"line": 259, "column": 46}}, + "31": {"start": {"line": 260, "column": 4}, "end": {"line": 260, "column": 51}}, + "32": {"start": {"line": 262, "column": 4}, "end": {"line": 262, "column": 9332}}, + "33": {"start": {"line": 263, "column": 6}, "end": {"line": 263, "column": 76}}, + "34": {"start": {"line": 264, "column": 11}, "end": {"line": 264, "column": 9485}}, + "35": {"start": {"line": 265, "column": 6}, "end": {"line": 265, "column": 80}}, + "36": {"start": {"line": 273, "column": 6}, "end": {"line": 273, "column": 68}}, + "37": {"start": {"line": 275, "column": 6}, "end": {"line": 275, "column": 10079}}, + "38": {"start": {"line": 283, "column": 6}, "end": {"line": 283, "column": 55}}, + "39": {"start": {"line": 304, "column": 4}, "end": {"line": 304, "column": 83}}, + "40": {"start": {"line": 306, "column": 4}, "end": {"line": 306, "column": 79}}, + "41": {"start": {"line": 308, "column": 4}, "end": {"line": 308, "column": 11408}}, + "42": {"start": {"line": 328, "column": 4}, "end": {"line": 328, "column": 58}}, + "43": {"start": {"line": 329, "column": 4}, "end": {"line": 329, "column": 98}}, + "44": {"start": {"line": 349, "column": 4}, "end": {"line": 349, "column": 12893}}, + "45": {"start": {"line": 352, "column": 6}, "end": {"line": 352, "column": 98}}, + "46": {"start": {"line": 355, "column": 4}, "end": {"line": 355, "column": 13115}}, + "47": {"start": {"line": 356, "column": 6}, "end": {"line": 356, "column": 13200}}, + "48": {"start": {"line": 362, "column": 4}, "end": {"line": 362, "column": 13408}}, + "49": {"start": {"line": 366, "column": 4}, "end": {"line": 366, "column": 13592}}, + "50": {"start": {"line": 367, "column": 6}, "end": {"line": 367, "column": 13629}}, + "51": {"start": {"line": 373, "column": 4}, "end": {"line": 373, "column": 13783}}, + "52": {"start": {"line": 374, "column": 6}, "end": {"line": 374, "column": 13844}}, + "53": {"start": {"line": 380, "column": 4}, "end": {"line": 380, "column": 79}}, + "54": {"start": {"line": 402, "column": 4}, "end": {"line": 402, "column": 14907}}, + "55": {"start": {"line": 405, "column": 6}, "end": {"line": 405, "column": 98}}, + "56": {"start": {"line": 408, "column": 4}, "end": {"line": 408, "column": 15129}}, + "57": {"start": {"line": 411, "column": 6}, "end": {"line": 411, "column": 15248}}, + "58": {"start": {"line": 417, "column": 4}, "end": {"line": 417, "column": 15402}}, + "59": {"start": {"line": 418, "column": 6}, "end": {"line": 418, "column": 15490}}, + "60": {"start": {"line": 422, "column": 6}, "end": {"line": 422, "column": 15680}}, + "61": {"start": {"line": 423, "column": 8}, "end": {"line": 423, "column": 15719}}, + "62": {"start": {"line": 430, "column": 4}, "end": {"line": 430, "column": 15885}}, + "63": {"start": {"line": 431, "column": 6}, "end": {"line": 431, "column": 15946}}, + "64": {"start": {"line": 437, "column": 4}, "end": {"line": 437, "column": 79}}, + "65": {"start": {"line": 453, "column": 4}, "end": {"line": 453, "column": 16711}}, + "66": {"start": {"line": 454, "column": 6}, "end": {"line": 454, "column": 16748}}, + "67": {"start": {"line": 460, "column": 4}, "end": {"line": 460, "column": 80}}, + "68": {"start": {"line": 461, "column": 4}, "end": {"line": 461, "column": 16978}}, + "69": {"start": {"line": 462, "column": 6}, "end": {"line": 462, "column": 98}}, + "70": {"start": {"line": 464, "column": 4}, "end": {"line": 464, "column": 17149}}, + "71": {"start": {"line": 465, "column": 6}, "end": {"line": 465, "column": 17177}}, + "72": {"start": {"line": 471, "column": 4}, "end": {"line": 471, "column": 79}} + }, + "branchMap": { + "1": { + "line": 40, + "type": "if", + "locations": [ + {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 4}}, + {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 4}} + ] + }, + "2": { + "line": 41, + "type": "if", + "locations": [ + {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 4}}, + {"start": {"line": 41, "column": 4}, "end": {"line": 41, "column": 4}} + ] + }, + "3": { + "line": 42, + "type": "if", + "locations": [ + {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 4}}, + {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 4}} + ] + }, + "4": { + "line": 60, + "type": "if", + "locations": [ + {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 4}}, + {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 4}} + ] + }, + "5": { + "line": 62, + "type": "if", + "locations": [ + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}}, + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}} + ] + }, + "6": { + "line": 64, + "type": "if", + "locations": [ + {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 4}}, + {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 4}} + ] + }, + "7": { + "line": 134, + "type": "if", + "locations": [ + {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 4}}, + {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 4}} + ] + }, + "8": { + "line": 135, + "type": "if", + "locations": [ + {"start": {"line": 135, "column": 4}, "end": {"line": 135, "column": 4}}, + {"start": {"line": 135, "column": 4}, "end": {"line": 135, "column": 4}} + ] + }, + "9": { + "line": 137, + "type": "if", + "locations": [ + {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 4}}, + {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 4}} + ] + }, + "10": { + "line": 140, + "type": "if", + "locations": [ + {"start": {"line": 140, "column": 4}, "end": {"line": 140, "column": 4}}, + {"start": {"line": 140, "column": 4}, "end": {"line": 140, "column": 4}} + ] + }, + "11": { + "line": 160, + "type": "if", + "locations": [ + {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 4}}, + {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 4}} + ] + }, + "12": { + "line": 162, + "type": "if", + "locations": [ + {"start": {"line": 162, "column": 4}, "end": {"line": 162, "column": 4}}, + {"start": {"line": 162, "column": 4}, "end": {"line": 162, "column": 4}} + ] + }, + "13": { + "line": 172, + "type": "if", + "locations": [ + {"start": {"line": 172, "column": 4}, "end": {"line": 172, "column": 4}}, + {"start": {"line": 172, "column": 4}, "end": {"line": 172, "column": 4}} + ] + }, + "14": { + "line": 186, + "type": "if", + "locations": [ + {"start": {"line": 186, "column": 4}, "end": {"line": 186, "column": 4}}, + {"start": {"line": 186, "column": 4}, "end": {"line": 186, "column": 4}} + ] + }, + "15": { + "line": 189, + "type": "if", + "locations": [ + {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 6}}, + {"start": {"line": 189, "column": 6}, "end": {"line": 189, "column": 6}} + ] + }, + "16": { + "line": 191, + "type": "if", + "locations": [ + {"start": {"line": 191, "column": 6}, "end": {"line": 191, "column": 6}}, + {"start": {"line": 191, "column": 6}, "end": {"line": 191, "column": 6}} + ] + }, + "17": { + "line": 202, + "type": "if", + "locations": [ + {"start": {"line": 202, "column": 6}, "end": {"line": 202, "column": 6}}, + {"start": {"line": 202, "column": 6}, "end": {"line": 202, "column": 6}} + ] + }, + "18": { + "line": 224, + "type": "if", + "locations": [ + {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 4}}, + {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 4}} + ] + }, + "19": { + "line": 226, + "type": "if", + "locations": [ + {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 4}}, + {"start": {"line": 226, "column": 4}, "end": {"line": 226, "column": 4}} + ] + }, + "20": { + "line": 228, + "type": "if", + "locations": [ + {"start": {"line": 228, "column": 4}, "end": {"line": 228, "column": 4}}, + {"start": {"line": 228, "column": 4}, "end": {"line": 228, "column": 4}} + ] + }, + "21": { + "line": 236, + "type": "if", + "locations": [ + {"start": {"line": 236, "column": 4}, "end": {"line": 236, "column": 4}}, + {"start": {"line": 236, "column": 4}, "end": {"line": 236, "column": 4}} + ] + }, + "22": { + "line": 259, + "type": "if", + "locations": [ + {"start": {"line": 259, "column": 4}, "end": {"line": 259, "column": 4}}, + {"start": {"line": 259, "column": 4}, "end": {"line": 259, "column": 4}} + ] + }, + "23": { + "line": 260, + "type": "if", + "locations": [ + {"start": {"line": 260, "column": 4}, "end": {"line": 260, "column": 4}}, + {"start": {"line": 260, "column": 4}, "end": {"line": 260, "column": 4}} + ] + }, + "24": { + "line": 262, + "type": "if", + "locations": [ + {"start": {"line": 262, "column": 4}, "end": {"line": 262, "column": 4}}, + {"start": {"line": 262, "column": 4}, "end": {"line": 262, "column": 4}} + ] + }, + "25": { + "line": 263, + "type": "if", + "locations": [ + {"start": {"line": 263, "column": 6}, "end": {"line": 263, "column": 6}}, + {"start": {"line": 263, "column": 6}, "end": {"line": 263, "column": 6}} + ] + }, + "26": { + "line": 264, + "type": "if", + "locations": [ + {"start": {"line": 264, "column": 11}, "end": {"line": 264, "column": 11}}, + {"start": {"line": 264, "column": 11}, "end": {"line": 264, "column": 11}} + ] + }, + "27": { + "line": 265, + "type": "if", + "locations": [ + {"start": {"line": 265, "column": 6}, "end": {"line": 265, "column": 6}}, + {"start": {"line": 265, "column": 6}, "end": {"line": 265, "column": 6}} + ] + }, + "28": { + "line": 273, + "type": "if", + "locations": [ + {"start": {"line": 273, "column": 6}, "end": {"line": 273, "column": 6}}, + {"start": {"line": 273, "column": 6}, "end": {"line": 273, "column": 6}} + ] + }, + "29": { + "line": 275, + "type": "if", + "locations": [ + {"start": {"line": 275, "column": 6}, "end": {"line": 275, "column": 6}}, + {"start": {"line": 275, "column": 6}, "end": {"line": 275, "column": 6}} + ] + }, + "30": { + "line": 306, + "type": "if", + "locations": [ + {"start": {"line": 306, "column": 4}, "end": {"line": 306, "column": 4}}, + {"start": {"line": 306, "column": 4}, "end": {"line": 306, "column": 4}} + ] + }, + "31": { + "line": 308, + "type": "if", + "locations": [ + {"start": {"line": 308, "column": 4}, "end": {"line": 308, "column": 4}}, + {"start": {"line": 308, "column": 4}, "end": {"line": 308, "column": 4}} + ] + }, + "32": { + "line": 328, + "type": "if", + "locations": [ + {"start": {"line": 328, "column": 4}, "end": {"line": 328, "column": 4}}, + {"start": {"line": 328, "column": 4}, "end": {"line": 328, "column": 4}} + ] + }, + "33": { + "line": 329, + "type": "if", + "locations": [ + {"start": {"line": 329, "column": 4}, "end": {"line": 329, "column": 4}}, + {"start": {"line": 329, "column": 4}, "end": {"line": 329, "column": 4}} + ] + }, + "34": { + "line": 349, + "type": "if", + "locations": [ + {"start": {"line": 349, "column": 4}, "end": {"line": 349, "column": 4}}, + {"start": {"line": 349, "column": 4}, "end": {"line": 349, "column": 4}} + ] + }, + "35": { + "line": 355, + "type": "if", + "locations": [ + {"start": {"line": 355, "column": 4}, "end": {"line": 355, "column": 4}}, + {"start": {"line": 355, "column": 4}, "end": {"line": 355, "column": 4}} + ] + }, + "36": { + "line": 366, + "type": "if", + "locations": [ + {"start": {"line": 366, "column": 4}, "end": {"line": 366, "column": 4}}, + {"start": {"line": 366, "column": 4}, "end": {"line": 366, "column": 4}} + ] + }, + "37": { + "line": 373, + "type": "if", + "locations": [ + {"start": {"line": 373, "column": 4}, "end": {"line": 373, "column": 4}}, + {"start": {"line": 373, "column": 4}, "end": {"line": 373, "column": 4}} + ] + }, + "38": { + "line": 402, + "type": "if", + "locations": [ + {"start": {"line": 402, "column": 4}, "end": {"line": 402, "column": 4}}, + {"start": {"line": 402, "column": 4}, "end": {"line": 402, "column": 4}} + ] + }, + "39": { + "line": 408, + "type": "if", + "locations": [ + {"start": {"line": 408, "column": 4}, "end": {"line": 408, "column": 4}}, + {"start": {"line": 408, "column": 4}, "end": {"line": 408, "column": 4}} + ] + }, + "40": { + "line": 417, + "type": "if", + "locations": [ + {"start": {"line": 417, "column": 4}, "end": {"line": 417, "column": 4}}, + {"start": {"line": 417, "column": 4}, "end": {"line": 417, "column": 4}} + ] + }, + "41": { + "line": 422, + "type": "if", + "locations": [ + {"start": {"line": 422, "column": 6}, "end": {"line": 422, "column": 6}}, + {"start": {"line": 422, "column": 6}, "end": {"line": 422, "column": 6}} + ] + }, + "42": { + "line": 430, + "type": "if", + "locations": [ + {"start": {"line": 430, "column": 4}, "end": {"line": 430, "column": 4}}, + {"start": {"line": 430, "column": 4}, "end": {"line": 430, "column": 4}} + ] + }, + "43": { + "line": 453, + "type": "if", + "locations": [ + {"start": {"line": 453, "column": 4}, "end": {"line": 453, "column": 4}}, + {"start": {"line": 453, "column": 4}, "end": {"line": 453, "column": 4}} + ] + }, + "44": { + "line": 461, + "type": "if", + "locations": [ + {"start": {"line": 461, "column": 4}, "end": {"line": 461, "column": 4}}, + {"start": {"line": 461, "column": 4}, "end": {"line": 461, "column": 4}} + ] + }, + "45": { + "line": 464, + "type": "if", + "locations": [ + {"start": {"line": 464, "column": 4}, "end": {"line": 464, "column": 4}}, + {"start": {"line": 464, "column": 4}, "end": {"line": 464, "column": 4}} + ] + } + } + }, + "contracts/libraries/math/MathUtils.sol": { + "l": { + "26": 347, + "28": 347, + "30": 347, + "52": 672, + "54": 672, + "55": 116, + "58": 556, + "60": 556, + "62": 556, + "64": 556, + "65": 556, + "67": 556, + "68": 556, + "70": 556 + }, + "path": "/src/contracts/libraries/math/MathUtils.sol", + "s": { + "1": 347, + "2": 347, + "3": 347, + "4": 672, + "5": 672, + "6": 116, + "7": 556, + "8": 556, + "9": 556, + "10": 556, + "11": 556, + "12": 556, + "13": 556, + "14": 556 + }, + "b": {"1": [116, 556]}, + "f": {"1": 347, "2": 672}, + "fnMap": { + "1": { + "name": "calculateLinearInterest", + "line": 20, + "loc": {"start": {"line": 20, "column": 2}, "end": {"line": 31, "column": 2}} + }, + "2": { + "name": "calculateCompoundedInterest", + "line": 46, + "loc": {"start": {"line": 46, "column": 2}, "end": {"line": 71, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 78}}, + "2": {"start": {"line": 28, "column": 4}, "end": {"line": 28, "column": 85}}, + "3": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 55}}, + "4": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 67}}, + "5": {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 1957}}, + "6": {"start": {"line": 55, "column": 6}, "end": {"line": 55, "column": 29}}, + "7": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 33}}, + "8": {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 47}}, + "9": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 51}}, + "10": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 62}}, + "11": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 63}}, + "12": {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 67}}, + "13": {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 85}}, + "14": {"start": {"line": 70, "column": 4}, "end": {"line": 70, "column": 86}} + }, + "branchMap": { + "1": { + "line": 54, + "type": "if", + "locations": [ + {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 4}}, + {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 4}} + ] + } + } + }, + "contracts/libraries/math/PercentageMath.sol": { + "l": { + "25": 343, + "26": 148, + "29": 195, + "31": 195, + "33": 195, + "35": 195, + "37": 195, + "47": 58, + "48": 58, + "50": 58, + "52": 58, + "54": 58, + "56": 58, + "58": 58 + }, + "path": "/src/contracts/libraries/math/PercentageMath.sol", + "s": { + "1": 343, + "2": 148, + "3": 195, + "4": 195, + "5": 195, + "6": 195, + "7": 195, + "8": 58, + "9": 58, + "10": 58, + "11": 58, + "12": 58, + "13": 58, + "14": 58 + }, + "b": {"1": [148, 195], "2": [195, 0], "3": [195, 0], "4": [58, 0], "5": [58, 0], "6": [58, 0]}, + "f": {"1": 343, "2": 58}, + "fnMap": { + "1": { + "name": "percentMul", + "line": 24, + "loc": {"start": {"line": 24, "column": 2}, "end": {"line": 38, "column": 2}} + }, + "2": { + "name": "percentDiv", + "line": 46, + "loc": {"start": {"line": 46, "column": 2}, "end": {"line": 59, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 891}}, + "2": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 14}}, + "3": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 39}}, + "4": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 72}}, + "5": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 25}}, + "6": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 60}}, + "7": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 37}}, + "8": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 52}}, + "9": {"start": {"line": 48, "column": 4}, "end": {"line": 48, "column": 43}}, + "10": {"start": {"line": 50, "column": 4}, "end": {"line": 50, "column": 46}}, + "11": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 79}}, + "12": {"start": {"line": 54, "column": 4}, "end": {"line": 54, "column": 27}}, + "13": {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 62}}, + "14": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 30}} + }, + "branchMap": { + "1": { + "line": 25, + "type": "if", + "locations": [ + {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 4}}, + {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 4}} + ] + }, + "2": { + "line": 31, + "type": "if", + "locations": [ + {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 4}}, + {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 4}} + ] + }, + "3": { + "line": 35, + "type": "if", + "locations": [ + {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 4}}, + {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 4}} + ] + }, + "4": { + "line": 47, + "type": "if", + "locations": [ + {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 4}}, + {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 4}} + ] + }, + "5": { + "line": 52, + "type": "if", + "locations": [ + {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 4}}, + {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 4}} + ] + }, + "6": { + "line": 56, + "type": "if", + "locations": [ + {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 4}}, + {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 4}} + ] + } + } + }, + "contracts/libraries/math/SafeMath.sol": { + "l": { + "28": 450, + "29": 450, + "31": 450, + "44": 124, + "61": 212, + "62": 211, + "64": 211, + "80": 0, + "81": 0, + "84": 0, + "85": 0, + "87": 0, + "102": 0, + "122": 0, + "123": 0, + "126": 0, + "141": 0, + "160": 0, + "161": 0 + }, + "path": "/src/contracts/libraries/math/SafeMath.sol", + "s": { + "1": 450, + "2": 450, + "3": 450, + "4": 124, + "5": 212, + "6": 211, + "7": 211, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0 + }, + "b": {"1": [450, 0], "2": [211, 1], "3": [0, 0], "4": [0, 0], "5": [0, 0], "6": [0, 0]}, + "f": {"1": 450, "2": 124, "3": 212, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0}, + "fnMap": { + "1": { + "name": "add", + "line": 27, + "loc": {"start": {"line": 27, "column": 2}, "end": {"line": 32, "column": 2}} + }, + "2": { + "name": "sub", + "line": 43, + "loc": {"start": {"line": 43, "column": 2}, "end": {"line": 45, "column": 2}} + }, + "3": { + "name": "sub", + "line": 56, + "loc": {"start": {"line": 56, "column": 2}, "end": {"line": 65, "column": 2}} + }, + "4": { + "name": "mul", + "line": 76, + "loc": {"start": {"line": 76, "column": 2}, "end": {"line": 88, "column": 2}} + }, + "5": { + "name": "div", + "line": 101, + "loc": {"start": {"line": 101, "column": 2}, "end": {"line": 103, "column": 2}} + }, + "6": { + "name": "div", + "line": 116, + "loc": {"start": {"line": 116, "column": 2}, "end": {"line": 127, "column": 2}} + }, + "7": { + "name": "mod", + "line": 140, + "loc": {"start": {"line": 140, "column": 2}, "end": {"line": 142, "column": 2}} + }, + "8": { + "name": "mod", + "line": 155, + "loc": {"start": {"line": 155, "column": 2}, "end": {"line": 162, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 28, "column": 4}, "end": {"line": 28, "column": 21}}, + "2": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 49}}, + "3": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 12}}, + "4": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 54}}, + "5": {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 32}}, + "6": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 21}}, + "7": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 12}}, + "8": {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 2341}}, + "9": {"start": {"line": 81, "column": 6}, "end": {"line": 81, "column": 14}}, + "10": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 21}}, + "11": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 59}}, + "12": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 12}}, + "13": {"start": {"line": 102, "column": 4}, "end": {"line": 102, "column": 50}}, + "14": {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 31}}, + "15": {"start": {"line": 123, "column": 4}, "end": {"line": 123, "column": 21}}, + "16": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 12}}, + "17": {"start": {"line": 141, "column": 4}, "end": {"line": 141, "column": 48}}, + "18": {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 32}}, + "19": {"start": {"line": 161, "column": 4}, "end": {"line": 161, "column": 16}} + }, + "branchMap": { + "1": { + "line": 29, + "type": "if", + "locations": [ + {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 4}}, + {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 4}} + ] + }, + "2": { + "line": 61, + "type": "if", + "locations": [ + {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 4}}, + {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 4}} + ] + }, + "3": { + "line": 80, + "type": "if", + "locations": [ + {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 4}}, + {"start": {"line": 80, "column": 4}, "end": {"line": 80, "column": 4}} + ] + }, + "4": { + "line": 85, + "type": "if", + "locations": [ + {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 4}}, + {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 4}} + ] + }, + "5": { + "line": 122, + "type": "if", + "locations": [ + {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 4}}, + {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 4}} + ] + }, + "6": { + "line": 160, + "type": "if", + "locations": [ + {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 4}}, + {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 4}} + ] + } + } + }, + "contracts/libraries/math/WadRayMath.sol": { + "l": { + "25": 1056, + "33": 0, + "40": 0, + "47": 0, + "57": 0, + "58": 0, + "61": 0, + "63": 0, + "65": 0, + "67": 0, + "69": 0, + "79": 64, + "81": 64, + "83": 64, + "85": 64, + "87": 64, + "89": 64, + "91": 64, + "101": 4935, + "102": 1581, + "105": 3354, + "107": 3354, + "109": 3354, + "111": 3354, + "113": 3354, + "123": 1257, + "125": 1257, + "127": 1257, + "129": 1257, + "131": 1257, + "133": 1257, + "135": 1257, + "144": 0, + "145": 0, + "146": 0, + "148": 0, + "157": 1134, + "158": 1134, + "159": 1134 + }, + "path": "/src/contracts/libraries/math/WadRayMath.sol", + "s": { + "1": 1056, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 64, + "13": 64, + "14": 64, + "15": 64, + "16": 64, + "17": 64, + "18": 64, + "19": 4935, + "20": 1581, + "21": 3354, + "22": 3354, + "23": 3354, + "24": 3354, + "25": 3354, + "26": 1257, + "27": 1257, + "28": 1257, + "29": 1257, + "30": 1257, + "31": 1257, + "32": 1257, + "33": 0, + "34": 0, + "35": 0, + "36": 0, + "37": 1134, + "38": 1134, + "39": 1134 + }, + "b": { + "1": [0, 0], + "2": [0, 0], + "3": [0, 0], + "4": [64, 0], + "5": [64, 0], + "6": [64, 0], + "7": [1581, 3354], + "8": [3354, 0], + "9": [3354, 0], + "10": [1257, 0], + "11": [1257, 0], + "12": [1257, 0], + "13": [0, 0], + "14": [1134, 0] + }, + "f": { + "1": 1056, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 64, + "7": 4935, + "8": 1257, + "9": 0, + "10": 1134 + }, + "fnMap": { + "1": { + "name": "ray", + "line": 24, + "loc": {"start": {"line": 24, "column": 2}, "end": {"line": 26, "column": 2}} + }, + "2": { + "name": "wad", + "line": 32, + "loc": {"start": {"line": 32, "column": 2}, "end": {"line": 34, "column": 2}} + }, + "3": { + "name": "halfRay", + "line": 39, + "loc": {"start": {"line": 39, "column": 2}, "end": {"line": 41, "column": 2}} + }, + "4": { + "name": "halfWad", + "line": 46, + "loc": {"start": {"line": 46, "column": 2}, "end": {"line": 48, "column": 2}} + }, + "5": { + "name": "wadMul", + "line": 56, + "loc": {"start": {"line": 56, "column": 2}, "end": {"line": 70, "column": 2}} + }, + "6": { + "name": "wadDiv", + "line": 78, + "loc": {"start": {"line": 78, "column": 2}, "end": {"line": 92, "column": 2}} + }, + "7": { + "name": "rayMul", + "line": 100, + "loc": {"start": {"line": 100, "column": 2}, "end": {"line": 114, "column": 2}} + }, + "8": { + "name": "rayDiv", + "line": 122, + "loc": {"start": {"line": 122, "column": 2}, "end": {"line": 136, "column": 2}} + }, + "9": { + "name": "rayToWad", + "line": 143, + "loc": {"start": {"line": 143, "column": 2}, "end": {"line": 149, "column": 2}} + }, + "10": { + "name": "wadToRay", + "line": 156, + "loc": {"start": {"line": 156, "column": 2}, "end": {"line": 160, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 14}}, + "2": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 14}}, + "3": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 18}}, + "4": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 18}}, + "5": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 1244}}, + "6": {"start": {"line": 58, "column": 6}, "end": {"line": 58, "column": 14}}, + "7": {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 26}}, + "8": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 59}}, + "9": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 20}}, + "10": {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 55}}, + "11": {"start": {"line": 69, "column": 4}, "end": {"line": 69, "column": 23}}, + "12": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 43}}, + "13": {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 25}}, + "14": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 28}}, + "15": {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 61}}, + "16": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 18}}, + "17": {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 53}}, + "18": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 21}}, + "19": {"start": {"line": 101, "column": 4}, "end": {"line": 101, "column": 2221}}, + "20": {"start": {"line": 102, "column": 6}, "end": {"line": 102, "column": 14}}, + "21": {"start": {"line": 105, "column": 4}, "end": {"line": 105, "column": 26}}, + "22": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 59}}, + "23": {"start": {"line": 109, "column": 4}, "end": {"line": 109, "column": 20}}, + "24": {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 55}}, + "25": {"start": {"line": 113, "column": 4}, "end": {"line": 113, "column": 23}}, + "26": {"start": {"line": 123, "column": 4}, "end": {"line": 123, "column": 43}}, + "27": {"start": {"line": 125, "column": 4}, "end": {"line": 125, "column": 25}}, + "28": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 28}}, + "29": {"start": {"line": 129, "column": 4}, "end": {"line": 129, "column": 61}}, + "30": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 18}}, + "31": {"start": {"line": 133, "column": 4}, "end": {"line": 133, "column": 53}}, + "32": {"start": {"line": 135, "column": 4}, "end": {"line": 135, "column": 21}}, + "33": {"start": {"line": 144, "column": 4}, "end": {"line": 144, "column": 41}}, + "34": {"start": {"line": 145, "column": 4}, "end": {"line": 145, "column": 34}}, + "35": {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 57}}, + "36": {"start": {"line": 148, "column": 4}, "end": {"line": 148, "column": 33}}, + "37": {"start": {"line": 157, "column": 4}, "end": {"line": 157, "column": 38}}, + "38": {"start": {"line": 158, "column": 4}, "end": {"line": 158, "column": 71}}, + "39": {"start": {"line": 159, "column": 4}, "end": {"line": 159, "column": 17}} + }, + "branchMap": { + "1": { + "line": 57, + "type": "if", + "locations": [ + {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 4}}, + {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 4}} + ] + }, + "2": { + "line": 63, + "type": "if", + "locations": [ + {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 4}}, + {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 4}} + ] + }, + "3": { + "line": 67, + "type": "if", + "locations": [ + {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 4}}, + {"start": {"line": 67, "column": 4}, "end": {"line": 67, "column": 4}} + ] + }, + "4": { + "line": 79, + "type": "if", + "locations": [ + {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 4}}, + {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 4}} + ] + }, + "5": { + "line": 85, + "type": "if", + "locations": [ + {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 4}}, + {"start": {"line": 85, "column": 4}, "end": {"line": 85, "column": 4}} + ] + }, + "6": { + "line": 89, + "type": "if", + "locations": [ + {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 4}}, + {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 4}} + ] + }, + "7": { + "line": 101, + "type": "if", + "locations": [ + {"start": {"line": 101, "column": 4}, "end": {"line": 101, "column": 4}}, + {"start": {"line": 101, "column": 4}, "end": {"line": 101, "column": 4}} + ] + }, + "8": { + "line": 107, + "type": "if", + "locations": [ + {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 4}}, + {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 4}} + ] + }, + "9": { + "line": 111, + "type": "if", + "locations": [ + {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 4}}, + {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 4}} + ] + }, + "10": { + "line": 123, + "type": "if", + "locations": [ + {"start": {"line": 123, "column": 4}, "end": {"line": 123, "column": 4}}, + {"start": {"line": 123, "column": 4}, "end": {"line": 123, "column": 4}} + ] + }, + "11": { + "line": 129, + "type": "if", + "locations": [ + {"start": {"line": 129, "column": 4}, "end": {"line": 129, "column": 4}}, + {"start": {"line": 129, "column": 4}, "end": {"line": 129, "column": 4}} + ] + }, + "12": { + "line": 133, + "type": "if", + "locations": [ + {"start": {"line": 133, "column": 4}, "end": {"line": 133, "column": 4}}, + {"start": {"line": 133, "column": 4}, "end": {"line": 133, "column": 4}} + ] + }, + "13": { + "line": 146, + "type": "if", + "locations": [ + {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 4}}, + {"start": {"line": 146, "column": 4}, "end": {"line": 146, "column": 4}} + ] + }, + "14": { + "line": 158, + "type": "if", + "locations": [ + {"start": {"line": 158, "column": 4}, "end": {"line": 158, "column": 4}}, + {"start": {"line": 158, "column": 4}, "end": {"line": 158, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/AdminUpgradeabilityProxy.sol": { + "l": {"26": 0, "27": 0, "34": 0}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/AdminUpgradeabilityProxy.sol", + "s": {"1": 0, "2": 0, "3": 0}, + "b": {"1": [0, 0]}, + "f": {"1": 0, "2": 0}, + "fnMap": { + "1": { + "name": "constructor", + "line": 25, + "loc": {"start": {"line": 21, "column": 2}, "end": {"line": 28, "column": 2}} + }, + "2": { + "name": "_willFallback", + "line": 33, + "loc": {"start": {"line": 33, "column": 2}, "end": {"line": 35, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 79}}, + "2": {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 20}}, + "3": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 47}} + }, + "branchMap": { + "1": { + "line": 26, + "type": "if", + "locations": [ + {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 4}}, + {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/BaseAdminUpgradeabilityProxy.sol": { + "l": { + "35": 3, + "36": 3, + "38": 0, + "46": 0, + "53": 0, + "62": 0, + "63": 0, + "64": 0, + "73": 0, + "90": 3, + "91": 3, + "92": 3, + "99": 9902, + "101": 9902, + "111": 53, + "113": 53, + "122": 9899, + "123": 9899 + }, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/BaseAdminUpgradeabilityProxy.sol", + "s": { + "1": 3, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 3, + "10": 3, + "11": 3, + "12": 9902, + "13": 53, + "14": 9899, + "15": 9899 + }, + "b": {"1": [3, 0], "2": [0, 0], "3": [3, 0], "4": [9899, 0]}, + "f": {"1": 3, "2": 0, "3": 0, "4": 0, "5": 0, "6": 3, "7": 9902, "8": 53, "9": 9899}, + "fnMap": { + "1": { + "name": "ifAdmin", + "line": 34, + "loc": {"start": {"line": 34, "column": 2}, "end": {"line": 40, "column": 2}} + }, + "2": { + "name": "admin", + "line": 45, + "loc": {"start": {"line": 45, "column": 2}, "end": {"line": 47, "column": 2}} + }, + "3": { + "name": "implementation", + "line": 52, + "loc": {"start": {"line": 52, "column": 2}, "end": {"line": 54, "column": 2}} + }, + "4": { + "name": "changeAdmin", + "line": 61, + "loc": {"start": {"line": 61, "column": 2}, "end": {"line": 65, "column": 2}} + }, + "5": { + "name": "upgradeTo", + "line": 72, + "loc": {"start": {"line": 72, "column": 2}, "end": {"line": 74, "column": 2}} + }, + "6": { + "name": "upgradeToAndCall", + "line": 88, + "loc": {"start": {"line": 85, "column": 2}, "end": {"line": 93, "column": 2}} + }, + "7": { + "name": "_admin", + "line": 98, + "loc": {"start": {"line": 98, "column": 2}, "end": {"line": 104, "column": 2}} + }, + "8": { + "name": "_setAdmin", + "line": 110, + "loc": {"start": {"line": 110, "column": 2}, "end": {"line": 116, "column": 2}} + }, + "9": { + "name": "_willFallback", + "line": 121, + "loc": {"start": {"line": 121, "column": 2}, "end": {"line": 124, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 1284}}, + "2": {"start": {"line": 38, "column": 6}, "end": {"line": 38, "column": 16}}, + "3": {"start": {"line": 46, "column": 4}, "end": {"line": 46, "column": 19}}, + "4": {"start": {"line": 53, "column": 4}, "end": {"line": 53, "column": 28}}, + "5": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 92}}, + "6": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 41}}, + "7": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 22}}, + "8": {"start": {"line": 73, "column": 4}, "end": {"line": 73, "column": 32}}, + "9": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 32}}, + "10": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 59}}, + "11": {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 19}}, + "12": {"start": {"line": 99, "column": 4}, "end": {"line": 99, "column": 29}}, + "13": {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 29}}, + "14": {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 88}}, + "15": {"start": {"line": 123, "column": 4}, "end": {"line": 123, "column": 24}} + }, + "branchMap": { + "1": { + "line": 35, + "type": "if", + "locations": [ + {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 4}}, + {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 4}} + ] + }, + "2": { + "line": 62, + "type": "if", + "locations": [ + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}}, + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}} + ] + }, + "3": { + "line": 92, + "type": "if", + "locations": [ + {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 4}}, + {"start": {"line": 92, "column": 4}, "end": {"line": 92, "column": 4}} + ] + }, + "4": { + "line": 122, + "type": "if", + "locations": [ + {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 4}}, + {"start": {"line": 122, "column": 4}, "end": {"line": 122, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/BaseUpgradeabilityProxy.sol": { + "l": {"32": 10005, "34": 10005, "44": 3, "45": 3, "53": 56, "58": 56, "61": 56}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/BaseUpgradeabilityProxy.sol", + "s": {"1": 10005, "2": 3, "3": 3, "4": 56, "5": 56}, + "b": {"1": [56, 0]}, + "f": {"1": 10005, "2": 3, "3": 56}, + "fnMap": { + "1": { + "name": "_implementation", + "line": 31, + "loc": {"start": {"line": 31, "column": 2}, "end": {"line": 37, "column": 2}} + }, + "2": { + "name": "_upgradeTo", + "line": 43, + "loc": {"start": {"line": 43, "column": 2}, "end": {"line": 46, "column": 2}} + }, + "3": { + "name": "_setImplementation", + "line": 52, + "loc": {"start": {"line": 52, "column": 2}, "end": {"line": 64, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 38}}, + "2": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 40}}, + "3": {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 36}}, + "4": {"start": {"line": 53, "column": 4}, "end": {"line": 53, "column": 1706}}, + "5": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 38}} + }, + "branchMap": { + "1": { + "line": 53, + "type": "if", + "locations": [ + {"start": {"line": 53, "column": 4}, "end": {"line": 53, "column": 4}}, + {"start": {"line": 53, "column": 4}, "end": {"line": 53, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/Initializable.sol": { + "l": { + "31": 0, + "36": 0, + "37": 0, + "38": 0, + "39": 0, + "42": 0, + "44": 0, + "45": 0, + "56": 0, + "58": 0, + "61": 0 + }, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/Initializable.sol", + "s": {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0}, + "b": {"1": [0, 0], "2": [0, 0], "3": [0, 0]}, + "f": {"1": 0, "2": 0}, + "fnMap": { + "1": { + "name": "initializer", + "line": 30, + "loc": {"start": {"line": 30, "column": 2}, "end": {"line": 47, "column": 2}} + }, + "2": { + "name": "isConstructor", + "line": 50, + "loc": {"start": {"line": 50, "column": 2}, "end": {"line": 62, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 1056}}, + "2": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 39}}, + "3": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 1228}}, + "4": {"start": {"line": 38, "column": 6}, "end": {"line": 38, "column": 24}}, + "5": {"start": {"line": 39, "column": 6}, "end": {"line": 39, "column": 23}}, + "6": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 1322}}, + "7": {"start": {"line": 45, "column": 6}, "end": {"line": 45, "column": 25}}, + "8": {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 14}}, + "9": {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 18}} + }, + "branchMap": { + "1": { + "line": 31, + "type": "if", + "locations": [ + {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 4}}, + {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 4}} + ] + }, + "2": { + "line": 37, + "type": "if", + "locations": [ + {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 4}}, + {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 4}} + ] + }, + "3": { + "line": 44, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}}, + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/InitializableAdminUpgradeabilityProxy.sol": { + "l": {"30": 53, "31": 53, "32": 53, "33": 53, "40": 9899}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/InitializableAdminUpgradeabilityProxy.sol", + "s": {"1": 53, "2": 53, "3": 53, "4": 53, "5": 9899}, + "b": {"1": [53, 0], "2": [53, 0]}, + "f": {"1": 53, "2": 9899}, + "fnMap": { + "1": { + "name": "initialize", + "line": 25, + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 34, "column": 2}} + }, + "2": { + "name": "_willFallback", + "line": 39, + "loc": {"start": {"line": 39, "column": 2}, "end": {"line": 41, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 43}}, + "2": {"start": {"line": 31, "column": 4}, "end": {"line": 31, "column": 59}}, + "3": {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 79}}, + "4": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 19}}, + "5": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 47}} + }, + "branchMap": { + "1": { + "line": 30, + "type": "if", + "locations": [ + {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 4}}, + {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 4}} + ] + }, + "2": { + "line": 32, + "type": "if", + "locations": [ + {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 4}}, + {"start": {"line": 32, "column": 4}, "end": {"line": 32, "column": 4}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/InitializableUpgradeabilityProxy.sol": { + "l": {"21": 53, "22": 53, "23": 53, "24": 53, "25": 53, "26": 53}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/InitializableUpgradeabilityProxy.sol", + "s": {"1": 53, "2": 53, "3": 53, "4": 53, "5": 53, "6": 53}, + "b": {"1": [53, 0], "2": [53, 0], "3": [53, 0], "4": [53, 0]}, + "f": {"1": 53}, + "fnMap": { + "1": { + "name": "initialize", + "line": 20, + "loc": {"start": {"line": 20, "column": 2}, "end": {"line": 28, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 43}}, + "2": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 97}}, + "3": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 29}}, + "4": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 1119}}, + "5": {"start": {"line": 25, "column": 6}, "end": {"line": 25, "column": 51}}, + "6": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 21}} + }, + "branchMap": { + "1": { + "line": 21, + "type": "if", + "locations": [ + {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 4}}, + {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 4}} + ] + }, + "2": { + "line": 22, + "type": "if", + "locations": [ + {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 4}}, + {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 4}} + ] + }, + "3": { + "line": 24, + "type": "if", + "locations": [ + {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 4}}, + {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 4}} + ] + }, + "4": { + "line": 26, + "type": "if", + "locations": [ + {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 6}}, + {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 6}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/Proxy.sol": { + "l": {"17": 9899, "33": 9899, "69": 9899, "70": 9899}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/Proxy.sol", + "s": {"1": 9899, "2": 9899, "3": 9899}, + "b": {}, + "f": {"1": 9899, "2": 9899, "3": 9899, "4": 9899}, + "fnMap": { + "1": { + "name": null, + "line": 16, + "loc": {"start": {"line": 16, "column": 2}, "end": {"line": 18, "column": 2}} + }, + "2": { + "name": "_delegate", + "line": 31, + "loc": {"start": {"line": 31, "column": 2}, "end": {"line": 55, "column": 2}} + }, + "3": { + "name": "_willFallback", + "line": 62, + "loc": {"start": {"line": 62, "column": 2}, "end": {"line": 62, "column": 45}} + }, + "4": { + "name": "_fallback", + "line": 68, + "loc": {"start": {"line": 68, "column": 2}, "end": {"line": 71, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 17, "column": 4}, "end": {"line": 17, "column": 14}}, + "2": {"start": {"line": 69, "column": 4}, "end": {"line": 69, "column": 18}}, + "3": {"start": {"line": 70, "column": 4}, "end": {"line": 70, "column": 31}} + }, + "branchMap": {} + }, + "contracts/libraries/openzeppelin-upgradeability/UpgradeabilityProxy.sol": { + "l": {"21": 0, "22": 0, "23": 0, "24": 0, "25": 0}, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/UpgradeabilityProxy.sol", + "s": {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0}, + "b": {"1": [0, 0], "2": [0, 0], "3": [0, 0]}, + "f": {"1": 0}, + "fnMap": { + "1": { + "name": "constructor", + "line": 20, + "loc": {"start": {"line": 20, "column": 2}, "end": {"line": 27, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 97}}, + "2": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 29}}, + "3": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 1038}}, + "4": {"start": {"line": 24, "column": 6}, "end": {"line": 24, "column": 51}}, + "5": {"start": {"line": 25, "column": 6}, "end": {"line": 25, "column": 21}} + }, + "branchMap": { + "1": { + "line": 21, + "type": "if", + "locations": [ + {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 4}}, + {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 4}} + ] + }, + "2": { + "line": 23, + "type": "if", + "locations": [ + {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 4}}, + {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 4}} + ] + }, + "3": { + "line": 25, + "type": "if", + "locations": [ + {"start": {"line": 25, "column": 6}, "end": {"line": 25, "column": 6}}, + {"start": {"line": 25, "column": 6}, "end": {"line": 25, "column": 6}} + ] + } + } + }, + "contracts/libraries/openzeppelin-upgradeability/VersionedInitializable.sol": { + "l": { + "33": 56, + "34": 56, + "39": 56, + "40": 56, + "41": 56, + "42": 56, + "45": 56, + "47": 56, + "48": 56, + "63": 56, + "65": 56, + "68": 56 + }, + "path": "/src/contracts/libraries/openzeppelin-upgradeability/VersionedInitializable.sol", + "s": { + "1": 56, + "2": 56, + "3": 56, + "4": 56, + "5": 56, + "6": 56, + "7": 56, + "8": 56, + "9": 56, + "10": 56 + }, + "b": {"1": [56, 0], "2": [56, 0], "3": [56, 0]}, + "f": {"1": 56, "2": 56}, + "fnMap": { + "1": { + "name": "initializer", + "line": 32, + "loc": {"start": {"line": 32, "column": 2}, "end": {"line": 50, "column": 2}} + }, + "2": { + "name": "isConstructor", + "line": 57, + "loc": {"start": {"line": 57, "column": 2}, "end": {"line": 69, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 36}}, + "2": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 1202}}, + "3": {"start": {"line": 39, "column": 4}, "end": {"line": 39, "column": 39}}, + "4": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 1396}}, + "5": {"start": {"line": 41, "column": 6}, "end": {"line": 41, "column": 24}}, + "6": {"start": {"line": 42, "column": 6}, "end": {"line": 42, "column": 39}}, + "7": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 1506}}, + "8": {"start": {"line": 48, "column": 6}, "end": {"line": 48, "column": 25}}, + "9": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 14}}, + "10": {"start": {"line": 68, "column": 4}, "end": {"line": 68, "column": 18}} + }, + "branchMap": { + "1": { + "line": 34, + "type": "if", + "locations": [ + {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 4}}, + {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 4}} + ] + }, + "2": { + "line": 40, + "type": "if", + "locations": [ + {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 4}}, + {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 4}} + ] + }, + "3": { + "line": 47, + "type": "if", + "locations": [ + {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 4}}, + {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 4}} + ] + } + } + }, + "contracts/misc/AaveProtocolTestHelpers.sol": { + "l": { + "18": 3, + "22": 1, + "23": 1, + "24": 1, + "25": 1, + "26": 17, + "33": 1, + "37": 2, + "38": 2, + "39": 2, + "40": 2, + "41": 34, + "42": 34, + "47": 2 + }, + "path": "/src/contracts/misc/AaveProtocolTestHelpers.sol", + "s": { + "1": 3, + "2": 1, + "3": 1, + "4": 1, + "5": 1, + "6": 17, + "7": 1, + "8": 2, + "9": 2, + "10": 2, + "11": 2, + "12": 34, + "13": 34, + "14": 2 + }, + "b": {}, + "f": {"1": 3, "2": 1, "3": 2}, + "fnMap": { + "1": { + "name": "constructor", + "line": 17, + "loc": {"start": {"line": 17, "column": 2}, "end": {"line": 19, "column": 2}} + }, + "2": { + "name": "getAllReservesTokens", + "line": 21, + "loc": {"start": {"line": 21, "column": 2}, "end": {"line": 34, "column": 2}} + }, + "3": { + "name": "getAllATokens", + "line": 36, + "loc": {"start": {"line": 36, "column": 2}, "end": {"line": 48, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 18, "column": 4}, "end": {"line": 18, "column": 41}}, + "2": {"start": {"line": 22, "column": 4}, "end": {"line": 22, "column": 73}}, + "3": {"start": {"line": 23, "column": 4}, "end": {"line": 23, "column": 50}}, + "4": {"start": {"line": 24, "column": 4}, "end": {"line": 24, "column": 72}}, + "5": {"start": {"line": 25, "column": 4}, "end": {"line": 25, "column": 904}}, + "6": {"start": {"line": 26, "column": 6}, "end": {"line": 26, "column": 961}}, + "7": {"start": {"line": 33, "column": 4}, "end": {"line": 33, "column": 25}}, + "8": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 73}}, + "9": {"start": {"line": 38, "column": 4}, "end": {"line": 38, "column": 50}}, + "10": {"start": {"line": 39, "column": 4}, "end": {"line": 39, "column": 65}}, + "11": {"start": {"line": 40, "column": 4}, "end": {"line": 40, "column": 1486}}, + "12": {"start": {"line": 41, "column": 6}, "end": {"line": 41, "column": 79}}, + "13": {"start": {"line": 42, "column": 6}, "end": {"line": 42, "column": 1624}}, + "14": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 18}} + }, + "branchMap": {} + }, + "contracts/misc/Address.sol": { + "l": {"29": 99, "30": 99, "32": 99, "35": 99, "55": 0, "58": 0, "59": 0}, + "path": "/src/contracts/misc/Address.sol", + "s": {"1": 99, "2": 99, "3": 99, "4": 0, "5": 0, "6": 0}, + "b": {"1": [0, 0], "2": [0, 0]}, + "f": {"1": 99, "2": 0}, + "fnMap": { + "1": { + "name": "isContract", + "line": 25, + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 36, "column": 2}} + }, + "2": { + "name": "sendValue", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 60, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 20}}, + "2": {"start": {"line": 30, "column": 4}, "end": {"line": 30, "column": 92}}, + "3": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 55}}, + "4": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 76}}, + "5": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 56}}, + "6": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 81}} + }, + "branchMap": { + "1": { + "line": 55, + "type": "if", + "locations": [ + {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 4}}, + {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 4}} + ] + }, + "2": { + "line": 59, + "type": "if", + "locations": [ + {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 4}}, + {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 4}} + ] + } + } + }, + "contracts/misc/ChainlinkProxyPriceProvider.sol": { + "l": { + "37": 3, + "38": 3, + "48": 0, + "55": 0, + "62": 3, + "63": 3, + "64": 72, + "65": 72, + "72": 3, + "73": 3, + "79": 0, + "81": 0, + "82": 0, + "84": 0, + "85": 0, + "86": 0, + "88": 0, + "96": 0, + "97": 0, + "98": 0, + "100": 0, + "107": 0, + "113": 0 + }, + "path": "/src/contracts/misc/ChainlinkProxyPriceProvider.sol", + "s": { + "1": 3, + "2": 3, + "3": 0, + "4": 0, + "5": 3, + "6": 3, + "7": 72, + "8": 72, + "9": 3, + "10": 3, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0 + }, + "b": {"1": [3, 0], "2": [0, 0], "3": [0, 0]}, + "f": {"1": 3, "2": 0, "3": 0, "4": 3, "5": 3, "6": 0, "7": 0, "8": 0, "9": 0}, + "fnMap": { + "1": { + "name": "constructor", + "line": 32, + "loc": {"start": {"line": 32, "column": 2}, "end": {"line": 39, "column": 2}} + }, + "2": { + "name": "setAssetSources", + "line": 46, + "loc": {"start": {"line": 44, "column": 2}, "end": {"line": 49, "column": 2}} + }, + "3": { + "name": "setFallbackOracle", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 56, "column": 2}} + }, + "4": { + "name": "_setAssetsSources", + "line": 61, + "loc": {"start": {"line": 61, "column": 2}, "end": {"line": 67, "column": 2}} + }, + "5": { + "name": "_setFallbackOracle", + "line": 71, + "loc": {"start": {"line": 71, "column": 2}, "end": {"line": 74, "column": 2}} + }, + "6": { + "name": "getAssetPrice", + "line": 78, + "loc": {"start": {"line": 78, "column": 2}, "end": {"line": 91, "column": 2}} + }, + "7": { + "name": "getAssetsPrices", + "line": 95, + "loc": {"start": {"line": 95, "column": 2}, "end": {"line": 101, "column": 2}} + }, + "8": { + "name": "getSourceOfAsset", + "line": 106, + "loc": {"start": {"line": 106, "column": 2}, "end": {"line": 108, "column": 2}} + }, + "9": { + "name": "getFallbackOracle", + "line": 112, + "loc": {"start": {"line": 112, "column": 2}, "end": {"line": 114, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 37}}, + "2": {"start": {"line": 38, "column": 4}, "end": {"line": 38, "column": 37}}, + "3": {"start": {"line": 48, "column": 4}, "end": {"line": 48, "column": 37}}, + "4": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 37}}, + "5": {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 73}}, + "6": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 2670}}, + "7": {"start": {"line": 64, "column": 6}, "end": {"line": 64, "column": 64}}, + "8": {"start": {"line": 65, "column": 6}, "end": {"line": 65, "column": 52}}, + "9": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 55}}, + "10": {"start": {"line": 73, "column": 4}, "end": {"line": 73, "column": 46}}, + "11": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 54}}, + "12": {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 3446}}, + "13": {"start": {"line": 82, "column": 6}, "end": {"line": 82, "column": 49}}, + "14": {"start": {"line": 84, "column": 6}, "end": {"line": 84, "column": 64}}, + "15": {"start": {"line": 85, "column": 6}, "end": {"line": 85, "column": 3621}}, + "16": {"start": {"line": 86, "column": 8}, "end": {"line": 86, "column": 29}}, + "17": {"start": {"line": 88, "column": 8}, "end": {"line": 88, "column": 51}}, + "18": {"start": {"line": 96, "column": 4}, "end": {"line": 96, "column": 58}}, + "19": {"start": {"line": 97, "column": 4}, "end": {"line": 97, "column": 4032}}, + "20": {"start": {"line": 98, "column": 6}, "end": {"line": 98, "column": 41}}, + "21": {"start": {"line": 100, "column": 4}, "end": {"line": 100, "column": 17}}, + "22": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 40}}, + "23": {"start": {"line": 113, "column": 4}, "end": {"line": 113, "column": 35}} + }, + "branchMap": { + "1": { + "line": 62, + "type": "if", + "locations": [ + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}}, + {"start": {"line": 62, "column": 4}, "end": {"line": 62, "column": 4}} + ] + }, + "2": { + "line": 81, + "type": "if", + "locations": [ + {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 4}}, + {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 4}} + ] + }, + "3": { + "line": 85, + "type": "if", + "locations": [ + {"start": {"line": 85, "column": 6}, "end": {"line": 85, "column": 6}}, + {"start": {"line": 85, "column": 6}, "end": {"line": 85, "column": 6}} + ] + } + } + }, + "contracts/misc/Context.sol": { + "l": {"16": 4, "20": 0, "21": 0}, + "path": "/src/contracts/misc/Context.sol", + "s": {"1": 4, "2": 0}, + "b": {}, + "f": {"1": 4, "2": 0}, + "fnMap": { + "1": { + "name": "_msgSender", + "line": 15, + "loc": {"start": {"line": 15, "column": 2}, "end": {"line": 17, "column": 2}} + }, + "2": { + "name": "_msgData", + "line": 19, + "loc": {"start": {"line": 19, "column": 2}, "end": {"line": 22, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 16, "column": 4}, "end": {"line": 16, "column": 21}}, + "2": {"start": {"line": 21, "column": 4}, "end": {"line": 21, "column": 19}} + }, + "branchMap": {} + }, + "contracts/misc/IERC20DetailedBytes.sol": { + "l": {}, + "path": "/src/contracts/misc/IERC20DetailedBytes.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/misc/SafeERC20.sol": { + "l": {"27": 99, "36": 0, "44": 0, "48": 0, "52": 99, "55": 99, "56": 99, "58": 97, "61": 97}, + "path": "/src/contracts/misc/SafeERC20.sol", + "s": {"1": 99, "2": 0, "3": 0, "4": 0, "5": 99, "6": 99, "7": 99, "8": 97, "9": 97}, + "b": {"1": [0, 0], "2": [99, 0], "3": [97, 2], "4": [97, 0], "5": [97, 0]}, + "f": {"1": 99, "2": 0, "3": 0, "4": 99}, + "fnMap": { + "1": { + "name": "safeTransfer", + "line": 22, + "loc": {"start": {"line": 22, "column": 2}, "end": {"line": 28, "column": 2}} + }, + "2": { + "name": "safeTransferFrom", + "line": 30, + "loc": {"start": {"line": 30, "column": 2}, "end": {"line": 37, "column": 2}} + }, + "3": { + "name": "safeApprove", + "line": 39, + "loc": {"start": {"line": 39, "column": 2}, "end": {"line": 49, "column": 2}} + }, + "4": { + "name": "callOptionalReturn", + "line": 51, + "loc": {"start": {"line": 51, "column": 2}, "end": {"line": 63, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 27, "column": 4}, "end": {"line": 27, "column": 88}}, + "2": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 98}}, + "3": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 1254}}, + "4": {"start": {"line": 48, "column": 4}, "end": {"line": 48, "column": 92}}, + "5": {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 74}}, + "6": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 71}}, + "7": {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 55}}, + "8": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 1845}}, + "9": {"start": {"line": 61, "column": 6}, "end": {"line": 61, "column": 90}} + }, + "branchMap": { + "1": { + "line": 44, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}}, + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}} + ] + }, + "2": { + "line": 52, + "type": "if", + "locations": [ + {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 4}}, + {"start": {"line": 52, "column": 4}, "end": {"line": 52, "column": 4}} + ] + }, + "3": { + "line": 56, + "type": "if", + "locations": [ + {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 4}}, + {"start": {"line": 56, "column": 4}, "end": {"line": 56, "column": 4}} + ] + }, + "4": { + "line": 58, + "type": "if", + "locations": [ + {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 4}}, + {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 4}} + ] + }, + "5": { + "line": 61, + "type": "if", + "locations": [ + {"start": {"line": 61, "column": 6}, "end": {"line": 61, "column": 6}}, + {"start": {"line": 61, "column": 6}, "end": {"line": 61, "column": 6}} + ] + } + } + }, + "contracts/misc/WalletBalanceProvider.sol": { + "l": { + "26": 3, + "34": 0, + "45": 0, + "46": 0, + "48": 0, + "63": 0, + "65": 0, + "66": 0, + "67": 0, + "68": 0, + "69": 0, + "71": 0, + "76": 0, + "87": 0, + "89": 0, + "91": 0, + "93": 0, + "94": 0, + "96": 0, + "97": 0, + "98": 0, + "100": 0, + "103": 0 + }, + "path": "/src/contracts/misc/WalletBalanceProvider.sol", + "s": { + "1": 3, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0 + }, + "b": {"1": [0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0]}, + "f": {"1": 3, "2": 0, "3": 0, "4": 0}, + "fnMap": { + "1": { + "name": "constructor", + "line": 25, + "loc": {"start": {"line": 25, "column": 2}, "end": {"line": 27, "column": 2}} + }, + "2": { + "name": "balanceOf", + "line": 43, + "loc": {"start": {"line": 43, "column": 2}, "end": {"line": 50, "column": 2}} + }, + "3": { + "name": "batchBalanceOf", + "line": 58, + "loc": {"start": {"line": 58, "column": 2}, "end": {"line": 77, "column": 2}} + }, + "4": { + "name": "getUserWalletBalances", + "line": 82, + "loc": {"start": {"line": 82, "column": 2}, "end": {"line": 104, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 26, "column": 4}, "end": {"line": 26, "column": 23}}, + "2": {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 1672}}, + "3": {"start": {"line": 46, "column": 6}, "end": {"line": 46, "column": 42}}, + "4": {"start": {"line": 48, "column": 6}, "end": {"line": 48, "column": 14}}, + "5": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 75}}, + "6": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 2271}}, + "7": {"start": {"line": 66, "column": 6}, "end": {"line": 66, "column": 2324}}, + "8": {"start": {"line": 67, "column": 8}, "end": {"line": 67, "column": 43}}, + "9": {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 2425}}, + "10": {"start": {"line": 69, "column": 10}, "end": {"line": 69, "column": 32}}, + "11": {"start": {"line": 71, "column": 10}, "end": {"line": 71, "column": 63}}, + "12": {"start": {"line": 76, "column": 4}, "end": {"line": 76, "column": 19}}, + "13": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 64}}, + "14": {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 50}}, + "15": {"start": {"line": 91, "column": 4}, "end": {"line": 91, "column": 62}}, + "16": {"start": {"line": 93, "column": 4}, "end": {"line": 93, "column": 3026}}, + "17": {"start": {"line": 94, "column": 6}, "end": {"line": 94, "column": 89}}, + "18": {"start": {"line": 96, "column": 6}, "end": {"line": 96, "column": 3174}}, + "19": {"start": {"line": 97, "column": 8}, "end": {"line": 97, "column": 22}}, + "20": {"start": {"line": 100, "column": 6}, "end": {"line": 100, "column": 47}}, + "21": {"start": {"line": 103, "column": 4}, "end": {"line": 103, "column": 31}} + }, + "branchMap": { + "1": { + "line": 34, + "type": "if", + "locations": [ + {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 4}}, + {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 4}} + ] + }, + "2": { + "line": 45, + "type": "if", + "locations": [ + {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 4}}, + {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 4}} + ] + }, + "3": { + "line": 68, + "type": "if", + "locations": [ + {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 8}}, + {"start": {"line": 68, "column": 8}, "end": {"line": 68, "column": 8}} + ] + }, + "4": { + "line": 96, + "type": "if", + "locations": [ + {"start": {"line": 96, "column": 6}, "end": {"line": 96, "column": 6}}, + {"start": {"line": 96, "column": 6}, "end": {"line": 96, "column": 6}} + ] + } + } + }, + "contracts/tokenization/AToken.sol": { + "l": { + "45": 211, + "46": 207, + "57": 54, + "58": 54, + "59": 54, + "63": 17, + "71": 17, + "74": 17, + "78": 17, + "88": 17, + "89": 17, + "90": 17, + "104": 42, + "107": 41, + "110": 41, + "111": 41, + "126": 105, + "129": 105, + "130": 105, + "134": 0, + "137": 0, + "138": 0, + "155": 2, + "170": 641, + "180": 333, + "195": 0, + "205": 3, + "207": 3, + "208": 0, + "211": 3, + "219": 0, + "229": 4, + "245": 58, + "246": 56, + "268": 6, + "270": 5, + "271": 3, + "272": 3, + "279": 3, + "280": 0, + "281": 0, + "298": 6, + "299": 4, + "302": 4, + "304": 4, + "306": 4, + "320": 4, + "327": 0 + }, + "path": "/src/contracts/tokenization/AToken.sol", + "s": { + "1": 211, + "2": 54, + "3": 54, + "4": 54, + "5": 17, + "6": 17, + "7": 17, + "8": 17, + "9": 17, + "10": 17, + "11": 42, + "12": 41, + "13": 41, + "14": 41, + "15": 105, + "16": 105, + "17": 105, + "18": 0, + "19": 0, + "20": 0, + "21": 2, + "22": 641, + "23": 333, + "24": 0, + "25": 3, + "26": 3, + "27": 0, + "28": 3, + "29": 0, + "30": 4, + "31": 58, + "32": 56, + "33": 6, + "34": 5, + "35": 3, + "36": 3, + "37": 3, + "38": 0, + "39": 0, + "40": 6, + "41": 4, + "42": 4, + "43": 4, + "44": 4, + "45": 4 + }, + "b": { + "1": [207, 4], + "2": [0, 3], + "3": [5, 1], + "4": [3, 2], + "5": [0, 3], + "6": [4, 2], + "7": [2, 2] + }, + "f": { + "1": 211, + "2": 54, + "3": 17, + "4": 17, + "5": 42, + "6": 105, + "7": 0, + "8": 2, + "9": 641, + "10": 333, + "11": 0, + "12": 3, + "13": 0, + "14": 4, + "15": 58, + "16": 6, + "17": 6, + "18": 4 + }, + "fnMap": { + "1": { + "name": "onlyLendingPool", + "line": 44, + "loc": {"start": {"line": 44, "column": 2}, "end": {"line": 47, "column": 2}} + }, + "2": { + "name": "constructor", + "line": 56, + "loc": {"start": {"line": 49, "column": 2}, "end": {"line": 60, "column": 2}} + }, + "3": { + "name": "getRevision", + "line": 62, + "loc": {"start": {"line": 62, "column": 2}, "end": {"line": 64, "column": 2}} + }, + "4": { + "name": "initialize", + "line": 70, + "loc": {"start": {"line": 66, "column": 2}, "end": {"line": 91, "column": 2}} + }, + "5": { + "name": "burn", + "line": 103, + "loc": {"start": {"line": 98, "column": 2}, "end": {"line": 112, "column": 2}} + }, + "6": { + "name": "mint", + "line": 124, + "loc": {"start": {"line": 120, "column": 2}, "end": {"line": 131, "column": 2}} + }, + "7": { + "name": "mintToTreasury", + "line": 133, + "loc": {"start": {"line": 133, "column": 2}, "end": {"line": 139, "column": 2}} + }, + "8": { + "name": "transferOnLiquidation", + "line": 152, + "loc": {"start": {"line": 148, "column": 2}, "end": {"line": 156, "column": 2}} + }, + "9": { + "name": "balanceOf", + "line": 164, + "loc": {"start": {"line": 164, "column": 2}, "end": {"line": 171, "column": 2}} + }, + "10": { + "name": "scaledBalanceOf", + "line": 179, + "loc": {"start": {"line": 179, "column": 2}, "end": {"line": 181, "column": 2}} + }, + "11": { + "name": "getScaledUserBalanceAndSupply", + "line": 189, + "loc": {"start": {"line": 189, "column": 2}, "end": {"line": 196, "column": 2}} + }, + "12": { + "name": "totalSupply", + "line": 204, + "loc": {"start": {"line": 204, "column": 2}, "end": {"line": 212, "column": 2}} + }, + "13": { + "name": "scaledTotalSupply", + "line": 218, + "loc": {"start": {"line": 218, "column": 2}, "end": {"line": 220, "column": 2}} + }, + "14": { + "name": "isTransferAllowed", + "line": 228, + "loc": {"start": {"line": 228, "column": 2}, "end": {"line": 230, "column": 2}} + }, + "15": { + "name": "transferUnderlyingTo", + "line": 242, + "loc": {"start": {"line": 239, "column": 2}, "end": {"line": 247, "column": 2}} + }, + "16": { + "name": "permit", + "line": 259, + "loc": {"start": {"line": 259, "column": 2}, "end": {"line": 282, "column": 2}} + }, + "17": { + "name": "_transfer", + "line": 292, + "loc": {"start": {"line": 292, "column": 2}, "end": {"line": 307, "column": 2}} + }, + "18": { + "name": "_transfer", + "line": 315, + "loc": {"start": {"line": 315, "column": 2}, "end": {"line": 321, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 75}}, + "2": {"start": {"line": 57, "column": 4}, "end": {"line": 57, "column": 14}}, + "3": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 52}}, + "4": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 52}}, + "5": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 26}}, + "6": {"start": {"line": 71, "column": 4}, "end": {"line": 71, "column": 19}}, + "7": {"start": {"line": 78, "column": 4}, "end": {"line": 78, "column": 2480}}, + "8": {"start": {"line": 88, "column": 4}, "end": {"line": 88, "column": 22}}, + "9": {"start": {"line": 89, "column": 4}, "end": {"line": 89, "column": 26}}, + "10": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 40}}, + "11": {"start": {"line": 104, "column": 4}, "end": {"line": 104, "column": 36}}, + "12": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 78}}, + "13": {"start": {"line": 110, "column": 4}, "end": {"line": 110, "column": 43}}, + "14": {"start": {"line": 111, "column": 4}, "end": {"line": 111, "column": 62}}, + "15": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 36}}, + "16": {"start": {"line": 129, "column": 4}, "end": {"line": 129, "column": 43}}, + "17": {"start": {"line": 130, "column": 4}, "end": {"line": 130, "column": 34}}, + "18": {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 53}}, + "19": {"start": {"line": 137, "column": 4}, "end": {"line": 137, "column": 63}}, + "20": {"start": {"line": 138, "column": 4}, "end": {"line": 138, "column": 54}}, + "21": {"start": {"line": 155, "column": 4}, "end": {"line": 155, "column": 36}}, + "22": {"start": {"line": 170, "column": 4}, "end": {"line": 170, "column": 98}}, + "23": {"start": {"line": 180, "column": 4}, "end": {"line": 180, "column": 32}}, + "24": {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 55}}, + "25": {"start": {"line": 205, "column": 4}, "end": {"line": 205, "column": 53}}, + "26": {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 6560}}, + "27": {"start": {"line": 208, "column": 6}, "end": {"line": 208, "column": 14}}, + "28": {"start": {"line": 211, "column": 4}, "end": {"line": 211, "column": 96}}, + "29": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 30}}, + "30": {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 78}}, + "31": {"start": {"line": 245, "column": 4}, "end": {"line": 245, "column": 64}}, + "32": {"start": {"line": 246, "column": 4}, "end": {"line": 246, "column": 17}}, + "33": {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 48}}, + "34": {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 61}}, + "35": {"start": {"line": 271, "column": 4}, "end": {"line": 271, "column": 46}}, + "36": {"start": {"line": 272, "column": 4}, "end": {"line": 272, "column": 8691}}, + "37": {"start": {"line": 279, "column": 4}, "end": {"line": 279, "column": 68}}, + "38": {"start": {"line": 280, "column": 4}, "end": {"line": 280, "column": 44}}, + "39": {"start": {"line": 281, "column": 4}, "end": {"line": 281, "column": 34}}, + "40": {"start": {"line": 298, "column": 4}, "end": {"line": 298, "column": 9504}}, + "41": {"start": {"line": 299, "column": 6}, "end": {"line": 299, "column": 74}}, + "42": {"start": {"line": 302, "column": 4}, "end": {"line": 302, "column": 77}}, + "43": {"start": {"line": 304, "column": 4}, "end": {"line": 304, "column": 50}}, + "44": {"start": {"line": 306, "column": 4}, "end": {"line": 306, "column": 49}}, + "45": {"start": {"line": 320, "column": 4}, "end": {"line": 320, "column": 36}} + }, + "branchMap": { + "1": { + "line": 45, + "type": "if", + "locations": [ + {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 4}}, + {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 4}} + ] + }, + "2": { + "line": 207, + "type": "if", + "locations": [ + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}}, + {"start": {"line": 207, "column": 4}, "end": {"line": 207, "column": 4}} + ] + }, + "3": { + "line": 268, + "type": "if", + "locations": [ + {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 4}}, + {"start": {"line": 268, "column": 4}, "end": {"line": 268, "column": 4}} + ] + }, + "4": { + "line": 270, + "type": "if", + "locations": [ + {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 4}}, + {"start": {"line": 270, "column": 4}, "end": {"line": 270, "column": 4}} + ] + }, + "5": { + "line": 279, + "type": "if", + "locations": [ + {"start": {"line": 279, "column": 4}, "end": {"line": 279, "column": 4}}, + {"start": {"line": 279, "column": 4}, "end": {"line": 279, "column": 4}} + ] + }, + "6": { + "line": 298, + "type": "if", + "locations": [ + {"start": {"line": 298, "column": 4}, "end": {"line": 298, "column": 4}}, + {"start": {"line": 298, "column": 4}, "end": {"line": 298, "column": 4}} + ] + }, + "7": { + "line": 299, + "type": "if", + "locations": [ + {"start": {"line": 299, "column": 6}, "end": {"line": 299, "column": 6}}, + {"start": {"line": 299, "column": 6}, "end": {"line": 299, "column": 6}} + ] + } + } + }, + "contracts/tokenization/base/DebtTokenBase.sol": { + "l": { + "29": 99, + "30": 95, + "44": 108, + "45": 108, + "59": 36, + "60": 36, + "61": 36, + "65": 0, + "73": 0, + "74": 0, + "75": 0, + "85": 0, + "86": 0, + "87": 0, + "91": 0, + "92": 0, + "93": 0, + "101": 0, + "102": 0, + "103": 0, + "104": 0, + "113": 0, + "114": 0, + "115": 0, + "124": 0, + "125": 0, + "126": 0 + }, + "path": "/src/contracts/tokenization/base/DebtTokenBase.sol", + "s": { + "1": 99, + "2": 108, + "3": 108, + "4": 36, + "5": 36, + "6": 36, + "7": 0, + "8": 0, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0 + }, + "b": {"1": [95, 4]}, + "f": {"1": 99, "2": 108, "3": 36, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0}, + "fnMap": { + "1": { + "name": "onlyLendingPool", + "line": 28, + "loc": {"start": {"line": 28, "column": 2}, "end": {"line": 31, "column": 2}} + }, + "2": { + "name": "constructor", + "line": 43, + "loc": {"start": {"line": 37, "column": 2}, "end": {"line": 46, "column": 2}} + }, + "3": { + "name": "initialize", + "line": 58, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 62, "column": 2}} + }, + "4": { + "name": "underlyingAssetAddress", + "line": 64, + "loc": {"start": {"line": 64, "column": 2}, "end": {"line": 66, "column": 2}} + }, + "5": { + "name": "transfer", + "line": 72, + "loc": {"start": {"line": 72, "column": 2}, "end": {"line": 76, "column": 2}} + }, + "6": { + "name": "allowance", + "line": 78, + "loc": {"start": {"line": 78, "column": 2}, "end": {"line": 88, "column": 2}} + }, + "7": { + "name": "approve", + "line": 90, + "loc": {"start": {"line": 90, "column": 2}, "end": {"line": 94, "column": 2}} + }, + "8": { + "name": "transferFrom", + "line": 96, + "loc": {"start": {"line": 96, "column": 2}, "end": {"line": 105, "column": 2}} + }, + "9": { + "name": "increaseAllowance", + "line": 107, + "loc": {"start": {"line": 107, "column": 2}, "end": {"line": 116, "column": 2}} + }, + "10": { + "name": "decreaseAllowance", + "line": 118, + "loc": {"start": {"line": 118, "column": 2}, "end": {"line": 127, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 75}}, + "2": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 28}}, + "3": {"start": {"line": 45, "column": 4}, "end": {"line": 45, "column": 44}}, + "4": {"start": {"line": 59, "column": 4}, "end": {"line": 59, "column": 17}}, + "5": {"start": {"line": 60, "column": 4}, "end": {"line": 60, "column": 21}}, + "6": {"start": {"line": 61, "column": 4}, "end": {"line": 61, "column": 25}}, + "7": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 27}}, + "8": {"start": {"line": 75, "column": 4}, "end": {"line": 75, "column": 35}}, + "9": {"start": {"line": 87, "column": 4}, "end": {"line": 87, "column": 36}}, + "10": {"start": {"line": 93, "column": 4}, "end": {"line": 93, "column": 35}}, + "11": {"start": {"line": 104, "column": 4}, "end": {"line": 104, "column": 35}}, + "12": {"start": {"line": 115, "column": 4}, "end": {"line": 115, "column": 36}}, + "13": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 36}} + }, + "branchMap": { + "1": { + "line": 29, + "type": "if", + "locations": [ + {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 4}}, + {"start": {"line": 29, "column": 4}, "end": {"line": 29, "column": 4}} + ] + } + } + }, + "contracts/tokenization/IncentivizedERC20.sol": { + "l": { + "34": 162, + "35": 162, + "36": 162, + "37": 162, + "44": 67, + "51": 88, + "58": 0, + "65": 2318, + "72": 2652, + "82": 4, + "83": 2, + "84": 2, + "100": 4, + "109": 0, + "110": 0, + "125": 0, + "126": 0, + "131": 0, + "132": 0, + "142": 0, + "143": 0, + "157": 0, + "165": 0, + "173": 4, + "174": 4, + "176": 4, + "178": 4, + "179": 4, + "180": 4, + "181": 4, + "183": 4, + "184": 0, + "185": 0, + "186": 0, + "187": 0, + "193": 131, + "195": 131, + "197": 131, + "198": 131, + "200": 131, + "201": 131, + "203": 131, + "204": 0, + "209": 67, + "211": 67, + "213": 67, + "214": 67, + "216": 67, + "217": 67, + "219": 66, + "220": 0, + "229": 0, + "230": 0, + "232": 0, + "233": 0, + "237": 54, + "241": 54, + "245": 54 + }, + "path": "/src/contracts/tokenization/IncentivizedERC20.sol", + "s": { + "1": 162, + "2": 162, + "3": 162, + "4": 162, + "5": 67, + "6": 88, + "7": 0, + "8": 2318, + "9": 2652, + "10": 4, + "11": 2, + "12": 2, + "13": 4, + "14": 0, + "15": 0, + "16": 0, + "17": 0, + "18": 0, + "19": 0, + "20": 0, + "21": 0, + "22": 0, + "23": 0, + "24": 4, + "25": 4, + "26": 4, + "27": 4, + "28": 4, + "29": 4, + "30": 4, + "31": 4, + "32": 0, + "33": 0, + "34": 0, + "35": 0, + "36": 131, + "37": 131, + "38": 131, + "39": 131, + "40": 131, + "41": 131, + "42": 131, + "43": 0, + "44": 67, + "45": 67, + "46": 67, + "47": 67, + "48": 67, + "49": 67, + "50": 66, + "51": 0, + "52": 0, + "53": 0, + "54": 0, + "55": 0, + "56": 54, + "57": 54, + "58": 54 + }, + "b": { + "1": [4, 0], + "2": [4, 0], + "3": [0, 4], + "4": [0, 0], + "5": [131, 0], + "6": [0, 131], + "7": [67, 0], + "8": [0, 66], + "9": [0, 0], + "10": [0, 0] + }, + "f": { + "1": 162, + "2": 67, + "3": 88, + "4": 0, + "5": 2318, + "6": 2652, + "7": 4, + "8": 4, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 4, + "14": 131, + "15": 67, + "16": 0, + "17": 54, + "18": 54, + "19": 54, + "20": 202 + }, + "fnMap": { + "1": { + "name": "constructor", + "line": 28, + "loc": {"start": {"line": 28, "column": 2}, "end": {"line": 38, "column": 2}} + }, + "2": { + "name": "name", + "line": 43, + "loc": {"start": {"line": 43, "column": 2}, "end": {"line": 45, "column": 2}} + }, + "3": { + "name": "symbol", + "line": 50, + "loc": {"start": {"line": 50, "column": 2}, "end": {"line": 52, "column": 2}} + }, + "4": { + "name": "decimals", + "line": 57, + "loc": {"start": {"line": 57, "column": 2}, "end": {"line": 59, "column": 2}} + }, + "5": { + "name": "totalSupply", + "line": 64, + "loc": {"start": {"line": 64, "column": 2}, "end": {"line": 66, "column": 2}} + }, + "6": { + "name": "balanceOf", + "line": 71, + "loc": {"start": {"line": 71, "column": 2}, "end": {"line": 73, "column": 2}} + }, + "7": { + "name": "transfer", + "line": 81, + "loc": {"start": {"line": 81, "column": 2}, "end": {"line": 85, "column": 2}} + }, + "8": { + "name": "allowance", + "line": 93, + "loc": {"start": {"line": 93, "column": 2}, "end": {"line": 101, "column": 2}} + }, + "9": { + "name": "approve", + "line": 108, + "loc": {"start": {"line": 108, "column": 2}, "end": {"line": 111, "column": 2}} + }, + "10": { + "name": "transferFrom", + "line": 120, + "loc": {"start": {"line": 120, "column": 2}, "end": {"line": 133, "column": 2}} + }, + "11": { + "name": "increaseAllowance", + "line": 141, + "loc": {"start": {"line": 141, "column": 2}, "end": {"line": 144, "column": 2}} + }, + "12": { + "name": "decreaseAllowance", + "line": 152, + "loc": {"start": {"line": 152, "column": 2}, "end": {"line": 166, "column": 2}} + }, + "13": { + "name": "_transfer", + "line": 168, + "loc": {"start": {"line": 168, "column": 2}, "end": {"line": 190, "column": 2}} + }, + "14": { + "name": "_mint", + "line": 192, + "loc": {"start": {"line": 192, "column": 2}, "end": {"line": 206, "column": 2}} + }, + "15": { + "name": "_burn", + "line": 208, + "loc": {"start": {"line": 208, "column": 2}, "end": {"line": 222, "column": 2}} + }, + "16": { + "name": "_approve", + "line": 224, + "loc": {"start": {"line": 224, "column": 2}, "end": {"line": 234, "column": 2}} + }, + "17": { + "name": "_setName", + "line": 236, + "loc": {"start": {"line": 236, "column": 2}, "end": {"line": 238, "column": 2}} + }, + "18": { + "name": "_setSymbol", + "line": 240, + "loc": {"start": {"line": 240, "column": 2}, "end": {"line": 242, "column": 2}} + }, + "19": { + "name": "_setDecimals", + "line": 244, + "loc": {"start": {"line": 244, "column": 2}, "end": {"line": 246, "column": 2}} + }, + "20": { + "name": "_beforeTokenTransfer", + "line": 248, + "loc": {"start": {"line": 248, "column": 2}, "end": {"line": 252, "column": 22}} + } + }, + "statementMap": { + "1": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 15}}, + "2": {"start": {"line": 35, "column": 4}, "end": {"line": 35, "column": 19}}, + "3": {"start": {"line": 36, "column": 4}, "end": {"line": 36, "column": 23}}, + "4": {"start": {"line": 37, "column": 4}, "end": {"line": 37, "column": 74}}, + "5": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 16}}, + "6": {"start": {"line": 51, "column": 4}, "end": {"line": 51, "column": 18}}, + "7": {"start": {"line": 58, "column": 4}, "end": {"line": 58, "column": 20}}, + "8": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 23}}, + "9": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 29}}, + "10": {"start": {"line": 82, "column": 4}, "end": {"line": 82, "column": 45}}, + "11": {"start": {"line": 83, "column": 4}, "end": {"line": 83, "column": 48}}, + "12": {"start": {"line": 84, "column": 4}, "end": {"line": 84, "column": 15}}, + "13": {"start": {"line": 100, "column": 4}, "end": {"line": 100, "column": 38}}, + "14": {"start": {"line": 109, "column": 4}, "end": {"line": 109, "column": 42}}, + "15": {"start": {"line": 110, "column": 4}, "end": {"line": 110, "column": 15}}, + "16": {"start": {"line": 125, "column": 4}, "end": {"line": 125, "column": 39}}, + "17": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 3648}}, + "18": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 44}}, + "19": {"start": {"line": 132, "column": 4}, "end": {"line": 132, "column": 15}}, + "20": {"start": {"line": 142, "column": 4}, "end": {"line": 142, "column": 86}}, + "21": {"start": {"line": 143, "column": 4}, "end": {"line": 143, "column": 15}}, + "22": {"start": {"line": 157, "column": 4}, "end": {"line": 157, "column": 4675}}, + "23": {"start": {"line": 165, "column": 4}, "end": {"line": 165, "column": 15}}, + "24": {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 73}}, + "25": {"start": {"line": 174, "column": 4}, "end": {"line": 174, "column": 74}}, + "26": {"start": {"line": 176, "column": 4}, "end": {"line": 176, "column": 50}}, + "27": {"start": {"line": 178, "column": 4}, "end": {"line": 178, "column": 48}}, + "28": {"start": {"line": 179, "column": 4}, "end": {"line": 179, "column": 93}}, + "29": {"start": {"line": 180, "column": 4}, "end": {"line": 180, "column": 54}}, + "30": {"start": {"line": 181, "column": 4}, "end": {"line": 181, "column": 58}}, + "31": {"start": {"line": 183, "column": 4}, "end": {"line": 183, "column": 5459}}, + "32": {"start": {"line": 184, "column": 6}, "end": {"line": 184, "column": 40}}, + "33": {"start": {"line": 185, "column": 6}, "end": {"line": 185, "column": 78}}, + "34": {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 5642}}, + "35": {"start": {"line": 187, "column": 8}, "end": {"line": 187, "column": 86}}, + "36": {"start": {"line": 193, "column": 4}, "end": {"line": 193, "column": 68}}, + "37": {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 52}}, + "38": {"start": {"line": 197, "column": 4}, "end": {"line": 197, "column": 41}}, + "39": {"start": {"line": 198, "column": 4}, "end": {"line": 198, "column": 44}}, + "40": {"start": {"line": 200, "column": 4}, "end": {"line": 200, "column": 50}}, + "41": {"start": {"line": 201, "column": 4}, "end": {"line": 201, "column": 53}}, + "42": {"start": {"line": 203, "column": 4}, "end": {"line": 203, "column": 6176}}, + "43": {"start": {"line": 204, "column": 6}, "end": {"line": 204, "column": 83}}, + "44": {"start": {"line": 209, "column": 4}, "end": {"line": 209, "column": 70}}, + "45": {"start": {"line": 211, "column": 4}, "end": {"line": 211, "column": 52}}, + "46": {"start": {"line": 213, "column": 4}, "end": {"line": 213, "column": 41}}, + "47": {"start": {"line": 214, "column": 4}, "end": {"line": 214, "column": 44}}, + "48": {"start": {"line": 216, "column": 4}, "end": {"line": 216, "column": 50}}, + "49": {"start": {"line": 217, "column": 4}, "end": {"line": 217, "column": 91}}, + "50": {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 6766}}, + "51": {"start": {"line": 220, "column": 6}, "end": {"line": 220, "column": 83}}, + "52": {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 71}}, + "53": {"start": {"line": 230, "column": 4}, "end": {"line": 230, "column": 71}}, + "54": {"start": {"line": 232, "column": 4}, "end": {"line": 232, "column": 39}}, + "55": {"start": {"line": 233, "column": 4}, "end": {"line": 233, "column": 41}}, + "56": {"start": {"line": 237, "column": 4}, "end": {"line": 237, "column": 18}}, + "57": {"start": {"line": 241, "column": 4}, "end": {"line": 241, "column": 22}}, + "58": {"start": {"line": 245, "column": 4}, "end": {"line": 245, "column": 26}} + }, + "branchMap": { + "1": { + "line": 173, + "type": "if", + "locations": [ + {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 4}}, + {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 4}} + ] + }, + "2": { + "line": 174, + "type": "if", + "locations": [ + {"start": {"line": 174, "column": 4}, "end": {"line": 174, "column": 4}}, + {"start": {"line": 174, "column": 4}, "end": {"line": 174, "column": 4}} + ] + }, + "3": { + "line": 183, + "type": "if", + "locations": [ + {"start": {"line": 183, "column": 4}, "end": {"line": 183, "column": 4}}, + {"start": {"line": 183, "column": 4}, "end": {"line": 183, "column": 4}} + ] + }, + "4": { + "line": 186, + "type": "if", + "locations": [ + {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 6}}, + {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 6}} + ] + }, + "5": { + "line": 193, + "type": "if", + "locations": [ + {"start": {"line": 193, "column": 4}, "end": {"line": 193, "column": 4}}, + {"start": {"line": 193, "column": 4}, "end": {"line": 193, "column": 4}} + ] + }, + "6": { + "line": 203, + "type": "if", + "locations": [ + {"start": {"line": 203, "column": 4}, "end": {"line": 203, "column": 4}}, + {"start": {"line": 203, "column": 4}, "end": {"line": 203, "column": 4}} + ] + }, + "7": { + "line": 209, + "type": "if", + "locations": [ + {"start": {"line": 209, "column": 4}, "end": {"line": 209, "column": 4}}, + {"start": {"line": 209, "column": 4}, "end": {"line": 209, "column": 4}} + ] + }, + "8": { + "line": 219, + "type": "if", + "locations": [ + {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 4}}, + {"start": {"line": 219, "column": 4}, "end": {"line": 219, "column": 4}} + ] + }, + "9": { + "line": 229, + "type": "if", + "locations": [ + {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 4}}, + {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 4}} + ] + }, + "10": { + "line": 230, + "type": "if", + "locations": [ + {"start": {"line": 230, "column": 4}, "end": {"line": 230, "column": 4}}, + {"start": {"line": 230, "column": 4}, "end": {"line": 230, "column": 4}} + ] + } + } + }, + "contracts/tokenization/interfaces/IAToken.sol": { + "l": {}, + "path": "/src/contracts/tokenization/interfaces/IAToken.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/tokenization/interfaces/IScaledBalanceToken.sol": { + "l": {}, + "path": "/src/contracts/tokenization/interfaces/IScaledBalanceToken.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/tokenization/interfaces/IStableDebtToken.sol": { + "l": {}, + "path": "/src/contracts/tokenization/interfaces/IStableDebtToken.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/tokenization/interfaces/IVariableDebtToken.sol": { + "l": {}, + "path": "/src/contracts/tokenization/interfaces/IVariableDebtToken.sol", + "s": {}, + "b": {}, + "f": {}, + "fnMap": {}, + "statementMap": {}, + "branchMap": {} + }, + "contracts/tokenization/StableDebtToken.sol": { + "l": { + "39": 17, + "47": 363, + "55": 343, + "64": 343, + "72": 488, + "73": 488, + "74": 488, + "75": 366, + "77": 122, + "81": 122, + "104": 27, + "107": 27, + "114": 27, + "115": 27, + "116": 27, + "118": 27, + "121": 27, + "126": 27, + "127": 27, + "131": 27, + "134": 27, + "139": 27, + "142": 27, + "144": 27, + "160": 17, + "167": 17, + "173": 17, + "174": 8, + "175": 8, + "177": 9, + "178": 9, + "184": 17, + "185": 11, + "186": 11, + "190": 6, + "193": 17, + "195": 17, + "196": 0, + "198": 17, + "202": 17, + "204": 17, + "222": 44, + "224": 44, + "225": 22, + "229": 22, + "231": 22, + "242": 331, + "243": 331, + "250": 235, + "251": 235, + "258": 414, + "265": 331, + "274": 343, + "284": 980, + "286": 980, + "287": 781, + "290": 199, + "295": 199, + "306": 27, + "307": 27, + "309": 27, + "310": 0, + "322": 17, + "323": 17, + "325": 17, + "326": 0 + }, + "path": "/src/contracts/tokenization/StableDebtToken.sol", + "s": { + "1": 17, + "2": 363, + "3": 343, + "4": 343, + "5": 488, + "6": 488, + "7": 488, + "8": 366, + "9": 122, + "10": 122, + "11": 27, + "12": 27, + "13": 27, + "14": 27, + "15": 27, + "16": 27, + "17": 27, + "18": 27, + "19": 27, + "20": 27, + "21": 27, + "22": 27, + "23": 27, + "24": 27, + "25": 17, + "26": 17, + "27": 17, + "28": 8, + "29": 8, + "30": 9, + "31": 9, + "32": 17, + "33": 11, + "34": 11, + "35": 6, + "36": 17, + "37": 17, + "38": 0, + "39": 17, + "40": 17, + "41": 17, + "42": 44, + "43": 44, + "44": 22, + "45": 22, + "46": 22, + "47": 331, + "48": 331, + "49": 235, + "50": 235, + "51": 414, + "52": 331, + "53": 343, + "54": 980, + "55": 980, + "56": 781, + "57": 199, + "58": 199, + "59": 27, + "60": 27, + "61": 27, + "62": 0, + "63": 17, + "64": 17, + "65": 17, + "66": 0 + }, + "b": { + "1": [366, 122], + "2": [27, 0], + "3": [8, 9], + "4": [11, 6], + "5": [0, 17], + "6": [22, 22], + "7": [781, 199], + "8": [0, 27], + "9": [0, 17] + }, + "f": { + "1": 54, + "2": 17, + "3": 363, + "4": 343, + "5": 343, + "6": 488, + "7": 27, + "8": 17, + "9": 44, + "10": 331, + "11": 235, + "12": 414, + "13": 331, + "14": 343, + "15": 980, + "16": 27, + "17": 17 + }, + "fnMap": { + "1": { + "name": "constructor", + "line": 32, + "loc": {"start": {"line": 26, "column": 2}, "end": {"line": 32, "column": 85}} + }, + "2": { + "name": "getRevision", + "line": 38, + "loc": {"start": {"line": 38, "column": 2}, "end": {"line": 40, "column": 2}} + }, + "3": { + "name": "getAverageStableRate", + "line": 46, + "loc": {"start": {"line": 46, "column": 2}, "end": {"line": 48, "column": 2}} + }, + "4": { + "name": "getUserLastUpdated", + "line": 54, + "loc": {"start": {"line": 54, "column": 2}, "end": {"line": 56, "column": 2}} + }, + "5": { + "name": "getUserStableRate", + "line": 63, + "loc": {"start": {"line": 63, "column": 2}, "end": {"line": 65, "column": 2}} + }, + "6": { + "name": "balanceOf", + "line": 71, + "loc": {"start": {"line": 71, "column": 2}, "end": {"line": 82, "column": 2}} + }, + "7": { + "name": "mint", + "line": 103, + "loc": {"start": {"line": 99, "column": 2}, "end": {"line": 152, "column": 2}} + }, + "8": { + "name": "burn", + "line": 159, + "loc": {"start": {"line": 159, "column": 2}, "end": {"line": 205, "column": 2}} + }, + "9": { + "name": "_calculateBalanceIncrease", + "line": 213, + "loc": {"start": {"line": 213, "column": 2}, "end": {"line": 236, "column": 2}} + }, + "10": { + "name": "getSupplyData", + "line": 241, + "loc": {"start": {"line": 241, "column": 2}, "end": {"line": 244, "column": 2}} + }, + "11": { + "name": "getTotalSupplyAndAvgRate", + "line": 249, + "loc": {"start": {"line": 249, "column": 2}, "end": {"line": 252, "column": 2}} + }, + "12": { + "name": "totalSupply", + "line": 257, + "loc": {"start": {"line": 257, "column": 2}, "end": {"line": 259, "column": 2}} + }, + "13": { + "name": "getTotalSupplyLastUpdated", + "line": 264, + "loc": {"start": {"line": 264, "column": 2}, "end": {"line": 266, "column": 2}} + }, + "14": { + "name": "principalBalanceOf", + "line": 273, + "loc": {"start": {"line": 273, "column": 2}, "end": {"line": 275, "column": 2}} + }, + "15": { + "name": "_calcTotalSupply", + "line": 283, + "loc": {"start": {"line": 283, "column": 2}, "end": {"line": 296, "column": 2}} + }, + "16": { + "name": "_mint", + "line": 304, + "loc": {"start": {"line": 304, "column": 3}, "end": {"line": 312, "column": 2}} + }, + "17": { + "name": "_burn", + "line": 320, + "loc": {"start": {"line": 320, "column": 2}, "end": {"line": 328, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 39, "column": 4}, "end": {"line": 39, "column": 30}}, + "2": {"start": {"line": 47, "column": 4}, "end": {"line": 47, "column": 25}}, + "3": {"start": {"line": 55, "column": 4}, "end": {"line": 55, "column": 28}}, + "4": {"start": {"line": 64, "column": 4}, "end": {"line": 64, "column": 27}}, + "5": {"start": {"line": 72, "column": 4}, "end": {"line": 72, "column": 53}}, + "6": {"start": {"line": 73, "column": 4}, "end": {"line": 73, "column": 44}}, + "7": {"start": {"line": 74, "column": 4}, "end": {"line": 74, "column": 2428}}, + "8": {"start": {"line": 75, "column": 6}, "end": {"line": 75, "column": 14}}, + "9": {"start": {"line": 77, "column": 4}, "end": {"line": 77, "column": 2482}}, + "10": {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 51}}, + "11": {"start": {"line": 104, "column": 4}, "end": {"line": 104, "column": 29}}, + "12": {"start": {"line": 107, "column": 4}, "end": {"line": 107, "column": 3360}}, + "13": {"start": {"line": 114, "column": 4}, "end": {"line": 114, "column": 38}}, + "14": {"start": {"line": 115, "column": 4}, "end": {"line": 115, "column": 45}}, + "15": {"start": {"line": 116, "column": 4}, "end": {"line": 116, "column": 67}}, + "16": {"start": {"line": 118, "column": 4}, "end": {"line": 118, "column": 39}}, + "17": {"start": {"line": 121, "column": 4}, "end": {"line": 121, "column": 3848}}, + "18": {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 79}}, + "19": {"start": {"line": 127, "column": 4}, "end": {"line": 127, "column": 40}}, + "20": {"start": {"line": 131, "column": 4}, "end": {"line": 131, "column": 70}}, + "21": {"start": {"line": 134, "column": 4}, "end": {"line": 134, "column": 4342}}, + "22": {"start": {"line": 139, "column": 4}, "end": {"line": 139, "column": 64}}, + "23": {"start": {"line": 142, "column": 4}, "end": {"line": 142, "column": 43}}, + "24": {"start": {"line": 144, "column": 4}, "end": {"line": 144, "column": 4640}}, + "25": {"start": {"line": 160, "column": 4}, "end": {"line": 160, "column": 5054}}, + "26": {"start": {"line": 167, "column": 4}, "end": {"line": 167, "column": 42}}, + "27": {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 5510}}, + "28": {"start": {"line": 174, "column": 6}, "end": {"line": 174, "column": 23}}, + "29": {"start": {"line": 175, "column": 6}, "end": {"line": 175, "column": 21}}, + "30": {"start": {"line": 177, "column": 7}, "end": {"line": 177, "column": 69}}, + "31": {"start": {"line": 178, "column": 6}, "end": {"line": 178, "column": 5715}}, + "32": {"start": {"line": 184, "column": 4}, "end": {"line": 184, "column": 5865}}, + "33": {"start": {"line": 185, "column": 6}, "end": {"line": 185, "column": 25}}, + "34": {"start": {"line": 186, "column": 6}, "end": {"line": 186, "column": 26}}, + "35": {"start": {"line": 190, "column": 6}, "end": {"line": 190, "column": 48}}, + "36": {"start": {"line": 193, "column": 4}, "end": {"line": 193, "column": 50}}, + "37": {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 6147}}, + "38": {"start": {"line": 196, "column": 6}, "end": {"line": 196, "column": 61}}, + "39": {"start": {"line": 198, "column": 6}, "end": {"line": 198, "column": 61}}, + "40": {"start": {"line": 202, "column": 4}, "end": {"line": 202, "column": 43}}, + "41": {"start": {"line": 204, "column": 4}, "end": {"line": 204, "column": 81}}, + "42": {"start": {"line": 222, "column": 4}, "end": {"line": 222, "column": 60}}, + "43": {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 7006}}, + "44": {"start": {"line": 225, "column": 6}, "end": {"line": 225, "column": 22}}, + "45": {"start": {"line": 229, "column": 4}, "end": {"line": 229, "column": 75}}, + "46": {"start": {"line": 231, "column": 4}, "end": {"line": 231, "column": 7228}}, + "47": {"start": {"line": 242, "column": 4}, "end": {"line": 242, "column": 36}}, + "48": {"start": {"line": 243, "column": 4}, "end": {"line": 243, "column": 91}}, + "49": {"start": {"line": 250, "column": 4}, "end": {"line": 250, "column": 36}}, + "50": {"start": {"line": 251, "column": 4}, "end": {"line": 251, "column": 47}}, + "51": {"start": {"line": 258, "column": 4}, "end": {"line": 258, "column": 43}}, + "52": {"start": {"line": 265, "column": 4}, "end": {"line": 265, "column": 32}}, + "53": {"start": {"line": 274, "column": 4}, "end": {"line": 274, "column": 32}}, + "54": {"start": {"line": 284, "column": 4}, "end": {"line": 284, "column": 49}}, + "55": {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 8975}}, + "56": {"start": {"line": 287, "column": 6}, "end": {"line": 287, "column": 14}}, + "57": {"start": {"line": 290, "column": 4}, "end": {"line": 290, "column": 9031}}, + "58": {"start": {"line": 295, "column": 4}, "end": {"line": 295, "column": 52}}, + "59": {"start": {"line": 306, "column": 4}, "end": {"line": 306, "column": 50}}, + "60": {"start": {"line": 307, "column": 4}, "end": {"line": 307, "column": 53}}, + "61": {"start": {"line": 309, "column": 4}, "end": {"line": 309, "column": 9637}}, + "62": {"start": {"line": 310, "column": 6}, "end": {"line": 310, "column": 83}}, + "63": {"start": {"line": 322, "column": 4}, "end": {"line": 322, "column": 50}}, + "64": {"start": {"line": 323, "column": 4}, "end": {"line": 323, "column": 91}}, + "65": {"start": {"line": 325, "column": 4}, "end": {"line": 325, "column": 10249}}, + "66": {"start": {"line": 326, "column": 6}, "end": {"line": 326, "column": 83}} + }, + "branchMap": { + "1": { + "line": 74, + "type": "if", + "locations": [ + {"start": {"line": 74, "column": 4}, "end": {"line": 74, "column": 4}}, + {"start": {"line": 74, "column": 4}, "end": {"line": 74, "column": 4}} + ] + }, + "2": { + "line": 126, + "type": "if", + "locations": [ + {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 4}}, + {"start": {"line": 126, "column": 4}, "end": {"line": 126, "column": 4}} + ] + }, + "3": { + "line": 173, + "type": "if", + "locations": [ + {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 4}}, + {"start": {"line": 173, "column": 4}, "end": {"line": 173, "column": 4}} + ] + }, + "4": { + "line": 184, + "type": "if", + "locations": [ + {"start": {"line": 184, "column": 4}, "end": {"line": 184, "column": 4}}, + {"start": {"line": 184, "column": 4}, "end": {"line": 184, "column": 4}} + ] + }, + "5": { + "line": 195, + "type": "if", + "locations": [ + {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 4}}, + {"start": {"line": 195, "column": 4}, "end": {"line": 195, "column": 4}} + ] + }, + "6": { + "line": 224, + "type": "if", + "locations": [ + {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 4}}, + {"start": {"line": 224, "column": 4}, "end": {"line": 224, "column": 4}} + ] + }, + "7": { + "line": 286, + "type": "if", + "locations": [ + {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 4}}, + {"start": {"line": 286, "column": 4}, "end": {"line": 286, "column": 4}} + ] + }, + "8": { + "line": 309, + "type": "if", + "locations": [ + {"start": {"line": 309, "column": 4}, "end": {"line": 309, "column": 4}}, + {"start": {"line": 309, "column": 4}, "end": {"line": 309, "column": 4}} + ] + }, + "9": { + "line": 325, + "type": "if", + "locations": [ + {"start": {"line": 325, "column": 4}, "end": {"line": 325, "column": 4}}, + {"start": {"line": 325, "column": 4}, "end": {"line": 325, "column": 4}} + ] + } + } + }, + "contracts/tokenization/VariableDebtToken.sol": { + "l": { + "34": 17, + "42": 460, + "44": 460, + "45": 323, + "48": 137, + "63": 26, + "65": 26, + "66": 26, + "79": 25, + "81": 25, + "82": 25, + "90": 343, + "98": 673, + "106": 331, + "116": 0 + }, + "path": "/src/contracts/tokenization/VariableDebtToken.sol", + "s": { + "1": 17, + "2": 460, + "3": 460, + "4": 323, + "5": 137, + "6": 26, + "7": 26, + "8": 26, + "9": 25, + "10": 25, + "11": 25, + "12": 343, + "13": 673, + "14": 331, + "15": 0 + }, + "b": {"1": [323, 137]}, + "f": {"1": 54, "2": 17, "3": 460, "4": 26, "5": 25, "6": 343, "7": 673, "8": 331, "9": 0}, + "fnMap": { + "1": { + "name": "constructor", + "line": 27, + "loc": {"start": {"line": 21, "column": 2}, "end": {"line": 27, "column": 85}} + }, + "2": { + "name": "getRevision", + "line": 33, + "loc": {"start": {"line": 33, "column": 2}, "end": {"line": 35, "column": 2}} + }, + "3": { + "name": "balanceOf", + "line": 41, + "loc": {"start": {"line": 41, "column": 2}, "end": {"line": 49, "column": 2}} + }, + "4": { + "name": "mint", + "line": 61, + "loc": {"start": {"line": 57, "column": 2}, "end": {"line": 67, "column": 2}} + }, + "5": { + "name": "burn", + "line": 78, + "loc": {"start": {"line": 74, "column": 2}, "end": {"line": 83, "column": 2}} + }, + "6": { + "name": "scaledBalanceOf", + "line": 89, + "loc": {"start": {"line": 89, "column": 2}, "end": {"line": 91, "column": 2}} + }, + "7": { + "name": "totalSupply", + "line": 97, + "loc": {"start": {"line": 97, "column": 2}, "end": {"line": 99, "column": 2}} + }, + "8": { + "name": "scaledTotalSupply", + "line": 105, + "loc": {"start": {"line": 105, "column": 2}, "end": {"line": 107, "column": 2}} + }, + "9": { + "name": "getScaledUserBalanceAndSupply", + "line": 115, + "loc": {"start": {"line": 115, "column": 2}, "end": {"line": 117, "column": 2}} + } + }, + "statementMap": { + "1": {"start": {"line": 34, "column": 4}, "end": {"line": 34, "column": 30}}, + "2": {"start": {"line": 42, "column": 4}, "end": {"line": 42, "column": 49}}, + "3": {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 1484}}, + "4": {"start": {"line": 45, "column": 6}, "end": {"line": 45, "column": 14}}, + "5": {"start": {"line": 48, "column": 4}, "end": {"line": 48, "column": 88}}, + "6": {"start": {"line": 63, "column": 4}, "end": {"line": 63, "column": 36}}, + "7": {"start": {"line": 65, "column": 4}, "end": {"line": 65, "column": 43}}, + "8": {"start": {"line": 66, "column": 4}, "end": {"line": 66, "column": 34}}, + "9": {"start": {"line": 79, "column": 4}, "end": {"line": 79, "column": 36}}, + "10": {"start": {"line": 81, "column": 4}, "end": {"line": 81, "column": 43}}, + "11": {"start": {"line": 82, "column": 4}, "end": {"line": 82, "column": 34}}, + "12": {"start": {"line": 90, "column": 4}, "end": {"line": 90, "column": 32}}, + "13": {"start": {"line": 98, "column": 4}, "end": {"line": 98, "column": 94}}, + "14": {"start": {"line": 106, "column": 4}, "end": {"line": 106, "column": 30}}, + "15": {"start": {"line": 116, "column": 4}, "end": {"line": 116, "column": 55}} + }, + "branchMap": { + "1": { + "line": 44, + "type": "if", + "locations": [ + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}}, + {"start": {"line": 44, "column": 4}, "end": {"line": 44, "column": 4}} + ] + } + } + } +} diff --git a/deployed-contracts.json b/deployed-contracts.json index df6ed994..7840c6ba 100644 --- a/deployed-contracts.json +++ b/deployed-contracts.json @@ -25,6 +25,10 @@ "coverage": { "address": "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" + }, + "kovan": { + "address": "0x20e080B395341B3b617E893c281c7E999C942276", + "deployer": "0x85e4A467343c0dc4aDAB74Af84448D9c45D8ae6F" } }, "LendingPoolAddressesProviderRegistry": { @@ -39,6 +43,10 @@ "coverage": { "address": "0x5A0773Ff307Bf7C71a832dBB5312237fD3437f9F", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" + }, + "kovan": { + "address": "0x00219a2958f758122106Bb8A801AFc1B70897663", + "deployer": "0x85e4A467343c0dc4aDAB74Af84448D9c45D8ae6F" } }, "FeeProvider": { @@ -65,10 +73,10 @@ "address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8" }, "localhost": { - "address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8" + "address": "0x65e0Cd5B8904A02f2e00BC6f58bf881998D54BDe" }, - "coverage": { - "address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8" + "kovan": { + "address": "0x50C9d3aD9399c1EEf6DDeadF8e57fF69994F552e" } }, "LendingPoolDataProvider": { @@ -81,10 +89,10 @@ "address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e" }, "localhost": { - "address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e" + "address": "0x5d12dDe3286D94E0d85F9D3B01B7099cfA0aBCf1" }, - "coverage": { - "address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e" + "kovan": { + "address": "0x6d1e69bB0578699dd955Eefbf23aAC65c0DA5cE7" } }, "PriceOracle": { @@ -127,6 +135,10 @@ "coverage": { "address": "0x7B6C3e5486D9e6959441ab554A889099eed76290", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" + }, + "kovan": { + "address": "0x18a107d4fa249Efefd4DAf9A76EEE3b6366701AA", + "deployer": "0x85e4A467343c0dc4aDAB74Af84448D9c45D8ae6F" } }, "LendingRateOracle": { @@ -141,6 +153,10 @@ "coverage": { "address": "0xD83D2773a7873ae2b5f8Fb92097e20a8C64F691E", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" + }, + "kovan": { + "address": "0xac6Eb7B1083D39eC695a3898C2f782E7c7C64973", + "deployer": "0x85e4A467343c0dc4aDAB74Af84448D9c45D8ae6F" } }, "DefaultReserveInterestRateStrategy": { @@ -185,7 +201,7 @@ }, "TokenDistributor": { "buidlerevm": { - "address": "0xDf73fC454FA018051D4a1509e63D11530A59DE10", + "address": "0x2cfcA5785261fbC88EFFDd46fCFc04c22525F9e4", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -194,7 +210,7 @@ }, "InitializableAdminUpgradeabilityProxy": { "buidlerevm": { - "address": "0x2cfcA5785261fbC88EFFDd46fCFc04c22525F9e4", + "address": "0xC6bA6049F86d528698B5924B8fC2FE7289D38578", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 84f367c5..b673703f 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -1,4 +1,4 @@ -version: "3.5" +version: '3.5' services: contracts-env: build: diff --git a/docker-compose.yml b/docker-compose.yml index f60866ac..61e4f178 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,3 +8,8 @@ services: command: npm run run-env volumes: - ./:/src + environment: + MNEMONIC: ${MNEMONIC} + ETHERSCAN_KEY: ${ETHERSCAN_KEY} + INFURA_KEY: ${INFURA_KEY} + ETHERSCAN_NETWORK: ${ETHERSCAN_NETWORK} diff --git a/helpers/configuration.ts b/helpers/configuration.ts new file mode 100644 index 00000000..1665d4a0 --- /dev/null +++ b/helpers/configuration.ts @@ -0,0 +1,82 @@ +import { + AavePools, + iMultiPoolsAssets, + IReserveParams, + PoolConfiguration, + iBasicDistributionParams, + ICommonConfiguration, + eEthereumNetwork, +} from './types'; +import {getParamPerPool} from './contracts-helpers'; +import {AaveConfig} from '../config/aave'; +import {UniswapConfig} from '../config/uniswap'; +import {CommonsConfig} from '../config/commons'; +import {ZERO_ADDRESS} from './constants'; +import {BRE} from './misc-utils'; +import {tEthereumAddress} from './types'; +import {getParamPerNetwork} from './contracts-helpers'; + +export enum ConfigNames { + Commons = 'Commons', + Aave = 'Aave', + Uniswap = 'Uniswap', +} + +export const loadPoolConfig = (configName: ConfigNames): PoolConfiguration => { + switch (configName) { + case ConfigNames.Aave: + return AaveConfig; + case ConfigNames.Uniswap: + return UniswapConfig; + case ConfigNames.Commons: + return CommonsConfig; + default: + throw new Error(`Unsupported pool configuration: ${Object.values(ConfigNames)}`); + } +}; + +// ---------------- +// PROTOCOL PARAMS PER POOL +// ---------------- + +export const getReservesConfigByPool = (pool: AavePools): iMultiPoolsAssets => + getParamPerPool>( + { + [AavePools.proto]: { + ...AaveConfig.ReservesConfig, + }, + [AavePools.secondary]: { + ...UniswapConfig.ReservesConfig, + }, + }, + pool + ); + +export const getFeeDistributionParamsCommon = ( + receiver: tEthereumAddress +): iBasicDistributionParams => { + const receivers = [receiver, ZERO_ADDRESS]; + const percentages = ['2000', '8000']; + return { + receivers, + percentages, + }; +}; + +export const getGenesisAaveAdmin = async (config: ICommonConfiguration) => { + const currentNetwork = BRE.network.name; + const targetAddress = getParamPerNetwork(config.AaveAdmin, currentNetwork); + if (targetAddress) { + return targetAddress; + } + const addressList = await Promise.all( + (await BRE.ethers.getSigners()).map((signer) => signer.getAddress()) + ); + const addressIndex = config.AaveAdminIndex; + return addressList[addressIndex]; +}; + +export const getATokenDomainSeparatorPerNetwork = ( + network: eEthereumNetwork, + config: ICommonConfiguration +): tEthereumAddress => getParamPerNetwork(config.ATokenDomainSeparator, network); diff --git a/helpers/constants.ts b/helpers/constants.ts index 457a7f1d..a962d925 100644 --- a/helpers/constants.ts +++ b/helpers/constants.ts @@ -1,17 +1,4 @@ -import { - AavePools, - eEthereumNetwork, - iAavePoolAssets, - iAssetAggregatorBase, - iAssetBase, - iBasicDistributionParams, - IMarketRates, - iMultiPoolsAssets, - IReserveParams, - tEthereumAddress, -} from './types'; import BigNumber from 'bignumber.js'; -import {getParamPerNetwork, getParamPerPool} from './contracts-helpers'; // ---------------- // MATH @@ -26,521 +13,17 @@ export const oneEther = new BigNumber(Math.pow(10, 18)); export const oneRay = new BigNumber(Math.pow(10, 27)); export const MAX_UINT_AMOUNT = '115792089237316195423570985008687907853269984665640564039457584007913129639935'; +export const ONE_YEAR = '31536000'; +export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; +export const ONE_ADDRESS = '0x0000000000000000000000000000000000000001'; // ---------------- // PROTOCOL GLOBAL PARAMS // ---------------- export const OPTIMAL_UTILIZATION_RATE = new BigNumber(0.8).times(RAY); export const EXCESS_UTILIZATION_RATE = new BigNumber(0.2).times(RAY); -export const ONE_YEAR = '31536000'; export const APPROVAL_AMOUNT_LENDING_POOL = '1000000000000000000000000000'; export const TOKEN_DISTRIBUTOR_PERCENTAGE_BASE = '10000'; export const MOCK_USD_PRICE_IN_WEI = '5848466240000000'; export const USD_ADDRESS = '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96'; -export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; -export const ONE_ADDRESS = '0x0000000000000000000000000000000000000001'; export const AAVE_REFERRAL = '0'; - -// ---------------- -// COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS -// ---------------- - -export const ALL_AAVE_RESERVES_SYMBOLS = [ - [ - 'ETH', - 'DAI', - 'LEND', - 'TUSD', - 'BAT', - 'USDC', - 'USDT', - 'SUSD', - 'ZRX', - 'MKR', - 'WBTC', - 'LINK', - 'KNC', - 'MANA', - 'REP', - 'SNX', - 'BUSD', - 'UNI_DAI_ETH', - 'UNI_USDC_ETH', - 'UNI_SETH_ETH', - 'UNI_LINK_ETH', - 'UNI_MKR_ETH', - 'UNI_LEND_ETH', - ], -]; - -export const MOCK_CHAINLINK_AGGREGATORS_PRICES: iAssetAggregatorBase = { - DAI: oneEther.multipliedBy('0.00369068412860').toFixed(), - TUSD: oneEther.multipliedBy('0.00364714136416').toFixed(), - USDC: oneEther.multipliedBy('0.00367714136416').toFixed(), - LEND: oneEther.multipliedBy('0.00003620948469').toFixed(), - BAT: oneEther.multipliedBy('0.00137893825230').toFixed(), - USDT: oneEther.multipliedBy('0.00369068412860').toFixed(), - SUSD: oneEther.multipliedBy('0.00364714136416').toFixed(), - MKR: oneEther.multipliedBy('2.508581').toFixed(), - REP: oneEther.multipliedBy('0.048235').toFixed(), - ZRX: oneEther.multipliedBy('0.001151').toFixed(), - WBTC: oneEther.multipliedBy('47.332685').toFixed(), - LINK: oneEther.multipliedBy('0.009955').toFixed(), - KNC: oneEther.multipliedBy('0.001072').toFixed(), - MANA: oneEther.multipliedBy('0.000158').toFixed(), - SNX: oneEther.multipliedBy('0.00442616').toFixed(), - BUSD: oneEther.multipliedBy('0.00736484').toFixed(), - WETH: oneEther.toFixed(), - USD: MOCK_USD_PRICE_IN_WEI, - UNI_DAI_ETH: oneEther.multipliedBy('2.1').toFixed(), - UNI_USDC_ETH: oneEther.multipliedBy('2.1').toFixed(), - UNI_SETH_ETH: oneEther.multipliedBy('2.1').toFixed(), - UNI_LEND_ETH: oneEther.multipliedBy('2.1').toFixed(), - UNI_LINK_ETH: oneEther.multipliedBy('2.1').toFixed(), - UNI_MKR_ETH: oneEther.multipliedBy('2.1').toFixed(), -}; - -export const ALL_ASSETS_INITIAL_PRICES: iAssetBase = { - ...MOCK_CHAINLINK_AGGREGATORS_PRICES, -}; - -export const LENDING_RATE_ORACLE_RATES_COMMON: iAavePoolAssets = { - WETH: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - DAI: { - borrowRate: oneRay.multipliedBy(0.039).toFixed(), - }, - TUSD: { - borrowRate: oneRay.multipliedBy(0.035).toFixed(), - }, - USDC: { - borrowRate: oneRay.multipliedBy(0.039).toFixed(), - }, - SUSD: { - borrowRate: oneRay.multipliedBy(0.035).toFixed(), - }, - USDT: { - borrowRate: oneRay.multipliedBy(0.035).toFixed(), - }, - BAT: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - LEND: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - LINK: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - KNC: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - REP: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - MKR: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - MANA: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - WBTC: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - ZRX: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - SNX: { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - BUSD: { - borrowRate: oneRay.multipliedBy(0.05).toFixed(), - }, -}; - -export const getReservesConfigByPool = (pool: AavePools): iMultiPoolsAssets => - getParamPerPool>( - { - [AavePools.proto]: { - DAI: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.05).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '7500', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - TUSD: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '7500', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - USDC: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '7500', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '6', - }, - USDT: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '6', - }, - SUSD: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - LEND: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - BAT: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - WETH: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '7500', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - LINK: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6500', - liquidationThreshold: '7000', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - WBTC: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '8', - }, - KNC: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - REP: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - MKR: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - MANA: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - ZRX: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - }, - SNX: { - baseVariableBorrowRate: new BigNumber(0.03).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.12).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - BUSD: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - }, - [AavePools.secondary]: { - WETH: { - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - DAI: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - USDC: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '6', - }, - USDT: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '-1', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: false, - reserveDecimals: '6', - }, - UNI_DAI_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6800', - liquidationThreshold: '7300', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - UNI_USDC_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6800', - liquidationThreshold: '7300', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - UNI_SETH_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '4800', - liquidationThreshold: '6600', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - UNI_LEND_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '5100', - liquidationThreshold: '6600', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - UNI_LINK_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '6300', - liquidationThreshold: '6800', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - UNI_MKR_ETH: { - baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(), - baseLTVAsCollateral: '4800', - liquidationThreshold: '6600', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - }, - }, - }, - pool - ); - -export const getFeeDistributionParamsCommon = ( - receiver: tEthereumAddress -): iBasicDistributionParams => { - const receivers = [receiver, ZERO_ADDRESS]; - const percentages = ['2000', '8000']; - return { - receivers, - percentages, - }; -}; - -export const getATokenDomainSeparatorPerNetwork = (network: eEthereumNetwork): tEthereumAddress => - getParamPerNetwork( - { - [eEthereumNetwork.coverage]: - '0x95b73a72c6ecf4ccbbba5178800023260bad8e75cdccdb8e4827a2977a37c820', - [eEthereumNetwork.buidlerevm]: - '0x76cbbf8aa4b11a7c207dd79ccf8c394f59475301598c9a083f8258b4fafcfa86', - [eEthereumNetwork.kovan]: '', - [eEthereumNetwork.ropsten]: '', - [eEthereumNetwork.main]: '', - }, - network - ); diff --git a/a.out b/helpers/contracts-getters.ts similarity index 100% rename from a.out rename to helpers/contracts-getters.ts diff --git a/helpers/contracts-helpers.ts b/helpers/contracts-helpers.ts index b86785bd..77730b04 100644 --- a/helpers/contracts-helpers.ts +++ b/helpers/contracts-helpers.ts @@ -1,5 +1,5 @@ import {Contract, Signer, utils, ethers} from 'ethers'; - +import {CommonsConfig} from '../config/commons'; import {getDb, BRE} from './misc-utils'; import { tEthereumAddress, @@ -9,9 +9,15 @@ import { AavePools, iParamsPerNetwork, iParamsPerPool, + TokenContractId, + iMultiPoolsAssets, + IReserveParams, + ICommonConfiguration, + PoolConfiguration, } from './types'; + import {LendingPoolAddressesProvider} from '../types/LendingPoolAddressesProvider'; -import {MintableErc20} from '../types/MintableErc20'; +import {MintableErc20 as MintableERC20} from '../types/MintableErc20'; import {LendingPoolAddressesProviderRegistry} from '../types/LendingPoolAddressesProviderRegistry'; import {LendingPoolConfigurator} from '../types/LendingPoolConfigurator'; import {readArtifact} from '@nomiclabs/buidler/plugins'; @@ -31,10 +37,20 @@ import BigNumber from 'bignumber.js'; import {Ierc20Detailed} from '../types/Ierc20Detailed'; import {StableDebtToken} from '../types/StableDebtToken'; import {VariableDebtToken} from '../types/VariableDebtToken'; -import { ZERO_ADDRESS } from './constants'; +import {MockContract} from 'ethereum-waffle'; +import {getReservesConfigByPool} from './configuration'; +import {verifyContract} from './etherscan-verification'; + +const { + ProtocolGlobalParams: {UsdAddress}, +} = CommonsConfig; + +export type MockTokenMap = {[symbol: string]: MintableERC20}; +import {ZERO_ADDRESS} from './constants'; import {MockSwapAdapter} from '../types/MockSwapAdapter'; import {signTypedData_v4, TypedData} from 'eth-sig-util'; import {fromRpcSig, ECDSASignature} from 'ethereumjs-util'; +import {SignerWithAddress} from '../test/helpers/make-suite'; export const registerContractInJsonDb = async (contractId: string, contractInstance: Contract) => { const currentNetwork = BRE.network.name; @@ -95,17 +111,38 @@ export const getContract = async ( address: string ): Promise => (await BRE.ethers.getContractAt(contractName, address)) as ContractType; -export const deployLendingPoolAddressesProvider = async () => - await deployContract(eContractid.LendingPoolAddressesProvider, []); +export const deployLendingPoolAddressesProvider = async (verify?: boolean) => { + const instance = await deployContract( + eContractid.LendingPoolAddressesProvider, + [] + ); + if (verify) { + await verifyContract(eContractid.LendingPoolAddressesProvider, instance.address, []); + } + return instance; +}; -export const deployLendingPoolAddressesProviderRegistry = async () => - await deployContract( +export const deployLendingPoolAddressesProviderRegistry = async (verify?: boolean) => { + const instance = await deployContract( eContractid.LendingPoolAddressesProviderRegistry, [] ); + if (verify) { + await verifyContract(eContractid.LendingPoolAddressesProviderRegistry, instance.address, []); + } + return instance; +}; -export const deployLendingPoolConfigurator = async () => - await deployContract(eContractid.LendingPoolConfigurator, []); +export const deployLendingPoolConfigurator = async (verify?: boolean) => { + const instance = await deployContract( + eContractid.LendingPoolConfigurator, + [] + ); + if (verify) { + await verifyContract(eContractid.LendingPoolConfigurator, instance.address, []); + } + return instance; +}; const deployLibrary = async (libraryId: eContractid) => { const factory = await BRE.ethers.getContractFactory(libraryId); @@ -161,151 +198,244 @@ export const linkLibrariesToArtifact = async (artifact: Artifact) => { return factory; }; -export const deployLendingPool = async () => { +export const deployLendingPool = async (verify?: boolean) => { const lendingPoolArtifact = await readArtifact( BRE.config.paths.artifacts, eContractid.LendingPool ); - const factory = await linkLibrariesToArtifact(lendingPoolArtifact); - const lendingPool = await factory.deploy(); - return (await lendingPool.deployed()) as LendingPool; + const instance = (await lendingPool.deployed()) as LendingPool; + if (verify) { + await verifyContract(eContractid.LendingPool, instance.address, []); + } + return instance; }; -export const deployPriceOracle = async () => - await deployContract(eContractid.PriceOracle, []); +export const deployPriceOracle = async (verify?: boolean) => { + const instance = await deployContract(eContractid.PriceOracle, []); + if (verify) { + await verifyContract(eContractid.PriceOracle, instance.address, []); + } + return instance; +}; -export const deployMockAggregator = async (price: tStringTokenSmallUnits) => - await deployContract(eContractid.MockAggregator, [price]); +export const deployLendingRateOracle = async (verify?: boolean) => { + const instance = await deployContract(eContractid.LendingRateOracle, []); + if (verify) { + await verifyContract(eContractid.LendingRateOracle, instance.address, []); + } + return instance; +}; -export const deployChainlinkProxyPriceProvider = async ([ - assetsAddresses, - sourcesAddresses, - fallbackOracleAddress, -]: [tEthereumAddress[], tEthereumAddress[], tEthereumAddress]) => - await deployContract(eContractid.ChainlinkProxyPriceProvider, [ - assetsAddresses, - sourcesAddresses, - fallbackOracleAddress, - ]); +export const deployMockAggregator = async (price: tStringTokenSmallUnits, verify?: boolean) => { + const args = [price]; + const instance = await deployContract(eContractid.MockAggregator, args); + if (verify) { + await verifyContract(eContractid.MockAggregator, instance.address, args); + } + return instance; +}; -export const deployLendingRateOracle = async () => - await deployContract(eContractid.LendingRateOracle, []); +export const deployChainlinkProxyPriceProvider = async ( + [assetsAddresses, sourcesAddresses, fallbackOracleAddress]: [ + tEthereumAddress[], + tEthereumAddress[], + tEthereumAddress + ], + verify?: boolean +) => { + const args = [assetsAddresses, sourcesAddresses, fallbackOracleAddress]; + const instance = await deployContract( + eContractid.ChainlinkProxyPriceProvider, + args + ); + if (verify) { + await verifyContract(eContractid.MockAggregator, instance.address, args); + } + return instance; +}; -export const deployLendingPoolCollateralManager = async () => { +export const getChainlingProxyPriceProvider = async (address?: tEthereumAddress) => + await getContract( + eContractid.ChainlinkProxyPriceProvider, + address || + (await getDb().get(`${eContractid.ChainlinkProxyPriceProvider}.${BRE.network.name}`).value()) + .address + ); + +export const deployLendingPoolCollateralManager = async (verify?: boolean) => { const collateralManagerArtifact = await readArtifact( BRE.config.paths.artifacts, eContractid.LendingPoolCollateralManager ); const factory = await linkLibrariesToArtifact(collateralManagerArtifact); + const args: string[] = []; + const collateralManager = await factory.deploy(args); + const instance = (await collateralManager.deployed()) as LendingPoolCollateralManager; - const collateralManager = await factory.deploy(); - return (await collateralManager.deployed()) as LendingPoolCollateralManager; + if (verify) { + await verifyContract(eContractid.LendingPoolCollateralManager, instance.address, args); + } + return instance; }; -export const deployInitializableAdminUpgradeabilityProxy = async () => - await deployContract( +export const deployInitializableAdminUpgradeabilityProxy = async (verify?: boolean) => { + const instance = await deployContract( eContractid.InitializableAdminUpgradeabilityProxy, [] ); + if (verify) { + await verifyContract(eContractid.InitializableAdminUpgradeabilityProxy, instance.address, []); + } + return instance; +}; -export const deployMockFlashLoanReceiver = async (addressesProvider: tEthereumAddress) => - await deployContract(eContractid.MockFlashLoanReceiver, [ - addressesProvider, - ]); +export const deployMockFlashLoanReceiver = async ( + addressesProvider: tEthereumAddress, + verify?: boolean +) => { + const args = [addressesProvider]; + const instance = await deployContract( + eContractid.MockFlashLoanReceiver, + args + ); + if (verify) { + await verifyContract(eContractid.MockFlashLoanReceiver, instance.address, args); + } + return instance; +}; +export const deployWalletBalancerProvider = async ( + addressesProvider: tEthereumAddress, + verify?: boolean +) => { + const args = [addressesProvider]; + const instance = await deployContract( + eContractid.WalletBalanceProvider, + args + ); + if (verify) { + await verifyContract(eContractid.WalletBalanceProvider, instance.address, args); + } + return instance; +}; export const deployMockSwapAdapter = async (addressesProvider: tEthereumAddress) => await deployContract(eContractid.MockSwapAdapter, [addressesProvider]); -export const deployWalletBalancerProvider = async (addressesProvider: tEthereumAddress) => - await deployContract(eContractid.WalletBalanceProvider, [ - addressesProvider, - ]); - -export const deployAaveProtocolTestHelpers = async (addressesProvider: tEthereumAddress) => - await deployContract(eContractid.AaveProtocolTestHelpers, [ - addressesProvider, - ]); - -export const deployMintableErc20 = async ([name, symbol, decimals]: [string, string, number]) => - await deployContract(eContractid.MintableERC20, [name, symbol, decimals]); - -export const deployDefaultReserveInterestRateStrategy = async ([ - addressesProvider, - baseVariableBorrowRate, - variableSlope1, - variableSlope2, - stableSlope1, - stableSlope2, -]: [tEthereumAddress, string, string, string, string, string]) => - await deployContract( - eContractid.DefaultReserveInterestRateStrategy, - [ - addressesProvider, - baseVariableBorrowRate, - variableSlope1, - variableSlope2, - stableSlope1, - stableSlope2, - ] +export const deployAaveProtocolTestHelpers = async ( + addressesProvider: tEthereumAddress, + verify?: boolean +) => { + const args = [addressesProvider]; + const instance = await deployContract( + eContractid.AaveProtocolTestHelpers, + args ); -export const deployStableDebtToken = async ([ - name, - symbol, - underlyingAsset, - poolAddress, - incentivesController, -]: [string, string, tEthereumAddress, tEthereumAddress, tEthereumAddress]) => { - const token = await deployContract(eContractid.StableDebtToken, [ - poolAddress, - underlyingAsset, - name, - symbol, - incentivesController, - ]); - - return token; + if (verify) { + await verifyContract(eContractid.AaveProtocolTestHelpers, instance.address, args); + } + return instance; }; -export const deployVariableDebtToken = async ([ - name, - symbol, - underlyingAsset, - poolAddress, - incentivesController, -]: [string, string, tEthereumAddress, tEthereumAddress, tEthereumAddress]) => { - const token = await deployContract(eContractid.VariableDebtToken, [ - poolAddress, - underlyingAsset, - name, - symbol, - incentivesController, - ]); +export const deployMintableERC20 = async ([name, symbol, decimals]: [string, string, number]) => + await deployContract(eContractid.MintableERC20, [name, symbol, decimals]); - return token; +export const deployDefaultReserveInterestRateStrategy = async ( + [ + addressesProvider, + baseVariableBorrowRate, + variableSlope1, + variableSlope2, + stableSlope1, + stableSlope2, + ]: [tEthereumAddress, string, string, string, string, string], + verify: boolean +) => { + const id = eContractid.DefaultReserveInterestRateStrategy; + const args = [ + addressesProvider, + baseVariableBorrowRate, + variableSlope1, + variableSlope2, + stableSlope1, + stableSlope2, + ]; + const instance = await deployContract(id, args); + + if (verify) { + await verifyContract(id, instance.address, args); + } + return instance; }; -export const deployGenericAToken = async ([ - poolAddress, - underlyingAssetAddress, - reserveTreasuryAddress, - name, - symbol, - incentivesController, -]: [tEthereumAddress, tEthereumAddress, tEthereumAddress, string, string, tEthereumAddress]) => { - const token = await deployContract(eContractid.AToken, [ +export const deployStableDebtToken = async ( + [name, symbol, underlyingAsset, poolAddress, incentivesController]: [ + string, + string, + tEthereumAddress, + tEthereumAddress, + tEthereumAddress + ], + verify: boolean +) => { + const id = eContractid.StableDebtToken; + const args = [poolAddress, underlyingAsset, name, symbol, incentivesController]; + const instance = await deployContract(id, args); + + if (verify) { + await verifyContract(id, instance.address, args); + } + return instance; +}; + +export const deployVariableDebtToken = async ( + [name, symbol, underlyingAsset, poolAddress, incentivesController]: [ + string, + string, + tEthereumAddress, + tEthereumAddress, + tEthereumAddress + ], + verify: boolean +) => { + const id = eContractid.VariableDebtToken; + const args = [poolAddress, underlyingAsset, name, symbol, incentivesController]; + const instance = await deployContract(id, args); + + if (verify) { + await verifyContract(id, instance.address, args); + } + return instance; +}; + +export const deployGenericAToken = async ( + [poolAddress, underlyingAssetAddress, name, symbol, incentivesController]: [ + tEthereumAddress, + tEthereumAddress, + string, + string, + tEthereumAddress + ], + verify: boolean +) => { + const id = eContractid.AToken; + const args = [ poolAddress, underlyingAssetAddress, - reserveTreasuryAddress, + ZERO_ADDRESS, name, symbol, incentivesController, - ]); + ]; + const instance = await deployContract(id, args); - return token; + if (verify) { + await verifyContract(id, instance.address, args); + } + return instance; }; export const getLendingPoolAddressesProvider = async (address?: tEthereumAddress) => { @@ -317,15 +447,6 @@ export const getLendingPoolAddressesProvider = async (address?: tEthereumAddress ); }; -export const getLendingPoolAddressesProviderRegistry = async (address?: tEthereumAddress) => { - return await getContract( - eContractid.LendingPoolAddressesProviderRegistry, - address || - (await getDb().get(`${eContractid.LendingPoolAddressesProviderRegistry}.${BRE.network.name}`).value()) - .address - ); -}; - export const getLendingPoolConfiguratorProxy = async (address?: tEthereumAddress) => { return await getContract( eContractid.LendingPoolConfigurator, @@ -368,20 +489,21 @@ export const getAToken = async (address?: tEthereumAddress) => { export const getStableDebtToken = async (address?: tEthereumAddress) => { return await getContract( eContractid.StableDebtToken, - address || (await getDb().get(`${eContractid.StableDebtToken}.${BRE.network.name}`).value()).address + address || + (await getDb().get(`${eContractid.StableDebtToken}.${BRE.network.name}`).value()).address ); }; export const getVariableDebtToken = async (address?: tEthereumAddress) => { return await getContract( eContractid.VariableDebtToken, - address || (await getDb().get(`${eContractid.VariableDebtToken}.${BRE.network.name}`).value()).address + address || + (await getDb().get(`${eContractid.VariableDebtToken}.${BRE.network.name}`).value()).address ); }; - export const getMintableErc20 = async (address: tEthereumAddress) => { - return await getContract( + return await getContract( eContractid.MintableERC20, address || (await getDb().get(`${eContractid.MintableERC20}.${BRE.network.name}`).value()).address @@ -511,6 +633,255 @@ export const convertToCurrencyUnits = async (tokenAddress: string, amount: strin return amountInCurrencyUnits.toFixed(); }; +export const deployAllMockTokens = async (verify?: boolean) => { + const tokens: {[symbol: string]: MockContract | MintableERC20} = {}; + + const protoConfigData = getReservesConfigByPool(AavePools.proto); + const secondaryConfigData = getReservesConfigByPool(AavePools.secondary); + + for (const tokenSymbol of Object.keys(TokenContractId)) { + let decimals = 18; + + let configData = (protoConfigData)[tokenSymbol]; + + if (!configData) { + configData = (secondaryConfigData)[tokenSymbol]; + } + + if (!configData) { + decimals = 18; + } + + tokens[tokenSymbol] = await deployMintableERC20([ + tokenSymbol, + tokenSymbol, + configData ? configData.reserveDecimals : 18, + ]); + await registerContractInJsonDb(tokenSymbol.toUpperCase(), tokens[tokenSymbol]); + + if (verify) { + await verifyContract(eContractid.MintableERC20, tokens[tokenSymbol].address, []); + } + } + return tokens; +}; + +export const deployMockTokens = async (config: PoolConfiguration, verify?: boolean) => { + const tokens: {[symbol: string]: MockContract | MintableERC20} = {}; + const defaultDecimals = 18; + + const configData = config.ReservesConfig; + + for (const tokenSymbol of Object.keys(config.ReserveSymbols)) { + tokens[tokenSymbol] = await deployMintableERC20([ + tokenSymbol, + tokenSymbol, + Number(configData[tokenSymbol as keyof iMultiPoolsAssets].reserveDecimals) || + defaultDecimals, + ]); + await registerContractInJsonDb(tokenSymbol.toUpperCase(), tokens[tokenSymbol]); + + if (verify) { + await verifyContract(eContractid.MintableERC20, tokens[tokenSymbol].address, []); + } + } + return tokens; +}; + +export const getMockedTokens = async (config: PoolConfiguration) => { + const tokenSymbols = config.ReserveSymbols; + const db = getDb(); + const tokens: MockTokenMap = await tokenSymbols.reduce>( + async (acc, tokenSymbol) => { + const accumulator = await acc; + const address = db.get(`${tokenSymbol.toUpperCase()}.${BRE.network.name}`).value().address; + accumulator[tokenSymbol] = await getContract( + eContractid.MintableERC20, + address + ); + return Promise.resolve(acc); + }, + Promise.resolve({}) + ); + return tokens; +}; + +export const getAllMockedTokens = async () => { + const db = getDb(); + const tokens: MockTokenMap = await Object.keys(TokenContractId).reduce>( + async (acc, tokenSymbol) => { + const accumulator = await acc; + const address = db.get(`${tokenSymbol.toUpperCase()}.${BRE.network.name}`).value().address; + accumulator[tokenSymbol] = await getContract( + eContractid.MintableERC20, + address + ); + return Promise.resolve(acc); + }, + Promise.resolve({}) + ); + return tokens; +}; + +export const getPairsTokenAggregator = ( + allAssetsAddresses: { + [tokenSymbol: string]: tEthereumAddress; + }, + aggregatorsAddresses: {[tokenSymbol: string]: tEthereumAddress} +): [string[], string[]] => { + const {ETH, USD, WETH, ...assetsAddressesWithoutEth} = allAssetsAddresses; + + const pairs = Object.entries(assetsAddressesWithoutEth).map(([tokenSymbol, tokenAddress]) => { + if (tokenSymbol !== 'WETH' && tokenSymbol !== 'ETH') { + const aggregatorAddressIndex = Object.keys(aggregatorsAddresses).findIndex( + (value) => value === tokenSymbol + ); + const [, aggregatorAddress] = (Object.entries(aggregatorsAddresses) as [ + string, + tEthereumAddress + ][])[aggregatorAddressIndex]; + return [tokenAddress, aggregatorAddress]; + } + }) as [string, string][]; + + const mappedPairs = pairs.map(([asset]) => asset); + const mappedAggregators = pairs.map(([, source]) => source); + + return [mappedPairs, mappedAggregators]; +}; + +export const initReserves = async ( + reservesParams: iMultiPoolsAssets, + tokenAddresses: {[symbol: string]: tEthereumAddress}, + lendingPoolAddressesProvider: LendingPoolAddressesProvider, + lendingPool: LendingPool, + helpers: AaveProtocolTestHelpers, + lendingPoolConfigurator: LendingPoolConfigurator, + aavePool: AavePools, + incentivesController: tEthereumAddress, + verify: boolean +) => { + if (aavePool !== AavePools.proto && aavePool !== AavePools.secondary) { + console.log(`Invalid Aave pool ${aavePool}`); + process.exit(1); + } + + for (let [assetSymbol, {reserveDecimals}] of Object.entries(reservesParams) as [ + string, + IReserveParams + ][]) { + const assetAddressIndex = Object.keys(tokenAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ + assetAddressIndex + ]; + + const {isActive: reserveInitialized} = await helpers.getReserveConfigurationData(tokenAddress); + + if (reserveInitialized) { + console.log(`Reserve ${assetSymbol} is already active, skipping configuration`); + continue; + } + + try { + const reserveParamIndex = Object.keys(reservesParams).findIndex( + (value) => value === assetSymbol + ); + const [ + , + { + baseVariableBorrowRate, + variableRateSlope1, + variableRateSlope2, + stableRateSlope1, + stableRateSlope2, + }, + ] = (Object.entries(reservesParams) as [string, IReserveParams][])[reserveParamIndex]; + console.log('deploy def reserve'); + const rateStrategyContract = await deployDefaultReserveInterestRateStrategy( + [ + lendingPoolAddressesProvider.address, + baseVariableBorrowRate, + variableRateSlope1, + variableRateSlope2, + stableRateSlope1, + stableRateSlope2, + ], + verify + ); + + console.log('deploy stable deb totken ', assetSymbol); + const stableDebtToken = await deployStableDebtToken( + [ + `Aave stable debt bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + `stableDebt${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + tokenAddress, + lendingPool.address, + incentivesController, + ], + verify + ); + + console.log('deploy var deb totken ', assetSymbol); + const variableDebtToken = await deployVariableDebtToken( + [ + `Aave variable debt bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + `variableDebt${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + tokenAddress, + lendingPool.address, + incentivesController, + ], + verify + ); + + console.log('deploy a token ', assetSymbol); + const aToken = await deployGenericAToken( + [ + lendingPool.address, + tokenAddress, + `Aave interest bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + `a${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, + incentivesController, + ], + verify + ); + + if (process.env.POOL === AavePools.secondary) { + if (assetSymbol.search('UNI') === -1) { + assetSymbol = `Uni${assetSymbol}`; + } else { + assetSymbol = assetSymbol.replace(/_/g, '').replace('UNI', 'Uni'); + } + } + + console.log('init reserve currency ', assetSymbol); + await lendingPoolConfigurator.initReserve( + tokenAddress, + aToken.address, + stableDebtToken.address, + variableDebtToken.address, + reserveDecimals, + rateStrategyContract.address + ); + } catch (e) { + console.log(`Reserve initialization for ${assetSymbol} failed with error ${e}. Skipped.`); + } + } +}; + +export const getLendingPoolAddressesProviderRegistry = async (address?: tEthereumAddress) => { + return await getContract( + eContractid.LendingPoolAddressesProviderRegistry, + address || + ( + await getDb() + .get(`${eContractid.LendingPoolAddressesProviderRegistry}.${BRE.network.name}`) + .value() + ).address + ); +}; + export const buildPermitParams = ( chainId: number, token: tEthereumAddress, diff --git a/helpers/etherscan-verification.ts b/helpers/etherscan-verification.ts new file mode 100644 index 00000000..65b6f440 --- /dev/null +++ b/helpers/etherscan-verification.ts @@ -0,0 +1,104 @@ +import {exit} from 'process'; +import fs from 'fs'; +import {file} from 'tmp-promise'; +import {BRE} from './misc-utils'; + +export const SUPPORTED_ETHERSCAN_NETWORKS = ['main', 'ropsten', 'kovan']; + +export const getEtherscanPath = async (contractName: string) => { + const compilerInput = await BRE.run('compile:get-compiler-input'); + const paths = Object.keys(compilerInput.sources); + const path = paths.find((p) => p.includes(contractName)); + if (!path) { + throw new Error( + `Contract path not found for ${contractName}. Check if smart contract file is equal to contractName input.` + ); + } + + return `${path}:${contractName}`; +}; + +function delay(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +export const verifyContract = async ( + contractName: string, + address: string, + constructorArguments: (string | string[])[], + libraries?: string +) => { + const currentNetwork = BRE.network.name; + + if (!process.env.ETHERSCAN_KEY) { + throw Error('Missing process.env.ETHERSCAN_KEY.'); + } + if (!SUPPORTED_ETHERSCAN_NETWORKS.includes(currentNetwork)) { + throw Error( + `Current network ${currentNetwork} not supported. Please change to one of the next networks: ${SUPPORTED_ETHERSCAN_NETWORKS.toString()}` + ); + } + const etherscanPath = await getEtherscanPath(contractName); + + try { + console.log( + '[ETHERSCAN][WARNING] Delaying Etherscan verification due their API can not find newly deployed contracts' + ); + const msDelay = 3000; + const times = 60; + // Write a temporal file to host complex parameters for buidler-etherscan https://github.com/nomiclabs/buidler/tree/development/packages/buidler-etherscan#complex-arguments + const {fd, path, cleanup} = await file({ + prefix: 'verify-params-', + postfix: '.js', + }); + fs.writeSync(fd, `module.exports = ${JSON.stringify([...constructorArguments])};`); + + const params = { + contractName: etherscanPath, + address: address, + libraries, + constructorArgs: path, + }; + await runTaskWithRetry('verify', params, times, msDelay, cleanup); + } catch (error) {} +}; + +export const runTaskWithRetry = async ( + task: string, + params: any, + times: number, + msDelay: number, + cleanup: () => void +) => { + let counter = times; + await delay(msDelay); + + try { + if (times) { + await BRE.run(task, params); + cleanup(); + } else { + cleanup(); + console.error('[ERROR] Errors after all the retries, check the logs for more information.'); + } + } catch (error) { + counter--; + console.info(`[INFO] Retrying attemps: ${counter}.`); + console.error('[ERROR]', error.message); + await runTaskWithRetry(task, params, counter, msDelay, cleanup); + } +}; + +export const checkVerification = () => { + const currentNetwork = BRE.network.name; + if (!process.env.ETHERSCAN_KEY) { + console.error('Missing process.env.ETHERSCAN_KEY.'); + exit(3); + } + if (!SUPPORTED_ETHERSCAN_NETWORKS.includes(currentNetwork)) { + console.error( + `Current network ${currentNetwork} not supported. Please change to one of the next networks: ${SUPPORTED_ETHERSCAN_NETWORKS.toString()}` + ); + exit(5); + } +}; diff --git a/helpers/init-helpers.ts b/helpers/init-helpers.ts new file mode 100644 index 00000000..6e049c51 --- /dev/null +++ b/helpers/init-helpers.ts @@ -0,0 +1,81 @@ +import {iMultiPoolsAssets, IReserveParams, tEthereumAddress} from './types'; +import {LendingPool} from '../types/LendingPool'; +import {LendingPoolConfigurator} from '../types/LendingPoolConfigurator'; +import {AaveProtocolTestHelpers} from '../types/AaveProtocolTestHelpers'; + +export const enableReservesToBorrow = async ( + reservesParams: iMultiPoolsAssets, + tokenAddresses: {[symbol: string]: tEthereumAddress}, + helpers: AaveProtocolTestHelpers, + lendingPoolConfigurator: LendingPoolConfigurator +) => { + for (const [assetSymbol, {borrowingEnabled, stableBorrowRateEnabled}] of Object.entries( + reservesParams + ) as [string, IReserveParams][]) { + if (!borrowingEnabled) continue; + try { + const assetAddressIndex = Object.keys(tokenAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ + assetAddressIndex + ]; + const {borrowingEnabled: borrowingAlreadyEnabled} = await helpers.getReserveConfigurationData( + tokenAddress + ); + + if (borrowingAlreadyEnabled) { + console.log(`Reserve ${assetSymbol} is already enabled for borrowing, skipping`); + continue; + } + + await lendingPoolConfigurator.enableBorrowingOnReserve(tokenAddress, stableBorrowRateEnabled); + } catch (e) { + console.log( + `Enabling reserve for borrowings for ${assetSymbol} failed with error ${e}. Skipped.` + ); + } + } +}; + +export const enableReservesAsCollateral = async ( + reservesParams: iMultiPoolsAssets, + tokenAddresses: {[symbol: string]: tEthereumAddress}, + helpers: AaveProtocolTestHelpers, + lendingPoolConfigurator: LendingPoolConfigurator +) => { + for (const [ + assetSymbol, + {baseLTVAsCollateral, liquidationBonus, liquidationThreshold}, + ] of Object.entries(reservesParams) as [string, IReserveParams][]) { + if (baseLTVAsCollateral === '-1') continue; + + const assetAddressIndex = Object.keys(tokenAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ + assetAddressIndex + ]; + const {usageAsCollateralEnabled: alreadyEnabled} = await helpers.getReserveConfigurationData( + tokenAddress + ); + + if (alreadyEnabled) { + console.log(`Reserve ${assetSymbol} is already enabled as collateral, skipping`); + continue; + } + + try { + await lendingPoolConfigurator.enableReserveAsCollateral( + tokenAddress, + baseLTVAsCollateral, + liquidationThreshold, + liquidationBonus + ); + } catch (e) { + console.log( + `Enabling reserve as collateral for ${assetSymbol} failed with error ${e}. Skipped.` + ); + } + } +}; diff --git a/helpers/misc-utils.ts b/helpers/misc-utils.ts index 63bf3ace..67ac7fe2 100644 --- a/helpers/misc-utils.ts +++ b/helpers/misc-utils.ts @@ -3,7 +3,7 @@ import BN = require('bn.js'); import low from 'lowdb'; import FileSync from 'lowdb/adapters/FileSync'; import {WAD} from './constants'; -import {Wallet} from 'ethers'; +import {Wallet, ContractTransaction} from 'ethers'; import {BuidlerRuntimeEnvironment} from '@nomiclabs/buidler/types'; export const toWad = (value: string | number) => new BigNumber(value).times(WAD).toFixed(); @@ -40,3 +40,13 @@ export const increaseTime = async (secondsToIncrease: number) => { await BRE.ethers.provider.send('evm_increaseTime', [secondsToIncrease]); await BRE.ethers.provider.send('evm_mine', []); }; + +export const waitForTx = async (tx: ContractTransaction) => await tx.wait(); + +export const filterMapBy = (raw: {[key: string]: any}, fn: (key: string) => boolean) => + Object.keys(raw) + .filter(fn) + .reduce<{[key: string]: any}>((obj, key) => { + obj[key] = raw[key]; + return obj; + }, {}); diff --git a/helpers/mock-helpers.ts b/helpers/mock-helpers.ts new file mode 100644 index 00000000..5989216d --- /dev/null +++ b/helpers/mock-helpers.ts @@ -0,0 +1,22 @@ +import {tEthereumAddress} from './types'; +import {MockAggregator} from '../types/MockAggregator'; +import {MockTokenMap} from './contracts-helpers'; + +export const getAllTokenAddresses = (mockTokens: MockTokenMap) => + Object.entries(mockTokens).reduce( + (accum: {[tokenSymbol: string]: tEthereumAddress}, [tokenSymbol, tokenContract]) => ({ + ...accum, + [tokenSymbol]: tokenContract.address, + }), + {} + ); +export const getAllAggregatorsAddresses = (mockAggregators: { + [tokenSymbol: string]: MockAggregator; +}) => + Object.entries(mockAggregators).reduce( + (accum: {[tokenSymbol: string]: tEthereumAddress}, [tokenSymbol, aggregator]) => ({ + ...accum, + [tokenSymbol]: aggregator.address, + }), + {} + ); diff --git a/helpers/oracles-helpers.ts b/helpers/oracles-helpers.ts new file mode 100644 index 00000000..b3439df9 --- /dev/null +++ b/helpers/oracles-helpers.ts @@ -0,0 +1,99 @@ +import { + tEthereumAddress, + iMultiPoolsAssets, + IMarketRates, + iAssetBase, + iAssetAggregatorBase, + eContractid, + SymbolMap, +} from './types'; + +import {LendingRateOracle} from '../types/LendingRateOracle'; +import {PriceOracle} from '../types/PriceOracle'; +import {MockAggregator} from '../types/MockAggregator'; +import {deployMockAggregator, getContract, MockTokenMap} from './contracts-helpers'; +import {waitForTx} from './misc-utils'; +import {verifyContract} from './etherscan-verification'; + +export const setInitialMarketRatesInRatesOracle = async ( + marketRates: iMultiPoolsAssets, + assetsAddresses: {[x: string]: tEthereumAddress}, + lendingRateOracleInstance: LendingRateOracle +) => { + for (const [assetSymbol, {borrowRate}] of Object.entries(marketRates) as [ + string, + IMarketRates + ][]) { + const assetAddressIndex = Object.keys(assetsAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, assetAddress] = (Object.entries(assetsAddresses) as [string, string][])[ + assetAddressIndex + ]; + await lendingRateOracleInstance.setMarketBorrowRate(assetAddress, borrowRate); + console.log('added Market Borrow Rate for: ', assetSymbol); + } +}; + +export const setInitialAssetPricesInOracle = async ( + prices: iAssetBase, + assetsAddresses: iAssetBase, + priceOracleInstance: PriceOracle +) => { + for (const [assetSymbol, price] of Object.entries(prices) as [string, string][]) { + const assetAddressIndex = Object.keys(assetsAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, assetAddress] = (Object.entries(assetsAddresses) as [string, string][])[ + assetAddressIndex + ]; + await waitForTx(await priceOracleInstance.setAssetPrice(assetAddress, price)); + } +}; + +export const setAssetPricesInOracle = async ( + prices: SymbolMap, + assetsAddresses: SymbolMap, + priceOracleInstance: PriceOracle +) => { + for (const [assetSymbol, price] of Object.entries(prices) as [string, string][]) { + const assetAddressIndex = Object.keys(assetsAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, assetAddress] = (Object.entries(assetsAddresses) as [string, string][])[ + assetAddressIndex + ]; + await waitForTx(await priceOracleInstance.setAssetPrice(assetAddress, price)); + } +}; + +export const deployMockAggregators = async (initialPrices: SymbolMap, verify?: boolean) => { + const aggregators: {[tokenSymbol: string]: MockAggregator} = {}; + for (const tokenContractName of Object.keys(initialPrices)) { + if (tokenContractName !== 'ETH') { + const priceIndex = Object.keys(initialPrices).findIndex( + (value) => value === tokenContractName + ); + const [, price] = (Object.entries(initialPrices) as [string, string][])[priceIndex]; + aggregators[tokenContractName] = await deployMockAggregator(price, verify); + } + } + return aggregators; +}; + +export const deployAllMockAggregators = async ( + initialPrices: iAssetAggregatorBase, + verify?: boolean +) => { + const aggregators: {[tokenSymbol: string]: MockAggregator} = {}; + for (const tokenContractName of Object.keys(initialPrices)) { + if (tokenContractName !== 'ETH') { + const priceIndex = Object.keys(initialPrices).findIndex( + (value) => value === tokenContractName + ); + const [, price] = (Object.entries(initialPrices) as [string, string][])[priceIndex]; + aggregators[tokenContractName] = await deployMockAggregator(price, verify); + } + } + return aggregators; +}; diff --git a/helpers/types.ts b/helpers/types.ts index a8d963f0..0b5e4a33 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -1,4 +1,9 @@ import BigNumber from 'bignumber.js'; +import {MockTokenMap} from './contracts-helpers'; + +export interface SymbolMap { + [symbol: string]: T; +} export enum eEthereumNetwork { buidlerevm = 'buidlerevm', @@ -8,6 +13,12 @@ export enum eEthereumNetwork { coverage = 'coverage', } +export enum EthereumNetworkNames { + kovan = 'kovan', + ropsten = 'ropsten', + main = 'main', +} + export enum AavePools { proto = 'proto', secondary = 'secondary', @@ -43,6 +54,8 @@ export enum eContractid { IERC20Detailed = 'IERC20Detailed', StableDebtToken = 'StableDebtToken', VariableDebtToken = 'VariableDebtToken', + FeeProvider = 'FeeProvider', + TokenDistributor = 'TokenDistributor', } export enum ProtocolErrors { @@ -77,6 +90,7 @@ export enum ProtocolErrors { REQUESTED_AMOUNT_TOO_SMALL = '25', // 'The requested amount is too small for a FlashLoan.' INCONSISTENT_PROTOCOL_ACTUAL_BALANCE = '26', // 'The actual balance of the protocol is inconsistent' CALLER_NOT_LENDING_POOL_CONFIGURATOR = '27', // 'The actual balance of the protocol is inconsistent' + INVALID_FLASH_LOAN_EXECUTOR_RETURN = '60', // The flash loan received returned 0 (EOA) // require error messages - aToken CALLER_MUST_BE_LENDING_POOL = '28', // 'The caller of this function must be a lending pool' @@ -119,6 +133,9 @@ export type tBigNumberTokenBigUnits = BigNumber; export type tStringTokenSmallUnits = string; // 1 wei, or 1 basic unit of USDC, or 1 basic unit of DAI export type tBigNumberTokenSmallUnits = BigNumber; +export interface iAssetCommon { + [key: string]: T; +} export interface iAssetBase { WETH: T; DAI: T; @@ -154,7 +171,6 @@ export type iAssetsWithoutUSD = Omit, 'USD'>; export type iAavePoolAssets = Pick< iAssetsWithoutUSD, - | 'WETH' | 'DAI' | 'TUSD' | 'USDC' @@ -193,7 +209,7 @@ export type iAaveSecondPoolAssets = Pick< | 'UNI_LINK_ETH' >; -export type iMultiPoolsAssets = iAavePoolAssets | iAaveSecondPoolAssets; +export type iMultiPoolsAssets = iAssetCommon | iAavePoolAssets | iAaveSecondPoolAssets; export type iAavePoolTokens = Omit, 'ETH'>; @@ -271,3 +287,75 @@ export enum RateMode { Stable = '1', Variable = '2', } + +export interface ObjectString { + [key: string]: string; +} + +export enum EthereumNetwork { + kovan = 'kovan', + ropsten = 'ropsten', + development = 'development', + main = 'main', + coverage = 'soliditycoverage', +} + +export interface IProtocolGlobalConfig { + OptimalUtilizationRate: BigNumber; + ExcessUtilizationRate: BigNumber; + ApprovalAmountLendingPoolCore: string; + TokenDistributorPercentageBase: string; + MockUsdPriceInWei: string; + EthereumAddress: tEthereumAddress; + UsdAddress: tEthereumAddress; + NilAddress: tEthereumAddress; + OneAddress: tEthereumAddress; + AaveReferral: string; +} + +export interface IMocksConfig { + ChainlinkAggregatorPrices: iAssetBase; + AllAssetsInitialPrices: iAssetBase; +} + +export interface ILendingRateOracleRatesCommon { + [token: string]: ILendingRate; +} + +export interface ILendingRate { + borrowRate: string; +} + +export interface ICommonConfiguration { + ConfigName: string; + ProviderId: number; + ReserveSymbols: string[]; + ProtocolGlobalParams: IProtocolGlobalConfig; + Mocks: IMocksConfig; + ProviderRegistry: iParamsPerNetwork; + LendingRateOracleRatesCommon: iMultiPoolsAssets; + LendingRateOracle: iParamsPerNetwork; + TokenDistributor: iParamsPerNetwork; + ChainlinkProxyPriceProvider: iParamsPerNetwork; + FallbackOracle: iParamsPerNetwork; + ChainlinkAggregator: iParamsPerNetwork; + AaveAdmin: iParamsPerNetwork; + AaveAdminIndex: number; + ReserveAssets: iParamsPerNetwork>; + ReservesConfig: iMultiPoolsAssets; + ATokenDomainSeparator: iParamsPerNetwork; +} + +export interface IAaveConfiguration extends ICommonConfiguration { + ReservesConfig: iAavePoolAssets; +} + +export interface IUniswapConfiguration extends ICommonConfiguration { + ReservesConfig: iAaveSecondPoolAssets; +} + +export interface ITokenAddress { + [token: string]: tEthereumAddress; +} + +export type PoolConfiguration = ICommonConfiguration | IAaveConfiguration | IUniswapConfiguration; diff --git a/package-lock.json b/package-lock.json index 23687190..e0d0567e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -736,9 +736,9 @@ } }, "@nomiclabs/buidler": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@nomiclabs/buidler/-/buidler-1.4.4.tgz", - "integrity": "sha512-XciYZnaVOwXupwqTS5AqR/G0pWG2BBw61Na8m8Dm63n2KH0A+077n7xUw3PHpmMP32vw1Ua/U29o2phHNXrIAQ==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@nomiclabs/buidler/-/buidler-1.4.7.tgz", + "integrity": "sha512-TyJKwKyKwu82uYPneqLf5HKFr96QX7cHDT7O7Ro93zmk1b84+EH9tn3zNIO/+96DMGISp8cCRwZhct89OwblRA==", "dev": true, "requires": { "@nomiclabs/ethereumjs-vm": "^4.1.1", @@ -755,6 +755,7 @@ "deepmerge": "^2.1.0", "download": "^7.1.0", "enquirer": "^2.3.0", + "env-paths": "^2.2.0", "eth-sig-util": "^2.5.2", "ethereum-cryptography": "^0.1.2", "ethereumjs-abi": "^0.6.8", @@ -834,14 +835,143 @@ "dev": true }, "@nomiclabs/buidler-etherscan": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@nomiclabs/buidler-etherscan/-/buidler-etherscan-1.3.3.tgz", - "integrity": "sha512-Pmo890t8ZvO9/9Q+9uxQl7SLai6Sqp8m5CdUc4MWO/YIIsv6dt1+68VaUDOhkF5+xwUDgp89Cdu0fJp4PODsxw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/buidler-etherscan/-/buidler-etherscan-2.1.0.tgz", + "integrity": "sha512-Rh1PGCtIVNU9zDSnLn6WlJDMBM9LXzkwNnzRFnTrMdA+Aa9nMVX7qwbAXG9pyIIsuqNH6MRfk7CDvi8aMoojng==", "dev": true, "requires": { + "@ethersproject/abi": "^5.0.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^5.0.2", "ethereumjs-abi": "^0.6.8", - "request": "^2.88.0", - "request-promise": "^4.2.4" + "node-fetch": "^2.6.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.5.tgz", + "integrity": "sha512-FNx6UMm0LnmCMFzN3urohFwZpjbUHPvc/O60h4qkF4yiJxLJ/G7QOSPjkHQ/q/QibagR4S7OKQawRy0NcvWa9w==", + "dev": true, + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/address": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.4.tgz", + "integrity": "sha512-CIjAeG6zNehbpJTi0sgwUvaH2ZICiAV9XkCBaFy5tjuEVFpQNeqd6f+B7RowcNO7Eut+QbhcQ5CVLkmP5zhL9A==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/rlp": "^5.0.3", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.7.tgz", + "integrity": "sha512-wwKgDJ+KA7IpgJwc8Fc0AjKIRuDskKA2cque29/+SgII9/1K/38JpqVNPKIovkLwTC2DDofIyzHcxeaKpMFouQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bytes": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.4.tgz", + "integrity": "sha512-9R6A6l9JN8x1U4s1dJCR+9h3MZTT3xQofr/Xx8wbDvj6NnY4CbBB0o8ZgHXvR74yV90pY2EzCekpkMBJnRzkSw==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.0.5" + } + }, + "@ethersproject/constants": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.4.tgz", + "integrity": "sha512-Df32lcXDHPgZRPgp1dgmByNbNe4Ki1QoXR+wU61on5nggQGTqWR1Bb7pp9VtI5Go9kyE/JflFc4Te6o9MvYt8A==", + "dev": true, + "requires": { + "@ethersproject/bignumber": "^5.0.7" + } + }, + "@ethersproject/hash": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.4.tgz", + "integrity": "sha512-VCs/bFBU8AQFhHcT1cQH6x7a4zjulR6fJmAOcPxUgrN7bxOQ7QkpBKF+YCDJhFtkLdaljIsr/r831TuWU4Ysfg==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/keccak256": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.3.tgz", + "integrity": "sha512-VhW3mgZMBZlETV6AyOmjNeNG+Pg68igiKkPpat8/FZl0CKnfgQ+KZQZ/ee1vT+X0IUM8/djqnei6btmtbA27Ug==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.4", + "js-sha3": "0.5.7" + } + }, + "@ethersproject/logger": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.5.tgz", + "integrity": "sha512-gJj72WGzQhUtCk6kfvI8elTaPOQyMvrMghp/nbz0ivTo39fZ7IjypFh/ySDeUSdBNplAwhzWKKejQhdpyefg/w==", + "dev": true + }, + "@ethersproject/properties": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.3.tgz", + "integrity": "sha512-wLCSrbywkQgTO6tIF9ZdKsH9AIxPEqAJF/z5xcPkz1DK4mMAZgAXRNw1MrKYhyb+7CqNHbj3vxenNKFavGY/IA==", + "dev": true, + "requires": { + "@ethersproject/logger": "^5.0.5" + } + }, + "@ethersproject/rlp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.3.tgz", + "integrity": "sha512-Hz4yyA/ilGafASAqtTlLWkA/YqwhQmhbDAq2LSIp1AJNx+wtbKWFAKSckpeZ+WG/xZmT+fw5OFKK7a5IZ4DR5g==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5" + } + }, + "@ethersproject/strings": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.4.tgz", + "integrity": "sha512-azXFHaNkDXzefhr4LVVzzDMFwj3kH9EOKlATu51HjxabQafuUyVLPFgmxRFmCynnAi0Bmmp7nr+qK1pVDgRDLQ==", + "dev": true, + "requires": { + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/logger": "^5.0.5" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true + } } }, "@nomiclabs/buidler-waffle": { @@ -1074,78 +1204,52 @@ } } }, - "@sentry/apm": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/apm/-/apm-5.21.1.tgz", - "integrity": "sha512-mxMOCpeXULbQCC/f9SwPqW+g12mk3nWRNjeAUm5dyiKHY13agtQBSSYs4ROEH190YxmwTZr3vxhlR2jNSdSZcg==", - "dev": true, - "requires": { - "@sentry/browser": "5.21.1", - "@sentry/hub": "5.21.1", - "@sentry/minimal": "5.21.1", - "@sentry/types": "5.21.1", - "@sentry/utils": "5.21.1", - "tslib": "^1.9.3" - } - }, - "@sentry/browser": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.21.1.tgz", - "integrity": "sha512-sUxsW545klZxJE4iBAYQ8SuVS85HTOGNmIIIZWFUogB5oW3O0L+nJluXEqf/pHU82LnjDIzqsWCYQ0cRUaeYow==", - "dev": true, - "requires": { - "@sentry/core": "5.21.1", - "@sentry/types": "5.21.1", - "@sentry/utils": "5.21.1", - "tslib": "^1.9.3" - } - }, "@sentry/core": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.21.1.tgz", - "integrity": "sha512-Luulwx3GLUiY0gmHOhU+4eSga28Ce8DwoBcRq9GkGuhPu9r80057d5urxrDLp/leIZBXVvpY7tvmSN/rMtvF9w==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.24.2.tgz", + "integrity": "sha512-nuAwCGU1l9hgMinl5P/8nIQGRXDP2FI9cJnq5h1qiP/XIOvJkJz2yzBR6nTyqr4vBth0tvxQJbIpDNGd7vHJLg==", "dev": true, "requires": { - "@sentry/hub": "5.21.1", - "@sentry/minimal": "5.21.1", - "@sentry/types": "5.21.1", - "@sentry/utils": "5.21.1", + "@sentry/hub": "5.24.2", + "@sentry/minimal": "5.24.2", + "@sentry/types": "5.24.2", + "@sentry/utils": "5.24.2", "tslib": "^1.9.3" } }, "@sentry/hub": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.21.1.tgz", - "integrity": "sha512-x5i9Ggi5ZYMhBYL5kyTu2fUJ6owjKH2tgJL3UExoZdRyZkbLAFZb+DtfSnteWgQ6wriGfgPD3r/hAIEdaomk2A==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.24.2.tgz", + "integrity": "sha512-xmO1Ivvpb5Qr9WgekinuZZlpl9Iw7iPETUe84HQOhUrXf+2gKO+LaUYMMsYSVDwXQEmR6/tTMyOtS6iavldC6w==", "dev": true, "requires": { - "@sentry/types": "5.21.1", - "@sentry/utils": "5.21.1", + "@sentry/types": "5.24.2", + "@sentry/utils": "5.24.2", "tslib": "^1.9.3" } }, "@sentry/minimal": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.21.1.tgz", - "integrity": "sha512-OBVPASZ+mcXMKajvJon9RjEZ+ny3+VGhOI66acoP1hmYxKvji1OC2bYEuP1r4qtHxWVLAdV7qFj3EQ9ckErZmQ==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.24.2.tgz", + "integrity": "sha512-biFpux5bI3R8xiD/Zzvrk1kRE6bqPtfWXmZYAHRtaUMCAibprTKSY9Ta8QYHynOAEoJ5Akedy6HUsEkK5DoZfA==", "dev": true, "requires": { - "@sentry/hub": "5.21.1", - "@sentry/types": "5.21.1", + "@sentry/hub": "5.24.2", + "@sentry/types": "5.24.2", "tslib": "^1.9.3" } }, "@sentry/node": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.21.1.tgz", - "integrity": "sha512-+QLqGz6+/gtShv0F16nI2+AuVEDZG2k9L25BVCNoysYzH1J1/QIKHsl7YF2trDMlWM4T7cbu5Fh8AhK6an+5/g==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.24.2.tgz", + "integrity": "sha512-ddfU2tLTvhnY+NqzLIA/gxMt/uxq7R204Nb2J5qqE0WAgbh0dtylNAzfKZTizLdbZfRnpeISmd+CBILh3tavog==", "dev": true, "requires": { - "@sentry/apm": "5.21.1", - "@sentry/core": "5.21.1", - "@sentry/hub": "5.21.1", - "@sentry/types": "5.21.1", - "@sentry/utils": "5.21.1", + "@sentry/core": "5.24.2", + "@sentry/hub": "5.24.2", + "@sentry/tracing": "5.24.2", + "@sentry/types": "5.24.2", + "@sentry/utils": "5.24.2", "cookie": "^0.4.1", "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", @@ -1160,19 +1264,32 @@ } } }, + "@sentry/tracing": { + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.24.2.tgz", + "integrity": "sha512-1uDgvGGVF8lb3hRXbhNnns+8DBUKjhRKOFR5Z3RExjrDFYTDbHmoNtV73Q12Ra+Iht9HTZnIBOqYD3oSZIbJ0w==", + "dev": true, + "requires": { + "@sentry/hub": "5.24.2", + "@sentry/minimal": "5.24.2", + "@sentry/types": "5.24.2", + "@sentry/utils": "5.24.2", + "tslib": "^1.9.3" + } + }, "@sentry/types": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.21.1.tgz", - "integrity": "sha512-hFN4aDduMpjj6vZSIIp+9kSr8MglcKO/UmbuUXN6hKLewhxt+Zj2wjXN7ulSs5OK5mjXP9QLA5YJvVQsl2//qw==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.24.2.tgz", + "integrity": "sha512-HcOK00R0tQG5vzrIrqQ0jC28+z76jWSgQCzXiessJ5SH/9uc6NzdO7sR7K8vqMP2+nweCHckFohC8G0T1DLzuQ==", "dev": true }, "@sentry/utils": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.21.1.tgz", - "integrity": "sha512-p5vPuc7+GfOmW8CXxWd0samS77Q00YrN8q5TC/ztF8nBhEF18GiMeWAdQnlSwt3iWal3q3gSSrbF4c9guIugng==", + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.24.2.tgz", + "integrity": "sha512-oPGde4tNEDHKk0Cg9q2p0qX649jLDUOwzJXHKpd0X65w3A6eJByDevMr8CSzKV9sesjrUpxqAv6f9WWlz185tA==", "dev": true, "requires": { - "@sentry/types": "5.21.1", + "@sentry/types": "5.24.2", "tslib": "^1.9.3" } }, @@ -2358,8 +2475,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base-x": { "version": "3.0.8", @@ -2575,7 +2691,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2853,6 +2968,16 @@ "url-to-options": "^1.0.1" } }, + "cbor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.1.0.tgz", + "integrity": "sha512-qzEc7kUShdMbWTaUH7X+aHW8owvBU3FS0dfYR1lGYpoZr0mGJhhojLlZJH653x/DfeMZ56h315FRNBUIG1R7qg==", + "dev": true, + "requires": { + "bignumber.js": "^9.0.0", + "nofilter": "^1.0.4" + } + }, "chai": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", @@ -3079,8 +3204,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -3785,6 +3909,12 @@ "ansi-colors": "^4.1.1" } }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "dev": true + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -4030,6 +4160,23 @@ "setimmediate": "1.0.4", "uuid": "2.0.1", "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + } } }, "hash.js": { @@ -4169,12 +4316,6 @@ "miller-rabin": "^4.0.0" }, "dependencies": { - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, "buffer-xor": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz", @@ -4183,20 +4324,6 @@ "requires": { "safe-buffer": "^5.1.1" } - }, - "ethereumjs-util": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz", - "integrity": "sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - } } } }, @@ -5103,8 +5230,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.1.3", @@ -5921,19 +6047,403 @@ "websocket": "1.0.29" }, "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.2.tgz", + "integrity": "sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw==" + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + } + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "requires": { + "any-observable": "^0.3.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "optional": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "optional": true, "requires": { "defer-to-connect": "^1.0.1" } @@ -5942,8 +6452,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", - "dev": true, - "optional": true, "requires": { "bignumber.js": "*" } @@ -5952,16 +6460,29 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, "requires": { "@types/node": "*" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" + }, "@types/node": { "version": "14.0.27", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", - "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", - "dev": true + "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/pbkdf2": { "version": "3.1.0", @@ -5981,12 +6502,18 @@ "@types/node": "*" } }, + "@types/web3": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.2.2.tgz", + "integrity": "sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A==", + "requires": { + "web3": "*" + } + }, "@web3-js/scrypt-shim": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "dev": true, - "optional": true, "requires": { "scryptsy": "^2.1.0", "semver": "^6.3.0" @@ -5995,16 +6522,12 @@ "scryptsy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", - "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==", - "dev": true, - "optional": true + "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "optional": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -6012,8 +6535,6 @@ "version": "1.0.30", "resolved": "https://registry.npmjs.org/@web3-js/websocket/-/websocket-1.0.30.tgz", "integrity": "sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA==", - "dev": true, - "optional": true, "requires": { "debug": "^2.2.0", "es5-ext": "^0.10.50", @@ -6026,8 +6547,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -6035,12 +6554,178 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, "abstract-leveldown": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz", @@ -6054,13 +6739,21 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "optional": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, + "acorn": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" + }, "aes-js": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", @@ -6068,11 +6761,26 @@ "dev": true, "optional": true }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + } + } + }, "ajv": { "version": "6.12.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6080,6 +6788,16 @@ "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, "ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -6089,6 +6807,21 @@ "ansi-wrap": "^0.1.0" } }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, "ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -6101,14 +6834,12 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "ansi-wrap": { "version": "0.1.0", @@ -6116,18 +6847,20 @@ "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", "dev": true }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==" + }, "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true, - "optional": true + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -6137,7 +6870,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -6153,17 +6885,36 @@ "buffer-equal": "^1.0.0" } }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-filter": { "version": "1.1.2", @@ -6177,8 +6928,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-map": { "version": "2.0.2", @@ -6192,8 +6942,7 @@ "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-each": { "version": "1.0.1", @@ -6204,9 +6953,17 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true, - "optional": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } }, "array-initial": { "version": "1.1.0", @@ -6271,14 +7028,21 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -6287,31 +7051,51 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "assert-match": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/assert-match/-/assert-match-1.1.1.tgz", + "integrity": "sha512-c0QY2kpYVrH/jis6cCq9Mnt4/bIdGALDh1N8HY9ZARZedsMs5LSbgywxkjd5A1uNVLN0L8evANxBPxKiabVoZw==", + "requires": { + "assert": "^1.4.1", + "babel-runtime": "^6.23.0", + "es-to-primitive": "^1.1.1", + "lodash.merge": "^4.6.0" + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, "async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, "requires": { "lodash": "^4.17.11" } @@ -6331,8 +7115,7 @@ "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "async-eventemitter": { "version": "0.2.4", @@ -6346,8 +7129,7 @@ "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "async-settle": { "version": "1.0.0", @@ -6361,26 +7143,22 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" }, "babel-code-frame": { "version": "6.26.0", @@ -7012,7 +7790,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -7122,14 +7899,12 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -7144,7 +7919,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -7153,7 +7927,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7162,7 +7935,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7171,7 +7943,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -7192,14 +7963,12 @@ "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" }, @@ -7207,29 +7976,29 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" } } }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, "bignumber.js": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", - "dev": true, - "optional": true + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, "requires": { "file-uri-to-path": "1.0.0" } @@ -7251,7 +8020,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -7260,8 +8028,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "optional": true, "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -7270,16 +8036,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7293,9 +8055,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -7303,8 +8063,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, "requires": { "safe-buffer": "~5.1.0" }, @@ -7312,9 +8070,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } } @@ -7329,22 +8085,17 @@ "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "optional": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "optional": true, "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -7362,8 +8113,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -7371,9 +8120,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -7381,7 +8128,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7391,7 +8137,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -7409,7 +8154,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7419,14 +8163,26 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserfs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/browserfs/-/browserfs-1.4.3.tgz", + "integrity": "sha512-tz8HClVrzTJshcyIu8frE15cjqjcBIu15Bezxsvl/i+6f59iNCN3kznlWjz0FEb3DlnDx3gW5szxeT6D1x0s0w==", + "requires": { + "async": "^2.1.4", + "pako": "^1.0.4" + } }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -7440,8 +8196,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "optional": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -7452,8 +8206,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "optional": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -7465,8 +8217,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" @@ -7476,8 +8226,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "optional": true, "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -7493,12 +8241,18 @@ "bn.js": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", - "dev": true, - "optional": true + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" } } }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -7533,7 +8287,6 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -7543,8 +8296,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "optional": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -7553,16 +8304,12 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true, - "optional": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "optional": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-equal": { "version": "1.0.0", @@ -7573,35 +8320,32 @@ "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true, - "optional": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true, - "optional": true + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "optional": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "bytewise": { "version": "1.1.0", @@ -7622,11 +8366,74 @@ "typewise-core": "^1.2" } }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -7643,8 +8450,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "optional": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -7659,8 +8464,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "optional": true, "requires": { "pump": "^3.0.0" } @@ -7668,9 +8471,7 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "optional": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, @@ -7704,6 +8505,37 @@ } } }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", @@ -7719,14 +8551,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -7735,6 +8565,11 @@ "supports-color": "^2.0.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, "checkpoint-store": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", @@ -7748,7 +8583,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -7767,15 +8601,25 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "optional": true + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -7785,7 +8629,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -7797,13 +8640,46 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + } + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -7831,8 +8707,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "optional": true, "requires": { "mimic-response": "^1.0.0" } @@ -7895,8 +8769,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-map": { "version": "1.0.0", @@ -7913,12 +8786,24 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", @@ -7929,35 +8814,39 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -7968,14 +8857,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7989,26 +8876,37 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "optional": true, "requires": { "safe-buffer": "5.1.2" }, @@ -8016,24 +8914,19 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "optional": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" }, @@ -8041,37 +8934,52 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "optional": true + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true, - "optional": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true, - "optional": true + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "copy-props": { "version": "2.0.4", @@ -8086,8 +8994,7 @@ "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, "core-js-pure": { "version": "3.6.5", @@ -8098,26 +9005,63 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "optional": true, "requires": { "object-assign": "^4", "vary": "^1" } }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "dependencies": { + "parse-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", + "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } + } + }, + "coveralls": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", + "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", + "requires": { + "js-yaml": "^3.13.1", + "lcov-parse": "^1.0.0", + "log-driver": "^1.2.7", + "minimist": "^1.2.5", + "request": "^2.88.2" + } + }, "create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -8127,7 +9071,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -8140,7 +9083,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -8150,6 +9092,14 @@ "sha.js": "^2.4.8" } }, + "cross-env": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz", + "integrity": "sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==", + "requires": { + "cross-spawn": "^7.0.0" + } + }, "cross-fetch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", @@ -8160,12 +9110,30 @@ "whatwg-fetch": "2.0.4" } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "optional": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -8180,11 +9148,15 @@ "randomfill": "^1.0.3" } }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, "requires": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -8194,16 +9166,19 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -8211,21 +9186,17 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dev": true, - "optional": true, "requires": { "decompress-tar": "^4.0.0", "decompress-tarbz2": "^4.0.0", @@ -8240,9 +9211,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "optional": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -8250,8 +9219,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, "requires": { "mimic-response": "^1.0.0" } @@ -8260,8 +9227,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "optional": true, "requires": { "file-type": "^5.2.0", "is-stream": "^1.1.0", @@ -8272,8 +9237,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "optional": true, "requires": { "decompress-tar": "^4.1.0", "file-type": "^6.1.0", @@ -8285,9 +9248,7 @@ "file-type": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true, - "optional": true + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" } } }, @@ -8295,8 +9256,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "optional": true, "requires": { "decompress-tar": "^4.1.1", "file-type": "^5.2.0", @@ -8307,8 +9266,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "optional": true, "requires": { "file-type": "^3.8.0", "get-stream": "^2.2.0", @@ -8319,16 +9276,12 @@ "file-type": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true, - "optional": true + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" }, "get-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "optional": true, "requires": { "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" @@ -8337,12 +9290,15 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "optional": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", @@ -8365,6 +9321,11 @@ } } }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, "default-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", @@ -8382,6 +9343,21 @@ } } }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "requires": { + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + } + } + }, "default-resolution": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", @@ -8391,9 +9367,7 @@ "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "optional": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "deferred-leveldown": { "version": "1.2.2", @@ -8419,7 +9393,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" }, @@ -8427,8 +9400,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" } } }, @@ -8436,7 +9408,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -8446,7 +9417,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8455,7 +9425,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8464,7 +9433,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -8482,22 +9450,17 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "optional": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "optional": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -8506,15 +9469,12 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true, - "optional": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "detect-indent": { "version": "4.0.0", @@ -8525,23 +9485,38 @@ "repeating": "^2.0.0" } }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, "dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "dotignore": { "version": "0.1.2", @@ -8556,7 +9531,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "dev": true, "requires": { "browserify-aes": "^1.0.6", "create-hash": "^1.1.2", @@ -8566,15 +9540,12 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, - "optional": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -8585,14 +9556,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8606,14 +9575,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -8634,7 +9601,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -8643,9 +9609,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, - "optional": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { "version": "1.3.521", @@ -8653,11 +9617,15 @@ "integrity": "sha512-7/Cf5jUuAfLRY8SjfRES/6+9BDvmHAB2YQotCAaXK0IEacpjoSlyosPoC4s7lfb7vIOBubXvsssu8+8qaRGjcg==", "dev": true }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=" + }, "elliptic": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -8668,12 +9636,20 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.13", @@ -8723,16 +9699,67 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, "requires": { "prr": "~1.0.1" } @@ -8741,7 +9768,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -8750,7 +9776,6 @@ "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -8768,8 +9793,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" } } }, @@ -8777,7 +9801,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -8788,18 +9811,21 @@ "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, "requires": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.3", "next-tick": "~1.0.0" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.35", @@ -8810,7 +9836,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, "requires": { "d": "^1.0.1", "ext": "^1.1.2" @@ -8831,28 +9856,470 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, - "optional": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", + "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==" + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" + } + } + }, + "eslint-plugin-import": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz", + "integrity": "sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ==", + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "eslint-plugin-node": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.0.0.tgz", + "integrity": "sha512-chUs/NVID+sknFiJzxoN9lM7uKSOEta8GC8365hw1nDfwIPIjjpRSwwPvQanWv8dt/pDe9EV4anmVSwdiSndNg==", + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==" + }, + "eslint-plugin-standard": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", + "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==" + }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "optional": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eth-block-tracker": { "version": "3.0.1", @@ -8906,8 +10373,6 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "optional": true, "requires": { "idna-uts46-hx": "^2.3.1", "js-sha3": "^0.5.7" @@ -8916,9 +10381,7 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true, - "optional": true + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" } } }, @@ -9100,8 +10563,6 @@ "version": "0.1.29", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -9383,8 +10844,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", - "dev": true, - "optional": true, "requires": { "js-sha3": "^0.8.0" } @@ -9490,14 +10949,12 @@ "ethereumjs-common": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz", - "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==", - "dev": true + "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==" }, "ethereumjs-tx": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", - "dev": true, "requires": { "ethereumjs-common": "^1.5.0", "ethereumjs-util": "^6.0.0" @@ -9507,7 +10964,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", - "dev": true, "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", @@ -9522,7 +10978,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "dev": true, "requires": { "bindings": "^1.5.0", "inherits": "^2.0.4", @@ -9534,7 +10989,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "dev": true, "requires": { "bindings": "^1.5.0", "bip66": "^1.1.5", @@ -9589,12 +11043,76 @@ "uuid": "^3.3.2" } }, + "ethers": { + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.43.tgz", + "integrity": "sha512-VjQRVgPrlU12jSMvypdE1yEqYQccdVbH8bbiz67dLF7raHlRV4+zW70GlxHcZYqgsnz0XYWrn6C06gqTQRb5tw==", + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.5.2", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -9603,9 +11121,7 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, @@ -9613,7 +11129,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, "requires": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -9622,31 +11137,63 @@ "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true, - "optional": true + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + } + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -9661,7 +11208,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -9670,7 +11216,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -9679,7 +11224,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9687,8 +11231,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -9696,7 +11239,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } @@ -9705,8 +11247,6 @@ "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "optional": true, "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -9744,8 +11284,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -9753,16 +11291,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -9770,7 +11304,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, "requires": { "type": "^2.0.0" }, @@ -9778,22 +11311,19 @@ "type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==", - "dev": true + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -9803,18 +11333,36 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -9830,7 +11378,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -9839,7 +11386,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9848,7 +11394,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9857,7 +11402,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9866,7 +11410,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9878,8 +11421,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fake-merkle-patricia-tree": { "version": "1.0.1", @@ -9905,21 +11447,22 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "optional": true, "requires": { "pend": "~1.2.0" } @@ -9945,24 +11488,46 @@ } } }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "requires": { + "flat-cache": "^2.0.1" + } + }, "file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true, - "optional": true + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -9974,7 +11539,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9985,8 +11549,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "optional": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -10001,8 +11563,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -10010,9 +11570,83 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -10030,7 +11664,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, "requires": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -10057,6 +11690,46 @@ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + } + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + }, "flow-stoplight": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz", @@ -10067,7 +11740,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -10076,14 +11748,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10097,14 +11767,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -10123,8 +11791,7 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "1.0.0", @@ -10135,17 +11802,24 @@ "for-in": "^1.0.1" } }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -10155,15 +11829,12 @@ "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "optional": true + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -10171,23 +11842,65 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "optional": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fromentries": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz", + "integrity": "sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==" }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "optional": true + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -10198,8 +11911,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.6.0" } @@ -10214,17 +11925,60 @@ "through2": "^2.0.3" } }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, "optional": true, "requires": { "bindings": "^1.5.0", @@ -10234,14 +11988,22 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "generic-pool": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.4.tgz", + "integrity": "sha1-+XGN7agvoSXtXEPjQcmiFadm2aM=" + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" }, "get-caller-file": { "version": "1.0.3", @@ -10249,12 +12011,20 @@ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "optional": true, "requires": { "pump": "^3.0.0" } @@ -10262,14 +12032,12 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -10278,7 +12046,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10292,7 +12059,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -10302,7 +12068,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -10384,7 +12149,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, "requires": { "min-document": "^2.19.0", "process": "~0.5.1" @@ -10394,7 +12158,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -10405,7 +12168,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -10433,8 +12195,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "optional": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -10452,8 +12212,12 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" }, "gulp": { "version": "4.0.2", @@ -10507,14 +12271,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -10524,7 +12286,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -10533,30 +12294,29 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "has-symbol-support-x": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "optional": true + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "optional": true, "requires": { "has-symbol-support-x": "^1.4.1" } @@ -10565,7 +12325,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -10576,7 +12335,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -10586,7 +12344,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10597,7 +12354,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -10608,12 +12364,27 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + } + } + }, "hdkey": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-1.1.2.tgz", @@ -10645,6 +12416,11 @@ } } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, "heap": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", @@ -10655,7 +12431,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -10676,7 +12451,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -10684,22 +12458,22 @@ "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true, - "optional": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "optional": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -10711,36 +12485,161 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, "http-https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "dev": true, - "optional": true + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "humanize": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz", + "integrity": "sha1-GZT/rs3+nEQe0r2sdFK3u0yeQaQ=" + }, + "husky": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.0.10.tgz", + "integrity": "sha512-Ptm4k2DqOwxeK/kzu5RaJmNRoGvESrgDXObFcZ8aJZcyXyMBHhM2FqZj6zYKdetadmP3wCwxEHCBuB9xGlRp8A==", + "requires": { + "chalk": "^3.0.0", + "ci-info": "^2.0.0", + "cosmiconfig": "^6.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -10749,8 +12648,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "optional": true, "requires": { "punycode": "2.1.0" }, @@ -10758,17 +12655,24 @@ "punycode": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true, - "optional": true + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" } } }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "immediate": { "version": "3.3.0", @@ -10776,11 +12680,96 @@ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", "dev": true }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10789,14 +12778,111 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "interpret": { "version": "1.4.0", @@ -10822,9 +12908,7 @@ "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "optional": true + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, "is-absolute": { "version": "1.0.0", @@ -10840,7 +12924,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10849,7 +12932,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10865,14 +12947,12 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, "requires": { "binary-extensions": "^1.0.0" } @@ -10880,20 +12960,17 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10902,7 +12979,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10912,14 +12988,12 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -10929,22 +13003,19 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.1.0", @@ -10962,7 +13033,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -10970,14 +13040,12 @@ "is-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -10985,15 +13053,12 @@ "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true, - "optional": true + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" }, "is-negated-glob": { "version": "1.0.0", @@ -11005,7 +13070,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -11014,45 +13078,61 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, "is-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true, - "optional": true + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "requires": { + "symbol-observable": "^1.1.0" + } }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, "requires": { "has-symbols": "^1.0.1" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -11065,21 +13145,22 @@ "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "optional": true + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, "requires": { "has-symbols": "^1.0.1" } @@ -11087,8 +13168,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unc-path": { "version": "1.0.0", @@ -11114,8 +13194,12 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, "isarray": { "version": "0.0.1", @@ -11126,38 +13210,201 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "optional": true, "requires": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" } }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-scrypt": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/js-scrypt/-/js-scrypt-0.2.0.tgz", + "integrity": "sha1-emK3AbRhbnCtDN5URiequ5nX/jk=", + "requires": { + "generic-pool": "~2.0.4" + } + }, "js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true, - "optional": true + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" }, "js-tokens": { "version": "3.0.2", @@ -11165,11 +13412,19 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsesc": { "version": "0.5.0", @@ -11180,9 +13435,12 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true, - "optional": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-rpc-engine": { "version": "3.8.0", @@ -11216,14 +13474,12 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify": { "version": "1.0.1", @@ -11237,14 +13493,12 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "0.5.1", @@ -11256,8 +13510,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.6" } @@ -11272,7 +13524,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -11300,8 +13551,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "optional": true, "requires": { "json-buffer": "3.0.0" } @@ -11309,8 +13558,15 @@ "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } }, "last-run": { "version": "1.1.1", @@ -11378,6 +13634,11 @@ "invert-kv": "^1.0.0" } }, + "lcov-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", + "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=" + }, "lead": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", @@ -11396,6 +13657,11 @@ "buffer": "^5.6.0" } }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" + }, "level-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", @@ -11585,6 +13851,14 @@ } } }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "requires": { + "xtend": "^4.0.2" + } + }, "level-ws": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", @@ -11704,6 +13978,15 @@ } } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "liftoff": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", @@ -11720,6 +14003,259 @@ "resolve": "^1.1.7" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "lint-staged": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.0.0.tgz", + "integrity": "sha512-/MrZOLMnljjMHakxlRd1Z5Kr8wWWlrWFasye7HaTv5tx56icwzT/STRty8flMKsyzBGTfTa9QszNVPsDS/yOug==", + "requires": { + "chalk": "^3.0.0", + "commander": "^4.0.1", + "cosmiconfig": "^6.0.0", + "debug": "^4.1.1", + "dedent": "^0.7.0", + "execa": "^3.4.0", + "listr": "^0.14.3", + "log-symbols": "^3.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "stringify-object": "^3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=" + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -11741,11 +14277,185 @@ } } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, "lodash": { "version": "4.17.14", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } }, "looper": { "version": "2.0.0", @@ -11765,15 +14475,12 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "optional": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "requires": { "yallist": "^3.0.2" } @@ -11781,15 +14488,12 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", - "dev": true + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "optional": true, "requires": { "pify": "^3.0.0" }, @@ -11797,9 +14501,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -11812,17 +14514,28 @@ "kind-of": "^6.0.2" } }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -11866,7 +14579,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -11876,16 +14588,107 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "optional": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memdown": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz", + "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==", + "requires": { + "abstract-leveldown": "~6.2.1", + "functional-red-black-tree": "~1.0.1", + "immediate": "~3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true, - "optional": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merkle-patricia-tree": { "version": "2.3.2", @@ -12042,15 +14845,12 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "optional": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12071,7 +14871,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -12080,37 +14879,35 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, "requires": { "mime-db": "1.44.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, "requires": { "dom-walk": "^0.1.0" } @@ -12118,20 +14915,17 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -12139,35 +14933,115 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.9.0" } }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -12177,7 +15051,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -12187,32 +15060,415 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-promise": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "optional": true, "requires": { "mkdirp": "*" } }, + "mocha": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.0.0.tgz", + "integrity": "sha512-CirsOPbO3jU86YKjjMzFLcXIb5YiGLUrjrXFHoJ3e2z9vWiaZVCZQ2+gtRGMPWF+nFhN6AWwLM/juzAQ6KRkbA==", + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "requires": { + "picomatch": "^2.0.4" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "mocha-lcov-reporter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", + "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=" + }, "mock-fs": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==", - "dev": true, - "optional": true + "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stdout": { "version": "1.0.1", @@ -12220,24 +15476,25 @@ "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, "nan": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "nano-json-stream-parser": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true, - "optional": true + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12252,18 +15509,30 @@ "to-regex": "^3.0.1" } }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "optional": true + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node-addon-api": { "version": "2.0.2", @@ -12271,6 +15540,22 @@ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "dev": true }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "node-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", @@ -12283,11 +15568,119 @@ "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", "dev": true }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + } + } + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "requires": { + "process-on-spawn": "^1.0.0" + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -12298,23 +15691,19 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "optional": true + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "now-and-later": { "version": "2.0.1", @@ -12325,18 +15714,23 @@ "once": "^1.3.2" } }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "number-to-bn": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -12345,29 +15739,259 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -12378,7 +16002,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -12387,7 +16010,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -12397,8 +16019,7 @@ "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-is": { "version": "1.1.2", @@ -12420,7 +16041,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "^3.0.0" } @@ -12429,7 +16049,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -12440,8 +16059,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" } } }, @@ -12461,7 +16079,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" @@ -12481,7 +16098,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -12496,12 +16112,21 @@ "make-iterator": "^1.0.0" } }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "oboe": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "optional": true, "requires": { "http-https": "^1.0.0" } @@ -12510,8 +16135,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "optional": true, "requires": { "ee-first": "1.1.1" } @@ -12520,11 +16143,36 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } }, + "onetime": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz", + "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -12572,6 +16220,11 @@ } } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -12590,39 +16243,134 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "optional": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "optional": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" }, "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "optional": true, "requires": { "p-finally": "^1.0.0" } }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, "parse-asn1": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "optional": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -12646,14 +16394,12 @@ "parse-headers": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==", - "dev": true + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, "requires": { "error-ex": "^1.2.0" } @@ -12667,27 +16413,27 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "optional": true + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "2.1.0", @@ -12701,14 +16447,17 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-root": { "version": "0.1.1", @@ -12728,9 +16477,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true, - "optional": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "1.1.0", @@ -12755,7 +16502,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -12767,36 +16513,86 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "optional": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "requires": { + "semver-compare": "^1.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "precond": { "version": "0.2.3", @@ -12804,12 +16600,20 @@ "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "optional": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" }, "pretty-hrtime": { "version": "1.0.3", @@ -12826,14 +16630,30 @@ "process": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "requires": { + "fromentries": "^1.2.0" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-to-callback": { "version": "1.0.0", @@ -12849,8 +16669,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "optional": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.1" @@ -12859,8 +16677,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { "version": "1.0.2", @@ -12871,15 +16688,12 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -12951,8 +16765,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "optional": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -12962,7 +16774,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -12973,7 +16784,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -12984,33 +16794,37 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "optional": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "optional": true, "requires": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" } }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -13019,8 +16833,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "optional": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -13029,16 +16841,12 @@ "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "optional": true + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "optional": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -13071,7 +16879,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -13082,7 +16889,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -13092,14 +16898,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13113,14 +16917,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -13145,8 +16947,7 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regenerator-transform": { "version": "0.10.1", @@ -13163,7 +16964,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -13179,6 +16979,11 @@ "es-abstract": "^1.17.0-next.1" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -13205,6 +17010,14 @@ "jsesc": "~0.5.0" } }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "requires": { + "es6-error": "^4.0.1" + } + }, "remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -13229,20 +17042,17 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", @@ -13274,7 +17084,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -13301,16 +17110,19 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" } } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, "require-main-filename": { "version": "1.0.1", @@ -13322,21 +17134,39 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, "requires": { "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" } }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, "resolve-options": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", @@ -13349,19 +17179,25 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "optional": true, "requires": { "lowercase-keys": "^1.0.0" } }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", @@ -13374,14 +17210,12 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -13390,7 +17224,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -13400,22 +17233,41 @@ "version": "2.2.6", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dev": true, "requires": { "bn.js": "^4.11.1" } }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, "rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", "dev": true }, + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-event-emitter": { "version": "1.0.1", @@ -13430,7 +17282,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "~0.1.10" } @@ -13438,8 +17289,27 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.0.8" + } }, "scrypt-js": { "version": "3.0.1", @@ -13489,8 +17359,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dev": true, - "optional": true, "requires": { "commander": "^2.8.1" } @@ -13501,6 +17369,16 @@ "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "dev": true }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + }, "semver-greatest-satisfied-range": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", @@ -13514,8 +17392,6 @@ "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "optional": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -13536,8 +17412,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, "requires": { "ms": "2.0.0" }, @@ -13545,27 +17419,26 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "optional": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -13577,8 +17450,6 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "optional": true, "requires": { "body-parser": "^1.16.0", "cors": "^2.8.1", @@ -13590,8 +17461,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-immediate-shim": { "version": "1.0.1", @@ -13603,7 +17473,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -13615,7 +17484,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13625,39 +17493,49 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true, - "optional": true + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "optional": true + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "optional": true, "requires": { "decompress-response": "^3.3.0", "once": "^1.3.1", @@ -13670,11 +17548,35 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -13690,7 +17592,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -13699,7 +17600,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13708,7 +17608,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13716,14 +17615,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -13731,7 +17628,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -13742,7 +17638,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -13751,7 +17646,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13760,7 +17654,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13769,7 +17662,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -13782,7 +17674,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -13791,24 +17682,81 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "solc": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.6.1.tgz", + "integrity": "sha512-iKqNYps2p++x8L9sBg7JeAJb7EmW8VJ/2asAzwlLYcUhj86AzuWLe94UTSQHv1SSCCj/x6lya8twvXkZtlTbIQ==", + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -13821,7 +17769,6 @@ "version": "0.5.12", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13830,8 +17777,7 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sparkles": { "version": "1.0.1", @@ -13839,11 +17785,54 @@ "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", "dev": true }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -13852,14 +17841,12 @@ "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" }, "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -13868,23 +17855,25 @@ "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -13900,8 +17889,31 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + }, + "dependencies": { + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -13915,7 +17927,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -13925,7 +17936,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13935,9 +17945,59 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "optional": true + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } }, "stream-exhaust": { "version": "1.0.2", @@ -13945,11 +18005,56 @@ "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "stream-to-pull-stream": { "version": "1.7.3", @@ -13972,15 +18077,12 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "optional": true + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -14002,7 +18104,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -14012,7 +18113,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -14022,16 +18122,24 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -14049,26 +18157,37 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "optional": true, "requires": { "is-natural-number": "^4.0.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, "requires": { "is-hex-prefixed": "1.0.0" } }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "sver-compat": { "version": "1.5.0", @@ -14084,8 +18203,6 @@ "version": "0.1.39", "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, - "optional": true, "requires": { "bluebird": "^3.5.0", "buffer": "^5.0.5", @@ -14104,16 +18221,12 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "optional": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "got": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "optional": true, "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -14134,29 +18247,79 @@ "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "optional": true + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "optional": true + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "optional": true, "requires": { "prepend-http": "^1.0.1" } } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, "tape": { "version": "4.13.3", "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", @@ -14201,8 +18364,6 @@ "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -14217,8 +18378,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "optional": true, "requires": { "minimist": "^1.2.5" } @@ -14229,8 +18388,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "optional": true, "requires": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", @@ -14244,16 +18401,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14267,33 +18420,85 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, "requires": { "safe-buffer": "~5.1.0" } } } }, + "temp": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.1.tgz", + "integrity": "sha512-WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==", + "requires": { + "rimraf": "~2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.2.tgz", + "integrity": "sha512-SmvB/6gtEPv+CJ88MH5zDOsZdKXPS/Uzv2//e90+wM1IHFUhsguPKEILgzqrM1nQ4acRXN/SV4Obr55SXC+0oA==", + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^24.9.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -14302,14 +18507,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14323,14 +18526,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -14356,9 +18557,15 @@ "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "optional": true + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } }, "tmp": { "version": "0.1.0", @@ -14379,12 +18586,15 @@ "is-negated-glob": "^1.0.0" } }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true, - "optional": true + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "to-fast-properties": { "version": "1.0.3", @@ -14396,7 +18606,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -14405,7 +18614,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -14415,15 +18623,12 @@ "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "optional": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -14435,7 +18640,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -14453,15 +18657,12 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "optional": true + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -14473,11 +18674,20 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -14497,15 +18707,25 @@ "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "optional": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -14514,14 +18734,12 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } @@ -14550,16 +18768,12 @@ "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true, - "optional": true + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "optional": true, "requires": { "buffer": "^5.2.1", "through": "^2.3.8" @@ -14574,9 +18788,7 @@ "underscore": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", - "dev": true, - "optional": true + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, "undertaker": { "version": "1.2.1", @@ -14605,7 +18817,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -14613,6 +18824,22 @@ "set-value": "^2.0.1" } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -14626,9 +18853,7 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "optional": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unorm": { "version": "1.6.0", @@ -14639,15 +18864,12 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "optional": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -14657,7 +18879,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -14668,7 +18889,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -14678,28 +18898,24 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -14707,15 +18923,28 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "optional": true, "requires": { "prepend-http": "^2.0.0" } @@ -14723,35 +18952,42 @@ "url-set-query": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true, - "optional": true + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "optional": true + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "utf8": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "optional": true + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.1", @@ -14768,15 +19004,17 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "optional": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" }, "v8flags": { "version": "3.2.0", @@ -14791,7 +19029,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -14806,15 +19043,12 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "optional": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -14924,12 +19158,135 @@ } } }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "optional": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + } + }, "web3": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.4.tgz", "integrity": "sha512-xPXGe+w0x0t88Wj+s/dmAdASr3O9wmA9mpZRtixGZxmBexAF0MjfqYM+MS4tVl5s11hMTN3AZb8cDD4VLfC57A==", - "dev": true, - "optional": true, "requires": { "@types/node": "^12.6.1", "web3-bzz": "1.2.4", @@ -14944,9 +19301,7 @@ "@types/node": { "version": "12.12.53", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true, - "optional": true + "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==" } } }, @@ -14954,8 +19309,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.4.tgz", "integrity": "sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A==", - "dev": true, - "optional": true, "requires": { "@types/node": "^10.12.18", "got": "9.6.0", @@ -14966,9 +19319,7 @@ "@types/node": { "version": "10.17.28", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true, - "optional": true + "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" } } }, @@ -14976,8 +19327,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.4.tgz", "integrity": "sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A==", - "dev": true, - "optional": true, "requires": { "@types/bignumber.js": "^5.0.0", "@types/bn.js": "^4.11.4", @@ -14991,9 +19340,7 @@ "@types/node": { "version": "12.12.53", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true, - "optional": true + "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==" } } }, @@ -15001,8 +19348,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz", "integrity": "sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw==", - "dev": true, - "optional": true, "requires": { "underscore": "1.9.1", "web3-eth-iban": "1.2.4", @@ -15013,8 +19358,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.4.tgz", "integrity": "sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A==", - "dev": true, - "optional": true, "requires": { "underscore": "1.9.1", "web3-core-helpers": "1.2.4", @@ -15027,8 +19370,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz", "integrity": "sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw==", - "dev": true, - "optional": true, "requires": { "any-promise": "1.3.0", "eventemitter3": "3.1.2" @@ -15038,8 +19379,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz", "integrity": "sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg==", - "dev": true, - "optional": true, "requires": { "underscore": "1.9.1", "web3-core-helpers": "1.2.4", @@ -15052,8 +19391,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz", "integrity": "sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw==", - "dev": true, - "optional": true, "requires": { "eventemitter3": "3.1.2", "underscore": "1.9.1", @@ -15064,8 +19401,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.4.tgz", "integrity": "sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA==", - "dev": true, - "optional": true, "requires": { "underscore": "1.9.1", "web3-core": "1.2.4", @@ -15086,8 +19421,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz", "integrity": "sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg==", - "dev": true, - "optional": true, "requires": { "ethers": "4.0.0-beta.3", "underscore": "1.9.1", @@ -15097,23 +19430,17 @@ "@types/node": { "version": "10.17.28", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true, - "optional": true + "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==" }, "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true, - "optional": true + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" }, "elliptic": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15125,8 +19452,6 @@ "version": "4.0.0-beta.3", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "optional": true, "requires": { "@types/node": "^10.3.2", "aes-js": "3.0.0", @@ -15144,8 +19469,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "optional": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.0" @@ -15154,30 +19477,22 @@ "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true, - "optional": true + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" }, "scrypt-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true, - "optional": true + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" }, "setimmediate": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", - "dev": true, - "optional": true + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" }, "uuid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true, - "optional": true + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" } } }, @@ -15185,8 +19500,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz", "integrity": "sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw==", - "dev": true, - "optional": true, "requires": { "@web3-js/scrypt-shim": "^0.1.0", "any-promise": "1.3.0", @@ -15206,8 +19519,6 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -15217,9 +19528,7 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" } } }, @@ -15227,8 +19536,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz", "integrity": "sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ==", - "dev": true, - "optional": true, "requires": { "@types/bn.js": "^4.11.4", "underscore": "1.9.1", @@ -15245,8 +19552,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz", "integrity": "sha512-g8+JxnZlhdsCzCS38Zm6R/ngXhXzvc3h7bXlxgKU4coTzLLoMpgOAEz71GxyIJinWTFbLXk/WjNY0dazi9NwVw==", - "dev": true, - "optional": true, "requires": { "eth-ens-namehash": "2.0.8", "underscore": "1.9.1", @@ -15262,8 +19567,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz", "integrity": "sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ==", - "dev": true, - "optional": true, "requires": { "bn.js": "4.11.8", "web3-utils": "1.2.4" @@ -15272,9 +19575,7 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true, - "optional": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" } } }, @@ -15282,8 +19583,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz", "integrity": "sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw==", - "dev": true, - "optional": true, "requires": { "@types/node": "^12.6.1", "web3-core": "1.2.4", @@ -15296,9 +19595,7 @@ "@types/node": { "version": "12.12.53", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.53.tgz", - "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==", - "dev": true, - "optional": true + "integrity": "sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ==" } } }, @@ -15306,8 +19603,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.4.tgz", "integrity": "sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A==", - "dev": true, - "optional": true, "requires": { "web3-core": "1.2.4", "web3-core-method": "1.2.4", @@ -15578,8 +19873,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.4.tgz", "integrity": "sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw==", - "dev": true, - "optional": true, "requires": { "web3-core-helpers": "1.2.4", "xhr2-cookies": "1.1.0" @@ -15589,8 +19882,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz", "integrity": "sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og==", - "dev": true, - "optional": true, "requires": { "oboe": "2.1.4", "underscore": "1.9.1", @@ -15601,8 +19892,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz", "integrity": "sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ==", - "dev": true, - "optional": true, "requires": { "@web3-js/websocket": "^1.0.29", "underscore": "1.9.1", @@ -15613,8 +19902,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.4.tgz", "integrity": "sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ==", - "dev": true, - "optional": true, "requires": { "web3-core": "1.2.4", "web3-core-method": "1.2.4", @@ -15626,8 +19913,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.4.tgz", "integrity": "sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ==", - "dev": true, - "optional": true, "requires": { "bn.js": "4.11.8", "eth-lib": "0.2.7", @@ -15642,16 +19927,12 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true, - "optional": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "eth-lib": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "optional": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -15660,6 +19941,568 @@ } } }, + "webpack": { + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + } + } + }, + "webpack-bundle-size-analyzer": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-size-analyzer/-/webpack-bundle-size-analyzer-3.1.0.tgz", + "integrity": "sha512-8WlTT6uuCxZgZYNnCB0pRGukWRGH+Owg+HsqQUe1Zexakdno1eDYO+lE7ihBo9G0aCCZCJa8JWjYr9eLYfZrBA==", + "requires": { + "commander": "^2.19.0", + "filesize": "^3.6.1", + "humanize": "0.0.9" + } + }, + "webpack-cli": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", + "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==" + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, "websocket": { "version": "1.0.29", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.29.tgz", @@ -15700,7 +20543,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -15711,6 +20553,32 @@ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -15724,15 +20592,41 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "requires": { + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "optional": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", @@ -15742,9 +20636,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -15752,7 +20644,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "dev": true, "requires": { "global": "~4.3.0", "is-function": "^1.0.1", @@ -15764,8 +20655,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "optional": true, "requires": { "buffer-to-arraybuffer": "^0.0.5", "object-assign": "^4.1.1", @@ -15780,8 +20669,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "optional": true, "requires": { "xhr-request": "^1.1.0" } @@ -15790,8 +20677,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dev": true, - "optional": true, "requires": { "cookiejar": "^2.1.1" } @@ -15799,15 +20684,12 @@ "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true, - "optional": true + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "3.2.1", @@ -15818,14 +20700,17 @@ "yaeti": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "dev": true + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" }, "yargs": { "version": "7.1.1", @@ -15858,12 +20743,182 @@ "object.assign": "^4.1.0" } }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "optional": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -15927,7 +20982,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16356,7 +21410,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -16365,8 +21418,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -17409,7 +22461,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -17684,6 +22735,12 @@ "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", "dev": true }, + "nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==", + "dev": true + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -17869,7 +22926,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -18051,8 +23107,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -18682,18 +23737,6 @@ } } }, - "request-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz", - "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "request-promise-core": "1.1.3", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, "request-promise-core": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", @@ -18875,16 +23918,6 @@ } } }, - "scrypt": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", - "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.0.8" - } - }, "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", @@ -19727,6 +24760,32 @@ "os-tmpdir": "~1.0.2" } }, + "tmp-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.2.tgz", + "integrity": "sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==", + "requires": { + "tmp": "^0.2.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -21291,8 +26350,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "7.3.1", diff --git a/package.json b/package.json index 91c4504e..abce7ae4 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,30 @@ "scripts": { "run-env": "npm i && tail -f /dev/null", "buidler": "buidler", - "buidler-kovan": "buidler --network kovan", - "buidler-ropsten": "buidler --network ropsten", - "buidler-main": "buidler --network main", + "buidler:kovan": "buidler --network kovan", + "buidler:ropsten": "buidler--network ropsten", + "buidler:main": "buidler --network main", "buidler help": "buidler help", - "compile": "buidler compile", + "compile": "SKIP_LOAD=true buidler compile", "types-gen": "typechain --target ethers-v5 --outDir ./types './artifacts/*.json'", "test": "buidler test", "test-scenarios": "buidler test test/__setup.spec.ts test/scenario.spec.ts", + "aave:evm:dev:migration": "buidler aave:dev", + "aave:evm:full:migration": "buidler aave:full", + "aave:kovan:dev:migration": "npm run buidler:kovan -- aave:dev --verify", + "aave:kovan:full:migration": "npm run buidler:kovan -- aave:full --verify", + "aave:ropsten:dev:migration": "npm run buidler:ropsten -- aave:dev --verify", + "aave:ropsten:full:migration": "npm run buidler:ropsten -- aave:full --verify", + "aave:main:dev:migration": "npm run buidler:main -- aave:dev --verify", + "aave:main:full:migration": "npm run buidler:main -- aave:full --verify", + "uniswap:evm:dev:migration": "buidler uniswap:dev", + "uniswap:evm:full:migration": "buidler uniswap:full --verify", + "uniswap:kovan:dev:migration": "npm run buidler:kovan -- uniswap:dev --verify", + "uniswap:kovan:full:migration": "npm run buidler:kovan -- uniswap:full --verify", + "uniswap:ropsten:dev:migration": "npm run buidler:ropsten -- uniswap:dev --verify", + "uniswap:ropsten:full:migration": "npm run buidler:ropsten -- uniswap:full --verify", + "uniswap:main:dev:migration": "npm run buidler:main -- uniswap:dev --verify", + "uniswap:main:full:migration": "npm run buidler:main -- uniswap:full --verify", "test-repay-with-collateral": "buidler test test/__setup.spec.ts test/repay-with-collateral.spec.ts", "test-liquidate-with-collateral": "buidler test test/__setup.spec.ts test/flash-liquidation-with-collateral.spec.ts", "test-transfers": "buidler test test/__setup.spec.ts test/atoken-transfer.spec.ts", @@ -28,13 +44,13 @@ "ci:clean": "rm -rf ./artifacts ./cache ./types" }, "devDependencies": { - "@nomiclabs/buidler": "1.4.4", + "@nomiclabs/buidler": "^1.4.7", "@nomiclabs/buidler-ethers": "2.0.0", - "@nomiclabs/buidler-etherscan": "1.3.3", + "@nomiclabs/buidler-etherscan": "^2.1.0", "@nomiclabs/buidler-waffle": "2.0.0", "@openzeppelin/contracts": "3.1.0", - "@typechain/ethers-v5": "^1.0.0", "@typechain/ethers-v4": "1.0.0", + "@typechain/ethers-v5": "^1.0.0", "@typechain/truffle-v4": "2.0.2", "@typechain/truffle-v5": "2.0.2", "@typechain/web3-v1": "1.0.0", @@ -48,7 +64,9 @@ "chai": "4.2.0", "chai-bignumber": "3.0.0", "chai-bn": "^0.2.1", + "eth-sig-util": "2.5.3", "ethereum-waffle": "3.0.2", + "ethereumjs-util": "7.0.2", "ethers": "5.0.8", "husky": "^4.2.5", "lowdb": "1.0.0", @@ -62,9 +80,7 @@ "tslint-config-prettier": "^1.18.0", "tslint-plugin-prettier": "^2.3.0", "typechain": "2.0.0", - "typescript": "3.9.3", - "eth-sig-util": "2.5.3", - "ethereumjs-util": "7.0.2" + "typescript": "3.9.3" }, "husky": { "hooks": { @@ -86,5 +102,8 @@ "email": "andrey@aave.com" } ], - "license": "AGPLv3" + "license": "AGPLv3", + "dependencies": { + "tmp-promise": "^3.0.2" + } } diff --git a/tasks/dev/1_mock_tokens.ts b/tasks/dev/1_mock_tokens.ts new file mode 100644 index 00000000..617071ce --- /dev/null +++ b/tasks/dev/1_mock_tokens.ts @@ -0,0 +1,8 @@ +import {task} from '@nomiclabs/buidler/config'; +import {deployAllMockTokens} from '../../helpers/contracts-helpers'; +task('dev:deploy-mock-tokens', 'Deploy mock tokens for dev enviroment') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + await localBRE.run('set-bre'); + await deployAllMockTokens(verify); + }); diff --git a/tasks/dev/2_address_provider_registry.ts b/tasks/dev/2_address_provider_registry.ts new file mode 100644 index 00000000..078b56c5 --- /dev/null +++ b/tasks/dev/2_address_provider_registry.ts @@ -0,0 +1,25 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + deployLendingPoolAddressesProvider, + deployLendingPoolAddressesProviderRegistry, +} from '../../helpers/contracts-helpers'; +import {waitForTx} from '../../helpers/misc-utils'; + +task( + 'dev:deploy-address-provider', + 'Deploy address provider, registry and fee provider for dev enviroment' +) + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + await localBRE.run('set-bre'); + + const admin = await (await localBRE.ethers.getSigners())[0].getAddress(); + + const addressesProvider = await deployLendingPoolAddressesProvider(verify); + await waitForTx(await addressesProvider.setAaveAdmin(admin)); + + const addressesProviderRegistry = await deployLendingPoolAddressesProviderRegistry(verify); + await waitForTx( + await addressesProviderRegistry.registerAddressesProvider(addressesProvider.address, 0) + ); + }); diff --git a/tasks/dev/3_lending_pool.ts b/tasks/dev/3_lending_pool.ts new file mode 100644 index 00000000..b7c88a19 --- /dev/null +++ b/tasks/dev/3_lending_pool.ts @@ -0,0 +1,44 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + deployLendingPool, + getLendingPoolAddressesProvider, + getLendingPool, + insertContractAddressInDb, + deployLendingPoolConfigurator, + getLendingPoolConfiguratorProxy, +} from '../../helpers/contracts-helpers'; +import {eContractid} from '../../helpers/types'; +import {waitForTx} from '../../helpers/misc-utils'; + +task('dev:deploy-lending-pool', 'Deploy lending pool for dev enviroment') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + await localBRE.run('set-bre'); + + const addressesProvider = await getLendingPoolAddressesProvider(); + + const lendingPoolImpl = await deployLendingPool(verify); + + // Set lending pool impl to Address Provider + await waitForTx(await addressesProvider.setLendingPoolImpl(lendingPoolImpl.address)); + + const address = await addressesProvider.getLendingPool(); + const lendingPoolProxy = await getLendingPool(address); + + await insertContractAddressInDb(eContractid.LendingPool, lendingPoolProxy.address); + + const lendingPoolConfiguratorImpl = await deployLendingPoolConfigurator(verify); + + // Set lending pool conf impl to Address Provider + await waitForTx( + await addressesProvider.setLendingPoolConfiguratorImpl(lendingPoolConfiguratorImpl.address) + ); + + const lendingPoolConfiguratorProxy = await getLendingPoolConfiguratorProxy( + await addressesProvider.getLendingPoolConfigurator() + ); + await insertContractAddressInDb( + eContractid.LendingPoolConfigurator, + lendingPoolConfiguratorProxy.address + ); + }); diff --git a/tasks/dev/4_oracles.ts b/tasks/dev/4_oracles.ts new file mode 100644 index 00000000..0e2d8ef5 --- /dev/null +++ b/tasks/dev/4_oracles.ts @@ -0,0 +1,74 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + getLendingPoolAddressesProvider, + deployPriceOracle, + getMockedTokens, + getPairsTokenAggregator, + deployChainlinkProxyPriceProvider, + deployLendingRateOracle, + getAllMockedTokens, +} from '../../helpers/contracts-helpers'; + +import { + setInitialAssetPricesInOracle, + setInitialMarketRatesInRatesOracle, + deployAllMockAggregators, +} from '../../helpers/oracles-helpers'; +import {ICommonConfiguration, iAssetBase, TokenContractId} from '../../helpers/types'; +import {waitForTx} from '../../helpers/misc-utils'; +import {getAllAggregatorsAddresses, getAllTokenAddresses} from '../../helpers/mock-helpers'; +import {ConfigNames, loadPoolConfig} from '../../helpers/configuration'; + +task('dev:deploy-oracles', 'Deploy oracles for dev enviroment') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`) + .setAction(async ({verify, pool}, localBRE) => { + await localBRE.run('set-bre'); + const poolConfig = loadPoolConfig(pool); + const { + Mocks: {ChainlinkAggregatorPrices, AllAssetsInitialPrices}, + ProtocolGlobalParams: {UsdAddress, MockUsdPriceInWei}, + LendingRateOracleRatesCommon, + } = poolConfig as ICommonConfiguration; + + const defaultTokenList = { + ...Object.fromEntries(Object.keys(TokenContractId).map((symbol) => [symbol, ''])), + USD: UsdAddress, + } as iAssetBase; + const mockTokens = await getAllMockedTokens(); + const mockTokensAddress = Object.keys(mockTokens).reduce>((prev, curr) => { + prev[curr as keyof iAssetBase] = mockTokens[curr].address; + return prev; + }, defaultTokenList); + const addressesProvider = await getLendingPoolAddressesProvider(); + + const fallbackOracle = await deployPriceOracle(verify); + await waitForTx(await fallbackOracle.setEthUsdPrice(MockUsdPriceInWei)); + await setInitialAssetPricesInOracle(AllAssetsInitialPrices, mockTokensAddress, fallbackOracle); + + const mockAggregators = await deployAllMockAggregators(ChainlinkAggregatorPrices, verify); + + const allTokenAddresses = getAllTokenAddresses(mockTokens); + const allAggregatorsAddresses = getAllAggregatorsAddresses(mockAggregators); + + const [tokens, aggregators] = getPairsTokenAggregator( + allTokenAddresses, + allAggregatorsAddresses + ); + + await deployChainlinkProxyPriceProvider([tokens, aggregators, fallbackOracle.address], verify); + await waitForTx(await addressesProvider.setPriceOracle(fallbackOracle.address)); + + const lendingRateOracle = await deployLendingRateOracle(verify); + await waitForTx(await addressesProvider.setLendingRateOracle(lendingRateOracle.address)); + + const {USD, ...tokensAddressesWithoutUsd} = allTokenAddresses; + const allReservesAddresses = { + ...tokensAddressesWithoutUsd, + }; + await setInitialMarketRatesInRatesOracle( + LendingRateOracleRatesCommon, + allReservesAddresses, + lendingRateOracle + ); + }); diff --git a/tasks/dev/5_initialize.ts b/tasks/dev/5_initialize.ts new file mode 100644 index 00000000..6333247c --- /dev/null +++ b/tasks/dev/5_initialize.ts @@ -0,0 +1,83 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + getLendingPoolAddressesProvider, + initReserves, + deployLendingPoolCollateralManager, + insertContractAddressInDb, + deployMockFlashLoanReceiver, + deployWalletBalancerProvider, + deployAaveProtocolTestHelpers, + getLendingPool, + getLendingPoolConfiguratorProxy, + getAllMockedTokens, +} from '../../helpers/contracts-helpers'; +import {getReservesConfigByPool} from '../../helpers/configuration'; + +import {tEthereumAddress, AavePools, eContractid} from '../../helpers/types'; +import {waitForTx, filterMapBy} from '../../helpers/misc-utils'; +import {enableReservesToBorrow, enableReservesAsCollateral} from '../../helpers/init-helpers'; +import {getAllTokenAddresses} from '../../helpers/mock-helpers'; +import {ZERO_ADDRESS} from '../../helpers/constants'; + +task('dev:initialize-lending-pool', 'Initialize lending pool configuration.') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + await localBRE.run('set-bre'); + + const mockTokens = await getAllMockedTokens(); + const lendingPoolProxy = await getLendingPool(); + const lendingPoolConfiguratorProxy = await getLendingPoolConfiguratorProxy(); + const allTokenAddresses = getAllTokenAddresses(mockTokens); + + const addressesProvider = await getLendingPoolAddressesProvider(); + + const protoPoolReservesAddresses = <{[symbol: string]: tEthereumAddress}>( + filterMapBy(allTokenAddresses, (key: string) => !key.includes('UNI')) + ); + + const testHelpers = await deployAaveProtocolTestHelpers(addressesProvider.address, verify); + + const reservesParams = getReservesConfigByPool(AavePools.proto); + + await initReserves( + reservesParams, + protoPoolReservesAddresses, + addressesProvider, + lendingPoolProxy, + testHelpers, + lendingPoolConfiguratorProxy, + AavePools.proto, + ZERO_ADDRESS, + verify + ); + await enableReservesToBorrow( + reservesParams, + protoPoolReservesAddresses, + testHelpers, + lendingPoolConfiguratorProxy + ); + await enableReservesAsCollateral( + reservesParams, + protoPoolReservesAddresses, + testHelpers, + lendingPoolConfiguratorProxy + ); + + const collateralManager = await deployLendingPoolCollateralManager(verify); + await waitForTx( + await addressesProvider.setLendingPoolCollateralManager(collateralManager.address) + ); + + const mockFlashLoanReceiver = await deployMockFlashLoanReceiver( + addressesProvider.address, + verify + ); + await insertContractAddressInDb( + eContractid.MockFlashLoanReceiver, + mockFlashLoanReceiver.address + ); + + await deployWalletBalancerProvider(addressesProvider.address, verify); + + await insertContractAddressInDb(eContractid.AaveProtocolTestHelpers, testHelpers.address); + }); diff --git a/tasks/full/1_address_provider_registry.ts b/tasks/full/1_address_provider_registry.ts new file mode 100644 index 00000000..ef579579 --- /dev/null +++ b/tasks/full/1_address_provider_registry.ts @@ -0,0 +1,40 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + deployLendingPoolAddressesProvider, + deployLendingPoolAddressesProviderRegistry, + getParamPerNetwork, + getLendingPoolAddressesProviderRegistry, +} from '../../helpers/contracts-helpers'; +import {waitForTx} from '../../helpers/misc-utils'; +import {ConfigNames, loadPoolConfig, getGenesisAaveAdmin} from '../../helpers/configuration'; +import {eEthereumNetwork} from '../../helpers/types'; + +task( + 'full:deploy-address-provider', + 'Deploy address provider, registry and fee provider for dev enviroment' +) + .addFlag('verify', 'Verify contracts at Etherscan') + .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`) + .setAction(async ({verify, pool}, localBRE) => { + await localBRE.run('set-bre'); + const network = localBRE.network.name; + const poolConfig = loadPoolConfig(pool); + const {ProviderId} = poolConfig; + + const providerRegistryAddress = getParamPerNetwork(poolConfig.ProviderRegistry, network); + // Deploy address provider and set genesis manager + const addressesProvider = await deployLendingPoolAddressesProvider(verify); + await waitForTx(await addressesProvider.setAaveAdmin(await getGenesisAaveAdmin(poolConfig))); + + // If no provider registry is set, deploy lending pool address provider registry and register the address provider + const addressesProviderRegistry = !providerRegistryAddress + ? await deployLendingPoolAddressesProviderRegistry(verify) + : await getLendingPoolAddressesProviderRegistry(providerRegistryAddress); + + await waitForTx( + await addressesProviderRegistry.registerAddressesProvider( + addressesProvider.address, + ProviderId + ) + ); + }); diff --git a/tasks/full/2_lending_pool.ts b/tasks/full/2_lending_pool.ts new file mode 100644 index 00000000..a4f919ce --- /dev/null +++ b/tasks/full/2_lending_pool.ts @@ -0,0 +1,47 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + deployLendingPool, + getLendingPoolAddressesProvider, + getLendingPool, + insertContractAddressInDb, + deployLendingPoolConfigurator, + getLendingPoolConfiguratorProxy, +} from '../../helpers/contracts-helpers'; +import {eContractid} from '../../helpers/types'; +import {waitForTx} from '../../helpers/misc-utils'; + +task('full:deploy-lending-pool', 'Deploy lending pool for dev enviroment') + .addFlag('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + await localBRE.run('set-bre'); + + const addressesProvider = await getLendingPoolAddressesProvider(); + + // Deploy lending pool + const lendingPoolImpl = await deployLendingPool(verify); + + // Set lending pool impl to address provider + await waitForTx(await addressesProvider.setLendingPoolImpl(lendingPoolImpl.address)); + + const address = await addressesProvider.getLendingPool(); + const lendingPoolProxy = await getLendingPool(address); + + await insertContractAddressInDb(eContractid.LendingPool, lendingPoolProxy.address); + + // Deploy lending pool configurator + const lendingPoolConfiguratorImpl = await deployLendingPoolConfigurator(verify); + + // Set lending pool conf impl to Address Provider + await waitForTx( + await addressesProvider.setLendingPoolConfiguratorImpl(lendingPoolConfiguratorImpl.address) + ); + + const lendingPoolConfiguratorProxy = await getLendingPoolConfiguratorProxy( + await addressesProvider.getLendingPoolConfigurator() + ); + + await insertContractAddressInDb( + eContractid.LendingPoolConfigurator, + lendingPoolConfiguratorProxy.address + ); + }); diff --git a/tasks/full/3_oracles.ts b/tasks/full/3_oracles.ts new file mode 100644 index 00000000..3121b008 --- /dev/null +++ b/tasks/full/3_oracles.ts @@ -0,0 +1,69 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + getLendingPoolAddressesProvider, + getPairsTokenAggregator, + deployChainlinkProxyPriceProvider, + deployLendingRateOracle, + getParamPerNetwork, +} from '../../helpers/contracts-helpers'; + +import {setInitialMarketRatesInRatesOracle} from '../../helpers/oracles-helpers'; +import {ICommonConfiguration, eEthereumNetwork, SymbolMap} from '../../helpers/types'; +import {waitForTx, filterMapBy} from '../../helpers/misc-utils'; +import {ConfigNames, loadPoolConfig} from '../../helpers/configuration'; +import {exit} from 'process'; + +task('full:deploy-oracles', 'Deploy oracles for dev enviroment') + .addFlag('verify', 'Verify contracts at Etherscan') + .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`) + .setAction(async ({verify, pool}, localBRE) => { + try { + await localBRE.run('set-bre'); + const network = localBRE.network.name; + const poolConfig = loadPoolConfig(pool); + const { + ProtocolGlobalParams: {UsdAddress}, + LendingRateOracleRatesCommon, + ReserveAssets, + ReserveSymbols, + FallbackOracle, + ChainlinkAggregator, + } = poolConfig as ICommonConfiguration; + + const lendingRateOracles = filterMapBy(LendingRateOracleRatesCommon, (key) => + ReserveSymbols.includes(key) + ); + const addressesProvider = await getLendingPoolAddressesProvider(); + + const fallbackOracle = await getParamPerNetwork(FallbackOracle, network); + const reserveAssets = await getParamPerNetwork(ReserveAssets, network); + const chainlinkAggregators = await getParamPerNetwork(ChainlinkAggregator, network); + + const tokensToWatch: SymbolMap = { + ...reserveAssets, + USD: UsdAddress, + }; + const [tokens, aggregators] = getPairsTokenAggregator(tokensToWatch, chainlinkAggregators); + + const chainlinkProviderPriceProvider = await deployChainlinkProxyPriceProvider( + [tokens, aggregators, fallbackOracle], + verify + ); + await waitForTx( + await addressesProvider.setPriceOracle(chainlinkProviderPriceProvider.address) + ); + + const lendingRateOracle = await deployLendingRateOracle(verify); + await waitForTx(await addressesProvider.setLendingRateOracle(lendingRateOracle.address)); + + const {USD, ...tokensAddressesWithoutUsd} = tokensToWatch; + await setInitialMarketRatesInRatesOracle( + lendingRateOracles, + tokensAddressesWithoutUsd, + lendingRateOracle + ); + } catch (err) { + console.error(err); + exit(1); + } + }); diff --git a/tasks/full/5_initialize.ts b/tasks/full/5_initialize.ts new file mode 100644 index 00000000..31900897 --- /dev/null +++ b/tasks/full/5_initialize.ts @@ -0,0 +1,79 @@ +import {task} from '@nomiclabs/buidler/config'; +import { + getLendingPoolAddressesProvider, + initReserves, + deployLendingPoolCollateralManager, + insertContractAddressInDb, + deployWalletBalancerProvider, + deployAaveProtocolTestHelpers, + getLendingPool, + getLendingPoolConfiguratorProxy, + getParamPerNetwork, +} from '../../helpers/contracts-helpers'; +import {loadPoolConfig, ConfigNames} from '../../helpers/configuration'; + +import {AavePools, eContractid, eEthereumNetwork, ICommonConfiguration} from '../../helpers/types'; +import {waitForTx} from '../../helpers/misc-utils'; +import {enableReservesToBorrow, enableReservesAsCollateral} from '../../helpers/init-helpers'; +import {ZERO_ADDRESS} from '../../helpers/constants'; +import {exit} from 'process'; + +task('full:initialize-lending-pool', 'Initialize lending pool configuration.') + .addFlag('verify', 'Verify contracts at Etherscan') + .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`) + .setAction(async ({verify, pool}, localBRE) => { + try { + await localBRE.run('set-bre'); + console.log('init'); + const network = localBRE.network.name; + const poolConfig = loadPoolConfig(pool); + const {ReserveAssets, ReservesConfig} = poolConfig as ICommonConfiguration; + + const reserveAssets = await getParamPerNetwork(ReserveAssets, network); + const lendingPoolProxy = await getLendingPool(); + const lendingPoolConfiguratorProxy = await getLendingPoolConfiguratorProxy(); + + const addressesProvider = await getLendingPoolAddressesProvider(); + + const testHelpers = await deployAaveProtocolTestHelpers(addressesProvider.address, verify); + + console.log('init reserves'); + await initReserves( + ReservesConfig, + reserveAssets, + addressesProvider, + lendingPoolProxy, + testHelpers, + lendingPoolConfiguratorProxy, + AavePools.proto, + ZERO_ADDRESS, + verify + ); + console.log('enable reserves'); + await enableReservesToBorrow( + ReservesConfig, + reserveAssets, + testHelpers, + lendingPoolConfiguratorProxy + ); + console.log('enable reserves as collateral'); + await enableReservesAsCollateral( + ReservesConfig, + reserveAssets, + testHelpers, + lendingPoolConfiguratorProxy + ); + + console.log('deploy coll manager'); + const collateralManager = await deployLendingPoolCollateralManager(verify); + await waitForTx( + await addressesProvider.setLendingPoolCollateralManager(collateralManager.address) + ); + + console.log('deploy bal provicer'); + await deployWalletBalancerProvider(addressesProvider.address, verify); + } catch (err) { + console.error(err); + exit(1); + } + }); diff --git a/tasks/migrations/aave.dev.ts b/tasks/migrations/aave.dev.ts new file mode 100644 index 00000000..03bacb94 --- /dev/null +++ b/tasks/migrations/aave.dev.ts @@ -0,0 +1,35 @@ +import {task} from '@nomiclabs/buidler/config'; +import {checkVerification} from '../../helpers/etherscan-verification'; +import {ConfigNames} from '../../helpers/configuration'; + +task('aave:dev', 'Deploy development enviroment') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + const POOL_NAME = ConfigNames.Aave; + + await localBRE.run('set-bre'); + + // Prevent loss of gas verifying all the needed ENVs for Etherscan verification + if (verify) { + checkVerification(); + } + + console.log('Migration started\n'); + + console.log('1. Deploy mock tokens'); + await localBRE.run('dev:deploy-mock-tokens', {verify}); + + console.log('2. Deploy address provider'); + await localBRE.run('dev:deploy-address-provider', {verify}); + + console.log('3. Deploy lending pool'); + await localBRE.run('dev:deploy-lending-pool', {verify}); + + console.log('4. Deploy oracles'); + await localBRE.run('dev:deploy-oracles', {verify, pool: POOL_NAME}); + + console.log('5. Initialize lending pool'); + await localBRE.run('dev:initialize-lending-pool', {verify}); + + console.log('\nFinished migration'); + }); diff --git a/tasks/migrations/aave.full.ts b/tasks/migrations/aave.full.ts new file mode 100644 index 00000000..460829b6 --- /dev/null +++ b/tasks/migrations/aave.full.ts @@ -0,0 +1,34 @@ +import {task} from '@nomiclabs/buidler/config'; +import {checkVerification} from '../../helpers/etherscan-verification'; +import {ConfigNames} from '../../helpers/configuration'; +import {EthereumNetworkNames} from '../../helpers/types'; + +task('aave:full', 'Deploy development enviroment') + .addFlag('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + const POOL_NAME = ConfigNames.Aave; + const network = localBRE.network.name; + + await localBRE.run('set-bre'); + + // Prevent loss of gas verifying all the needed ENVs for Etherscan verification + if (verify) { + checkVerification(); + } + + console.log('Migration started\n'); + + console.log('1. Deploy address provider'); + await localBRE.run('full:deploy-address-provider', {verify, pool: POOL_NAME}); + + console.log('2. Deploy lending pool'); + await localBRE.run('full:deploy-lending-pool', {verify}); + + console.log('3. Deploy oracles'); + await localBRE.run('full:deploy-oracles', {verify, pool: POOL_NAME}); + + console.log('4. Initialize lending pool'); + await localBRE.run('full:initialize-lending-pool', {verify, pool: POOL_NAME}); + + console.log('\nFinished migrations'); + }); diff --git a/tasks/migrations/uniswap.dev.ts b/tasks/migrations/uniswap.dev.ts new file mode 100644 index 00000000..e6c5b3e8 --- /dev/null +++ b/tasks/migrations/uniswap.dev.ts @@ -0,0 +1,35 @@ +import {task} from '@nomiclabs/buidler/config'; +import {checkVerification} from '../../helpers/etherscan-verification'; +import {ConfigNames} from '../../helpers/configuration'; + +task('uniswap:dev', 'Deploy development enviroment') + .addOptionalParam('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + const POOL_NAME = ConfigNames.Uniswap; + + await localBRE.run('set-bre'); + + // Prevent loss of gas verifying all the needed ENVs for Etherscan verification + if (verify) { + checkVerification(); + } + + console.log('Migration started\n'); + + console.log('1. Deploy mock tokens'); + await localBRE.run('dev:deploy-mock-tokens', {verify}); + + console.log('2. Deploy address provider'); + await localBRE.run('dev:deploy-address-provider', {verify}); + + console.log('3. Deploy lending pool'); + await localBRE.run('dev:deploy-lending-pool', {verify}); + + console.log('4. Deploy oracles'); + await localBRE.run('dev:deploy-oracles', {verify, pool: POOL_NAME}); + + console.log('5. Initialize lending pool'); + await localBRE.run('dev:initialize-lending-pool', {verify}); + + console.log('\nFinished migration'); + }); diff --git a/tasks/migrations/uniswap.full.ts b/tasks/migrations/uniswap.full.ts new file mode 100644 index 00000000..fef440b1 --- /dev/null +++ b/tasks/migrations/uniswap.full.ts @@ -0,0 +1,32 @@ +import {task} from '@nomiclabs/buidler/config'; +import {checkVerification} from '../../helpers/etherscan-verification'; +import {ConfigNames} from '../../helpers/configuration'; + +task('uniswap:full', 'Deploy development enviroment') + .addFlag('verify', 'Verify contracts at Etherscan') + .setAction(async ({verify}, localBRE) => { + const POOL_NAME = ConfigNames.Uniswap; + + await localBRE.run('set-bre'); + + // Prevent loss of gas verifying all the needed ENVs for Etherscan verification + if (verify) { + checkVerification(); + } + + console.log('Migration started\n'); + + console.log('1. Deploy address provider'); + await localBRE.run('full:deploy-address-provider', {verify, pool: POOL_NAME}); + + console.log('2. Deploy lending pool'); + await localBRE.run('full:deploy-lending-pool', {verify}); + + console.log('3. Deploy oracles'); + await localBRE.run('full:deploy-oracles', {verify, pool: POOL_NAME}); + + console.log('4. Initialize lending pool'); + await localBRE.run('full:initialize-lending-pool', {verify, pool: POOL_NAME}); + + console.log('\nFinished migrations'); + }); diff --git a/tasks/misc/verify-sc.ts b/tasks/misc/verify-sc.ts new file mode 100644 index 00000000..ee1ce0e2 --- /dev/null +++ b/tasks/misc/verify-sc.ts @@ -0,0 +1,35 @@ +import {task} from '@nomiclabs/buidler/config'; +import {verifyContract, checkVerification} from '../../helpers/etherscan-verification'; + +interface VerifyParams { + contractName: string; + address: string; + constructorArguments: string[]; + libraries: string; +} + +task('verify-sc', 'Inits the BRE, to have access to all the plugins') + .addParam('contractName', 'Name of the Solidity smart contract') + .addParam('address', 'Ethereum address of the smart contract') + .addOptionalParam( + 'libraries', + 'Stringified JSON object in format of {library1: "0x2956356cd2a2bf3202f771f50d3d14a367b48071"}' + ) + .addOptionalVariadicPositionalParam( + 'constructorArguments', + 'arguments for contract constructor', + [] + ) + .setAction( + async ( + {contractName, address, constructorArguments = [], libraries}: VerifyParams, + localBRE + ) => { + await localBRE.run('set-bre'); + + checkVerification(); + + const result = await verifyContract(contractName, address, constructorArguments, libraries); + return result; + } + ); diff --git a/test/__setup.spec.ts b/test/__setup.spec.ts index 62e11e35..676ae52a 100644 --- a/test/__setup.spec.ts +++ b/test/__setup.spec.ts @@ -2,16 +2,13 @@ import rawBRE from '@nomiclabs/buidler'; import {MockContract} from 'ethereum-waffle'; import { deployLendingPoolAddressesProvider, - deployMintableErc20, + deployMintableERC20, deployLendingPoolAddressesProviderRegistry, deployLendingPoolConfigurator, deployLendingPool, deployPriceOracle, getLendingPoolConfiguratorProxy, - deployMockAggregator, deployChainlinkProxyPriceProvider, - deployLendingRateOracle, - deployDefaultReserveInterestRateStrategy, deployLendingPoolCollateralManager, deployMockFlashLoanReceiver, deployWalletBalancerProvider, @@ -20,52 +17,36 @@ import { deployAaveProtocolTestHelpers, getEthersSigners, registerContractInJsonDb, - deployStableDebtToken, - deployVariableDebtToken, - deployGenericAToken, + getPairsTokenAggregator, + initReserves, deployMockSwapAdapter, + deployLendingRateOracle, } from '../helpers/contracts-helpers'; -import {LendingPoolAddressesProvider} from '../types/LendingPoolAddressesProvider'; -import {ContractTransaction, Signer} from 'ethers'; -import { - TokenContractId, - eContractid, - iAssetBase, - tEthereumAddress, - iAssetAggregatorBase, - IMarketRates, - iMultiPoolsAssets, - AavePools, - IReserveParams, -} from '../helpers/types'; -import {MintableErc20} from '../types/MintableErc20'; -import { - MOCK_USD_PRICE_IN_WEI, - ALL_ASSETS_INITIAL_PRICES, - USD_ADDRESS, - MOCK_CHAINLINK_AGGREGATORS_PRICES, - LENDING_RATE_ORACLE_RATES_COMMON, - getReservesConfigByPool, - getFeeDistributionParamsCommon, - ZERO_ADDRESS, -} from '../helpers/constants'; -import {PriceOracle} from '../types/PriceOracle'; -import {MockAggregator} from '../types/MockAggregator'; -import {LendingRateOracle} from '../types/LendingRateOracle'; -import {LendingPool} from '../types/LendingPool'; -import {LendingPoolConfigurator} from '../types/LendingPoolConfigurator'; +import {Signer} from 'ethers'; +import {TokenContractId, eContractid, tEthereumAddress, AavePools} from '../helpers/types'; +import {MintableErc20 as MintableERC20} from '../types/MintableErc20'; +import {getReservesConfigByPool} from '../helpers/configuration'; import {initializeMakeSuite} from './helpers/make-suite'; -import path from 'path'; -import fs from 'fs'; import {AaveProtocolTestHelpers} from '../types/AaveProtocolTestHelpers'; -['misc'].forEach((folder) => { - const tasksPath = path.join(__dirname, '../', 'tasks', folder); - fs.readdirSync(tasksPath).forEach((task) => require(`${tasksPath}/${task}`)); -}); +import { + setInitialAssetPricesInOracle, + setInitialMarketRatesInRatesOracle, + deployAllMockAggregators, +} from '../helpers/oracles-helpers'; +import {waitForTx} from '../helpers/misc-utils'; +import {enableReservesToBorrow, enableReservesAsCollateral} from '../helpers/init-helpers'; +import {AaveConfig} from '../config/aave'; +import {ZERO_ADDRESS} from '../helpers/constants'; + +const MOCK_USD_PRICE_IN_WEI = AaveConfig.ProtocolGlobalParams.MockUsdPriceInWei; +const ALL_ASSETS_INITIAL_PRICES = AaveConfig.Mocks.AllAssetsInitialPrices; +const USD_ADDRESS = AaveConfig.ProtocolGlobalParams.UsdAddress; +const MOCK_CHAINLINK_AGGREGATORS_PRICES = AaveConfig.Mocks.ChainlinkAggregatorPrices; +const LENDING_RATE_ORACLE_RATES_COMMON = AaveConfig.LendingRateOracleRatesCommon; const deployAllMockTokens = async (deployer: Signer) => { - const tokens: {[symbol: string]: MockContract | MintableErc20} = {}; + const tokens: {[symbol: string]: MockContract | MintableERC20} = {}; const protoConfigData = getReservesConfigByPool(AavePools.proto); const secondaryConfigData = getReservesConfigByPool(AavePools.secondary); @@ -83,7 +64,7 @@ const deployAllMockTokens = async (deployer: Signer) => { decimals = 18; } - tokens[tokenSymbol] = await deployMintableErc20([ + tokens[tokenSymbol] = await deployMintableERC20([ tokenSymbol, tokenSymbol, configData ? configData.reserveDecimals : 18, @@ -94,266 +75,6 @@ const deployAllMockTokens = async (deployer: Signer) => { return tokens; }; -const setInitialAssetPricesInOracle = async ( - prices: iAssetBase, - assetsAddresses: iAssetBase, - priceOracleInstance: PriceOracle -) => { - for (const [assetSymbol, price] of Object.entries(prices) as [string, string][]) { - const assetAddressIndex = Object.keys(assetsAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, assetAddress] = (Object.entries(assetsAddresses) as [string, string][])[ - assetAddressIndex - ]; - await waitForTx(await priceOracleInstance.setAssetPrice(assetAddress, price)); - } -}; - -const deployAllMockAggregators = async (initialPrices: iAssetAggregatorBase) => { - const aggregators: {[tokenSymbol: string]: MockAggregator} = {}; - for (const tokenContractName of Object.keys(initialPrices)) { - if (tokenContractName !== 'ETH') { - const priceIndex = Object.keys(initialPrices).findIndex( - (value) => value === tokenContractName - ); - const [, price] = (Object.entries(initialPrices) as [string, string][])[priceIndex]; - aggregators[tokenContractName] = await deployMockAggregator(price); - } - } - return aggregators; -}; - -const getPairsTokenAggregator = ( - allAssetsAddresses: { - [tokenSymbol: string]: tEthereumAddress; - }, - aggregatorsAddresses: {[tokenSymbol: string]: tEthereumAddress} -): [string[], string[]] => { - const {ETH, ...assetsAddressesWithoutEth} = allAssetsAddresses; - - const pairs = Object.entries(assetsAddressesWithoutEth).map(([tokenSymbol, tokenAddress]) => { - if (tokenSymbol !== 'ETH') { - const aggregatorAddressIndex = Object.keys(aggregatorsAddresses).findIndex( - (value) => value === tokenSymbol - ); - const [, aggregatorAddress] = (Object.entries(aggregatorsAddresses) as [ - string, - tEthereumAddress - ][])[aggregatorAddressIndex]; - return [tokenAddress, aggregatorAddress]; - } - }); - - const mappedPairs = pairs.map(([asset]) => asset); - const mappedAggregators = pairs.map(([, source]) => source); - - return [mappedPairs, mappedAggregators]; -}; - -const setInitialMarketRatesInRatesOracle = async ( - marketRates: iMultiPoolsAssets, - assetsAddresses: {[x: string]: tEthereumAddress}, - lendingRateOracleInstance: LendingRateOracle -) => { - for (const [assetSymbol, {borrowRate}] of Object.entries(marketRates) as [ - string, - IMarketRates - ][]) { - const assetAddressIndex = Object.keys(assetsAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, assetAddress] = (Object.entries(assetsAddresses) as [string, string][])[ - assetAddressIndex - ]; - await lendingRateOracleInstance.setMarketBorrowRate(assetAddress, borrowRate); - } -}; - -const initReserves = async ( - reservesParams: iMultiPoolsAssets, - tokenAddresses: {[symbol: string]: tEthereumAddress}, - lendingPoolAddressesProvider: LendingPoolAddressesProvider, - lendingPool: LendingPool, - lendingPoolConfigurator: LendingPoolConfigurator, - helpersContract: AaveProtocolTestHelpers, - aavePool: AavePools, - incentivesController: tEthereumAddress -) => { - if (aavePool !== AavePools.proto && aavePool !== AavePools.secondary) { - console.log(`Invalid Aave pool ${aavePool}`); - process.exit(1); - } - - for (let [assetSymbol, {reserveDecimals}] of Object.entries(reservesParams) as [ - string, - IReserveParams - ][]) { - const assetAddressIndex = Object.keys(tokenAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ - assetAddressIndex - ]; - - const {isActive: reserveInitialized} = await helpersContract.getReserveConfigurationData( - tokenAddress - ); - - if (reserveInitialized) { - console.log(`Reserve ${assetSymbol} is already active, skipping configuration`); - continue; - } - - try { - const reserveParamIndex = Object.keys(reservesParams).findIndex( - (value) => value === assetSymbol - ); - const [ - , - { - baseVariableBorrowRate, - variableRateSlope1, - variableRateSlope2, - stableRateSlope1, - stableRateSlope2, - }, - ] = (Object.entries(reservesParams) as [string, IReserveParams][])[reserveParamIndex]; - const rateStrategyContract = await deployDefaultReserveInterestRateStrategy([ - lendingPoolAddressesProvider.address, - baseVariableBorrowRate, - variableRateSlope1, - variableRateSlope2, - stableRateSlope1, - stableRateSlope2, - ]); - - const stableDebtToken = await deployStableDebtToken([ - `Aave stable debt bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - `stableDebt${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - tokenAddress, - lendingPool.address, - incentivesController, - ]); - - const variableDebtToken = await deployVariableDebtToken([ - `Aave variable debt bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - `variableDebt${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - tokenAddress, - lendingPool.address, - incentivesController, - ]); - - const aToken = await deployGenericAToken([ - lendingPool.address, - tokenAddress, - ZERO_ADDRESS, - `Aave interest bearing ${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - `a${assetSymbol === 'WETH' ? 'ETH' : assetSymbol}`, - incentivesController, - ]); - - if (process.env.POOL === AavePools.secondary) { - if (assetSymbol.search('UNI') === -1) { - assetSymbol = `Uni${assetSymbol}`; - } else { - assetSymbol = assetSymbol.replace(/_/g, '').replace('UNI', 'Uni'); - } - } - - await lendingPoolConfigurator.initReserve( - tokenAddress, - aToken.address, - stableDebtToken.address, - variableDebtToken.address, - reserveDecimals, - rateStrategyContract.address - ); - } catch (e) { - console.log(`Reserve initialization for ${assetSymbol} failed with error ${e}. Skipped.`); - } - } -}; - -const enableReservesToBorrow = async ( - reservesParams: iMultiPoolsAssets, - tokenAddresses: {[symbol: string]: tEthereumAddress}, - helpersContract: AaveProtocolTestHelpers, - lendingPoolConfigurator: LendingPoolConfigurator -) => { - for (const [assetSymbol, {borrowingEnabled, stableBorrowRateEnabled}] of Object.entries( - reservesParams - ) as [string, IReserveParams][]) { - if (!borrowingEnabled) continue; - try { - const assetAddressIndex = Object.keys(tokenAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ - assetAddressIndex - ]; - const { - borrowingEnabled: borrowingAlreadyEnabled, - } = await helpersContract.getReserveConfigurationData(tokenAddress); - - if (borrowingAlreadyEnabled) { - console.log(`Reserve ${assetSymbol} is already enabled for borrowing, skipping`); - continue; - } - - await lendingPoolConfigurator.enableBorrowingOnReserve(tokenAddress, stableBorrowRateEnabled); - } catch (e) { - console.log( - `Enabling reserve for borrowings for ${assetSymbol} failed with error ${e}. Skipped.` - ); - } - } -}; - -const enableReservesAsCollateral = async ( - reservesParams: iMultiPoolsAssets, - tokenAddresses: {[symbol: string]: tEthereumAddress}, - helpersContract: AaveProtocolTestHelpers, - lendingPoolConfigurator: LendingPoolConfigurator -) => { - for (const [ - assetSymbol, - {baseLTVAsCollateral, liquidationBonus, liquidationThreshold}, - ] of Object.entries(reservesParams) as [string, IReserveParams][]) { - if (baseLTVAsCollateral === '-1') continue; - - const assetAddressIndex = Object.keys(tokenAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ - assetAddressIndex - ]; - const { - usageAsCollateralEnabled: alreadyEnabled, - } = await helpersContract.getReserveConfigurationData(tokenAddress); - - if (alreadyEnabled) { - console.log(`Reserve ${assetSymbol} is already enabled as collateral, skipping`); - continue; - } - - try { - await lendingPoolConfigurator.enableReserveAsCollateral( - tokenAddress, - baseLTVAsCollateral, - liquidationThreshold, - liquidationBonus - ); - } catch (e) { - console.log( - `Enabling reserve as collateral for ${assetSymbol} failed with error ${e}. Skipped.` - ); - } - } -}; - -export const waitForTx = async (tx: ContractTransaction) => await tx.wait(); - const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { console.time('setup'); const aaveAdmin = await deployer.getAddress(); @@ -491,10 +212,11 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { protoPoolReservesAddresses, addressesProvider, lendingPoolProxy, - lendingPoolConfiguratorProxy, testHelpers, + lendingPoolConfiguratorProxy, AavePools.proto, - ZERO_ADDRESS + ZERO_ADDRESS, + false ); await enableReservesToBorrow( reservesParams, diff --git a/test/addresses-provider-registry.spec.ts b/test/addresses-provider-registry.spec.ts index dd7db8e0..457514e4 100644 --- a/test/addresses-provider-registry.spec.ts +++ b/test/addresses-provider-registry.spec.ts @@ -6,88 +6,88 @@ import {ProtocolErrors} from '../helpers/types'; const {expect} = require('chai'); makeSuite('AddressesProviderRegistry', (testEnv: TestEnv) => { - it('Checks the addresses provider is added to the registry', async () => { - const {addressesProvider, registry} = testEnv; const providers = await registry.getAddressesProvidersList(); - expect(providers.length).to.be.equal(1, "Invalid length of the addresses providers list"); - expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list"); - + expect(providers.length).to.be.equal(1, 'Invalid length of the addresses providers list'); + expect(providers[0].toString()).to.be.equal( + addressesProvider.address, + ' Invalid addresses provider added to the list' + ); }); - it('Registers a new mock addresses provider', async () => { - const {users, registry} = testEnv; //simulating an addresses provider using the users[1] wallet address - await registry.registerAddressesProvider(users[1].address, "2"); + await registry.registerAddressesProvider(users[1].address, '2'); const providers = await registry.getAddressesProvidersList(); - expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list"); - expect(providers[1].toString()).to.be.equal(users[1].address, " Invalid addresses provider added to the list"); - + expect(providers.length).to.be.equal(2, 'Invalid length of the addresses providers list'); + expect(providers[1].toString()).to.be.equal( + users[1].address, + ' Invalid addresses provider added to the list' + ); }); it('Removes the mock addresses provider', async () => { - const {users, registry, addressesProvider} = testEnv; //checking the isAddressesProviderRegistered function const id = await registry.isAddressesProviderRegistered(users[1].address); - - expect(id).to.be.equal("2", "Invalid isRegistered return value"); - + + expect(id).to.be.equal('2', 'Invalid isRegistered return value'); + await registry.unregisterAddressesProvider(users[1].address); const providers = await registry.getAddressesProvidersList(); - expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list"); - expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list"); - expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, " Invalid addresses"); - + expect(providers.length).to.be.equal(2, 'Invalid length of the addresses providers list'); + expect(providers[0].toString()).to.be.equal( + addressesProvider.address, + ' Invalid addresses provider added to the list' + ); + expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, ' Invalid addresses'); }); it('Tries to remove a unregistered addressesProvider', async () => { - const {PROVIDER_NOT_REGISTERED} = ProtocolErrors; const {users, registry} = testEnv; - await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith(PROVIDER_NOT_REGISTERED); - + await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith( + PROVIDER_NOT_REGISTERED + ); }); it('Tries to remove a unregistered addressesProvider', async () => { - const {PROVIDER_NOT_REGISTERED} = ProtocolErrors; const {users, registry} = testEnv; - await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith(PROVIDER_NOT_REGISTERED); - + await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith( + PROVIDER_NOT_REGISTERED + ); }); it('Tries to add an already added addressesProvider with a different id. Should overwrite the previous id', async () => { - const {users, registry, addressesProvider} = testEnv; - await registry.registerAddressesProvider(addressesProvider.address,"2"); + await registry.registerAddressesProvider(addressesProvider.address, '2'); const providers = await registry.getAddressesProvidersList(); const id = await registry.isAddressesProviderRegistered(addressesProvider.address); - expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list"); - - expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list"); - expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, " Invalid addresses"); + expect(providers.length).to.be.equal(2, 'Invalid length of the addresses providers list'); + expect(providers[0].toString()).to.be.equal( + addressesProvider.address, + ' Invalid addresses provider added to the list' + ); + expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, ' Invalid addresses'); }); - }); - diff --git a/test/atoken-modifiers.spec.ts b/test/atoken-modifiers.spec.ts index 7560970c..98495dec 100644 --- a/test/atoken-modifiers.spec.ts +++ b/test/atoken-modifiers.spec.ts @@ -7,7 +7,9 @@ makeSuite('AToken: Modifiers', (testEnv: TestEnv) => { it('Tries to invoke mint not being the LendingPool', async () => { const {deployer, aDai} = testEnv; - await expect(aDai.mint(deployer.address, '1', '1')).to.be.revertedWith(CALLER_MUST_BE_LENDING_POOL); + await expect(aDai.mint(deployer.address, '1', '1')).to.be.revertedWith( + CALLER_MUST_BE_LENDING_POOL + ); }); it('Tries to invoke burn not being the LendingPool', async () => { diff --git a/test/atoken-permit.spec.ts b/test/atoken-permit.spec.ts index 397eddb1..91e438f3 100644 --- a/test/atoken-permit.spec.ts +++ b/test/atoken-permit.spec.ts @@ -1,23 +1,27 @@ -import { - MAX_UINT_AMOUNT, - ZERO_ADDRESS, - getATokenDomainSeparatorPerNetwork, -} from '../helpers/constants'; +import {MAX_UINT_AMOUNT, ZERO_ADDRESS} from '../helpers/constants'; +import {BUIDLEREVM_CHAINID} from '../helpers/buidler-constants'; import {buildPermitParams, getSignatureFromTypedData} from '../helpers/contracts-helpers'; import {expect} from 'chai'; import {ethers} from 'ethers'; import {eEthereumNetwork} from '../helpers/types'; import {makeSuite, TestEnv} from './helpers/make-suite'; import {BRE} from '../helpers/misc-utils'; -import {waitForTx} from './__setup.spec'; -import {BUIDLEREVM_CHAINID} from '../helpers/buidler-constants'; +import { + ConfigNames, + getATokenDomainSeparatorPerNetwork, + loadPoolConfig, +} from '../helpers/configuration'; +import {waitForTx} from '../helpers/misc-utils'; const {parseEther} = ethers.utils; makeSuite('AToken: Permit', (testEnv: TestEnv) => { + const poolConfig = loadPoolConfig(ConfigNames.Commons); + it('Checks the domain separator', async () => { const DOMAIN_SEPARATOR_ENCODED = getATokenDomainSeparatorPerNetwork( - eEthereumNetwork.buidlerevm + eEthereumNetwork.buidlerevm, + poolConfig ); const {aDai} = testEnv; diff --git a/test/atoken-transfer.spec.ts b/test/atoken-transfer.spec.ts index 87c1af73..0e207e17 100644 --- a/test/atoken-transfer.spec.ts +++ b/test/atoken-transfer.spec.ts @@ -1,14 +1,14 @@ -import { - APPROVAL_AMOUNT_LENDING_POOL, - AAVE_REFERRAL, - MAX_UINT_AMOUNT, - ZERO_ADDRESS, -} from '../helpers/constants'; +import {MAX_UINT_AMOUNT, ZERO_ADDRESS} from '../helpers/constants'; import {convertToCurrencyDecimals} from '../helpers/contracts-helpers'; import {expect} from 'chai'; import {ethers} from 'ethers'; import {RateMode, ProtocolErrors} from '../helpers/types'; import {makeSuite, TestEnv} from './helpers/make-suite'; +import {CommonsConfig} from '../config/commons'; + +const APPROVAL_AMOUNT_LENDING_POOL = + CommonsConfig.ProtocolGlobalParams.ApprovalAmountLendingPoolCore; +const AAVE_REFERRAL = CommonsConfig.ProtocolGlobalParams.AaveReferral; makeSuite('AToken: Transfer', (testEnv: TestEnv) => { const { diff --git a/test/collateral-swap.spec.ts b/test/collateral-swap.spec.ts index d57790f0..b85e1dd3 100644 --- a/test/collateral-swap.spec.ts +++ b/test/collateral-swap.spec.ts @@ -6,7 +6,7 @@ import {ethers} from 'ethers'; import {APPROVAL_AMOUNT_LENDING_POOL} from '../helpers/constants'; import {getContractsData, getTxCostAndTimestamp} from './helpers/actions'; import {calcExpectedATokenBalance} from './helpers/utils/calculations'; -import {waitForTx} from './__setup.spec'; +import {waitForTx} from '../helpers/misc-utils'; import {advanceBlock, timeLatest} from '../helpers/misc-utils'; const {expect} = require('chai'); diff --git a/test/configurator.spec.ts b/test/configurator.spec.ts index e56d2acb..891c88dc 100644 --- a/test/configurator.spec.ts +++ b/test/configurator.spec.ts @@ -1,7 +1,11 @@ import {TestEnv, makeSuite} from './helpers/make-suite'; -import {RAY, APPROVAL_AMOUNT_LENDING_POOL} from '../helpers/constants'; +import {RAY} from '../helpers/constants'; import {convertToCurrencyDecimals} from '../helpers/contracts-helpers'; import {ProtocolErrors} from '../helpers/types'; +import {CommonsConfig} from '../config/commons'; + +const APPROVAL_AMOUNT_LENDING_POOL = + CommonsConfig.ProtocolGlobalParams.ApprovalAmountLendingPoolCore; const {expect} = require('chai'); diff --git a/test/flash-liquidation-with-collateral.spec.ts b/test/flash-liquidation-with-collateral.spec.ts index eb9dc688..91bfe38f 100644 --- a/test/flash-liquidation-with-collateral.spec.ts +++ b/test/flash-liquidation-with-collateral.spec.ts @@ -7,8 +7,7 @@ import { calcExpectedStableDebtTokenBalance, } from './helpers/utils/calculations'; import {getContractsData} from './helpers/actions'; -import {waitForTx} from './__setup.spec'; -import {timeLatest, BRE, increaseTime} from '../helpers/misc-utils'; +import {timeLatest, BRE, increaseTime, waitForTx} from '../helpers/misc-utils'; import {ProtocolErrors} from '../helpers/types'; import {convertToCurrencyDecimals} from '../helpers/contracts-helpers'; import {expectRepayWithCollateralEvent} from './repay-with-collateral.spec'; diff --git a/test/flashloan.spec.ts b/test/flashloan.spec.ts index 7b02e021..b4274a5a 100644 --- a/test/flashloan.spec.ts +++ b/test/flashloan.spec.ts @@ -24,6 +24,7 @@ makeSuite('LendingPool FlashLoan function', (testEnv: TestEnv) => { INVALID_FLASHLOAN_MODE, SAFEERC20_LOWLEVEL_CALL, IS_PAUSED, + INVALID_FLASH_LOAN_EXECUTOR_RETURN, } = ProtocolErrors; before(async () => { @@ -116,9 +117,30 @@ makeSuite('LendingPool FlashLoan function', (testEnv: TestEnv) => { ).to.be.revertedWith(TRANSFER_AMOUNT_EXCEEDS_BALANCE); }); + it('Takes WETH flashloan, simulating a receiver as EOA (revert expected)', async () => { + const {pool, weth, users} = testEnv; + const caller = users[1]; + await _mockFlashLoanReceiver.setFailExecutionTransfer(true); + await _mockFlashLoanReceiver.setSimulateEOA(true); + + await expect( + pool + .connect(caller.signer) + .flashLoan( + _mockFlashLoanReceiver.address, + weth.address, + ethers.utils.parseEther('0.8'), + 0, + '0x10', + '0' + ) + ).to.be.revertedWith(INVALID_FLASH_LOAN_EXECUTOR_RETURN); + }); + it('Takes a WETH flashloan with an invalid mode. (revert expected)', async () => { const {pool, weth, users} = testEnv; const caller = users[1]; + await _mockFlashLoanReceiver.setSimulateEOA(false); await _mockFlashLoanReceiver.setFailExecutionTransfer(true); await expect( diff --git a/test/helpers/actions.ts b/test/helpers/actions.ts index 968d854a..85d3eb00 100644 --- a/test/helpers/actions.ts +++ b/test/helpers/actions.ts @@ -24,11 +24,10 @@ import { } from '../../helpers/contracts-helpers'; import {MAX_UINT_AMOUNT, ONE_YEAR} from '../../helpers/constants'; import {SignerWithAddress, TestEnv} from './make-suite'; -import {BRE, increaseTime, timeLatest} from '../../helpers/misc-utils'; +import {BRE, increaseTime, timeLatest, waitForTx} from '../../helpers/misc-utils'; import chai from 'chai'; import {ReserveData, UserReserveData} from './utils/interfaces'; -import {waitForTx} from '../__setup.spec'; import {ContractReceipt} from 'ethers'; import {AToken} from '../../types/AToken'; import {RateMode, tEthereumAddress} from '../../helpers/types'; diff --git a/test/helpers/make-suite.ts b/test/helpers/make-suite.ts index a951e86b..5eb8788f 100644 --- a/test/helpers/make-suite.ts +++ b/test/helpers/make-suite.ts @@ -15,7 +15,7 @@ import { import {tEthereumAddress} from '../../helpers/types'; import {LendingPool} from '../../types/LendingPool'; import {AaveProtocolTestHelpers} from '../../types/AaveProtocolTestHelpers'; -import {MintableErc20} from '../../types/MintableErc20'; +import {MintableErc20 as MintableERC20} from '../../types/MintableErc20'; import {AToken} from '../../types/AToken'; import {LendingPoolConfigurator} from '../../types/LendingPoolConfigurator'; @@ -41,12 +41,12 @@ export interface TestEnv { configurator: LendingPoolConfigurator; oracle: PriceOracle; helpersContract: AaveProtocolTestHelpers; - weth: MintableErc20; + weth: MintableERC20; aEth: AToken; - dai: MintableErc20; + dai: MintableERC20; aDai: AToken; - usdc: MintableErc20; - lend: MintableErc20; + usdc: MintableERC20; + lend: MintableERC20; addressesProvider: LendingPoolAddressesProvider; mockSwapAdapter: MockSwapAdapter; registry: LendingPoolAddressesProviderRegistry; @@ -66,12 +66,12 @@ const testEnv: TestEnv = { configurator: {} as LendingPoolConfigurator, helpersContract: {} as AaveProtocolTestHelpers, oracle: {} as PriceOracle, - weth: {} as MintableErc20, + weth: {} as MintableERC20, aEth: {} as AToken, - dai: {} as MintableErc20, + dai: {} as MintableERC20, aDai: {} as AToken, - usdc: {} as MintableErc20, - lend: {} as MintableErc20, + usdc: {} as MintableERC20, + lend: {} as MintableERC20, addressesProvider: {} as LendingPoolAddressesProvider, mockSwapAdapter: {} as MockSwapAdapter, registry: {} as LendingPoolAddressesProviderRegistry, diff --git a/test/helpers/utils/calculations.ts b/test/helpers/utils/calculations.ts index 7ef73c48..46623a62 100644 --- a/test/helpers/utils/calculations.ts +++ b/test/helpers/utils/calculations.ts @@ -318,7 +318,6 @@ export const calcExpectedReserveDataAfterBorrow = ( expectedReserveData.lastUpdateTimestamp = txTimestamp; if (borrowRateMode == RateMode.Stable) { - expectedReserveData.scaledVariableDebt = reserveDataBeforeAction.scaledVariableDebt; const expectedVariableDebtAfterTx = expectedReserveData.scaledVariableDebt.rayMul( @@ -392,7 +391,6 @@ export const calcExpectedReserveDataAfterBorrow = ( expectedReserveData.totalLiquidity ); } else { - expectedReserveData.principalStableDebt = reserveDataBeforeAction.principalStableDebt; const totalStableDebtAfterTx = calcExpectedStableDebtTokenBalance( @@ -605,7 +603,6 @@ export const calcExpectedUserDataAfterBorrow = ( const amountBorrowedBN = new BigNumber(amountBorrowed); if (interestRateMode == RateMode.Stable) { - const stableDebtUntilTx = calcExpectedStableDebtTokenBalance( userDataBeforeAction.principalStableDebt, userDataBeforeAction.stableBorrowRate, @@ -631,9 +628,7 @@ export const calcExpectedUserDataAfterBorrow = ( ); expectedUserData.scaledVariableDebt = userDataBeforeAction.scaledVariableDebt; - } else { - expectedUserData.scaledVariableDebt = reserveDataBeforeAction.scaledVariableDebt.plus( amountBorrowedBN.rayDiv(expectedDataAfterAction.variableBorrowIndex) ); diff --git a/test/helpers/utils/interfaces/index.ts b/test/helpers/utils/interfaces/index.ts index 72b30708..17660fcc 100644 --- a/test/helpers/utils/interfaces/index.ts +++ b/test/helpers/utils/interfaces/index.ts @@ -23,8 +23,8 @@ export interface ReserveData { availableLiquidity: BigNumber; totalStableDebt: BigNumber; totalVariableDebt: BigNumber; - principalStableDebt: BigNumber, - scaledVariableDebt: BigNumber, + principalStableDebt: BigNumber; + scaledVariableDebt: BigNumber; averageStableBorrowRate: BigNumber; variableBorrowRate: BigNumber; stableBorrowRate: BigNumber; diff --git a/test/lending-pool-addresses-provider.spec.ts b/test/lending-pool-addresses-provider.spec.ts index 07f99c38..ed283c46 100644 --- a/test/lending-pool-addresses-provider.spec.ts +++ b/test/lending-pool-addresses-provider.spec.ts @@ -4,7 +4,7 @@ import {makeSuite, TestEnv} from './helpers/make-suite'; import {ProtocolErrors} from '../helpers/types'; import {ethers} from 'ethers'; import {ZERO_ADDRESS} from '../helpers/constants'; -import {waitForTx} from './__setup.spec'; +import {waitForTx} from '../helpers/misc-utils'; import {deployLendingPool} from '../helpers/contracts-helpers'; const {utils} = ethers; diff --git a/test/liquidation-atoken.spec.ts b/test/liquidation-atoken.spec.ts index e32459d5..5b2fd527 100644 --- a/test/liquidation-atoken.spec.ts +++ b/test/liquidation-atoken.spec.ts @@ -1,12 +1,16 @@ import BigNumber from 'bignumber.js'; import {BRE} from '../helpers/misc-utils'; -import {APPROVAL_AMOUNT_LENDING_POOL, oneEther} from '../helpers/constants'; +import {oneEther} from '../helpers/constants'; import {convertToCurrencyDecimals} from '../helpers/contracts-helpers'; import {makeSuite} from './helpers/make-suite'; import {ProtocolErrors, RateMode} from '../helpers/types'; import {calcExpectedVariableDebtTokenBalance} from './helpers/utils/calculations'; import {getUserData, getReserveData} from './helpers/utils/helpers'; +import {CommonsConfig} from '../config/commons'; + +const APPROVAL_AMOUNT_LENDING_POOL = + CommonsConfig.ProtocolGlobalParams.ApprovalAmountLendingPoolCore; const chai = require('chai'); const {expect} = chai; diff --git a/test/liquidation-underlying.spec.ts b/test/liquidation-underlying.spec.ts index bef20fda..1bba749d 100644 --- a/test/liquidation-underlying.spec.ts +++ b/test/liquidation-underlying.spec.ts @@ -1,12 +1,16 @@ import BigNumber from 'bignumber.js'; import {BRE, increaseTime} from '../helpers/misc-utils'; -import {APPROVAL_AMOUNT_LENDING_POOL, oneEther} from '../helpers/constants'; +import {oneEther} from '../helpers/constants'; import {convertToCurrencyDecimals} from '../helpers/contracts-helpers'; import {makeSuite} from './helpers/make-suite'; import {ProtocolErrors, RateMode} from '../helpers/types'; import {calcExpectedStableDebtTokenBalance} from './helpers/utils/calculations'; import {getUserData} from './helpers/utils/helpers'; +import {CommonsConfig} from '../config/commons'; + +const APPROVAL_AMOUNT_LENDING_POOL = + CommonsConfig.ProtocolGlobalParams.ApprovalAmountLendingPoolCore; import {parseEther} from 'ethers/lib/utils'; const chai = require('chai'); diff --git a/test/repay-with-collateral.spec.ts b/test/repay-with-collateral.spec.ts index 46625397..282cddb3 100644 --- a/test/repay-with-collateral.spec.ts +++ b/test/repay-with-collateral.spec.ts @@ -7,10 +7,8 @@ import { calcExpectedStableDebtTokenBalance, } from './helpers/utils/calculations'; import {getContractsData} from './helpers/actions'; -import {waitForTx} from './__setup.spec'; -import {timeLatest} from '../helpers/misc-utils'; +import {timeLatest, waitForTx} from '../helpers/misc-utils'; import {ProtocolErrors, tEthereumAddress} from '../helpers/types'; -import {parse} from 'path'; const {expect} = require('chai'); const {parseUnits, parseEther} = ethers.utils; diff --git a/test/scenario.spec.ts b/test/scenario.spec.ts index 54fe7433..50793c0c 100644 --- a/test/scenario.spec.ts +++ b/test/scenario.spec.ts @@ -4,7 +4,7 @@ import {configuration as calculationsConfiguration} from './helpers/utils/calcul import fs from 'fs'; import BigNumber from 'bignumber.js'; import {makeSuite} from './helpers/make-suite'; -import {getReservesConfigByPool} from '../helpers/constants'; +import {getReservesConfigByPool} from '../helpers/configuration'; import {AavePools, iAavePoolAssets, IReserveParams} from '../helpers/types'; import {executeStory} from './helpers/scenario-engine'; diff --git a/tsconfig.json b/tsconfig.json index a2b44bde..edf9e693 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES2019", "module": "commonjs", "strict": true, "esModuleInterop": true,